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