xref: /titanic_41/usr/src/grub/grub-0.97/netboot/ip.h (revision 1b8adde7ba7d5e04395c141c5400dc2cffd7d809)
1*1b8adde7SWilliam Kucharski #ifndef	_IP_H
2*1b8adde7SWilliam Kucharski #define	_IP_H
3*1b8adde7SWilliam Kucharski 
4*1b8adde7SWilliam Kucharski /* We need 'uint16_t' */
5*1b8adde7SWilliam Kucharski #include "types.h"
6*1b8adde7SWilliam Kucharski /* We need 'in_addr' */
7*1b8adde7SWilliam Kucharski #include "in.h"
8*1b8adde7SWilliam Kucharski 
9*1b8adde7SWilliam Kucharski struct iphdr {
10*1b8adde7SWilliam Kucharski 	uint8_t  verhdrlen;
11*1b8adde7SWilliam Kucharski 	uint8_t  service;
12*1b8adde7SWilliam Kucharski 	uint16_t len;
13*1b8adde7SWilliam Kucharski 	uint16_t ident;
14*1b8adde7SWilliam Kucharski 	uint16_t frags;
15*1b8adde7SWilliam Kucharski 	uint8_t  ttl;
16*1b8adde7SWilliam Kucharski 	uint8_t  protocol;
17*1b8adde7SWilliam Kucharski 	uint16_t chksum;
18*1b8adde7SWilliam Kucharski 	in_addr src;
19*1b8adde7SWilliam Kucharski 	in_addr dest;
20*1b8adde7SWilliam Kucharski };
21*1b8adde7SWilliam Kucharski 
22*1b8adde7SWilliam Kucharski extern void build_ip_hdr(unsigned long __destip, int __ttl, int __protocol,
23*1b8adde7SWilliam Kucharski 			 int __option_len, int __len, const void * __buf);
24*1b8adde7SWilliam Kucharski 
25*1b8adde7SWilliam Kucharski extern int ip_transmit(int __len, const void * __buf);
26*1b8adde7SWilliam Kucharski 
27*1b8adde7SWilliam Kucharski extern uint16_t ipchksum(const void * __data, unsigned long __length);
28*1b8adde7SWilliam Kucharski 
29*1b8adde7SWilliam Kucharski extern uint16_t add_ipchksums(unsigned long __offset, uint16_t __sum,
30*1b8adde7SWilliam Kucharski 			      uint16_t __new);
31*1b8adde7SWilliam Kucharski 
32*1b8adde7SWilliam Kucharski 
33*1b8adde7SWilliam Kucharski 
34*1b8adde7SWilliam Kucharski 
35*1b8adde7SWilliam Kucharski 
36*1b8adde7SWilliam Kucharski #endif	/* _IP_H */
37