|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights ! 7: * Reserved. This file contains Original Code and/or Modifications of ! 8: * Original Code as defined in and that are subject to the Apple Public ! 9: * Source License Version 1.1 (the "License"). You may not use this file ! 10: * except in compliance with the License. Please obtain a copy of the ! 11: * License at http://www.apple.com/publicsource and read it before using ! 12: * this file. ! 13: * ! 14: * The Original Code and all software distributed under the License are ! 15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 19: * License for the specific language governing rights and limitations ! 20: * under the License. ! 21: * ! 22: * @APPLE_LICENSE_HEADER_END@ ! 23: */ ! 24: ! 25: /* ! 26: * ! 27: * ORIGINS: 82 ! 28: * ! 29: * APPLE CONFIDENTIAL ! 30: * (C) COPYRIGHT Apple Computer, Inc. 1992-1996 ! 31: * All Rights Reserved ! 32: * ! 33: */ ! 34: ! 35: /* Definitions for ATP protocol and streams module, per ! 36: * AppleTalk Transaction Protocol documentation from ! 37: * `Inside AppleTalk', July 14, 1986. ! 38: */ ! 39: ! 40: #ifndef UIOSEG_USER ! 41: # include <sys/uio.h> ! 42: #endif ! 43: ! 44: #define ATP_ATP_HDR(c) ((at_atp_t *)(&((at_ddp_t *)(c))->data[0])) ! 45: ! 46: #define TOTAL_ATP_HDR_SIZE (ATP_HDR_SIZE+DDP_X_HDR_SIZE) ! 47: #define ATP_CLEAR_CONTROL(c) (*(char *)(c) = 0) ! 48: ! 49: /* ATP ioctl interface */ ! 50: ! 51: /* Structure for the atp_set_default call */ ! 52: ! 53: #define ATP_INFINITE_RETRIES 0xffffffff /* means retry forever ! 54: * in the def_retries field ! 55: */ ! 56: ! 57: struct atp_set_default { ! 58: u_int def_retries; /* number of retries for a request */ ! 59: u_int def_rate; /* retry rate (in seconds/100) NB: the ! 60: * system may not be able to resolve ! 61: * delays of 100th of a second but will ! 62: * instead make a 'best effort' ! 63: */ ! 64: struct atpBDS *def_bdsp; /* BDS structure associated with this req */ ! 65: u_int def_BDSlen; /* size of BDS structure */ ! 66: }; ! 67: ! 68: ! 69: /* Return header from requests */ ! 70: ! 71: struct atp_result { ! 72: u_short count; /* the number of packets */ ! 73: u_short hdr; /* offset to header in buffer */ ! 74: u_short offset[8]; /* offset to the Nth packet in the buffer */ ! 75: u_short len[8]; /* length of the Nth packet */ ! 76: }; ! 77: ! 78: struct atpBDS { ! 79: ua_short bdsBuffSz; ! 80: ua_long bdsBuffAddr; ! 81: ua_short bdsDataSz; ! 82: unsigned char bdsUserData[4]; ! 83: }; ! 84: ! 85: ! 86: typedef struct { ! 87: u_short at_atpreq_type; ! 88: at_net at_atpreq_to_net; ! 89: at_node at_atpreq_to_node; ! 90: at_socket at_atpreq_to_socket; ! 91: u_char at_atpreq_treq_user_bytes[4]; ! 92: u_char *at_atpreq_treq_data; ! 93: u_short at_atpreq_treq_length; ! 94: u_char at_atpreq_treq_bitmap; ! 95: u_char at_atpreq_xo; ! 96: u_char at_atpreq_xo_relt; ! 97: u_short at_atpreq_retry_timeout; ! 98: u_short at_atpreq_maximum_retries; ! 99: u_char at_atpreq_tresp_user_bytes[ATP_TRESP_MAX][4]; ! 100: u_char *at_atpreq_tresp_data[ATP_TRESP_MAX]; ! 101: u_short at_atpreq_tresp_lengths[ATP_TRESP_MAX]; ! 102: u_long at_atpreq_debug[4]; ! 103: u_short at_atpreq_tid; ! 104: u_char at_atpreq_tresp_bitmap; ! 105: u_char at_atpreq_tresp_eom_seqno; ! 106: u_char at_atpreq_got_trel; ! 107: } at_atpreq; ! 108: ! 109: ! 110: /* The ATP module ioctl commands */ ! 111: ! 112: #define AT_ATP_CANCEL_REQUEST (('|'<<8)|1) ! 113: #define AT_ATP_ISSUE_REQUEST (('|'<<8)|2) ! 114: #define AT_ATP_ISSUE_REQUEST_DEF (('|'<<8)|3) ! 115: #define AT_ATP_ISSUE_REQUEST_DEF_NOTE (('|'<<8)|4) ! 116: #define AT_ATP_ISSUE_REQUEST_NOTE (('|'<<8)|5) ! 117: #define AT_ATP_GET_POLL (('|'<<8)|6) ! 118: #define AT_ATP_RELEASE_RESPONSE (('|'<<8)|7) ! 119: #define AT_ATP_REQUEST_COMPLETE (('|'<<8)|8) ! 120: #define AT_ATP_SEND_FULL_RESPONSE (('|'<<8)|9) ! 121: #define AT_ATP_BIND_REQ (('|'<<8)|10) ! 122: #define AT_ATP_GET_CHANID (('|'<<8)|11) ! 123: #define AT_ATP_PEEK (('|'<<8)|12) ! 124: ! 125: /* These macros don't really depend here, but since they're used only by the ! 126: * old ATP and old PAP, they're put here. Unisoft PAP includes this file. ! 127: */ ! 128: #define R16(x) UAS_VALUE(x) ! 129: #define W16(x,v) UAS_ASSIGN(x, v) ! 130: #define C16(x,v) UAS_UAS(x, v) ! 131: ! 132: ! 133: /* ! 134: * these are the dispatch codes for ! 135: * the new atp_control system call ! 136: */ ! 137: #define ATP_SENDREQUEST 0 ! 138: #define ATP_GETRESPONSE 1 ! 139: #define ATP_SENDRESPONSE 2 ! 140: #define ATP_GETREQUEST 3
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.