summaryrefslogtreecommitdiffstats
path: root/cpukit/libnetworking
diff options
context:
space:
mode:
authorChristian Mauderer <Christian.Mauderer@embedded-brains.de>2016-06-24 08:52:48 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-06-28 13:10:01 +0200
commit4c02385d8fa3110e4208e2cb8cb2d04d630cf85e (patch)
treeb25d3f48b8f34ff627b9d156c9c10e9391a46f3c /cpukit/libnetworking
parentlibnetworking: Import current <netinet/in.h> (diff)
downloadrtems-4c02385d8fa3110e4208e2cb8cb2d04d630cf85e.tar.bz2
libnetworking: Import current <arpa/inet.h>
Import the <arpa/inet.h> from current FreeBSD. Necessary due to changes in <netinet/in.h>. Remove BSD hack from <arpa/inet.h>. Clean up problems with htonl(). These functions are defined in <arpa/inet.h>. This lead to some problems because they are defined in <rtems/endian.h> too. Add NTOHL, ... to <rtems/rtems_bsdnet_internal.h>.
Diffstat (limited to 'cpukit/libnetworking')
-rw-r--r--cpukit/libnetworking/arpa/inet.h71
-rw-r--r--cpukit/libnetworking/arpa/nameser_compat.h2
-rw-r--r--cpukit/libnetworking/rtems/mkrootfs.c2
-rw-r--r--cpukit/libnetworking/rtems/mkrootfs.h2
-rw-r--r--cpukit/libnetworking/rtems/rtems_bsdnet_internal.h26
-rw-r--r--cpukit/libnetworking/rtems/rtems_dhcp_failsafe.c2
-rw-r--r--cpukit/libnetworking/rtems/rtems_glue.c3
-rw-r--r--cpukit/libnetworking/rtems/rtems_showifstat.c1
-rw-r--r--cpukit/libnetworking/rtems/rtems_showroute.c2
9 files changed, 73 insertions, 38 deletions
diff --git a/cpukit/libnetworking/arpa/inet.h b/cpukit/libnetworking/arpa/inet.h
index 6ea7e7063f..91e3a828ab 100644
--- a/cpukit/libnetworking/arpa/inet.h
+++ b/cpukit/libnetworking/arpa/inet.h
@@ -51,24 +51,34 @@
/*%
* @(#)inet.h 8.1 (Berkeley) 6/2/93
- * $FreeBSD: src/include/arpa/inet.h,v 1.33 2010/07/06 03:48:46 maxim Exp $
+ * $Id: inet.h,v 1.3 2005/04/27 04:56:16 sra Exp $
+ * $FreeBSD: head/include/arpa/inet.h 269867 2014-08-12 12:36:06Z ume $
*/
-
#ifndef _ARPA_INET_H_
#define _ARPA_INET_H_
/* External definitions for functions in inet(3). */
#include <sys/cdefs.h>
-#include <rtems/bsdnet/_types.h>
+#include <sys/_types.h>
/* Required for byteorder(3) functions. */
-#include <rtems/endian.h>
+#include <machine/endian.h>
#define INET_ADDRSTRLEN 16
#define INET6_ADDRSTRLEN 46
+#ifndef _UINT16_T_DECLARED
+typedef __uint16_t uint16_t;
+#define _UINT16_T_DECLARED
+#endif
+
+#ifndef _UINT32_T_DECLARED
+typedef __uint32_t uint32_t;
+#define _UINT32_T_DECLARED
+#endif
+
#ifndef _IN_ADDR_T_DECLARED
typedef uint32_t in_addr_t;
#define _IN_ADDR_T_DECLARED
@@ -79,6 +89,13 @@ typedef uint16_t in_port_t;
#define _IN_PORT_T_DECLARED
#endif
+#if __BSD_VISIBLE
+#ifndef _SIZE_T_DECLARED
+typedef __size_t size_t;
+#define _SIZE_T_DECLARED
+#endif
+#endif
+
/*
* XXX socklen_t is used by a POSIX.1-2001 interface, but not required by
* POSIX.1-2001.
@@ -95,32 +112,17 @@ struct in_addr {
#define _STRUCT_IN_ADDR_DECLARED
#endif
-#if !defined(__rtems__) /* RTEMS -- Why rename these? */
-/* XXX all new diversions!! argh!! */
-#if __BSD_VISIBLE
-#define inet_addr __inet_addr
-#define inet_aton __inet_aton
-#define inet_lnaof __inet_lnaof
-#define inet_makeaddr __inet_makeaddr
-#define inet_neta __inet_neta
-#define inet_netof __inet_netof
-#define inet_network __inet_network
-#define inet_net_ntop __inet_net_ntop
-#define inet_net_pton __inet_net_pton
-#define inet_cidr_ntop __inet_cidr_ntop
-#define inet_cidr_pton __inet_cidr_pton
-#define inet_ntoa __inet_ntoa
-#define inet_ntoa_r __inet_ntoa_r
-#define inet_pton __inet_pton
-#define inet_ntop __inet_ntop
-#define inet_nsap_addr __inet_nsap_addr
-#define inet_nsap_ntoa __inet_nsap_ntoa
-#endif /* __BSD_VISIBLE */
-#endif /* __rtems__ */
-
__BEGIN_DECLS
+#ifndef _BYTEORDER_PROTOTYPED
+#define _BYTEORDER_PROTOTYPED
+uint32_t htonl(uint32_t);
+uint16_t htons(uint16_t);
+uint32_t ntohl(uint32_t);
+uint16_t ntohs(uint16_t);
+#endif
+
in_addr_t inet_addr(const char *);
-char *inet_ntoa(struct in_addr);
+/*const*/ char *inet_ntoa(struct in_addr);
const char *inet_ntop(int, const void * __restrict, char * __restrict,
socklen_t);
int inet_pton(int, const char * __restrict, void * __restrict);
@@ -134,9 +136,22 @@ in_addr_t inet_netof(struct in_addr);
in_addr_t inet_network(const char *);
char *inet_net_ntop(int, const void *, int, char *, size_t);
int inet_net_pton(int, const char *, void *, size_t);
+char *inet_ntoa_r(struct in_addr, char *buf, socklen_t size);
+char *inet_cidr_ntop(int, const void *, int, char *, size_t);
+int inet_cidr_pton(int, const char *, void *, int *);
unsigned inet_nsap_addr(const char *, unsigned char *, int);
char *inet_nsap_ntoa(int, const unsigned char *, char *);
#endif /* __BSD_VISIBLE */
__END_DECLS
+#ifndef _BYTEORDER_FUNC_DEFINED
+#define _BYTEORDER_FUNC_DEFINED
+#define htonl(x) __htonl(x)
+#define htons(x) __htons(x)
+#define ntohl(x) __ntohl(x)
+#define ntohs(x) __ntohs(x)
+#endif
+
#endif /* !_ARPA_INET_H_ */
+
+/*! \file */
diff --git a/cpukit/libnetworking/arpa/nameser_compat.h b/cpukit/libnetworking/arpa/nameser_compat.h
index b38e42a1e7..8fcceaa6c1 100644
--- a/cpukit/libnetworking/arpa/nameser_compat.h
+++ b/cpukit/libnetworking/arpa/nameser_compat.h
@@ -40,7 +40,7 @@
#define __BIND 19950621 /* (DEAD) interface version stamp. */
-#include <rtems/endian.h>
+#include <sys/endian.h>
#if !defined(BYTE_ORDER) || \
(BYTE_ORDER != BIG_ENDIAN && BYTE_ORDER != LITTLE_ENDIAN && \
diff --git a/cpukit/libnetworking/rtems/mkrootfs.c b/cpukit/libnetworking/rtems/mkrootfs.c
index ccdebaf452..aaf670b6b1 100644
--- a/cpukit/libnetworking/rtems/mkrootfs.c
+++ b/cpukit/libnetworking/rtems/mkrootfs.c
@@ -36,10 +36,10 @@
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
-#include <arpa/inet.h>
#include <rtems/mkrootfs.h>
#include <rtems/libio.h>
+#include <rtems/endian.h>
/*
* A table a list of names and their modes.
diff --git a/cpukit/libnetworking/rtems/mkrootfs.h b/cpukit/libnetworking/rtems/mkrootfs.h
index 648b71197b..8bd443693b 100644
--- a/cpukit/libnetworking/rtems/mkrootfs.h
+++ b/cpukit/libnetworking/rtems/mkrootfs.h
@@ -21,7 +21,7 @@
#ifndef _RTEMS_MKROOTFS_H
#define _RTEMS_MKROOTFS_H
-#include <arpa/inet.h> /* in_addr_t */
+#include <sys/types.h> /* in_addr_t */
#include <rtems.h>
diff --git a/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h b/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h
index 7ede2c6121..10a1f62442 100644
--- a/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h
+++ b/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h
@@ -31,6 +31,7 @@ typedef __uintptr_t vm_size_t;
/* make sure we get the network versions of these */
#include <machine/types.h>
#include <machine/param.h>
+#include <machine/endian.h>
#include <sys/cdefs.h>
#include <sys/time.h>
@@ -105,7 +106,30 @@ typedef int boolean_t;
#define makedev(x,y) ((dev_t)(((x) << 8) | (y))) /* create dev_t */
#endif
-#include <rtems/endian.h>
+#ifndef _BYTEORDER_PROTOTYPED
+#define _BYTEORDER_PROTOTYPED
+__BEGIN_DECLS
+__uint32_t htonl(__uint32_t);
+__uint16_t htons(__uint16_t);
+__uint32_t ntohl(__uint32_t);
+__uint16_t ntohs(__uint16_t);
+__END_DECLS
+#endif
+
+#ifndef _BYTEORDER_FUNC_DEFINED
+#define _BYTEORDER_FUNC_DEFINED
+#define htonl(x) __htonl(x)
+#define htons(x) __htons(x)
+#define ntohl(x) __ntohl(x)
+#define ntohs(x) __ntohs(x)
+#endif /* !_BYTEORDER_FUNC_DEFINED */
+
+#define NTOHS(x) (x) = ntohs(x)
+#define HTONS(x) (x) = htons(x)
+#define NTOHL(x) (x) = ntohl(x)
+#define HTONL(x) (x) = htonl(x)
+
+in_addr_t inet_addr(const char *);
typedef quad_t rlim_t; /* resource limit */
typedef u_int32_t fixpt_t; /* fixed point number */
diff --git a/cpukit/libnetworking/rtems/rtems_dhcp_failsafe.c b/cpukit/libnetworking/rtems/rtems_dhcp_failsafe.c
index c491ad9655..46a411bc55 100644
--- a/cpukit/libnetworking/rtems/rtems_dhcp_failsafe.c
+++ b/cpukit/libnetworking/rtems/rtems_dhcp_failsafe.c
@@ -71,8 +71,6 @@ struct proc; /* Unused parameter of some functions. */
#include <net/if_var.h> /* for in_var.h */
#include <netinet/in_var.h> /* for in_aliasreq */
#include <sys/sockio.h> /* for ioctl definitions */
-#include <arpa/inet.h> /* for inet_addr, inet_ntop */
-
static int network_fail_timeout = RTEMS_DHCP_FAILSAFE_NETWORK_FAIL_TIMEOUT;
static int network_down_time = RTEMS_DHCP_FAILSAFE_NETWORK_DOWN_TIME;
diff --git a/cpukit/libnetworking/rtems/rtems_glue.c b/cpukit/libnetworking/rtems/rtems_glue.c
index e9b371f700..4081be85c6 100644
--- a/cpukit/libnetworking/rtems/rtems_glue.c
+++ b/cpukit/libnetworking/rtems/rtems_glue.c
@@ -30,7 +30,6 @@
#include <net/route.h>
#include <netinet/in.h>
#include <vm/vm.h>
-#include <arpa/inet.h>
#include <net/netisr.h>
#include <net/route.h>
@@ -830,6 +829,8 @@ rtems_bsdnet_log (int priority, const char *fmt, ...)
* IP header checksum routine for processors which don't have an inline version
*/
+struct ip;
+
u_int in_cksum_hdr(const struct ip *);
u_int
diff --git a/cpukit/libnetworking/rtems/rtems_showifstat.c b/cpukit/libnetworking/rtems/rtems_showifstat.c
index 50be6c8eff..2e06a8ce5c 100644
--- a/cpukit/libnetworking/rtems/rtems_showifstat.c
+++ b/cpukit/libnetworking/rtems/rtems_showifstat.c
@@ -15,7 +15,6 @@
#include <net/if_dl.h>
#include <net/if_types.h>
#include <netinet/in.h>
-#include <arpa/inet.h>
#include <rtems/rtems_bsdnet.h>
diff --git a/cpukit/libnetworking/rtems/rtems_showroute.c b/cpukit/libnetworking/rtems/rtems_showroute.c
index 44b4c3bd28..30545d26d1 100644
--- a/cpukit/libnetworking/rtems/rtems_showroute.c
+++ b/cpukit/libnetworking/rtems/rtems_showroute.c
@@ -19,8 +19,6 @@
#include <netinet/in.h>
-#include <arpa/inet.h>
-
/*
* We'll use the application versions of realloc and free.
*/