X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FModules%2FIPStack%2Fipv4.h;h=c31b751296f968649e34e47106eb765ef30aee07;hb=HEAD;hp=7c69a623893545d654c025881d7f40f60881491e;hpb=880dd63bfcba522dab0a75cc63fdec1d04ff8c89;p=tpg%2Facess2.git diff --git a/KernelLand/Modules/IPStack/ipv4.h b/KernelLand/Modules/IPStack/ipv4.h index 7c69a623..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,13 +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 Uint32 IPv4_Netmask(int FixedBits); -extern int IPv4_SendPacket(tInterface *Iface, tIPv4 Address, int Protocol, int ID, int Length, const void *Data); +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