From 6c18c97be0967c3c5cd1eb3ee4e964f6ca0dfd9d 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 | 18 ++-------- 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, 51 insertions(+), 38 deletions(-) create mode 100644 cpukit/libnetworking/rtems/bootp.h diff --git a/cpukit/libnetworking/Makefile.am b/cpukit/libnetworking/Makefile.am index 1a990988c4..927245b3ad 100644 --- a/cpukit/libnetworking/Makefile.am +++ b/cpukit/libnetworking/Makefile.am @@ -4,6 +4,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 75f6162aac..0645b89431 100644 --- a/cpukit/libnetworking/nfs/bootp_subr.c +++ b/cpukit/libnetworking/nfs/bootp_subr.c @@ -72,6 +72,8 @@ #include #include +#include "rtems/bootp.h" + #define BOOTP_MIN_LEN 300 /* Minimum size of bootp udp packet */ /* @@ -136,20 +138,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) @@ -269,7 +257,7 @@ bootpboot_p_iflist(void) * - allocate or reallocate dst, so that string fits in * - copy string from src to dest */ -static void *bootp_strdup_realloc(char *dst,const char *src) +void *bootp_strdup_realloc(char *dst,const char *src) { size_t len; 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 852d900a04..2743dc0a05 100644 --- a/cpukit/libnetworking/rtems/rtems_bootp.c +++ b/cpukit/libnetworking/rtems/rtems_bootp.c @@ -8,6 +8,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 d9be5af2d3..b7f79cb9be 100644 --- a/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h +++ b/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h @@ -173,7 +173,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 951f74d565..4039a48200 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 */ @@ -755,7 +737,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); @@ -960,7 +942,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); @@ -989,7 +971,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