]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/netat/adsp_internal.h
xnu-2422.1.72.tar.gz
[apple/xnu.git] / bsd / netat / adsp_internal.h
diff --git a/bsd/netat/adsp_internal.h b/bsd/netat/adsp_internal.h
deleted file mode 100644 (file)
index a26ff49..0000000
+++ /dev/null
@@ -1,411 +0,0 @@
-/*
- * 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@
- */
-#ifndef _NETAT_ADSP_INTERNAL_H_
-#define _NETAT_ADSP_INTERNAL_H_
-
-#include <sys/types.h>
-
-#ifdef __APPLE_API_OBSOLETE
-#ifdef KERNEL_PRIVATE
-
-/* from h/adsp_portab.h */
-
-/* TypeDefs for the basic data bytes. */
-
-typedef unsigned char          byte, *bytePtr;
-
-#ifdef NOT_USED
-typedef char                   int8;
-typedef short                  int16;
-typedef int                    int32;
-#endif
-
-typedef unsigned char          boolean;
-
-typedef unsigned short         word;
-
-typedef unsigned int           dword;
-
-#define BYTE_AT(x)             (*((byte PTR)(x)))
-#define WORD_AT(x)             (*((word PTR)(x)))
-#define DWORD_AT(x)            (*((dword PTR)(x)))
-
-#define high(x)                        ((byte)((x) >> 8))
-#define low(x)                 ((byte)(x))
-#define hlword(h, l)           (((byte)(l)) | (((byte)(h)) << 8))
-
-
-/* 
- * On a Mac, there is no need to byte-swap data on the network, so 
- * these macros do nothing 
- */
-
-#define netw(x)                x
-#define netdw(x)       x
-
-typedef struct
-{
-  at_net           network;       /* network number */
-  byte           nodeid;        /* node number    */
-  byte           socket;        /* socket number  */
-} AddrBlk, *AddrBlkPtr;
-
-typedef union
-{
-   at_inet_t     a;
-} AddrUnion, *AddrUnionPtr;
-
-/* End Portab.h */
-
-/* from h/adsp_internal.h */
-
-#undef T_IDLE
-
-/*
-* Default Behavior for ADSP
-*/
-#define        ocIntervalDefault       6
-#define ocMaximumDefault       10
-#define probeIntervalDefault   180
-
-/*
-* MACROS for comparing 32-bit sequence numbers
-*/
-#define GT(x,y)  (((long)(x-y)) > (long) 0)
-#define LT(x,y)  (((long)(x-y)) < (long) 0)
-#define GTE(x,y) (((long)(x-y)) >= (long) 0)
-#define LTE(x,y) (((long)(x-y)) <= (long) 0)
-#define BETWEEN(x,y,z) (LTE(x,y) && LTE(y,z))
-
-/*
- * Use the kernel tick counter for SysTicks.
- */
-
-#define SysTicks()     lbolt
-
-/*
- * Timer element used for handling timings
- */
-typedef struct timerelem {
-    struct timerelem *link;
-    short timer;
-    char type;
-    unsigned onQ:1;            /* Bit-fields are faster than booleans */
-} TimerElem;
-
-typedef TimerElem *TimerElemPtr;
-
-/*
- * For AppleTalk Phase 2 event queue
- */
-typedef struct {
-    Ptr        qLink;
-    unsigned short qType;
-    ProcPtr callAddr;
-} LAPEventElem;
-
-typedef LAPEventElem *LAPEventElemPtr;
-
-/* 
- * The Event types we're passed when an AppleTalk transition occurs
- */
-#define AOpenTransition                0
-#define        ACloseTransition        2
-#define ANetworkTransition     5
-
-/*
- * The element we're passed when a NetworkTransaction event occurs
- */
-typedef struct TNetworkTransition {
-    Ptr        private;                /* pointer used internally by NetShare */
-    ProcPtr netValidProc;      /* pointer to the network valid procedure */
-} TNetworkTransition, *TPNetworkTransition;
-
-typedef long (*NetworkTransitionProcPtr)(TPNetworkTransition nettrans, 
-                                  unsigned long thenet);
-/*
- * This is the connection control block
- */
-typedef struct ccb {
-    /*---These fields may not change order or size-----------*/
-
-    struct ccb *ccbLink;       /* link to next ccb */
-    unsigned short state;      /* state of the connection end */
-    unsigned char userFlags;   /* flags for unsolicited connection events */
-    unsigned char localSocket; /* socket number of this connection end */
-    AddrUnion remoteAddress;   /* internet address of remote end */
-    unsigned short attnCode;   /* attention code received */
-    unsigned short attnSize;   /* size of received attention data */
-    unsigned char *attnPtr;    /* ptr to received attention data */
-    unsigned short recvQPending; /* # bytes in receive queue %%% */
-    /*------------------------------------------------------ */
-       
-    struct adspcmd *opb;       /* Outstanding open/close/remove/listens */
-    struct adspcmd *spb;       /* Outstanding Sends */
-    struct adspcmd *sapb;      /* Outstanding Send Attentions */
-    struct adspcmd *frpb;      /* Outstanding Forward Resets */
-    struct adspcmd *rpb;       /* Outstanding Read Requests */
-       
-    struct ccb *otccbLink;     /* link to next ccb */
-    int pid;           /* Process ID for CCB owner */
-
-    unsigned short remCID;     /* Remote Connection ID */
-    unsigned short locCID;     /* Local Connection ID */
-    int sendSeq;               /* Seq number of next char to send to remote */
-    int firstRtmtSeq;          /* oldest seq # in local send queue */
-    int sendWdwSeq;            /* Seq # of last char remote has bfr for */
-    int recvSeq;               /* Seq of # of next char expected from rmte */
-    int recvWdw;               /* # of bytes local end has buffer space for */
-    int attnSendSeq;           /* Seq # of next attn pkt to send to remote */
-    int attnRecvSeq;           /* Seq # of next packet local end expects */
-    int maxSendSeq;            /* Highest seq # we ever sent on connection */
-
-    /* These must be in the first 255 bytes of the CCB */
-    TimerElem ProbeTimer;      /* Timer element for probes (and open) */
-    TimerElem FlushTimer;      /* Timer element for flushing data */
-    TimerElem RetryTimer;      /* Timer element for retransmissions */
-    TimerElem AttnTimer;       /* Timer element for attention packets */
-    TimerElem ResetTimer;      /* Timer element for forward resets */
-       
-    short openInterval;                /* Interval between open connection packets */
-    short probeInterval;       /* Interval between probes */
-    short sendInterval;                /* Interval before automatic flush */
-    short rtmtInterval;                /* Rexmit interval (dynamically determined) */
-
-    short sendCtl;             /* Send control message bits */
-    short sendBlocking;                /* Flush unsent data if > than sendBlocking */
-    short openRetrys;          /* # of retrys for Connect & Accept */
-    short rbuflen;             /* Total size of receive buffer */
-    short sbuflen;             /* Total size of receive buffer */
-    char pad;
-    char lockFlag;
-    char badSeqMax;            /* retransmit advice send threshold */
-    char badSeqCnt;            /* # of of out-of-order packets received */
-    char useCheckSum;          /* true to use DDP checksums */
-    char openState;            /* Used for opening a connection (see below) */
-
-    gbuf_t *rbuf_mb;           /* message block for the recv buffer */
-    gbuf_t *crbuf_mb;
-    gbuf_t *sbuf_mb;           /* message block for the send buffer */
-    gbuf_t *csbuf_mb;
-    gbuf_t *attn_mb;           /* message block for the attention buffer */
-    gbuf_t *deferred_mb;       /* message block deferred for later processing */
-       
-#ifdef NOT_USED
-    char ioDone;               /* flag for when the adsp header is busy */
-#endif
-    char probeCntr;            /* # of probes we can miss (counts down) */
-    char pktSendMax;           /* Max # of packets to send without an ack */
-    char pktSendCnt;           /* # of packets sent so far */
-       
-    int sendStamp;             /* Time of last ackRequest */
-    int timerSeq;              /* Seq # of char corresponding to above time stamp */
-    short roundTrip;           /* Average Round-Trip time (in 6ths of a second) */
-    short deviation;           /* deviation from roundTrip time */
-    
-    unsigned sData:1;          /* There's data in the send queue */
-    unsigned waitingAck:1;     /* We're waiting for an ack packet */
-    unsigned rData:1;          /* There's data in the receive queue */
-    unsigned resentData:1;     /* True when we resend data due to timeout */
-    unsigned sendDataAck:1;    /* True if he requested an ack */
-    unsigned sendAttnAck:1;    /* Must send attn acknowlege */
-    unsigned sendAttnData:1;   /* Must send attn data */
-    unsigned callSend:1;       /* Must call CheckSend() */
-    unsigned rbufFull:1;       /* We've closed our receive window. */
-    unsigned noXmitFlow:1;     /* True stops incrementing # of xmit 
-                                * packets to send in a row after receiving 
-                                * an ack packet. */
-    unsigned secureCCB:1;      /* True if this is a secure connection */
-    unsigned removing:1;       /* There is a dspRemove pending */
-    unsigned writeFlush:1;     /* Flush send queue even if # bytes to 
-                                * send is less than send blocking. */
-    unsigned delay:1;          /* do not complete commands until user
-                                * *** NO LONGER USED IN KERNEL *** */
-    ADSP_FRAME f;              /* Used to send every packet */
-    ADSP_OPEN_DATA of;         /* Holds the data for the open exchange */
-    gref_t *gref;                      /* The queue associated with the CCB */
-    gbuf_t *sp_mp;
-} CCB, *CCBPtr;
-
-
-/*
- * Change order and die !!! --- See the receive open packet code
- */
-#define O_STATE_NOTHING                0       /* Not opening */
-#define O_STATE_LISTEN                 1       /* Listening for open request */
-#define O_STATE_OPENWAIT       2       /* Sent Req, waiting for Ack to open 
-                                        * request */
-#define O_STATE_ESTABLISHED    3       /* Got Req, send Req+Ack,waiting Ack */
-#define O_STATE_OPEN           4       /* Connection is open */
-
-/*
-* These bits are used in the sendCtl field to indicate what needs to be sent
-*/
-#define B_CTL_PROBE            0x0001
-#define B_CTL_OREQ             0x0002
-#define B_CTL_OACK             0x0004
-#define B_CTL_OREQACK          0x0008
-#define B_CTL_ODENY            0x0010
-#define B_CTL_CLOSE            0x0020
-#define B_CTL_FRESET           0x0040
-#define B_CTL_FRESETACK                0x0080
-#define        B_CTL_RETRANSMIT        0x0100
-
-
-#define kProbeTimerType offsetof(CCB, ProbeTimer)
-#define kFlushTimerType offsetof(CCB, FlushTimer)
-#define kRetryTimerType offsetof(CCB, RetryTimer)
-#define kAttnTimerType offsetof(CCB, AttnTimer)
-#define kResetTimerType offsetof(CCB, ResetTimer)
-
-/*
- * Used to manage the send receive queue
- */
-typedef struct {
-    short len;                 /* # of bytes in this fragment */
-    char flags;                        /* See #define's below */
-    char data[1];
-} HDR, *HDRPtr;
-
-#define        HDR_LEN 3               /* Yes, I know it really is 4 bytes long... */
-
-#define F_GAP          0x03
-#define F_EOM          0x04
-#define F_WRAP         0x08
-#define F_VALID                0x10
-#define F_ENCRYPTED    0x20    /* %%% Needed ??? */
-#define F_LAST         0x40    /* This is last block in buffer */
-
-
-/* %%% Are these two used anymore? */
-#define sbufPtr(y) (&sp->sbuf[((y) < sp->sbuflen) ? (y) : ((y) - sp->sbuflen)])
-#define rbufPtr(y) (&sp->rbuf[((y) < sp->rbuflen) ? (y) : ((y) - sp->rbuflen)])
-
-/* End Internal.h */
-
-/* fron h/adsp_supp.h */
-
-void   CallUserRoutine(CCBPtr sp);     /* (CCB FPTR sp); */
-
-
-/*
- *     Add queue element to end of queue.  Pass Address of ptr to 
- *     1st element of queue
-int    qAddToEnd(struct qlink **qhead, struct qlink *qelem);
- */
-               /* (void FPTR FPTR qhead, void FPTR qelem); */
-
-/*
- *     Hunt down a linked list of queue elements looking for an element with
- *     'data' at 'offset' bytes into the queue element.
- */
-void *qfind_b(void *qhead, word offset, word data);
-void *qfind_w(void *qhead, word offset, word data);
-void *qfind_p(void *qhead, word offset, void *ptr);
-void *qfind_o(void *qhead, word offset, void *ptr);
-void *qfind_m(CCBPtr qhead, void *match, ProcPtr compare_fnx);
-
-
-/*
- * Routines to handle sorted timer queues
- */
-void InsertTimerElem(TimerElemPtr *qhead, TimerElemPtr t, int val);
-void RemoveTimerElem(TimerElemPtr *qhead, TimerElemPtr t);
-void TimerQueueTick(TimerElemPtr *qhead);
-
-/* from h/adsp_global.h */
-
-typedef struct {
-       void *ccbList;          /* Ptr to list of connection control blocks */
-
-       TimerElemPtr slowTimers; /* The probe timer list */
-       TimerElemPtr fastTimers; /* The fast timer list */
-
-       unsigned short lastCID;         /* Last connection ID assigned */
-       char inTimer;           /* We're inside timer routine */
-} GLOBAL;
-
-extern GLOBAL adspGlobal;
-
-/* Address of ptr to list of ccb's */
-#define AT_ADSP_STREAMS ((CCB **)&(adspGlobal.ccbList))
-
-void CheckSend(CCBPtr);
-
-struct qlink {
-       struct qlink *qlinkp;
-};
-
-int qAddToEnd(struct qlink **, struct qlink *);
-
-void adspioc_ack(int, gbuf_t *, gref_t *);
-int CalcRecvWdw(CCBPtr);
-int calcRecvQ(CCBPtr);
-int CalcSendQFree(CCBPtr);
-int adsp_sendddp(CCBPtr, gbuf_t *, int, AddrUnion *, int);
-int CheckReadQueue(CCBPtr);
-int CheckOkToClose(CCBPtr);
-
-int RXData(CCBPtr, gbuf_t *, ADSP_FRAMEPtr, int);
-int RXFResetAck(CCBPtr, ADSP_FRAMEPtr);
-int RxClose(CCBPtr);
-void CheckRecvSeq(CCBPtr, ADSP_FRAMEPtr);
-int RXFReset(CCBPtr, ADSP_FRAMEPtr);
-int RXAttention(CCBPtr, gbuf_t *, ADSP_FRAMEPtr, int);
-CCBPtr FindSender(ADSP_FRAMEPtr, AddrUnion);
-void DoClose(CCBPtr, int, int);
-void completepb(CCBPtr, struct adspcmd *);
-int adspReadAttention(CCBPtr, struct adspcmd *);
-int adspMode(struct adspcmd *);
-int CompleteQueue(struct adspcmd **, int);
-
-void CleanupGlobals(void);
-void InitGlobals(void);
-void TimerStop(void);
-void TimerTick(void);
-
-void SndMsgUp(gref_t *, gbuf_t *);
-int adspDeassignSocket(CCBPtr);
-unsigned char adspAssignSocket(gref_t *gref, int);
-int adspWriteHandler(gref_t *, gbuf_t *);
-int adspReadHandler(gref_t *, gbuf_t *);
-
-int adsp_wput(gref_t *gref, gbuf_t *m);
-int adspRelease(gref_t *);
-int adsp_close(gref_t *);
-int adspAllocateCCB(gref_t *);
-
-void NotifyUser(CCBPtr);
-void UrgentUser(CCBPtr);
-
-unsigned short NextCID(void);
-
-#endif /* KERNEL_PRIVATE */
-#endif /* __APPLE_API_OBSOLETE */
-
-#endif /* _NETAT_ADSP_INTERNAL_H_ */