2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
4 * @APPLE_LICENSE_HEADER_START@
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.
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
20 * @APPLE_LICENSE_HEADER_END@
26 * (C) COPYRIGHT Apple Computer, Inc. 1992-1996
33 #include <sys/appleapiopts.h>
35 #define ASP_Version 0x100
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
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)
64 /* The following ASP error codes are defined in Inside AppleTalk: */
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
78 /* These ASP error codes were apparently defined later: */
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
90 at_inet_t SLSEntityIdentifier
;
96 at_inet_t SLSEntityIdentifier
;
98 unsigned short TickleInterval
;
99 unsigned short SessionTimer
;
105 unsigned short ReqRefNum
;
106 unsigned short Filler
;
107 } asp_cmdreply_req_t
;
112 } asp_cmdreply_ind_t
;
116 unsigned short ReqRefNum
;
117 unsigned char ReqType
;
118 unsigned char Filler
;
121 union asp_primitives
{
123 asp_cmdreply_ind_t CmdReplyInd
;
124 asp_cmdreply_req_t CmdReplyReq
;
125 asp_command_ind_t CommandInd
;
129 #ifdef __APPLE_API_PRIVATE
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
141 #define ASPSTATE_WaitingForCfgAck 9
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];
160 unsigned char param1
;
161 unsigned short param2
;
165 * ASP session control block
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 */
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
;
189 unsigned short wrt_seq_num
;
190 unsigned char get_wait
;
191 unsigned char ioc_wait
;
192 at_retry_t cmd_retry
;
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 */
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];
214 atevent_t delay_event
;
217 #endif /* __APPLE_API_PRIVATE */
219 #endif /* _NETAT_ASP_H_ */