7 #define RX_BUF_SIZE ETH_MTU /* buffer size variables. NB !! */
\r
8 #define TX_BUF_SIZE ETH_MTU /* must be same as in pkt_rx*.* */
\r
11 #pragma Off(Align_members)
\r
16 typedef enum { /* Packet-driver classes */
\r
34 typedef enum { /* Packet-driver receive modes */
\r
35 PDRX_OFF = 1, /* turn off receiver */
\r
36 PDRX_DIRECT, /* receive only to this interface */
\r
37 PDRX_BROADCAST, /* DIRECT + broadcast packets */
\r
38 PDRX_MULTICAST1, /* BROADCAST + limited multicast */
\r
39 PDRX_MULTICAST2, /* BROADCAST + all multicast */
\r
40 PDRX_ALL_PACKETS, /* receive all packets on network */
\r
50 BYTE class; /* = 1 for DEC/Interl/Xerox Ethernet */
\r
51 BYTE number; /* = 0 for single LAN adapter */
\r
52 WORD type; /* = 13 for 3C523 */
\r
53 BYTE funcs; /* Basic/Extended/HiPerf functions */
\r
54 WORD intr; /* user interrupt vector number */
\r
55 WORD handle; /* Handle associated with session */
\r
56 BYTE name [15]; /* Name of adapter interface,ie.3C523*/
\r
57 BOOL quiet; /* (don't) print errors to stdout */
\r
58 const char *error; /* address of error string */
\r
59 BYTE majVer; /* Major driver implementation ver. */
\r
60 BYTE minVer; /* Minor driver implementation ver. */
\r
61 BYTE dummyLen; /* length of following data */
\r
62 WORD MAClength; /* HiPerformance data, N/A */
\r
63 WORD MTU; /* HiPerformance data, N/A */
\r
64 WORD multicast; /* HiPerformance data, N/A */
\r
65 WORD rcvrBuffers; /* valid for */
\r
66 WORD UMTbufs; /* High Performance drivers only */
\r
67 WORD postEOIintr; /* Usage ?? */
\r
70 #define PKT_PARAM_SIZE 14 /* members majVer - postEOIintr */
\r
74 DWORD inPackets; /* # of packets received */
\r
75 DWORD outPackets; /* # of packets transmitted */
\r
76 DWORD inBytes; /* # of bytes received */
\r
77 DWORD outBytes; /* # of bytes transmitted */
\r
78 DWORD inErrors; /* # of reception errors */
\r
79 DWORD outErrors; /* # of transmission errors */
\r
80 DWORD lost; /* # of packets lost (RX) */
\r
88 BYTE data [TX_BUF_SIZE];
\r
92 WORD firstCount; /* # of bytes on 1st */
\r
93 WORD secondCount; /* and 2nd upcall */
\r
94 WORD handle; /* instance that upcalled */
\r
95 ETHER destin; /* E-net destination address */
\r
96 ETHER source; /* E-net source address */
\r
97 WORD proto; /* protocol number */
\r
98 BYTE data [RX_BUF_SIZE];
\r
103 #pragma pop(Align_members)
\r
110 * Prototypes for publics
\r
117 extern PKT_STAT pktStat; /* statistics for packets */
\r
118 extern PKT_INFO pktInfo; /* packet-driver information */
\r
120 extern PKT_RX_MODE receiveMode;
\r
121 extern ETHER myAddress, ethBroadcast;
\r
123 extern BOOL PktInitDriver (PKT_RX_MODE mode);
\r
124 extern BOOL PktExitDriver (void);
\r
126 extern const char *PktGetErrorStr (int errNum);
\r
127 extern const char *PktGetClassName (WORD class);
\r
128 extern const char *PktRXmodeStr (PKT_RX_MODE mode);
\r
129 extern BOOL PktSearchDriver (void);
\r
130 extern int PktReceive (BYTE *buf, int max);
\r
131 extern BOOL PktTransmit (const void *eth, int len);
\r
132 extern DWORD PktRxDropped (void);
\r
133 extern BOOL PktReleaseHandle (WORD handle);
\r
134 extern BOOL PktTerminHandle (WORD handle);
\r
135 extern BOOL PktResetInterface (WORD handle);
\r
136 extern BOOL PktSetReceiverMode(PKT_RX_MODE mode);
\r
137 extern BOOL PktGetReceiverMode(PKT_RX_MODE *mode);
\r
138 extern BOOL PktGetStatistics (WORD handle);
\r
139 extern BOOL PktSessStatistics (WORD handle);
\r
140 extern BOOL PktResetStatistics(WORD handle);
\r
141 extern BOOL PktGetAddress (ETHER *addr);
\r
142 extern BOOL PktSetAddress (const ETHER *addr);
\r
143 extern BOOL PktGetDriverInfo (void);
\r
144 extern BOOL PktGetDriverParam (void);
\r
145 extern void PktQueueBusy (BOOL busy);
\r
146 extern WORD PktBuffersUsed (void);
\r
152 #endif /* __PKTDRVR_H */
\r