home *** CD-ROM | disk | FTP | other *** search
/ H4CK3R 4 / hacker04 / 04_HACK04.ISO / darwin / darwinx86.iso / usr / include / netat / pap.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-09-30  |  4.6 KB  |  128 lines

  1. /*
  2.  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
  3.  *
  4.  * @APPLE_LICENSE_HEADER_START@
  5.  * 
  6.  * The contents of this file constitute Original Code as defined in and
  7.  * are subject to the Apple Public Source License Version 1.1 (the
  8.  * "License").  You may not use this file except in compliance with the
  9.  * License.  Please obtain a copy of the License at
  10.  * http://www.apple.com/publicsource and read it before using this file.
  11.  * 
  12.  * This Original Code and all software distributed under the License are
  13.  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  14.  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  15.  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
  16.  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
  17.  * License for the specific language governing rights and limitations
  18.  * under the License.
  19.  * 
  20.  * @APPLE_LICENSE_HEADER_END@
  21.  */
  22. /*
  23.  *
  24.  * ORIGINS: 82
  25.  *
  26.  * (C) COPYRIGHT Apple Computer, Inc. 1992-1996
  27.  * All Rights Reserved
  28.  *
  29.  */                                                                   
  30.  
  31. /* Definitions for ATP protocol and streams module, per 
  32.  * AppleTalk Transaction Protocol documentation from
  33.  * `Inside AppleTalk', July 14, 1986.
  34.  */
  35.  
  36. #ifndef _NETAT_PAP_H_
  37. #define _NETAT_PAP_H_
  38.  
  39. #define  AT_PAP_DATA_SIZE          512    /* Maximum PAP data size */
  40. #define  AT_PAP_STATUS_SIZE          255    /* Maximum PAP status length */
  41. #define  PAP_TIMEOUT              120
  42.  
  43. /* PAP packet types */
  44.  
  45. #define  AT_PAP_TYPE_OPEN_CONN        0x01   /* Open-Connection packet */
  46. #define  AT_PAP_TYPE_OPEN_CONN_REPLY  0x02   /* Open-Connection-Reply packet */
  47. #define  AT_PAP_TYPE_SEND_DATA        0x03   /* Send-Data packet */
  48. #define  AT_PAP_TYPE_DATA             0x04   /* Data packet */
  49. #define  AT_PAP_TYPE_TICKLE           0x05   /* Tickle packet */
  50. #define  AT_PAP_TYPE_CLOSE_CONN       0x06   /* Close-Connection packet */
  51. #define  AT_PAP_TYPE_CLOSE_CONN_REPLY 0x07   /* Close-Connection-Reply pkt */
  52. #define  AT_PAP_TYPE_SEND_STATUS      0x08   /* Send-Status packet */
  53. #define  AT_PAP_TYPE_SEND_STS_REPLY   0x09   /* Send-Status-Reply packet */
  54. #define  AT_PAP_TYPE_READ_LW          0x0A   /* Read LaserWriter Message */
  55.  
  56.  
  57. /* PAP packet structure */
  58.  
  59. typedef struct {
  60.         u_char     at_pap_connection_id;
  61.         u_char       at_pap_type;
  62.         u_char     at_pap_sequence_number[2];
  63.         u_char       at_pap_responding_socket;
  64.         u_char     at_pap_flow_quantum;
  65.         u_char     at_pap_wait_time_or_result[2];
  66.         u_char     at_pap_buffer[AT_PAP_DATA_SIZE];
  67. } at_pap;
  68.  
  69.  
  70. /* ioctl definitions */
  71.  
  72. #define    AT_PAP_SETHDR        (('~'<<8)|0)
  73. #define    AT_PAP_READ        (('~'<<8)|1)
  74. #define    AT_PAP_WRITE        (('~'<<8)|2)
  75. #define    AT_PAP_WRITE_EOF    (('~'<<8)|3)
  76. #define    AT_PAP_WRITE_FLUSH    (('~'<<8)|4)
  77. #define    AT_PAP_READ_IGNORE    (('~'<<8)|5)
  78. #define    AT_PAPD_SET_STATUS    (('~'<<8)|40)
  79. #define    AT_PAPD_GET_NEXT_JOB    (('~'<<8)|41)
  80.  
  81. extern    char    at_pap_status[];
  82. extern  char   *pap_status ();
  83.  
  84. #define    NPAPSERVERS    10    /* the number of active PAP servers/node */
  85. #define    NPAPSESSIONS    40    /* the number of active PAP sockets/node */
  86.  
  87. #define AT_PAP_HDR_SIZE    (DDP_X_HDR_SIZE + ATP_HDR_SIZE)
  88.  
  89. #define     ATP_DDP_HDR(c)    ((at_ddp_t *)(c))
  90.  
  91. #define PAP_SOCKERR     "Unable to open PAP socket"
  92. #define P_NOEXIST     "Printer not found"
  93. #define P_UNREACH    "Unable to establish PAP session"
  94.  
  95. struct pap_state {
  96.     u_char pap_inuse;    /* true if this one is allocated */
  97.     u_char pap_tickle;     /* true if we are tickling the other end */
  98.     u_char pap_request;     /* bitmap from a received request */
  99.     u_char pap_eof;        /* true if we have received an EOF */
  100.     u_char pap_eof_sent;     /* true if we have sent an EOF */
  101.     u_char pap_sent;     /* true if we have sent anything (and
  102.                    therefore may have to send an eof
  103.                    on close) */
  104.     u_char pap_error;     /* error message from read request */
  105.     u_char pap_timer;     /* a timeout is pending */
  106.     u_char pap_closing;     /* the link is closing and/or closed */
  107.     u_char pap_request_count; /* number of outstanding requests */
  108.     u_char pap_req_timer;     /* the request timer is running */
  109.     u_char pap_ending;     /* we are waiting for atp to flush */
  110.     u_char pap_read_ignore; /* we are in 'read with ignore' mode */
  111.  
  112.     u_char pap_req_socket;
  113.     at_inet_t pap_to;
  114.     int pap_flow;
  115.  
  116.     u_short pap_send_count; /* the sequence number to send on the
  117.                    next send data request */
  118.     u_short pap_rcv_count;     /* the sequence number expected to
  119.                    receive on the next request */
  120.     u_short pap_tid;     /* ATP transaction ID for responses */
  121.     u_char  pap_connID;     /* our connection ID */
  122.  
  123.      int pap_ignore_id;    /* the transaction ID for read ignore */
  124.     int pap_tickle_id;    /* the transaction ID for tickles */
  125. };
  126.  
  127. #endif /* _NETAT_PAP_H_ */
  128.