Moved include/in.h to include/gpxe/in.h, so that it can be included by
prototester.
diff --git a/src/include/dns.h b/src/include/dns.h
index 33ee73f..c72c690 100644
--- a/src/include/dns.h
+++ b/src/include/dns.h
@@ -2,7 +2,7 @@
 #define DNS_RESOLVER_H
 
 #include "stdint.h"
-#include "in.h"
+#include <gpxe/in.h>
 #include "ip.h"
 #include "udp.h"
 
diff --git a/src/include/etherboot.h b/src/include/etherboot.h
index b9546c0..d8fcc98 100644
--- a/src/include/etherboot.h
+++ b/src/include/etherboot.h
@@ -133,7 +133,7 @@
 #define	RARP_REQUEST	3
 #define	RARP_REPLY	4
 
-#include	"in.h"
+#include <gpxe/in.h>
 
 
 /* Helper macros used to identify when DHCP options are valid/invalid in/outside of encapsulation */
diff --git a/src/include/in.h b/src/include/gpxe/in.h
similarity index 100%
rename from src/include/in.h
rename to src/include/gpxe/in.h
diff --git a/src/include/igmp.h b/src/include/igmp.h
index 48753ea..8b3292f 100644
--- a/src/include/igmp.h
+++ b/src/include/igmp.h
@@ -2,7 +2,7 @@
 #define	IGMP_H
 
 #include "stdint.h"
-#include "in.h"
+#include <gpxe/in.h>
 
 #define IGMP_QUERY	0x11
 #define IGMPv1_REPORT	0x12
diff --git a/src/include/ip.h b/src/include/ip.h
index 5c9b727..9da7f56 100644
--- a/src/include/ip.h
+++ b/src/include/ip.h
@@ -3,7 +3,7 @@
 
 #include "stddef.h"
 #include "stdint.h"
-#include "in.h"
+#include <gpxe/in.h>
 
 struct iphdr {
 	uint8_t  verhdrlen;
diff --git a/src/include/proto.h b/src/include/proto.h
index fb4e413..886d76e 100644
--- a/src/include/proto.h
+++ b/src/include/proto.h
@@ -3,7 +3,7 @@
 
 #include "tables.h"
 #include "buffer.h"
-#include "in.h"
+#include <gpxe/in.h>
 
 struct protocol {
 	char *name;
diff --git a/src/include/resolv.h b/src/include/resolv.h
index 1ca8a58..1c74081 100644
--- a/src/include/resolv.h
+++ b/src/include/resolv.h
@@ -1,7 +1,7 @@
 #ifndef RESOLV_H
 #define RESOLV_H
 
-#include "in.h"
+#include <gpxe/in.h>
 #include "tables.h"
 
 struct resolver {
diff --git a/src/include/tftp.h b/src/include/tftp.h
index 2a086eb..ae8f351 100644
--- a/src/include/tftp.h
+++ b/src/include/tftp.h
@@ -3,7 +3,7 @@
 
 /** @file */
 
-#include "in.h"
+#include <gpxe/in.h>
 #include "buffer.h"
 #include "nic.h"
 #include "ip.h"
@@ -139,6 +139,15 @@
 	 * TFTP server.  Note that the first data block is block 1; a
 	 * value of 0 indicates that no data blocks have yet been
 	 * received.
+	 *
+	 * For multicast TFTP protocols, where the blocks may not be
+	 * received in strict order, the meaning of this field changes
+	 * slightly, to "first missing block minus one".  For example,
+	 * suppose that we have received blocks 1, 2, 4 and 5; this
+	 * field would then have the value 2, since the first missing
+	 * block is block 3.  If the blocks do arrive in strict order,
+	 * this definition is exactly equivalent to "most recently
+	 * received block".
 	 */
 	unsigned int block;
 };
diff --git a/src/include/udp.h b/src/include/udp.h
index d06c599..7814c5f 100644
--- a/src/include/udp.h
+++ b/src/include/udp.h
@@ -3,7 +3,7 @@
 
 #include "stddef.h"
 #include "stdint.h"
-#include "in.h"
+#include <gpxe/in.h>
 #include "ip.h"
 
 struct udp_pseudo_hdr {
diff --git a/src/include/url.h b/src/include/url.h
index add34e3..f0207b9 100644
--- a/src/include/url.h
+++ b/src/include/url.h
@@ -2,7 +2,7 @@
 #define URL_H
 
 #include "proto.h"
-#include "in.h"
+#include <gpxe/in.h>
 
 extern int parse_url ( char *url, struct protocol **proto,
 		       struct sockaddr_in *server, char **filename );
diff --git a/src/proto/nfs.c b/src/proto/nfs.c
index 311409a..828aa87 100644
--- a/src/proto/nfs.c
+++ b/src/proto/nfs.c
@@ -1,7 +1,7 @@
 #include "etherboot.h"
 #include "init.h"
 #include "proto.h"
-#include "in.h"
+#include <gpxe/in.h>
 #include "nic.h"
 
 /* NOTE: the NFS code is heavily inspired by the NetBSD netboot code (read: