From a078d6f0ab707dd43aac94b029ebf23ab5e92f6a Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Tue, 22 May 2012 12:06:20 +0200 Subject: network/bootp: PR2031: Add and use header file --- cpukit/libnetworking/Makefile.am | 1 + cpukit/libnetworking/nfs/bootp_subr.c | 16 ++------- cpukit/libnetworking/rtems/bootp.h | 41 ++++++++++++++++++++++ cpukit/libnetworking/rtems/rtems_bootp.c | 2 ++ cpukit/libnetworking/rtems/rtems_bsdnet_internal.h | 1 - cpukit/libnetworking/rtems/rtems_dhcp.c | 26 +++----------- 6 files changed, 50 insertions(+), 37 deletions(-) create mode 100644 cpukit/libnetworking/rtems/bootp.h (limited to 'cpukit') diff --git a/cpukit/libnetworking/Makefile.am b/cpukit/libnetworking/Makefile.am index 54f144f459..7f2481c68c 100644 --- a/cpukit/libnetworking/Makefile.am +++ b/cpukit/libnetworking/Makefile.am @@ -8,6 +8,7 @@ include $(top_srcdir)/automake/compile.am AM_CPPFLAGS += -I$(srcdir) EXTRA_DIST = README +EXTRA_DIST += rtems/bootp.h # poll is not supported UNUSED_FILES = poll.h diff --git a/cpukit/libnetworking/nfs/bootp_subr.c b/cpukit/libnetworking/nfs/bootp_subr.c index e976227d4d..5375b66fb6 100644 --- a/cpukit/libnetworking/nfs/bootp_subr.c +++ b/cpukit/libnetworking/nfs/bootp_subr.c @@ -74,6 +74,8 @@ #include #include +#include "rtems/bootp.h" + #define BOOTP_MIN_LEN 300 /* Minimum size of bootp udp packet */ /* @@ -138,20 +140,6 @@ void bootpboot_p_rtlist(void); 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 void bootpboot_p_sa(struct sockaddr *sa, struct sockaddr *ma) diff --git a/cpukit/libnetworking/rtems/bootp.h b/cpukit/libnetworking/rtems/bootp.h new file mode 100644 index 0000000000..d8eeb76f8f --- /dev/null +++ b/cpukit/libnetworking/rtems/bootp.h @@ -0,0 +1,41 @@ +/* Subroutines from cpukit/libnetworking/nfs/bootp_subr.c */ + +#if !defined (__RTEMS_BOOTP_H__) +#define __RTEMS_BOOTP_H__ + +#include + +#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 diff --git a/cpukit/libnetworking/rtems/rtems_bootp.c b/cpukit/libnetworking/rtems/rtems_bootp.c index caf2faa6e2..6a644a414d 100644 --- a/cpukit/libnetworking/rtems/rtems_bootp.c +++ b/cpukit/libnetworking/rtems/rtems_bootp.c @@ -12,6 +12,8 @@ #include #include +#include "rtems/bootp.h" + /* * Perform a BOOTP request */ diff --git a/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h b/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h index a22a22391c..8c9ab0442c 100644 --- a/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h +++ b/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h @@ -179,7 +179,6 @@ void domaininit (void *); void ifinit (void *); void ipintr (void); void arpintr (void); -bool bootpc_init(bool, bool); int socket (int, int, int); int ioctl (int, ioctl_command_t, ...); diff --git a/cpukit/libnetworking/rtems/rtems_dhcp.c b/cpukit/libnetworking/rtems/rtems_dhcp.c index f71d83e570..d941ee87d8 100644 --- a/cpukit/libnetworking/rtems/rtems_dhcp.c +++ b/cpukit/libnetworking/rtems/rtems_dhcp.c @@ -99,6 +99,7 @@ #include #include "rtems/dhcp.h" +#include "rtems/bootp.h" #ifndef EALEN #define EALEN 6 @@ -166,25 +167,6 @@ struct dhcp_packet 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); - /* * Variables */ @@ -757,7 +739,7 @@ dhcp_task (rtems_task_argument _sdl) /* * 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 (); printf ("DHCP call failed -- error %d", error); @@ -963,7 +945,7 @@ dhcp_init (int update_files) /* * 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)); soclose (so); @@ -992,7 +974,7 @@ dhcp_init (int update_files) */ 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)); soclose (so); -- cgit v1.2.3