This is abasp.h in view mode; [Download] [Up]
/* * $Author: cck $ $Date: 88/05/13 09:30:00 $ * $Header: abasp.h,v 1.6 88/05/13 09:30:00 cck Rel $ * $Revision: 1.6 $ */ /* * abasp.c - Appletalk Session Protocol * * AppleTalk package for UNIX (4.2 BSD). * * Copyright (c) 1986, 1987 by The Trustees of Columbia University in the * City of New York. * * Edit History: * * July 28, 1986 CCKim Created * Aug 4, 1986 CCKim Verified: level 0 */ /* definition of ATP User Bytes */ typedef union { struct { /* used by Tickle, CloseSess, GetStat, etc. */ byte b1; byte b2; word data; } std; dword CmdResult; /* 4 bytes, for vax, must use ntohl, htonl */ } ASPUserBytes; /* Definition of ASP Server Listener Socket block */ typedef struct { int active; char *ssb; int ssbl; AddrBlock addr; ABusRecord abr; /* for getrequest */ } ASPSSkt; #define NUMSASP 1 /* Definition of ASP Station Socket block */ typedef struct { int active; /* true if in use */ int state; /* state of connection */ int type; /* server/client */ int SLSRefNum; /* which SLS owns us */ int SessRefNum; /* our session refnum - really */ /* redundant info right now */ AddrBlock addr; /* complete address of remote ss */ ABusRecord tickle_abr; /* for tickle */ int tickling; /* mark whether we are tickling */ ABusRecord rabr; /* request abr */ word reqdata; /* for writedata data */ int ss; /* service socket */ byte SessID; /* session id (per sls) */ int (*attnroutine)(); /* attention callback */ int next_sequence; /* for write/command */ QElemPtr wqueue; /* queue of write's */ int *comp; /* pointer to completion var */ int (*tickle_timeout_user)(); /* for tickle timeout */ int ttu_arg; /* an argument to call with */ #ifdef ASPPID int pid; /* for spfork */ #endif } ASPSkt; #define NUMASP 5 /* Definitions for possible asp connection states */ #define SP_INACTIVE 0 #define SP_STARTING 1 #define SP_STARTED 2 #define SP_HALFCLOSED 3 /* ASP Connection types */ #define SP_SERVER 0 #define SP_CLIENT 1 /* Internal ASP queue elements - used to "remember" things */ typedef struct ASPQE { QElem link; int type; /* what was the command type */ int SessRefNum; /* traceback */ word seqno; struct ABusRecord abr; /* request abr */ BDS bds[atpMaxNum]; word availableBufferSize; /* data for wrtcontinue packet */ struct ASPQE **ReqRefNum; int *SPReqType; int *ActRcvdReqLen; int *ActLenRcvd; int *comp; int *ActRcvdReplyLen; dword *CmdResult; int *ActRcvdStatusLen; char *WriteData; int WriteDataSize; int *ActLenWritten; } ASPQE; /* asp queue element */ /* QUeue element types */ #define tSPGetRequest 0 #define tSPCmdReply 1 #define tSPWrtContinue 2 #define tSPWrtReply 3 #define tSPAttention 4 #define tSP_Special_DROP 5 #define tSPGetStat 6 #define tSPOpenSess 7 #define tSPCommand 8 #define tSPWrite 9 #define tSPWrite2 10 #define tSPClose 11 /* Defines write v.s. std. queue element */ #define ASPAQE 0 #define ASPAWE 1 #define create_aspaqe() create_aq(ASPAQE, (ASPSkt *)0) #define create_aspawe(as) create_aq(ASPAWE, (ASPSkt *)(as)) #define delete_aspaqe(item) delete_aq((ASPQE *)(item),ASPAQE,(ASPSkt *)0) #define delete_aspawe(item,as) delete_aq((ASPQE *)(item),ASPAWE,(ASPSkt *)(as)) #define get_aspaqe() get_aq(ASPAQE, (ASPSkt *)0) #define get_aspawe(as) get_aq(ASPAWE, (ASPSkt *)(as)) /* should go into cap_conf.h? */ #define ASPTICKLETIMEOUT 30*4 /* defined by Spec (30 seconds) */ #define ASPCONNECTIONTIMEOUT 120*4 /* defined by Spec ( 2 minutes) */ #define ASPGETSTATTIMEOUT 4*2 /* arb. */ #define ASPOPENSESSTIMEOUT 4*2 /* arb. */ #define ASPCLOSESESSIONTIMEOUT 4*2 /* abr. */ #define ASPCOMMANDTIMEOUT 4*2 /* abr. */ #define ASPWRITETIMEOUT 4*2 /* abr. */ #define ASPATTENTIONTIMEOUT 4*2 /* arb. */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.