|
|
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.