|
|
1.1 ! root 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_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.