diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2007-09-02 15:32:03 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2007-09-02 15:32:03 +0000 |
commit | 2b2e73e28864f954880f7a8eac1d523d01f6774f (patch) | |
tree | 38515c77a611f98613ff7683fe68fdfaae420eee /nuttx | |
parent | 0fb0a1d66a5408016fbca4ea5bc72fca9327aed5 (diff) | |
download | px4-nuttx-2b2e73e28864f954880f7a8eac1d523d01f6774f.tar.gz px4-nuttx-2b2e73e28864f954880f7a8eac1d523d01f6774f.tar.bz2 px4-nuttx-2b2e73e28864f954880f7a8eac1d523d01f6774f.zip |
Add ntohs&l() and htons&l
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@324 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx')
-rw-r--r-- | nuttx/include/net/uip/uip.h | 32 | ||||
-rw-r--r-- | nuttx/include/netinet/in.h | 2 | ||||
-rw-r--r-- | nuttx/lib/Makefile | 37 | ||||
-rw-r--r-- | nuttx/lib/lib_htonl.c | 67 | ||||
-rw-r--r-- | nuttx/lib/lib_htons.c | 63 | ||||
-rw-r--r-- | nuttx/net/uip/uip.c | 5 |
6 files changed, 148 insertions, 58 deletions
diff --git a/nuttx/include/net/uip/uip.h b/nuttx/include/net/uip/uip.h index d0ed0dd3f..043d6d377 100644 --- a/nuttx/include/net/uip/uip.h +++ b/nuttx/include/net/uip/uip.h @@ -50,6 +50,7 @@ #include <sys/types.h> #include <nuttx/config.h> +#include <arpa/inet.h> #include <net/uip/uipopt.h> /**************************************************************************** @@ -1125,37 +1126,6 @@ struct uip_udp_conn *uip_udp_new(uip_ipaddr_t *ripaddr, uint16 rport); #define uip_ipaddr4(addr) (htons(((uint16 *)(addr))[1]) & 0xff) -/* Convert 16-bit quantity from host byte order to network byte order. - * - * This macro is primarily used for converting constants from host - * byte order to network byte order. For converting variables to - * network byte order, use the htons() function instead. - */ - -#ifndef HTONS -# if UIP_BYTE_ORDER == UIP_BIG_ENDIAN -# define HTONS(n) (n) -# else /* UIP_BYTE_ORDER == UIP_BIG_ENDIAN */ -# define HTONS(n) (uint16)((((uint16) (n)) << 8) | (((uint16) (n)) >> 8)) -# endif /* UIP_BYTE_ORDER == UIP_BIG_ENDIAN */ -#else -#error "HTONS already defined!" -#endif /* HTONS */ - -/* Convert 16-bit quantity from host byte order to network byte order. - * - * This function is primarily used for converting variables from host - * byte order to network byte order. For converting constants to - * network byte order, use the HTONS() macro instead. - */ - -#ifndef htons -uint16 htons(uint16 val); -#endif /* htons */ -#ifndef ntohs -#define ntohs htons -#endif - /* This function is called user code to set up the wait */ #define uip_event_wait(waitflags) uip_event_timedwait(waitflags,0) diff --git a/nuttx/include/netinet/in.h b/nuttx/include/netinet/in.h index ea6a6ab51..e2ed78363 100644 --- a/nuttx/include/netinet/in.h +++ b/nuttx/include/netinet/in.h @@ -40,7 +40,7 @@ * Included Files ****************************************************************************/ -#include <sys/type.h> +#include <sys/types.h> /**************************************************************************** * Public Type Definitions diff --git a/nuttx/lib/Makefile b/nuttx/lib/Makefile index 7c34c3d2d..13621ed4d 100644 --- a/nuttx/lib/Makefile +++ b/nuttx/lib/Makefile @@ -1,4 +1,4 @@ -############################################################ +############################################################################ # Makefile # # Copyright (C) 2007 Gregory Nutt. All rights reserved. @@ -14,7 +14,7 @@ # notice, this list of conditions and the following disclaimer in # the documentation and/or other materials provided with the # distribution. -# 3. Neither the name Gregory Nutt nor the names of its contributors may be +# 3. Neither the name NuttX nor the names of its contributors may be # used to endorse or promote products derived from this software # without specific prior written permission. # @@ -31,7 +31,7 @@ # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # -############################################################ +########################################################################### -include $(TOPDIR)/Make.defs @@ -45,29 +45,23 @@ ifneq ($(CONFIG_NFILE_STREAMS),0) MISC_SRCS += lib_streamsem.c endif -STRING_SRCS = lib_memset.c lib_memcpy.c lib_memcmp.c lib_memmove.c \ - lib_strcpy.c lib_strncpy.c lib_strcmp.c \ - lib_strlen.c lib_strdup.c lib_strtol.c lib_strchr.c lib_strrchr.c \ - lib_strspn.c lib_strcspn.c \ - lib_strtok.c lib_strtokr.c lib_strerror.c +STRING_SRCS = lib_memset.c lib_memcpy.c lib_memcmp.c lib_memmove.c lib_strcpy.c \ + lib_strncpy.c lib_strcmp.c lib_strlen.c lib_strdup.c lib_strtol.c lib_strchr.c \ + lib_strrchr.c lib_strspn.c lib_strcspn.c lib_strtok.c lib_strtokr.c \ + lib_strerror.c CTYPE_SRCS = -STDIO_SRCS = lib_printf.c lib_rawprintf.c lib_lowprintf.c \ - lib_sprintf.c lib_libsprintf.c lib_vsprintf.c lib_libvsprintf.c \ - lib_memstream.c lib_lowstream.c lib_nullstream.c \ +STDIO_SRCS = lib_printf.c lib_rawprintf.c lib_lowprintf.c lib_sprintf.c lib_libsprintf.c \ + lib_vsprintf.c lib_libvsprintf.c lib_memstream.c lib_lowstream.c lib_nullstream.c \ lib_sscanf.c ifneq ($(CONFIG_NFILE_DESCRIPTORS),0) STDIO_SRCS += lib_rawstream.c ifneq ($(CONFIG_NFILE_STREAMS),0) -STDIO_SRCS += lib_fopen.c lib_fclose.c \ - lib_fread.c lib_libfread.c lib_fgetc.c lib_fgets.c lib_gets.c \ - lib_fwrite.c lib_libfwrite.c lib_fflush.c \ - lib_fputc.c lib_puts.c lib_fputs.c \ - lib_ungetc.c \ - lib_vprintf.c lib_fprintf.c lib_vfprintf.c \ - lib_stdstream.c +STDIO_SRCS += lib_fopen.c lib_fclose.c lib_fread.c lib_libfread.c lib_fgetc.c lib_fgets.c \ + lib_gets.c lib_fwrite.c lib_libfwrite.c lib_fflush.c lib_fputc.c lib_puts.c \ + lib_fputs.c lib_ungetc.c lib_vprintf.c lib_fprintf.c lib_vfprintf.c lib_stdstream.c endif endif @@ -77,6 +71,8 @@ MATH_SRCS = lib_rint.c UNISTD_SRCS = lib_getopt.c +NET_SRCS = lib_htons.c lib_htonl.c + LIBGEN_SRCS = lib_basename.c lib_dirname.c SQ_SRCS = sq_addlast.c sq_addfirst.c sq_addafter.c \ @@ -85,9 +81,8 @@ SQ_SRCS = sq_addlast.c sq_addfirst.c sq_addafter.c \ DQ_SRCS = dq_addlast.c dq_addfirst.c dq_addafter.c dq_addbefore.c \ dq_rem.c dq_remlast.c dq_remfirst.c -CSRCS = $(MISC_SRCS) $(STRING_SRCS) $(CTYPE_SRCS) $(STDIO_SRCS) \ - $(STDLIB_SRCS) $(MATH_SRCS) $(UNISTD_SRCS) $(LIBGEN_SRCS) \ - $(SQ_SRCS) $(DQ_SRCS) +CSRCS = $(MISC_SRCS) $(STRING_SRCS) $(CTYPE_SRCS) $(STDIO_SRCS) $(STDLIB_SRCS) \ + $(MATH_SRCS) $(UNISTD_SRCS) $(NET_SRCS) $(LIBGEN_SRCS) $(SQ_SRCS) $(DQ_SRCS) COBJS = $(CSRCS:.c=$(OBJEXT)) SRCS = $(ASRCS) $(CSRCS) diff --git a/nuttx/lib/lib_htonl.c b/nuttx/lib/lib_htonl.c new file mode 100644 index 000000000..1cc5b6bcf --- /dev/null +++ b/nuttx/lib/lib_htonl.c @@ -0,0 +1,67 @@ +/************************************************************ + * lib_ntohl.c + * + * Copyright (C) 2007 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt <spudmonkey@racsa.co.cr> + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name Gregory Nutt nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************/ + +/************************************************************ + * Compilation Switches + ************************************************************/ + +/************************************************************ + * Included Files + ************************************************************/ + +#include <nuttx/config.h> +#include <arpa/inet.h> + +/************************************************************ + * Global Functions + ************************************************************/ + +uint32 htonl(uint32 hl) +{ +#ifdef CONFIG_ENDIAN_BIG + return hl; +#else + return (uint32)htons((uint16)((hl) << 16)) | (uint32)htons((uint16)((hl) & 0xffff)); +#endif +} + +uint32 ntohl(uint32 nl) +{ +#ifdef CONFIG_ENDIAN_BIG + return nl; +#else + return htonl(nl); +#endif +} diff --git a/nuttx/lib/lib_htons.c b/nuttx/lib/lib_htons.c new file mode 100644 index 000000000..7adf96f7d --- /dev/null +++ b/nuttx/lib/lib_htons.c @@ -0,0 +1,63 @@ +/************************************************************ + * lib_htons.c + * + * Copyright (C) 2007 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt <spudmonkey@racsa.co.cr> + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name Gregory Nutt nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************/ + +/************************************************************ + * Compilation Switches + ************************************************************/ + +/************************************************************ + * Included Files + ************************************************************/ + +#include <nuttx/config.h> +#include <arpa/inet.h> + +/************************************************************ + * Global Functions + ************************************************************/ + +uint16 htons(uint16 hs) +{ + return HTONS(hs); +} + +uint16 ntohs (uint16 ns) +{ +#ifdef CONFIG_ENDIAN_BIG + return ns +#else + return htons(ns); +#endif +} diff --git a/nuttx/net/uip/uip.c b/nuttx/net/uip/uip.c index f997072d9..7fa2e3b7e 100644 --- a/nuttx/net/uip/uip.c +++ b/nuttx/net/uip/uip.c @@ -2157,11 +2157,6 @@ void uip_interrupt(uint8 flag) return; } -uint16 htons(uint16 val) -{ - return HTONS(val); -} - void uip_send(const void *data, int len) { if (len > 0) |