|
|
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: * LAP Frame Information
27: */
28:
29: typedef struct {
30: u_char lap_dest;
31: u_char lap_src;
32: u_char lap_type;
33: u_char lap_data[1];
34: } LAP_FRAME;
35:
36: #define LAP_FRAME_LEN 3
37:
38: #define MAX_FRAME_SIZE 603
39:
40: #define LAP_DDP 0x01
41: #define LAP_DDPX 0x02
42:
43: typedef struct {
44: ua_short ddp_length; /* length of ddp fields */
45: u_char ddp_dest; /* destination socket */
46: u_char ddp_source; /* source socket */
47: u_char ddp_type; /* protocol type */
48: u_char ddp_data[1]; /* data field */
49: } DDP_FRAME;
50:
51: #define DDPS_FRAME_LEN 5
52:
53: typedef struct {
54: ua_short ddpx_length; /* length and hop count */
55: ua_short ddpx_cksm; /* checksum */
56: at_net ddpx_dnet; /* destination network number */
57: at_net ddpx_snet; /* source network number */
58: u_char ddpx_dnode; /* destination node */
59: u_char ddpx_snode; /* source node */
60: u_char ddpx_dest; /* destination socket */
61: u_char ddpx_source; /* source socket */
62: u_char ddpx_type; /* protocol type */
63: u_char ddpx_data[1]; /* data field */
64: } DDPX_FRAME;
65:
66: #define DDPL_FRAME_LEN 13
67:
68: #define DDP_RTMP 0x01
69: #define DDP_NBP 0x02
70: #define DDP_ATP 0x03
71: #define DDP_ECHO 0x04
72: #define DDP_RTMP_REQ 0x05
73: #define DDP_ZIP 0x06
74: #define DDP_ADSP 0x07
75:
76: #define RESPONDER_SOCKET 254
77:
78: #define ECHO_REQUEST 1
79: #define ECHO_RESPONSE 2
80:
81: typedef struct {
82: u_char nbp_ctrl_cnt; /* control and tuple count */
83: u_char nbp_id; /* enquiry/reply id */
84: u_char nbp_data[1]; /* tuple space */
85: } NBP_FRAME;
86:
87: #define NBP_TYPE_MASK 0xf0 /* mask of ctrl_cnt field */
88: #define NBP_CNT_MASK 0x0f /* mask for number of tuples */
89: #define NBP_BROADCAST 0x10 /* internet lookup */
90: #define NBP_LOOKUP 0x20 /* lookup request */
91: #define NBP_REPLY 0x30 /* response to lookup */
92:
93: typedef struct {
94: u_char atp_control; /* control field */
95: u_char atp_map; /* bitmap for acknowlegement */
96: ua_short atp_tid; /* transaction id */
97: union
98: {
99: u_char b[4]; /* user u_chars */
100: ua_long dw;
101: } atp_ub;
102: u_char atp_data[1]; /* data field */
103: } ATP_FRAME;
104:
105: #define ATP_FRAME_LEN 8
106:
107: #define ATP_TREQ 0x40 /* transaction request */
108: #define ATP_TRESP 0x80 /* response packet */
109: #define ATP_TREL 0xc0 /* transaction release packet */
110: #define ATP_XO 0x20 /* exactly once flag */
111: #define ATP_EOM 0x10 /* end of message flag */
112: #define ATP_STS 0x08 /* send transaction status */
113:
114: #define ATP_TYPE(x) ((x)->atp_control & 0xc0)
115:
116: typedef struct {
117: at_net net1;
118: u_char zonename[33];
119: } ZIP_1;
120:
121: typedef struct {
122: at_net net1;
123: at_net net2;
124: u_char zonename[33];
125: } ZIP_2;
126:
127: typedef struct {
128: u_char zip_command; /* zip command number */
129: u_char flags; /* Bit-mapped */
130: union
131: {
132: ZIP_1 o; /* Packet has one net number */
133: ZIP_2 r; /* Packet has cable range */
134: } u;
135: } ZIP_FRAME;
136:
137: /* Flags in the ZIP GetNetInfo & NetInfoReply buffer */
138:
139: #define ZIPF_BROADCAST 0x80
140: #define ZIPF_ZONE_INVALID 0x80
141: #define ZIPF_USE_BROADCAST 0x40
142: #define ZIPF_ONE_ZONE 0x20
143:
144: #define ZIP_QUERY 1 /* ZIP Commands in zip frames */
145: #define ZIP_REPLY 2
146: #define ZIP_TAKEDOWN 3
147: #define ZIP_BRINGUP 4
148: #define ZIP_GETNETINFO 5
149: #define ZIP_NETINFOREPLY 6
150: #define ZIP_NOTIFY 7
151:
152: #define ZIP_GETMYZONE 7 /* ZIP commands in atp user u_chars[0] */
153: #define ZIP_GETZONELIST 8
154: #define ZIP_GETLOCALZONES 9
155: #define ZIP_GETYOURZONE 10
156:
157: /*
158: * Response to Reponder Request type #1.
159: *
160: * The first 4 u_chars are actually the 4 ATP user u_chars
161: * Following this structure are 4 PASCAL strings:
162: * System Version String. (max 127)
163: * Finder Version String. (max 127)
164: * LaserWriter Version String. (max 127)
165: * AppleShare Version String. (max 24)
166: */
167: typedef struct
168: {
169: u_char UserU_Chars[2];
170: ua_short ResponderVersion;
171: ua_short AtalkVersion;
172: u_char ROMVersion;
173: u_char SystemType;
174: u_char SystemClass;
175: u_char HdwrConfig;
176: ua_short ROM85Version;
177: u_char ResponderLevel;
178: u_char ResponderLink;
179: u_char data[1];
180: } RESPONDER_FRAME;
181:
182:
183: /*
184: * ADSP Frame
185: */
186: typedef struct {
187: ua_short CID;
188: ua_long pktFirstByteSeq;
189: ua_long pktNextRecvSeq;
190: ua_short pktRecvWdw;
191: u_char descriptor; /* Bit-Mapped */
192: u_char data[1];
193: } ADSP_FRAME, *ADSP_FRAMEPtr;
194:
195: #define ADSP_FRAME_LEN 13
196:
197: #define ADSP_CONTROL_BIT 0x80
198: #define ADSP_ACK_REQ_BIT 0x40
199: #define ADSP_EOM_BIT 0x20
200: #define ADSP_ATTENTION_BIT 0x10
201: #define ADSP_CONTROL_MASK 0x0F
202:
203: #define ADSP_CTL_PROBE 0x00 /* Probe or acknowledgement */
204: #define ADSP_CTL_OREQ 0x01 /* Open Connection Request */
205: #define ADSP_CTL_OACK 0x02 /* Open Request acknowledgment */
206: #define ADSP_CTL_OREQACK 0x03 /* Open Request and acknowledgement */
207: #define ADSP_CTL_ODENY 0x04 /* Open Request denial */
208: #define ADSP_CTL_CLOSE 0x05 /* Close connection advice */
209: #define ADSP_CTL_FRESET 0x06 /* Forward Reset */
210: #define ADSP_CTL_FRESET_ACK 0x07 /* Forward Reset Acknowledgement */
211: #define ADSP_CTL_RETRANSMIT 0x08 /* Retransmit advice */
212:
213: typedef struct {
214: ua_short version; /* Must be in network byte order */
215: ua_short dstCID; /* */
216: ua_long pktAttnRecvSeq; /* Must be in network byte order */
217: } ADSP_OPEN_DATA, *ADSP_OPEN_DATAPtr;
218:
219: #define ADSP_OPEN_FRAME_LEN 8
220:
221: #define ADSP_MAX_DATA_LEN 572
222:
223: /* END FRAMES.H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.