Index: cpukit/libnetworking/Makefile.am
===================================================================
--- cpukit/libnetworking/Makefile.am	(revision 89dd2ec437d998aa617bc4a61258a0692e4721ff)
+++ cpukit/libnetworking/Makefile.am	(revision a078d6f0ab707dd43aac94b029ebf23ab5e92f6a)
@@ -9,4 +9,5 @@
 
 EXTRA_DIST = README
+EXTRA_DIST += rtems/bootp.h
 
 # poll is not supported
Index: cpukit/libnetworking/nfs/bootp_subr.c
===================================================================
--- cpukit/libnetworking/nfs/bootp_subr.c	(revision 89dd2ec437d998aa617bc4a61258a0692e4721ff)
+++ cpukit/libnetworking/nfs/bootp_subr.c	(revision a078d6f0ab707dd43aac94b029ebf23ab5e92f6a)
@@ -75,4 +75,6 @@
 #include <inttypes.h>
 
+#include "rtems/bootp.h"
+
 #define BOOTP_MIN_LEN		300	/* Minimum size of bootp udp packet */
 
@@ -138,18 +140,4 @@
 void bootpboot_p_iflist(void);
 #endif
-
-int  bootpc_call(struct bootp_packet *call,
-		 struct bootp_packet *reply,
-		 struct proc *procp);
-
-int bootpc_fakeup_interface(struct ifreq *ireq,struct socket *so,
-			struct proc *procp);
-
-int 
-bootpc_adjust_interface(struct ifreq *ireq,struct socket *so,
-			struct sockaddr_in *myaddr,
-			struct sockaddr_in *netmask,
-			struct sockaddr_in *gw,
-			struct proc *procp);
 
 #ifdef BOOTP_DEBUG
Index: cpukit/libnetworking/rtems/bootp.h
===================================================================
--- cpukit/libnetworking/rtems/bootp.h	(revision a078d6f0ab707dd43aac94b029ebf23ab5e92f6a)
+++ cpukit/libnetworking/rtems/bootp.h	(revision a078d6f0ab707dd43aac94b029ebf23ab5e92f6a)
@@ -0,0 +1,41 @@
+/* Subroutines from cpukit/libnetworking/nfs/bootp_subr.c */
+
+#if !defined (__RTEMS_BOOTP_H__)
+#define __RTEMS_BOOTP_H__
+
+#include <stdbool.h>
+
+#if __cplusplus
+extern "C"
+{
+#endif
+
+struct bootp_packet;
+struct proc;
+struct ifreq;
+struct socket;
+struct sockaddr_in;
+
+bool bootpc_init(bool, bool);
+
+int bootpc_call(
+     struct bootp_packet *call,
+     struct bootp_packet *reply,
+     struct proc *procp);
+int bootpc_fakeup_interface(struct ifreq *ireq,
+                                    struct socket *so,
+                                    struct proc *procp);
+int bootpc_adjust_interface(struct ifreq *ireq,
+                                    struct socket *so,
+                                    struct sockaddr_in *myaddr,
+                                    struct sockaddr_in *netmask,
+                                    struct sockaddr_in *gw,
+                                    struct proc *procp);
+
+void *bootp_strdup_realloc(char *dst, const char *src);
+
+#if __cplusplus
+}
+#endif
+
+#endif
Index: cpukit/libnetworking/rtems/rtems_bootp.c
===================================================================
--- cpukit/libnetworking/rtems/rtems_bootp.c	(revision 89dd2ec437d998aa617bc4a61258a0692e4721ff)
+++ cpukit/libnetworking/rtems/rtems_bootp.c	(revision a078d6f0ab707dd43aac94b029ebf23ab5e92f6a)
@@ -12,4 +12,6 @@
 #include <rtems/rtems_bsdnet.h>
 #include <rtems/rtems_bsdnet_internal.h>
+
+#include "rtems/bootp.h"
 
 /*
Index: cpukit/libnetworking/rtems/rtems_bsdnet_internal.h
===================================================================
--- cpukit/libnetworking/rtems/rtems_bsdnet_internal.h	(revision 89dd2ec437d998aa617bc4a61258a0692e4721ff)
+++ cpukit/libnetworking/rtems/rtems_bsdnet_internal.h	(revision a078d6f0ab707dd43aac94b029ebf23ab5e92f6a)
@@ -180,5 +180,4 @@
 void ipintr (void);
 void arpintr (void);
-bool bootpc_init(bool, bool);
 int socket (int, int, int);
 int ioctl (int, ioctl_command_t, ...);
Index: cpukit/libnetworking/rtems/rtems_dhcp.c
===================================================================
--- cpukit/libnetworking/rtems/rtems_dhcp.c	(revision 89dd2ec437d998aa617bc4a61258a0692e4721ff)
+++ cpukit/libnetworking/rtems/rtems_dhcp.c	(revision a078d6f0ab707dd43aac94b029ebf23ab5e92f6a)
@@ -100,4 +100,5 @@
 
 #include "rtems/dhcp.h"
+#include "rtems/bootp.h"
 
 #ifndef EALEN
@@ -166,23 +167,4 @@
   unsigned char  vend[312];
 };
-
-/*
- * External Declarations for Functions found in
- * rtems/c/src/libnetworking/nfs/
- */
-extern int bootpc_call (struct dhcp_packet *call,
-                        struct dhcp_packet *reply,
-                        struct proc *procp);
-extern int bootpc_fakeup_interface (struct ifreq *ireq,
-                                    struct socket *so,
-                                    struct proc *procp);
-extern int bootpc_adjust_interface (struct ifreq *ireq,
-                                    struct socket *so,
-                                    struct sockaddr_in *myaddr,
-                                    struct sockaddr_in *netmask,
-                                    struct sockaddr_in *gw,
-                                    struct proc *procp);
-extern void *bootp_strdup_realloc (char *dst,
-                                   const char *src);
 
 /*
@@ -758,5 +740,5 @@
        * Send the Request.
        */
-      error = bootpc_call (&call, &dhcp_req, procp);
+      error = bootpc_call ((struct bootp_packet *)&call, (struct bootp_packet *)&dhcp_req, procp);
       if (error) {
         rtems_bsdnet_semaphore_release ();
@@ -964,5 +946,5 @@
    * Send the Discover.
    */
-  error = bootpc_call (&call, &reply, procp);
+  error = bootpc_call ((struct bootp_packet *)&call, (struct bootp_packet *)&reply, procp);
   if (error) {
     printf ("BOOTP call failed -- %s\n", strerror(error));
@@ -993,5 +975,5 @@
   dhcp_request_req (&call, &reply, sdl, true);
 
-  error = bootpc_call (&call, &reply, procp);
+  error = bootpc_call ((struct bootp_packet *)&call, (struct bootp_packet *)&reply, procp);
   if (error) {
     printf ("BOOTP call failed -- %s\n", strerror(error));
