Merge branch 'master' of github.com:thepowersgang/acess2
[tpg/acess2.git] / KernelLand / Modules / IPStack / include / adapters_api.h
1 /*
2  * Acess2 Networking Stack
3  * - By John Hodge (thePowersGang)
4  *
5  * adapters_api.h
6  * - Network Adapter Management (API Header)
7  */
8 #ifndef _IPSTACK__ADAPTERS_API_H_
9 #define _IPSTACK__ADAPTERS_API_H_
10
11 #include "buffer.h"
12
13 enum eIPStack_AdapterTypes
14 {
15         ADAPTERTYPE_ETHERNET_10M,
16         ADAPTERTYPE_ETHERNET_100M,
17         ADAPTERTYPE_ETHERNET_1G
18 };
19
20 // Checksum offloading
21 #define ADAPTERFLAG_OFFLOAD_MAC (1 <<  0)
22 #define ADAPTERFLAG_OFFLOAD_IP4 (1 <<  1)
23 #define ADAPTERFLAG_OFFLOAD_80211q      (1 <<  2)
24 #define ADAPTERFLAG_OFFLOAD_TCP (1 <<  3)
25 #define ADAPTERFLAG_OFFLOAD_UDP (1 <<  4)
26
27 typedef struct sIPStack_AdapterType tIPStack_AdapterType;
28
29 struct sIPStack_AdapterType
30 {
31          int    Type;
32         Uint    Flags;
33         const char      *Name;
34         
35          int    (*SendPacket)(void *Card, tIPStackBuffer *Buffer);
36         tIPStackBuffer  *(*WaitForPacket)(void *Card);
37 };
38
39 extern void     *IPStack_Adapter_Add(const tIPStack_AdapterType *Type, void *Ptr, const void *HWAddr);
40 extern void     IPStack_Adapter_Del(void *Handle);
41
42 #endif
43

UCC git Repository :: git.ucc.asn.au