/* * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. * * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. The rights granted to you under the License * may not be used to create, or enable the creation or redistribution of, * unlawful or unlicensed copies of an Apple operating system, or to * circumvent, violate, or enable the circumvention or violation of, any * terms of an Apple operating system software license agreement. * * Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this file. * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. * * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ */ /* * * ORIGINS: 82 * * (C) COPYRIGHT Apple Computer, Inc. 1992-1996 * All Rights Reserved * */ #ifndef _NETAT_ASP_H_ #define _NETAT_ASP_H_ #include #ifdef __APPLE_API_OBSOLETE #define ASP_Version 0x100 #define ASPFUNC_CloseSess 1 #define ASPFUNC_Command 2 #define ASPFUNC_GetStatus 3 #define ASPFUNC_OpenSess 4 #define ASPFUNC_Tickle 5 #define ASPFUNC_Write 6 #define ASPFUNC_WriteContinue 7 #define ASPFUNC_Attention 8 #define ASPFUNC_CmdReply 9 #define ASPIOC 210 /* AT_MID_ASP */ #define ASPIOC_ClientBind ((ASPIOC<<8) | 1) #define ASPIOC_CloseSession ((ASPIOC<<8) | 2) #define ASPIOC_GetLocEntity ((ASPIOC<<8) | 3) #define ASPIOC_GetRemEntity ((ASPIOC<<8) | 4) #define ASPIOC_GetSession ((ASPIOC<<8) | 5) #define ASPIOC_GetStatus ((ASPIOC<<8) | 6) #define ASPIOC_ListenerBind ((ASPIOC<<8) | 7) #define ASPIOC_OpenSession ((ASPIOC<<8) | 8) #define ASPIOC_StatusBlock ((ASPIOC<<8) | 9) #define ASPIOC_SetPid ((ASPIOC<<8) |10) #define ASPIOC_GetSessId ((ASPIOC<<8) |11) #define ASPIOC_EnableSelect ((ASPIOC<<8) |12) /* not needed */ #define ASPIOC_Look ((ASPIOC<<8) |13) #define MOREDATA 1 /* The following ASP error codes are defined in Inside AppleTalk: */ #define ASPERR_NoError 0 #define ASPERR_BadVersNum -1066 #define ASPERR_BufTooSmall -1067 #define ASPERR_NoMoreSessions -1068 #define ASPERR_NoServers -1069 #define ASPERR_ParamErr -1070 #define ASPERR_ServerBusy -1071 #define ASPERR_SessClosed -1072 #define ASPERR_SizeErr -1073 #define ASPERR_TooManyClients -1074 #define ASPERR_NoAck -1075 /* These ASP error codes were apparently defined later: */ #define ASPERR_NoSuchDevice -1058 #define ASPERR_BindErr -1059 #define ASPERR_CmdReply -1060 #define ASPERR_CmdRequest -1061 #define ASPERR_SystemErr -1062 #define ASPERR_ProtoErr -1063 #define ASPERR_NoSuchEntity -1064 #define ASPERR_RegisterErr -1065 typedef struct { at_inet_t SLSEntityIdentifier; at_retry_t Retry; int StatusBufferSize; } asp_status_cmd_t; typedef struct { at_inet_t SLSEntityIdentifier; at_retry_t Retry; unsigned short TickleInterval; unsigned short SessionTimer; } asp_open_cmd_t; typedef struct { int Primitive; int CmdResult; unsigned short ReqRefNum; unsigned short Filler; } asp_cmdreply_req_t; typedef struct { int Primitive; int CmdResult; } asp_cmdreply_ind_t; typedef struct { int Primitive; unsigned short ReqRefNum; unsigned char ReqType; unsigned char Filler; } asp_command_ind_t; union asp_primitives { int Primitive; asp_cmdreply_ind_t CmdReplyInd; asp_cmdreply_req_t CmdReplyReq; asp_command_ind_t CommandInd; }; #ifdef KERNEL_PRIVATE #define ASPSTATE_Close 0 #define ASPSTATE_Idle 1 #define ASPSTATE_WaitingForGetStatusRsp 2 #define ASPSTATE_WaitingForOpenSessRsp 3 #define ASPSTATE_WaitingForCommandRsp 4 #define ASPSTATE_WaitingForWriteContinue 5 #define ASPSTATE_WaitingForWriteRsp 6 #define ASPSTATE_WaitingForWriteContinueRsp 7 #define ASPSTATE_WaitingForCloseSessRsp 8 #ifdef NOT_USED #define ASPSTATE_WaitingForCfgAck 9 #endif /* * ATP state block */ typedef struct { gref_t *atp_gref; /* gref must be the first entry */ int pid; /* process id, must be the second entry */ gbuf_t *atp_msgq; /* data msg, must be the third entry */ unsigned char dflag; /* structure flag, must be the fourth entry */ unsigned char filler[3]; } atp_state_t; /* * ASP word */ typedef struct { unsigned char func; unsigned char param1; unsigned short param2; } asp_word_t; struct asp_scb; typedef void (*asp_tmo_func)(struct asp_scb *); /* * ASP session control block */ typedef struct asp_scb { gref_t *gref; /* read queue pointer, must be the first entry */ int pid; /* process id, must be the second entry */ atp_state_t *atp_state; /* atp state info, must be the third entry */ unsigned char dflag; /* structure flag, must be the fourth entry */ unsigned char state; unsigned char sess_id; unsigned char tmo_delta; unsigned char tmo_cnt; unsigned char rem_socket; unsigned char rem_node; unsigned char magic_num; unsigned short snd_seq_num; unsigned short rcv_seq_num; unsigned short filler; unsigned short tickle_tid; unsigned short tickle_interval; unsigned short session_timer; unsigned short attn_tid; unsigned char attn_flag; unsigned char req_flag; gbuf_t *req_msgq; unsigned short wrt_seq_num; unsigned char get_wait; unsigned char ioc_wait; at_retry_t cmd_retry; at_inet_t loc_addr; at_inet_t rem_addr; at_inet_t svc_addr; gbuf_t *sess_ioc; gbuf_t *stat_msg; asp_tmo_func tmo_func; struct asp_scb *next_tmo; struct asp_scb *prev_tmo; struct asp_scb *sess_scb; struct asp_scb *next_scb; struct asp_scb *prev_scb; unsigned char sel_on; /* not needed */ unsigned char user; unsigned char rcv_cnt; unsigned char snd_stop; unsigned char reply_socket; unsigned char if_num; unsigned char pad[2]; atlock_t lock; atlock_t delay_lock; atevent_t event; atevent_t delay_event; } asp_scb_t; int ASPgetmsg(gref_t *, strbuf_t *, strbuf_t *, gbuf_t **, int *, int *); int ASPputmsg(gref_t *, strbuf_t *, strbuf_t *, gbuf_t *, int , int *); void asp_init(void); void asp_ack_reply(gref_t *, gbuf_t *); void asp_nak_reply(gref_t *, gbuf_t *); int asp_wput(gref_t *, gbuf_t *); void asp_clock(void *); void asp_clock_locked(void *); int asp_open(gref_t *); int asp_close(gref_t *); #endif /* KERNEL_PRIVATE */ #endif /* __APPLE_API_OBSOLETE */ #endif /* _NETAT_ASP_H_ */