[build] Avoid strict-aliasing warnings when building with gcc 4.4
[people/lynusvaz/gpxe.git] / src / include / gpxe / udp.h
1 #ifndef _GPXE_UDP_H
2 #define _GPXE_UDP_H
3
4 /** @file
5  *
6  * UDP protocol
7  *
8  * This file defines the gPXE UDP API.
9  *
10  */
11
12 #include <stddef.h>
13 #include <gpxe/iobuf.h>
14 #include <gpxe/tcpip.h>
15 #include <gpxe/if_ether.h>
16
17 struct xfer_interface;
18
19 /**
20  * UDP constants
21  */
22
23 #define UDP_MAX_HLEN    72
24 #define UDP_MAX_TXIOB   ETH_MAX_MTU
25 #define UDP_MIN_TXIOB   ETH_ZLEN
26
27 /**
28  * A UDP header
29  */
30 struct udp_header {
31         /** Source port */
32         uint16_t src;
33         /** Destination port */
34         uint16_t dest;
35         /** Length */
36         uint16_t len;
37         /** Checksum */
38         uint16_t chksum;
39 };
40
41 extern int udp_open_promisc ( struct xfer_interface *xfer );
42 extern int udp_open ( struct xfer_interface *xfer, struct sockaddr *peer,
43                       struct sockaddr *local );
44
45 #endif /* _GPXE_UDP_H */
46