|
|
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: ! 41: #ifndef __ATP__ ! 42: #define __ATP__ ! 43: ! 44: #ifndef UIOSEG_USER ! 45: # include <sys/uio.h> ! 46: #endif ! 47: ! 48: ! 49: /* DDP ATP protocol type */ ! 50: ! 51: #define ATP_DDP_TYPE 0x03 /* ATP packet type */ ! 52: ! 53: ! 54: /* ATP function codes */ ! 55: ! 56: #define ATP_CMD_TREQ 0x01 /* TRequest packet */ ! 57: #define ATP_CMD_TRESP 0x02 /* TResponse packet */ ! 58: #define ATP_CMD_TREL 0x03 /* TRelease packet */ ! 59: ! 60: ! 61: /* Miscellaneous definitions */ ! 62: ! 63: #define ATP_DEF_RETRIES 8 /* Default for maximum retry count */ ! 64: #define ATP_DEF_INTERVAL 2 /* Default for retry interval in seconds */ ! 65: ! 66: #define ATP_TRESP_MAX 8 /* Maximum number of Tresp pkts */ ! 67: ! 68: #define ATP_HDR_SIZE 8 /* Size of the ATP header */ ! 69: #define ATP_DATA_SIZE 578 /* Maximum size of the ATP data area */ ! 70: ! 71: /* Consts for asynch support */ ! 72: #define ATP_ASYNCH_REQ 1 ! 73: #define ATP_ASYNCH_RESP 2 ! 74: ! 75: /* Timer values for XO release timers */ ! 76: #define ATP_XO_DEF_REL_TIME 0 ! 77: #define ATP_XO_30SEC 0 ! 78: #define ATP_XO_1MIN 1 ! 79: #define ATP_XO_2MIN 2 ! 80: #define ATP_XO_4MIN 3 ! 81: #define ATP_XO_8MIN 4 ! 82: ! 83: typedef struct { ! 84: unsigned cmd : 2, ! 85: xo : 1, ! 86: eom : 1, ! 87: sts : 1, ! 88: xo_relt : 3; ! 89: u_char bitmap; ! 90: ua_short tid; ! 91: ua_long user_bytes; ! 92: u_char data[ATP_DATA_SIZE]; ! 93: } at_atp_t; ! 94: ! 95: ! 96: /* Response buffer structure for atp_sendreq() and atp_sendrsp() */ ! 97: ! 98: typedef struct at_resp { ! 99: u_char bitmap; /* Bitmap of responses */ ! 100: u_char filler[3]; /* Force 68K to RISC alignment */ ! 101: struct iovec resp[ATP_TRESP_MAX]; /* Buffer for response data */ ! 102: long userdata[ATP_TRESP_MAX]; /* Buffer for response user data */ ! 103: } at_resp_t; ! 104: ! 105: #endif /* __ATP__ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.