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