]> git.saurik.com Git - apple/xnu.git/blob - bsd/netat/asp.h
xnu-344.34.tar.gz
[apple/xnu.git] / bsd / netat / asp.h
1 /*
2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * The contents of this file constitute Original Code as defined in and
7 * are subject to the Apple Public Source License Version 1.1 (the
8 * "License"). You may not use this file except in compliance with the
9 * License. Please obtain a copy of the License at
10 * http://www.apple.com/publicsource and read it before using this file.
11 *
12 * This Original Code and all software distributed under the License are
13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17 * License for the specific language governing rights and limitations
18 * under the License.
19 *
20 * @APPLE_LICENSE_HEADER_END@
21 */
22 /*
23 *
24 * ORIGINS: 82
25 *
26 * (C) COPYRIGHT Apple Computer, Inc. 1992-1996
27 * All Rights Reserved
28 *
29 */
30
31 #ifndef _NETAT_ASP_H_
32 #define _NETAT_ASP_H_
33 #include <sys/appleapiopts.h>
34
35 #define ASP_Version 0x100
36
37 #define ASPFUNC_CloseSess 1
38 #define ASPFUNC_Command 2
39 #define ASPFUNC_GetStatus 3
40 #define ASPFUNC_OpenSess 4
41 #define ASPFUNC_Tickle 5
42 #define ASPFUNC_Write 6
43 #define ASPFUNC_WriteContinue 7
44 #define ASPFUNC_Attention 8
45 #define ASPFUNC_CmdReply 9
46
47 #define ASPIOC 210 /* AT_MID_ASP */
48 #define ASPIOC_ClientBind ((ASPIOC<<8) | 1)
49 #define ASPIOC_CloseSession ((ASPIOC<<8) | 2)
50 #define ASPIOC_GetLocEntity ((ASPIOC<<8) | 3)
51 #define ASPIOC_GetRemEntity ((ASPIOC<<8) | 4)
52 #define ASPIOC_GetSession ((ASPIOC<<8) | 5)
53 #define ASPIOC_GetStatus ((ASPIOC<<8) | 6)
54 #define ASPIOC_ListenerBind ((ASPIOC<<8) | 7)
55 #define ASPIOC_OpenSession ((ASPIOC<<8) | 8)
56 #define ASPIOC_StatusBlock ((ASPIOC<<8) | 9)
57 #define ASPIOC_SetPid ((ASPIOC<<8) |10)
58 #define ASPIOC_GetSessId ((ASPIOC<<8) |11)
59 #define ASPIOC_EnableSelect ((ASPIOC<<8) |12) /* not needed */
60 #define ASPIOC_Look ((ASPIOC<<8) |13)
61
62 #define MOREDATA 1
63
64 /* The following ASP error codes are defined in Inside AppleTalk: */
65
66 #define ASPERR_NoError 0
67 #define ASPERR_BadVersNum -1066
68 #define ASPERR_BufTooSmall -1067
69 #define ASPERR_NoMoreSessions -1068
70 #define ASPERR_NoServers -1069
71 #define ASPERR_ParamErr -1070
72 #define ASPERR_ServerBusy -1071
73 #define ASPERR_SessClosed -1072
74 #define ASPERR_SizeErr -1073
75 #define ASPERR_TooManyClients -1074
76 #define ASPERR_NoAck -1075
77
78 /* These ASP error codes were apparently defined later: */
79
80 #define ASPERR_NoSuchDevice -1058
81 #define ASPERR_BindErr -1059
82 #define ASPERR_CmdReply -1060
83 #define ASPERR_CmdRequest -1061
84 #define ASPERR_SystemErr -1062
85 #define ASPERR_ProtoErr -1063
86 #define ASPERR_NoSuchEntity -1064
87 #define ASPERR_RegisterErr -1065
88
89 typedef struct {
90 at_inet_t SLSEntityIdentifier;
91 at_retry_t Retry;
92 int StatusBufferSize;
93 } asp_status_cmd_t;
94
95 typedef struct {
96 at_inet_t SLSEntityIdentifier;
97 at_retry_t Retry;
98 unsigned short TickleInterval;
99 unsigned short SessionTimer;
100 } asp_open_cmd_t;
101
102 typedef struct {
103 int Primitive;
104 int CmdResult;
105 unsigned short ReqRefNum;
106 unsigned short Filler;
107 } asp_cmdreply_req_t;
108
109 typedef struct {
110 int Primitive;
111 int CmdResult;
112 } asp_cmdreply_ind_t;
113
114 typedef struct {
115 int Primitive;
116 unsigned short ReqRefNum;
117 unsigned char ReqType;
118 unsigned char Filler;
119 } asp_command_ind_t;
120
121 union asp_primitives {
122 int Primitive;
123 asp_cmdreply_ind_t CmdReplyInd;
124 asp_cmdreply_req_t CmdReplyReq;
125 asp_command_ind_t CommandInd;
126 };
127
128 #ifdef KERNEL
129 #ifdef __APPLE_API_PRIVATE
130
131 #define ASPSTATE_Close 0
132 #define ASPSTATE_Idle 1
133 #define ASPSTATE_WaitingForGetStatusRsp 2
134 #define ASPSTATE_WaitingForOpenSessRsp 3
135 #define ASPSTATE_WaitingForCommandRsp 4
136 #define ASPSTATE_WaitingForWriteContinue 5
137 #define ASPSTATE_WaitingForWriteRsp 6
138 #define ASPSTATE_WaitingForWriteContinueRsp 7
139 #define ASPSTATE_WaitingForCloseSessRsp 8
140 #ifdef NOT_USED
141 #define ASPSTATE_WaitingForCfgAck 9
142 #endif
143
144 /*
145 * ATP state block
146 */
147 typedef struct {
148 gref_t *atp_gref; /* gref must be the first entry */
149 int pid; /* process id, must be the second entry */
150 gbuf_t *atp_msgq; /* data msg, must be the third entry */
151 unsigned char dflag; /* structure flag, must be the fourth entry */
152 unsigned char filler[3];
153 } atp_state_t;
154
155 /*
156 * ASP word
157 */
158 typedef struct {
159 unsigned char func;
160 unsigned char param1;
161 unsigned short param2;
162 } asp_word_t;
163
164 /*
165 * ASP session control block
166 */
167 typedef struct asp_scb {
168 gref_t *gref; /* read queue pointer, must be the first entry */
169 int pid; /* process id, must be the second entry */
170 atp_state_t *atp_state; /* atp state info, must be the third entry */
171 unsigned char dflag; /* structure flag, must be the fourth entry */
172 unsigned char state;
173 unsigned char sess_id;
174 unsigned char tmo_delta;
175 unsigned char tmo_cnt;
176 unsigned char rem_socket;
177 unsigned char rem_node;
178 unsigned char magic_num;
179 unsigned short snd_seq_num;
180 unsigned short rcv_seq_num;
181 unsigned short filler;
182 unsigned short tickle_tid;
183 unsigned short tickle_interval;
184 unsigned short session_timer;
185 unsigned short attn_tid;
186 unsigned char attn_flag;
187 unsigned char req_flag;
188 gbuf_t *req_msgq;
189 unsigned short wrt_seq_num;
190 unsigned char get_wait;
191 unsigned char ioc_wait;
192 at_retry_t cmd_retry;
193 at_inet_t loc_addr;
194 at_inet_t rem_addr;
195 at_inet_t svc_addr;
196 gbuf_t *sess_ioc;
197 gbuf_t *stat_msg;
198 void (*tmo_func)();
199 struct asp_scb *next_tmo;
200 struct asp_scb *prev_tmo;
201 struct asp_scb *sess_scb;
202 struct asp_scb *next_scb;
203 struct asp_scb *prev_scb;
204 unsigned char sel_on; /* not needed */
205 unsigned char user;
206 unsigned char rcv_cnt;
207 unsigned char snd_stop;
208 unsigned char reply_socket;
209 unsigned char if_num;
210 unsigned char pad[2];
211 atlock_t lock;
212 atlock_t delay_lock;
213 atevent_t event;
214 atevent_t delay_event;
215 } asp_scb_t;
216
217 #endif /* __APPLE_API_PRIVATE */
218 #endif /* KERNEL */
219 #endif /* _NETAT_ASP_H_ */