|
Packit |
209cc3 |
#ifndef __PKTDRVR_H
|
|
Packit |
209cc3 |
#define __PKTDRVR_H
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
#define PUBLIC
|
|
Packit |
209cc3 |
#define LOCAL static
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
#define RX_BUF_SIZE ETH_MTU /* buffer size variables. NB !! */
|
|
Packit |
209cc3 |
#define TX_BUF_SIZE ETH_MTU /* must be same as in pkt_rx*.* */
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
#ifdef __HIGHC__
|
|
Packit |
209cc3 |
#pragma Off(Align_members)
|
|
Packit |
209cc3 |
#else
|
|
Packit |
209cc3 |
#pragma pack(1)
|
|
Packit |
209cc3 |
#endif
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
typedef enum { /* Packet-driver classes */
|
|
Packit |
209cc3 |
PD_ETHER = 1,
|
|
Packit |
209cc3 |
PD_PRONET10 = 2,
|
|
Packit |
209cc3 |
PD_IEEE8025 = 3,
|
|
Packit |
209cc3 |
PD_OMNINET = 4,
|
|
Packit |
209cc3 |
PD_APPLETALK = 5,
|
|
Packit |
209cc3 |
PD_SLIP = 6,
|
|
Packit |
209cc3 |
PD_STARTLAN = 7,
|
|
Packit |
209cc3 |
PD_ARCNET = 8,
|
|
Packit |
209cc3 |
PD_AX25 = 9,
|
|
Packit |
209cc3 |
PD_KISS = 10,
|
|
Packit |
209cc3 |
PD_IEEE8023_2 = 11,
|
|
Packit |
209cc3 |
PD_FDDI8022 = 12,
|
|
Packit |
209cc3 |
PD_X25 = 13,
|
|
Packit |
209cc3 |
PD_LANstar = 14,
|
|
Packit |
209cc3 |
PD_PPP = 18
|
|
Packit |
209cc3 |
} PKT_CLASS;
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
typedef enum { /* Packet-driver receive modes */
|
|
Packit |
209cc3 |
PDRX_OFF = 1, /* turn off receiver */
|
|
Packit |
209cc3 |
PDRX_DIRECT, /* receive only to this interface */
|
|
Packit |
209cc3 |
PDRX_BROADCAST, /* DIRECT + broadcast packets */
|
|
Packit |
209cc3 |
PDRX_MULTICAST1, /* BROADCAST + limited multicast */
|
|
Packit |
209cc3 |
PDRX_MULTICAST2, /* BROADCAST + all multicast */
|
|
Packit |
209cc3 |
PDRX_ALL_PACKETS, /* receive all packets on network */
|
|
Packit |
209cc3 |
} PKT_RX_MODE;
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
typedef struct {
|
|
Packit |
209cc3 |
char type[8];
|
|
Packit |
209cc3 |
char len;
|
|
Packit |
209cc3 |
} PKT_FRAME;
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
typedef struct {
|
|
Packit |
209cc3 |
BYTE class; /* = 1 for DEC/Interl/Xerox Ethernet */
|
|
Packit |
209cc3 |
BYTE number; /* = 0 for single LAN adapter */
|
|
Packit |
209cc3 |
WORD type; /* = 13 for 3C523 */
|
|
Packit |
209cc3 |
BYTE funcs; /* Basic/Extended/HiPerf functions */
|
|
Packit |
209cc3 |
WORD intr; /* user interrupt vector number */
|
|
Packit |
209cc3 |
WORD handle; /* Handle associated with session */
|
|
Packit |
209cc3 |
BYTE name [15]; /* Name of adapter interface,ie.3C523*/
|
|
Packit |
209cc3 |
BOOL quiet; /* (don't) print errors to stdout */
|
|
Packit |
209cc3 |
const char *error; /* address of error string */
|
|
Packit |
209cc3 |
BYTE majVer; /* Major driver implementation ver. */
|
|
Packit |
209cc3 |
BYTE minVer; /* Minor driver implementation ver. */
|
|
Packit |
209cc3 |
BYTE dummyLen; /* length of following data */
|
|
Packit |
209cc3 |
WORD MAClength; /* HiPerformance data, N/A */
|
|
Packit |
209cc3 |
WORD MTU; /* HiPerformance data, N/A */
|
|
Packit |
209cc3 |
WORD multicast; /* HiPerformance data, N/A */
|
|
Packit |
209cc3 |
WORD rcvrBuffers; /* valid for */
|
|
Packit |
209cc3 |
WORD UMTbufs; /* High Performance drivers only */
|
|
Packit |
209cc3 |
WORD postEOIintr; /* Usage ?? */
|
|
Packit |
209cc3 |
} PKT_INFO;
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
#define PKT_PARAM_SIZE 14 /* members majVer - postEOIintr */
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
typedef struct {
|
|
Packit |
209cc3 |
DWORD inPackets; /* # of packets received */
|
|
Packit |
209cc3 |
DWORD outPackets; /* # of packets transmitted */
|
|
Packit |
209cc3 |
DWORD inBytes; /* # of bytes received */
|
|
Packit |
209cc3 |
DWORD outBytes; /* # of bytes transmitted */
|
|
Packit |
209cc3 |
DWORD inErrors; /* # of reception errors */
|
|
Packit |
209cc3 |
DWORD outErrors; /* # of transmission errors */
|
|
Packit |
209cc3 |
DWORD lost; /* # of packets lost (RX) */
|
|
Packit |
209cc3 |
} PKT_STAT;
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
typedef struct {
|
|
Packit |
209cc3 |
ETHER destin;
|
|
Packit |
209cc3 |
ETHER source;
|
|
Packit |
209cc3 |
WORD proto;
|
|
Packit |
209cc3 |
BYTE data [TX_BUF_SIZE];
|
|
Packit |
209cc3 |
} TX_ELEMENT;
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
typedef struct {
|
|
Packit |
209cc3 |
WORD firstCount; /* # of bytes on 1st */
|
|
Packit |
209cc3 |
WORD secondCount; /* and 2nd upcall */
|
|
Packit |
209cc3 |
WORD handle; /* instance that upcalled */
|
|
Packit |
209cc3 |
ETHER destin; /* E-net destination address */
|
|
Packit |
209cc3 |
ETHER source; /* E-net source address */
|
|
Packit |
209cc3 |
WORD proto; /* protocol number */
|
|
Packit |
209cc3 |
BYTE data [RX_BUF_SIZE];
|
|
Packit |
209cc3 |
} RX_ELEMENT;
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
#ifdef __HIGHC__
|
|
Packit |
209cc3 |
#pragma pop(Align_members)
|
|
Packit |
209cc3 |
#else
|
|
Packit |
209cc3 |
#pragma pack()
|
|
Packit |
209cc3 |
#endif
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
/*
|
|
Packit |
209cc3 |
* Prototypes for publics
|
|
Packit |
209cc3 |
*/
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
#ifdef __cplusplus
|
|
Packit |
209cc3 |
extern "C" {
|
|
Packit |
209cc3 |
#endif
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
extern PKT_STAT pktStat; /* statistics for packets */
|
|
Packit |
209cc3 |
extern PKT_INFO pktInfo; /* packet-driver information */
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
extern PKT_RX_MODE receiveMode;
|
|
Packit |
209cc3 |
extern ETHER myAddress, ethBroadcast;
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
extern BOOL PktInitDriver (PKT_RX_MODE mode);
|
|
Packit |
209cc3 |
extern BOOL PktExitDriver (void);
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
extern const char *PktGetErrorStr (int errNum);
|
|
Packit |
209cc3 |
extern const char *PktGetClassName (WORD class);
|
|
Packit |
209cc3 |
extern const char *PktRXmodeStr (PKT_RX_MODE mode);
|
|
Packit |
209cc3 |
extern BOOL PktSearchDriver (void);
|
|
Packit |
209cc3 |
extern int PktReceive (BYTE *buf, int max);
|
|
Packit |
209cc3 |
extern BOOL PktTransmit (const void *eth, int len);
|
|
Packit |
209cc3 |
extern DWORD PktRxDropped (void);
|
|
Packit |
209cc3 |
extern BOOL PktReleaseHandle (WORD handle);
|
|
Packit |
209cc3 |
extern BOOL PktTerminHandle (WORD handle);
|
|
Packit |
209cc3 |
extern BOOL PktResetInterface (WORD handle);
|
|
Packit |
209cc3 |
extern BOOL PktSetReceiverMode(PKT_RX_MODE mode);
|
|
Packit |
209cc3 |
extern BOOL PktGetReceiverMode(PKT_RX_MODE *mode);
|
|
Packit |
209cc3 |
extern BOOL PktGetStatistics (WORD handle);
|
|
Packit |
209cc3 |
extern BOOL PktSessStatistics (WORD handle);
|
|
Packit |
209cc3 |
extern BOOL PktResetStatistics(WORD handle);
|
|
Packit |
209cc3 |
extern BOOL PktGetAddress (ETHER *addr);
|
|
Packit |
209cc3 |
extern BOOL PktSetAddress (const ETHER *addr);
|
|
Packit |
209cc3 |
extern BOOL PktGetDriverInfo (void);
|
|
Packit |
209cc3 |
extern BOOL PktGetDriverParam (void);
|
|
Packit |
209cc3 |
extern void PktQueueBusy (BOOL busy);
|
|
Packit |
209cc3 |
extern WORD PktBuffersUsed (void);
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
#ifdef __cplusplus
|
|
Packit |
209cc3 |
}
|
|
Packit |
209cc3 |
#endif
|
|
Packit |
209cc3 |
|
|
Packit |
209cc3 |
#endif /* __PKTDRVR_H */
|
|
Packit |
209cc3 |
|