Initialize Tizen 2.3
[external/libpcap.git] / msdos / pktdrvr.h
1 #ifndef __PKTDRVR_H\r
2 #define __PKTDRVR_H\r
3 \r
4 #define PUBLIC\r
5 #define LOCAL        static\r
6 \r
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
9 \r
10 #ifdef __HIGHC__\r
11 #pragma Off(Align_members)\r
12 #else\r
13 #pragma pack(1)\r
14 #endif\r
15 \r
16 typedef enum  {                /* Packet-driver classes */\r
17         PD_ETHER      = 1,\r
18         PD_PRONET10   = 2,\r
19         PD_IEEE8025   = 3,\r
20         PD_OMNINET    = 4,\r
21         PD_APPLETALK  = 5,\r
22         PD_SLIP       = 6,\r
23         PD_STARTLAN   = 7,\r
24         PD_ARCNET     = 8,\r
25         PD_AX25       = 9,\r
26         PD_KISS       = 10,\r
27         PD_IEEE8023_2 = 11,\r
28         PD_FDDI8022   = 12,\r
29         PD_X25        = 13,\r
30         PD_LANstar    = 14,\r
31         PD_PPP        = 18\r
32       } PKT_CLASS;\r
33 \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
41       } PKT_RX_MODE;\r
42 \r
43 typedef struct {\r
44         char type[8];\r
45         char len;\r
46       } PKT_FRAME;\r
47 \r
48 \r
49 typedef struct {\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
68       } PKT_INFO;\r
69 \r
70 #define PKT_PARAM_SIZE  14    /* members majVer - postEOIintr */\r
71 \r
72 \r
73 typedef struct {\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
81       } PKT_STAT;\r
82                    \r
83 \r
84 typedef struct {\r
85         ETHER destin;\r
86         ETHER source;\r
87         WORD  proto;\r
88         BYTE  data [TX_BUF_SIZE];\r
89       } TX_ELEMENT;\r
90 \r
91 typedef struct {\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
99       } RX_ELEMENT;\r
100 \r
101 \r
102 #ifdef __HIGHC__\r
103 #pragma pop(Align_members)\r
104 #else\r
105 #pragma pack()\r
106 #endif\r
107 \r
108 \r
109 /*\r
110  * Prototypes for publics\r
111  */\r
112 \r
113 #ifdef __cplusplus\r
114 extern "C" {\r
115 #endif\r
116 \r
117 extern PKT_STAT    pktStat;     /* statistics for packets */\r
118 extern PKT_INFO    pktInfo;     /* packet-driver information */\r
119 \r
120 extern PKT_RX_MODE receiveMode;\r
121 extern ETHER       myAddress, ethBroadcast;\r
122 \r
123 extern BOOL  PktInitDriver (PKT_RX_MODE mode);\r
124 extern BOOL  PktExitDriver (void);\r
125 \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
147 \r
148 #ifdef __cplusplus\r
149 }\r
150 #endif\r
151 \r
152 #endif /* __PKTDRVR_H */\r
153 \r