You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
338 lines
8.0 KiB
C
338 lines
8.0 KiB
C
#ifndef _LLCIO_H
|
|
#define _LLCIO_H
|
|
|
|
/************************************************************************/
|
|
/* SISCO SOFTWARE MODULE HEADER *****************************************/
|
|
/************************************************************************/
|
|
/* (c) Copyright Systems Integration Specialists Company, Inc., */
|
|
/* 1994, All Rights Reserved */
|
|
/* */
|
|
/* MODULE NAME : llcio.h */
|
|
/* PRODUCT(S) : osillc.sys */
|
|
/* */
|
|
/* MODULE DESCRIPTION : */
|
|
/* */
|
|
/* GLOBAL FUNCTIONS DEFINED IN THIS MODULE : */
|
|
/* */
|
|
/* MODIFICATION LOG : */
|
|
/* Date Who Rev Comments */
|
|
/* -------- --- ------ ------------------------------------------- */
|
|
/* 05/21/98 IKE 03 Converted to 7.0 Data types, removed */
|
|
/* underscores so it can be compiled */
|
|
/* 11/02/95 DSF 02 Enhanced to retrieve stats information */
|
|
/* 12/08/94 DSF 01 Added SET_OFFSET */
|
|
/* 03/10/94 DSF Initial Release */
|
|
/************************************************************************/
|
|
|
|
/*
|
|
** User Functions
|
|
*/
|
|
|
|
int LlcOpen (char *Name);
|
|
int LlcClose (int fd);
|
|
int LlcWrite (int fd, char *buffer, int size);
|
|
int LlcRead (int fd, char *buffer, int size);
|
|
int LlcIoctl (int fd, void *pArg, int size);
|
|
|
|
|
|
|
|
|
|
/*
|
|
** IOCTL Management
|
|
*/
|
|
|
|
/*
|
|
** LLC Driver IOCTL requests
|
|
*/
|
|
|
|
|
|
#define LLC_ADD_MULTI 1
|
|
#define LLC_DEL_MULTI 2
|
|
#define LLC_GET_HW_ADDR 3
|
|
#define LLC_SET_FRAME_FILTER 4
|
|
#define LLC_BIND_LSAP 5
|
|
#define LLC_UNBIND_LSAP 6
|
|
#define LLC_TRACE_ON 7
|
|
#define LLC_TRACE_OFF 8
|
|
#define LLC_DEBUG_ON 9
|
|
#define LLC_DEBUG_OFF 10
|
|
#define LLC_GET_PROTO_STATS 11
|
|
#define LLC_GET_MAC_STATS 12
|
|
#define LLC_ARM_SIGNAL 13
|
|
#define LLC_ARM_POST 15
|
|
#define LLC_GET_EMB_PHYS_ADDR 16
|
|
#define LLC_SET_WRITE_CONFIRM_FLAG 17
|
|
#define LLC_GET_DEBUG 18
|
|
#define LLC_POST_BUFS 19
|
|
#define LLC_SET_OFFSET 20
|
|
#define LLC_GET_MAC_CHARS 21
|
|
#define LLC_CLEAR_MAC_STATS 22
|
|
#define LLC_CLEAR_PROTO_STATS 23
|
|
|
|
|
|
/*
|
|
** LLC Driver IOCTL Errors
|
|
*/
|
|
|
|
#define LLCERR_NO_ERROR 0
|
|
#define LLCERR_LSAP_BOUND 1
|
|
#define LLCERR_LSAP_NOTBOUND 2
|
|
#define LLCERR_ILLEGAL_OPERATION 3
|
|
#define LLCERR_UNKNOWN_COMMAND 4
|
|
|
|
#define MAX_HWADDR_SIZE 12
|
|
|
|
typedef struct
|
|
{
|
|
int Opcode;
|
|
int Status;
|
|
} LLCGENERICIOCTL;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
int Opcode;
|
|
int Status;
|
|
int cSize;
|
|
char Multicast[MAX_HWADDR_SIZE];
|
|
} LLCADDMULTI;
|
|
|
|
typedef struct
|
|
{
|
|
int Opcode;
|
|
int Status;
|
|
int cSize;
|
|
char Multicast[MAX_HWADDR_SIZE];
|
|
} LLCDELMULTI;
|
|
|
|
typedef struct
|
|
{
|
|
int Opcode;
|
|
int Status;
|
|
int cSize;
|
|
char HwAddr[MAX_HWADDR_SIZE];
|
|
} LLCGETHWADDR;
|
|
|
|
typedef struct
|
|
{
|
|
int Opcode;
|
|
int Status;
|
|
unsigned Lsap;
|
|
} LLCBINDLSAP;
|
|
|
|
typedef struct
|
|
{
|
|
int Opcode;
|
|
int Status;
|
|
} LLCUNBINDLSAP;
|
|
|
|
typedef struct
|
|
{
|
|
int Opcode;
|
|
int Status;
|
|
long EmbPhysAddr;
|
|
long EmbSize;
|
|
} LLCGETEMBPHYSADDR;
|
|
|
|
typedef struct
|
|
{
|
|
int Opcode;
|
|
int Status;
|
|
char far *pfWriteConfirm;
|
|
} LLCSETWRITECONFIRMFLAG;
|
|
|
|
typedef struct
|
|
{
|
|
int Opcode;
|
|
int Status;
|
|
int VxDID;
|
|
} LLCARMPOST;
|
|
|
|
typedef struct
|
|
{
|
|
int Opcode;
|
|
int Status;
|
|
long offset;
|
|
} LLCSETOFFSET;
|
|
|
|
|
|
typedef struct tagUSERBUFDESC
|
|
{
|
|
struct tagUSERBUFDESC far *Next;
|
|
char far *pBuf;
|
|
int cBufSize;
|
|
int cDataSize;
|
|
} USERBUFDESC;
|
|
|
|
typedef struct
|
|
{
|
|
int Opcode;
|
|
int Status;
|
|
USERBUFDESC far *pBufDesc;
|
|
} LLCPOSTBUFS;
|
|
|
|
typedef struct
|
|
{
|
|
int Opcode;
|
|
int Status;
|
|
int MessageNum;
|
|
int Parm1;
|
|
int Parm2;
|
|
int Parm3;
|
|
} LLCGETDEBUG;
|
|
|
|
|
|
/*
|
|
** NDIS Protocol Driver Stats
|
|
*/
|
|
|
|
typedef struct
|
|
{
|
|
long nFramesReceived;
|
|
long nReceiveLookaheadReceived;
|
|
long nReceiveChainReceived;
|
|
long nFramesDiscardedNotRecognized;
|
|
long nFramesDiscardedOutOfResources;
|
|
long nTransferDataFailed;
|
|
long nTransmitChainIssued;
|
|
long nTransmitChainFailed;
|
|
long nFramesDelivered; /* DOS only */
|
|
} LLCPROTOSTATS;
|
|
|
|
typedef struct
|
|
{
|
|
int Opcode;
|
|
int Status;
|
|
LLCPROTOSTATS ProtoStats;
|
|
} LLCGETPROTOSTATS;
|
|
|
|
typedef struct
|
|
{
|
|
int Opcode;
|
|
int Status;
|
|
} LLCCLEARPROTOSTATS;
|
|
|
|
/*
|
|
** NDIS MAC Driver Characteristics
|
|
*/
|
|
|
|
typedef struct /* structure for MAC service specific info */
|
|
{
|
|
int cSize; /* length of the characteristic table */
|
|
char TypeName[16]; /* name of the MAC type (eg. 802.3...) */
|
|
int cStationAddr; /* length of station address (MAC) */
|
|
char PermMACAddr[16]; /* hardware default MAC address */
|
|
char CurrMACAddr[16]; /* current MAC address in use */
|
|
long FunctionAddr; /* current functional address of adapter */
|
|
long reserved; /* pointer to multicast table */
|
|
long LinkSpeed; /* link speed bits/sec */
|
|
long fMAC; /* flags of capabilities */
|
|
int MaxFrameSize; /* maximum MAC frame which can be sent */
|
|
long TotalTxSpace; /* total transmit buffer space */
|
|
int cTxBlockSize; /* size of allocated transmission blocks */
|
|
long TotalRxSpace; /*total reception buffer space */
|
|
int cRxBlockSize; /*reception buffer alloc blk size */
|
|
char VendorID[3]; /*vendor IEEE ID */
|
|
char VendorAdapterDesc; /*vendor adapter description */
|
|
long reserved2; /*pointer to vendor serial number */
|
|
int IRQLevel; /*interrupt level */
|
|
int TransmitQueueDepth;
|
|
int nMaxDataBlocks;
|
|
} LLCMACCHARS;
|
|
|
|
typedef struct
|
|
{
|
|
int Opcode;
|
|
int Status;
|
|
LLCMACCHARS MacChars;
|
|
} LLCGETMACCHARS;
|
|
|
|
typedef struct
|
|
{
|
|
int cSize; /*size of table */
|
|
long LastDiagTime; /*seconds since 1-1-1970 of diags */
|
|
long MACStatus; /*mac status, this is a bit mask */
|
|
/* Bits 0-2: 0 - Hardware Not Installed */
|
|
/* 1 - Hardware Failed Pwrup Diags */
|
|
/* 2 - Hardware Failed CNFG Prob */
|
|
/* 3 - Hardware Faulted */
|
|
/* 4 - Hardware Marginally Operat */
|
|
/* 7 - Fully Operational */
|
|
/* Bit 3: MAC BOUND */
|
|
/* Bit 4: MAC OPEN */
|
|
/* Bit 5: DIAG_IN_PROGRESS */
|
|
int CurrPacketFilter; /* Bit 1: Directed and Multicast Group */
|
|
/* Bit 2: Broadcast */
|
|
/* Bit 3: Promiscuous */
|
|
/* Bit 4: All Source Routing */
|
|
long reserved; /*pointer to media specific stats */
|
|
long LastClearTime; /*seconds since 1-1-1970 */
|
|
long nOkFramesReceived; /*total frames received ok */
|
|
long nCrcErrorFrames; /*total frames received with crc errors */
|
|
long nBytesReceived; /*total number of bytes recieved */
|
|
long nFramesDiscarded; /*total number of frames discarded */
|
|
long nMulticastFramesReceived; /*total number of multicast frames rxd OK */
|
|
long nBroadcastFramesReceived; /*total number of broadcast frames rxd OK */
|
|
long reserved1;
|
|
long reserved2;
|
|
long reserved3;
|
|
long reserved4;
|
|
long reserved5;
|
|
long nFramesDiscardedHwError; /*total number of frames discarded due to HW err*/
|
|
long nFramesTransmittedOk; /*total number of frames transmitted OK */
|
|
long nBytesTransimittedOk; /*total number of bytes transmitted OK */
|
|
long nMulticastFramesTransmitted; /*total number of multicast transmitted */
|
|
long nBroadcastFramesTransmitted; /*total broadcast frame transmitted */
|
|
long reserved6;
|
|
long reserved7;
|
|
long nFramesNotTransmittedTimeout; /*total frames not transmitted due to timeout */
|
|
long nFramesNotTransmittedHwError; /*total frames not transmitted due to HW ERR */
|
|
} LLCMACSTATS;
|
|
|
|
typedef struct
|
|
{
|
|
int Opcode;
|
|
int Status;
|
|
LLCMACSTATS MacStats;
|
|
} LLCGETMACSTATS;
|
|
|
|
typedef struct
|
|
{
|
|
int Opcode;
|
|
int Status;
|
|
} LLCCLEARMACSTATS;
|
|
|
|
typedef union
|
|
{
|
|
LLCADDMULTI AddMulti;
|
|
LLCDELMULTI DelMulti;
|
|
LLCGETHWADDR GetHwAddr;
|
|
LLCBINDLSAP BindLsap;
|
|
LLCUNBINDLSAP UnBindLsap;
|
|
LLCGETEMBPHYSADDR GetEmbPhysAddr;
|
|
LLCSETWRITECONFIRMFLAG SetWriteConfirmFlag;
|
|
LLCPOSTBUFS PostBufs;
|
|
LLCARMPOST ArmPost;
|
|
LLCGETDEBUG GetDebug;
|
|
LLCSETOFFSET SetOffset;
|
|
LLCGETMACCHARS GetMacChars;
|
|
LLCGETMACSTATS GetMacStats;
|
|
LLCCLEARMACSTATS ClearMacStats;
|
|
LLCGETPROTOSTATS GetProtoStats;
|
|
LLCCLEARPROTOSTATS ClearProtoStats;
|
|
} LLCIOCTL;
|
|
|
|
|
|
|
|
/*
|
|
** Function prototypes
|
|
*/
|
|
|
|
int llc_getstats (LLCMACCHARS *MacChars,
|
|
LLCMACSTATS *MacStats,
|
|
LLCPROTOSTATS *ProtoStats);
|
|
void llc_clearstats ();
|
|
|
|
|
|
#endif
|