Blame msdos/pktdrvr.h

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