X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Modules%2FIPStack%2Fipstack.h;h=78faf663809e1b17257cfb855cc54dbd2b360437;hb=775bf8013abe9fe4ef3d4883ea2e43bba2a84da1;hp=94fabbb5d346a7e5029c6172b4309fb4c08b9083;hpb=a4ce2e60f783c9e71447edc03f20f937b8abf35a;p=tpg%2Facess2.git diff --git a/Modules/IPStack/ipstack.h b/Modules/IPStack/ipstack.h index 94fabbb5..78faf663 100644 --- a/Modules/IPStack/ipstack.h +++ b/Modules/IPStack/ipstack.h @@ -13,6 +13,7 @@ typedef union uIPv6 tIPv6; typedef struct sMacAddr tMacAddr; typedef struct sAdapter tAdapter; typedef struct sInterface tInterface; +typedef struct sSocketFile tSocketFile; typedef void (*tIPCallback)(tInterface *Interface, void *Address, int Length, void *Buffer); @@ -34,6 +35,7 @@ struct sInterface { struct sInterface *Next; tVFS_Node Node; tAdapter *Adapter; + int TimeoutDelay; // Time in miliseconds before a connection times out int Type; // 0 for disabled, 4 for IPv4 and 6 for IPv6 union { struct { @@ -59,18 +61,30 @@ struct sAdapter { int NRef; tMacAddr MacAddr; + int DeviceLen; char Device[]; }; +/** + * \brief Describes a socket file definition + */ +struct sSocketFile +{ + struct sSocketFile *Next; + const char *Name; + + tVFS_Node *(*Init)(tInterface *Interface); +}; + static const tMacAddr cMAC_BROADCAST = {{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}}; #define MAC_SET(t,v) memcpy(&(t),&(v),sizeof(tMacAddr)) #define IP4_SET(t,v) (t).L = (v).L; #define IP6_SET(t,v) memcpy(&(t),&(v),sizeof(tIPv6)) -#define MAC_EQU(a,b) memcmp(&(a),&(b),sizeof(tMacAddr)) +#define MAC_EQU(a,b) (memcmp(&(a),&(b),sizeof(tMacAddr))==0) #define IP4_EQU(a,b) ((a).L==(b).L) -#define IP6_EQU(a,b) memcmp(&(a),&(b),sizeof(tIPv6)) +#define IP6_EQU(a,b) (memcmp(&(a),&(b),sizeof(tIPv6))==0) // === FUNCTIONS === #define htonb(v) (v) @@ -80,4 +94,6 @@ static const tMacAddr cMAC_BROADCAST = {{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}}; #define ntohs(in) BigEndian16(in) #define ntohl(in) BigEndian32(in) +extern int IPStack_AddFile(tSocketFile *File); + #endif