diff options
Diffstat (limited to 'contrib/libpcap/msdos/ndis2.h')
-rw-r--r-- | contrib/libpcap/msdos/ndis2.h | 559 |
1 files changed, 0 insertions, 559 deletions
diff --git a/contrib/libpcap/msdos/ndis2.h b/contrib/libpcap/msdos/ndis2.h deleted file mode 100644 index 958575f..0000000 --- a/contrib/libpcap/msdos/ndis2.h +++ /dev/null @@ -1,559 +0,0 @@ -/* - * Copyright (c) 1993,1994 - * Texas A&M University. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Texas A&M University - * and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * Developers: - * David K. Hess, Douglas Lee Schales, David R. Safford - * - * Heavily modified for Metaware HighC + GNU C 2.8+ - * Gisle Vanem 1998 - */ - -#ifndef __PCAP_NDIS_H -#define __PCAP_NDIS_H - -#if defined (__HIGHC__) - #define pascal _CC(_CALLEE_POPS_STACK & ~_REVERSE_PARMS) /* calling convention */ - #define CALLBACK(foo) pascal WORD foo - #define PAS_PTR(x,arg) typedef FAR WORD pascal (*x) arg - #define GUARD() _inline (0x9C,0xFA) /* pushfd, cli */ - #define UNGUARD() _inline (0x9D) /* popfd */ - #define FAR _far - -#elif defined(__GNUC__) - #define CALLBACK(foo) WORD foo __attribute__((stdcall)) - #define PAS_PTR(x,arg) typedef WORD (*x) arg __attribute__((stdcall)) - #define GUARD() __asm__ __volatile__ ("pushfd; cli") - #define UNGUARD() __asm__ __volatile__ ("popfd") - #define FAR - -#elif defined (__TURBOC__) - #define CALLBACK(foo) WORD pascal foo - #define PAS_PTR(x,arg) typedef WORD pascal (_far *x) arg - #define GUARD() _asm { pushf; cli } - #define UNGUARD() _asm { popf } - #define FAR _far - -#elif defined (__WATCOMC__) - #define CALLBACK(foo) WORD pascal foo - #define PAS_PTR(x,arg) typedef WORD pascal (_far *x) arg - #define GUARD() _disable() - #define UNGUARD() _enable() - #define FAR _far - -#else - #error Unsupported compiler -#endif - - -/* - * Forwards - */ -struct _ReqBlock; -struct _TxBufDescr; -struct _TDBufDescr; - -/* - * Protocol Manager API - */ -PAS_PTR (ProtMan, (struct _ReqBlock FAR*, WORD)); - -/* - * System request - */ -PAS_PTR (SystemRequest, (DWORD, DWORD, WORD, WORD, WORD)); - -/* - * MAC API - */ -PAS_PTR (TransmitChain, (WORD, WORD, struct _TxBufDescr FAR*, WORD)); -PAS_PTR (TransferData, (WORD*,WORD, struct _TDBufDescr FAR*, WORD)); -PAS_PTR (Request, (WORD, WORD, WORD, DWORD, WORD, WORD)); -PAS_PTR (ReceiveRelease,(WORD, WORD)); -PAS_PTR (IndicationOn, (WORD)); -PAS_PTR (IndicationOff, (WORD)); - - -typedef enum { - HARDWARE_NOT_INSTALLED = 0, - HARDWARE_FAILED_DIAG = 1, - HARDWARE_FAILED_CONFIG = 2, - HARDWARE_HARD_FAULT = 3, - HARDWARE_SOFT_FAULT = 4, - HARDWARE_OK = 7, - HARDWARE_MASK = 0x0007, - MAC_BOUND = 0x0008, - MAC_OPEN = 0x0010, - DIAG_IN_PROGRESS = 0x0020 - } NdisMacStatus; - -typedef enum { - STATUS_RING_STATUS = 1, - STATUS_ADAPTER_CHECK = 2, - STATUS_START_RESET = 3, - STATUS_INTERRUPT = 4, - STATUS_END_RESET = 5 - } NdisStatus; - -typedef enum { - FILTER_DIRECTED = 1, - FILTER_BROADCAST = 2, - FILTER_PROMISCUOUS = 4, - FILTER_SOURCE_ROUTE = 8 - } NdisPacketFilter; - -typedef enum { - REQ_INITIATE_DIAGNOSTICS = 1, - REQ_READ_ERROR_LOG = 2, - REQ_SET_STATION_ADDRESS = 3, - REQ_OPEN_ADAPTER = 4, - REQ_CLOSE_ADAPTER = 5, - REQ_RESET_MAC = 6, - REQ_SET_PACKET_FILTER = 7, - REQ_ADD_MULTICAST_ADDRESS = 8, - REQ_DELETE_MULTICAST_ADDRESS = 9, - REQ_UPDATE_STATISTICS = 10, - REQ_CLEAR_STATISTICS = 11, - REQ_INTERRUPT_REQUEST = 12, - REQ_SET_FUNCTIONAL_ADDRESS = 13, - REQ_SET_LOOKAHEAD = 14 - } NdisGeneralRequest; - -typedef enum { - SF_BROADCAST = 0x00000001L, - SF_MULTICAST = 0x00000002L, - SF_FUNCTIONAL = 0x00000004L, - SF_PROMISCUOUS = 0x00000008L, - SF_SOFT_ADDRESS = 0x00000010L, - SF_STATS_CURRENT = 0x00000020L, - SF_INITIATE_DIAGS = 0x00000040L, - SF_LOOPBACK = 0x00000080L, - SF_RECEIVE_CHAIN = 0x00000100L, - SF_SOURCE_ROUTING = 0x00000200L, - SF_RESET_MAC = 0x00000400L, - SF_OPEN_CLOSE = 0x00000800L, - SF_INTERRUPT_REQUEST = 0x00001000L, - SF_SOURCE_ROUTING_BRIDGE = 0x00002000L, - SF_VIRTUAL_ADDRESSES = 0x00004000L - } NdisMacServiceFlags; - -typedef enum { - REQ_INITIATE_BIND = 1, - REQ_BIND = 2, - REQ_INITIATE_PREBIND = 3, - REQ_INITIATE_UNBIND = 4, - REQ_UNBIND = 5 - } NdisSysRequest; - -typedef enum { - PM_GET_PROTOCOL_MANAGER_INFO = 1, - PM_REGISTER_MODULE = 2, - PM_BIND_AND_START = 3, - PM_GET_PROTOCOL_MANAGER_LINKAGE = 4, - PM_GET_PROTOCOL_INI_PATH = 5, - PM_REGISTER_PROTOCOL_MANAGER_INFO = 6, - PM_INIT_AND_REGISTER = 7, - PM_UNBIND_AND_STOP = 8, - PM_BIND_STATUS = 9, - PM_REGISTER_STATUS = 10 - } NdisProtManager; - - -typedef enum { - ERR_SUCCESS = 0x00, - ERR_WAIT_FOR_RELEASE = 0x01, - ERR_REQUEST_QUEUED = 0x02, - ERR_FRAME_NOT_RECOGNIZED = 0x03, - ERR_FRAME_REJECTED = 0x04, - ERR_FORWARD_FRAME = 0x05, - ERR_OUT_OF_RESOURCE = 0x06, - ERR_INVALID_PARAMETER = 0x07, - ERR_INVALID_FUNCTION = 0x08, - ERR_NOT_SUPPORTED = 0x09, - ERR_HARDWARE_ERROR = 0x0A, - ERR_TRANSMIT_ERROR = 0x0B, - ERR_NO_SUCH_DESTINATION = 0x0C, - ERR_BUFFER_TOO_SMALL = 0x0D, - ERR_ALREADY_STARTED = 0x20, - ERR_INCOMPLETE_BINDING = 0x21, - ERR_DRIVER_NOT_INITIALIZED = 0x22, - ERR_HARDWARE_NOT_FOUND = 0x23, - ERR_HARDWARE_FAILURE = 0x24, - ERR_CONFIGURATION_FAILURE = 0x25, - ERR_INTERRUPT_CONFLICT = 0x26, - ERR_INCOMPATIBLE_MAC = 0x27, - ERR_INITIALIZATION_FAILED = 0x28, - ERR_NO_BINDING = 0x29, - ERR_NETWORK_MAY_NOT_BE_CONNECTED = 0x2A, - ERR_INCOMPATIBLE_OS_VERSION = 0x2B, - ERR_ALREADY_REGISTERED = 0x2C, - ERR_PATH_NOT_FOUND = 0x2D, - ERR_INSUFFICIENT_MEMORY = 0x2E, - ERR_INFO_NOT_FOUND = 0x2F, - ERR_GENERAL_FAILURE = 0xFF - } NdisError; - -#define NDIS_PARAM_INTEGER 0 -#define NDIS_PARAM_STRING 1 - -#define NDIS_TX_BUF_LENGTH 8 -#define NDIS_TD_BUF_LENGTH 1 -#define NDIS_RX_BUF_LENGTH 8 - -#define NDIS_PTR_PHYSICAL 0 -#define NDIS_PTR_VIRTUAL 2 - -#define NDIS_PATH "PROTMAN$" - - -typedef struct _CommonChars { - WORD tableSize; - BYTE majorNdisVersion; /* 2 - Latest version */ - BYTE minorNdisVersion; /* 0 */ - WORD reserved1; - BYTE majorModuleVersion; - BYTE minorModuleVersion; - DWORD moduleFlags; - /* 0 - Binding at upper boundary supported - * 1 - Binding at lower boundary supported - * 2 - Dynamically bound. - * 3-31 - Reserved, must be zero. - */ - BYTE moduleName[16]; - BYTE protocolLevelUpper; - /* 1 - MAC - * 2 - Data Link - * 3 - Network - * 4 - Transport - * 5 - Session - * -1 - Not specified - */ - BYTE interfaceUpper; - BYTE protocolLevelLower; - /* 0 - Physical - * 1 - MAC - * 2 - Data Link - * 3 - Network - * 4 - Transport - * 5 - Session - * -1 - Not specified - */ - BYTE interfaceLower; - WORD moduleId; - WORD moduleDS; - SystemRequest systemRequest; - BYTE *serviceChars; - BYTE *serviceStatus; - BYTE *upperDispatchTable; - BYTE *lowerDispatchTable; - BYTE *reserved2; /* Must be NULL */ - BYTE *reserved3; /* Must be NULL */ - } CommonChars; - - -typedef struct _MulticastList { - WORD maxMulticastAddresses; - WORD numberMulticastAddresses; - BYTE multicastAddress[16][16]; - } MulticastList; - - -typedef struct _MacChars { - WORD tableSize; - BYTE macName[16]; - WORD addressLength; - BYTE permanentAddress[16]; - BYTE currentAddress[16]; - DWORD currentFunctionalAddress; - MulticastList *multicastList; - DWORD linkSpeed; - DWORD serviceFlags; - WORD maxFrameSize; - DWORD txBufferSize; - WORD txBufferAllocSize; - DWORD rxBufferSize; - WORD rxBufferAllocSize; - BYTE ieeeVendor[3]; - BYTE vendorAdapter; - BYTE *vendorAdapterDescription; - WORD interruptLevel; - WORD txQueueDepth; - WORD maxDataBlocks; - } MacChars; - - -typedef struct _ProtocolChars { - WORD length; - BYTE name[16]; - WORD type; - } ProtocolChars; - - -typedef struct _MacUpperDispatch { - CommonChars *backPointer; - Request request; - TransmitChain transmitChain; - TransferData transferData; - ReceiveRelease receiveRelease; - IndicationOn indicationOn; - IndicationOff indicationOff; - } MacUpperDispatch; - - -typedef struct _MacStatusTable { - WORD tableSize; - DWORD lastDiag; - DWORD macStatus; - WORD packetFilter; - BYTE *mediaSpecificStats; - DWORD lastClear; - DWORD totalFramesRx; - DWORD totalFramesCrc; - DWORD totalBytesRx; - DWORD totalDiscardBufSpaceRx; - DWORD totalMulticastRx; - DWORD totalBroadcastRx; - DWORD obsolete1[5]; - DWORD totalDiscardHwErrorRx; - DWORD totalFramesTx; - DWORD totalBytesTx; - DWORD totalMulticastTx; - DWORD totalBroadcastTx; - DWORD obsolete2[2]; - DWORD totalDiscardTimeoutTx; - DWORD totalDiscardHwErrorTx; - } MacStatusTable; - - -typedef struct _ProtDispatch { - CommonChars *backPointer; - DWORD flags; - /* 0 - handles non-LLC frames - * 1 - handles specific-LSAP LLC frames - * 2 - handles specific-LSAP LLC frames - * 3-31 - reserved must be 0 - */ - void (*requestConfirm) (void); - void (*transmitConfirm) (void); - void (*receiveLookahead) (void); - void (*indicationComplete) (void); - void (*receiveChain) (void); - void (*status) (void); - } ProtDispatch; - - -typedef struct _ReqBlock { - WORD opcode; - WORD status; - BYTE FAR *pointer1; - BYTE FAR *pointer2; - WORD word1; - } ReqBlock; - - -typedef struct _TxBufDescrRec { - BYTE txPtrType; - BYTE dummy; - WORD txDataLen; - BYTE *txDataPtr; - } TxBufDescrRec; - - -typedef struct _TxBufDescr { - WORD txImmedLen; - BYTE *txImmedPtr; - WORD txDataCount; - TxBufDescrRec txBufDescrRec[NDIS_TX_BUF_LENGTH]; - } TxBufDescr; - - -typedef struct _TDBufDescrRec { - BYTE tDPtrType; - BYTE dummy; - WORD tDDataLen; - BYTE *tDDataPtr; - } TDBufDescrRec; - - -typedef struct _TDBufDescr { - WORD tDDataCount; - TDBufDescrRec tDBufDescrRec[NDIS_TD_BUF_LENGTH]; - } TDBufDescr; - - -typedef struct _RxBufDescrRec { - WORD rxDataLen; - BYTE *rxDataPtr; - } RxBufDescrRec; - - -typedef struct _RxBufDescr { - WORD rxDataCount; - RxBufDescrRec rxBufDescrRec[NDIS_RX_BUF_LENGTH]; - } RxBufDescr; - - -typedef struct _PktBuf { - struct _PktBuf *nextLink; - struct _PktBuf *prevLink; - int handle; - int length; - int packetLength; - DWORD sequence; - BYTE *buffer; - } PktBuf; - - -typedef struct _CardHandle { - BYTE moduleName[16]; - CommonChars *common; - } CardHandle; - - -typedef struct _BindingsList { - WORD numBindings; - BYTE moduleName[2][16]; - } BindingsList; - - -typedef struct _FailingModules { - BYTE upperModuleName[16]; - BYTE lowerModuleName[16]; - } FailingModules; - - -typedef union _HardwareAddress { - BYTE bytes[6]; - WORD words[3]; - struct { - BYTE bytes[6]; - } addr; - } HardwareAddress; - - -typedef struct _FddiHeader { - BYTE frameControl; - HardwareAddress etherDestHost; - HardwareAddress etherSrcHost; - } FddiHeader; - - -typedef struct _EthernetIIHeader { - HardwareAddress etherDestHost; - HardwareAddress etherSrcHost; - WORD etherType; - } EthernetIIHeader; - - -typedef struct _Ieee802Dot5Header { - HardwareAddress etherDestHost; - HardwareAddress etherSrcHost; - BYTE routeInfo[30]; - } Ieee802Dot5Header; - - -typedef struct _Ieee802Dot2SnapHeader { - BYTE dsap; /* 0xAA */ - BYTE ssap; /* 0xAA */ - BYTE control; /* 3 */ - BYTE protocolId[5]; - } Ieee802Dot2SnapHeader; - - -/* - * Prototypes - */ -extern char *NdisLastError (void); -extern int NdisOpen (void); -extern int NdisInit (int promis); -extern int NdisRegisterAndBind (int promis); -extern void NdisShutdown (void); -extern void NdisCheckMacFeatures (struct _CardHandle *card); -extern int NdisSendPacket (struct _PktBuf *pktBuf, int macId); - -/* - * Assembly "glue" functions - */ -extern int systemRequestGlue(); -extern int requestConfirmGlue(); -extern int transmitConfirmGlue(); -extern int receiveLookaheadGlue(); -extern int indicationCompleteGlue(); -extern int receiveChainGlue(); -extern int statusGlue(); - -/* - * IOCTL function - */ -#ifdef __SMALL__ -extern int _far NdisGetLinkage (int handle, char *data, int size); -#else -extern int NdisGetLinkage (int handle, char *data, int size); -#endif - -/* - * NDIS callback handlers - */ -CALLBACK (NdisSystemRequest (DWORD,DWORD, WORD, WORD, WORD)); -CALLBACK (NdisRequestConfirm ( WORD, WORD, WORD, WORD, WORD,WORD)); -CALLBACK (NdisTransmitConfirm ( WORD, WORD, WORD, WORD, WORD)); -CALLBACK (NdisReceiveLookahead ( WORD, WORD, WORD, BYTE*, BYTE*, WORD)); -CALLBACK (NdisReceiveChain ( WORD, WORD, WORD, struct _RxBufDescr*, BYTE*, WORD)); -CALLBACK (NdisStatusProc ( WORD, WORD, BYTE*, WORD,WORD)); -CALLBACK (NdisIndicationComplete( WORD, WORD)); - -BYTE *NdisAllocStack (void); -void NdisFreeStack (BYTE*); - -#ifdef __HIGHC__ - #define RENAME_ASM_SYM(x) pragma Alias(x,"@" #x "") /* prepend `@' */ - #define RENAME_C_SYM(x) pragma Alias(x,"_" #x "") /* prepend `_' */ - - RENAME_ASM_SYM (systemRequestGlue); - RENAME_ASM_SYM (requestConfirmGlue); - RENAME_ASM_SYM (transmitConfirmGlue); - RENAME_ASM_SYM (receiveLookaheadGlue); - RENAME_ASM_SYM (indicationCompleteGlue); - RENAME_ASM_SYM (receiveChainGlue); - RENAME_ASM_SYM (statusGlue); - RENAME_ASM_SYM (NdisGetLinkage); - RENAME_C_SYM (NdisSystemRequest); - RENAME_C_SYM (NdisRequestConfirm); - RENAME_C_SYM (NdisTransmitConfirm); - RENAME_C_SYM (NdisReceiveLookahead); - RENAME_C_SYM (NdisIndicationComplete); - RENAME_C_SYM (NdisReceiveChain); - RENAME_C_SYM (NdisStatusProc); - RENAME_C_SYM (NdisAllocStack); - RENAME_C_SYM (NdisFreeStack); -#endif - -#endif |