X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FModules%2FIPStack%2Fipv4.h;h=c31b751296f968649e34e47106eb765ef30aee07;hb=e14ac96d48bb4ef5cfc845e345df4770e1145ceb;hp=2c3e1cae865cd3f479d7949c0e3d55883b6607e5;hpb=48743e39650eb1ef988380e9d95f27fd40d3a9ce;p=tpg%2Facess2.git diff --git a/KernelLand/Modules/IPStack/ipv4.h b/KernelLand/Modules/IPStack/ipv4.h index 2c3e1cae..c31b7512 100644 --- a/KernelLand/Modules/IPStack/ipv4.h +++ b/KernelLand/Modules/IPStack/ipv4.h @@ -6,6 +6,7 @@ #define _IPV4_H_ #include "ipstack.h" +#include "include/buffer.h" typedef struct sIPv4Header tIPv4Header; @@ -41,12 +42,16 @@ struct sIPv4Header #define IP4PROT_ICMP 1 #define IP4PROT_TCP 6 #define IP4PROT_UDP 17 +#define IPV4_BUFFERS 3 // 1 + Link #define IPV4_ETHERNET_ID 0x0800 // === FUNCTIONS === -extern int IPv4_RegisterCallback(int ID, tIPCallback Callback); +extern int IPv4_RegisterCallback(int ID, tIPRxCallback *RxCallback, tIPErrorCallback *ErrCallback); extern Uint16 IPv4_Checksum(const void *Buf, size_t Length); -extern int IPv4_SendPacket(tInterface *Iface, tIPv4 Address, int Protocol, int ID, int Length, const void *Data); +extern Uint32 IPv4_Netmask(int FixedBits); +extern int IPv4_SendPacket(tInterface *Iface, tIPv4 Address, int Protocol, int ID, tIPStackBuffer *Buffer); + +extern void IPv4_HandleError(tInterface *Iface, tIPErrorMode Mode, size_t Length, const void *Buf); #endif