network/bootp: PR2031: Add and use header file

This commit is contained in:
Sebastien Bourdeauducq
2012-05-22 12:06:20 +02:00
committed by Sebastian Huber
parent eb1951a2d1
commit 6c18c97be0
6 changed files with 51 additions and 38 deletions

View File

@@ -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

View File

@@ -72,6 +72,8 @@
#include <rtems/bsdnet/servers.h>
#include <inttypes.h>
#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;

View File

@@ -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

View File

@@ -8,6 +8,8 @@
#include <rtems/rtems_bsdnet.h>
#include <rtems/rtems_bsdnet_internal.h>
#include "rtems/bootp.h"
/*
* Perform a BOOTP request
*/

View File

@@ -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, ...);

View File

@@ -99,6 +99,7 @@
#include <rtems/mkrootfs.h>
#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);