From 2b2e73e28864f954880f7a8eac1d523d01f6774f Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 2 Sep 2007 15:32:03 +0000 Subject: Add ntohs&l() and htons&l git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@324 42af7a65-404d-4744-a932-0658087f49c3 --- nuttx/lib/Makefile | 37 ++++++++++++---------------- nuttx/lib/lib_htonl.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++ nuttx/lib/lib_htons.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 146 insertions(+), 21 deletions(-) create mode 100644 nuttx/lib/lib_htonl.c create mode 100644 nuttx/lib/lib_htons.c (limited to 'nuttx/lib') 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 + * + * 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 +#include + +/************************************************************ + * 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 + * + * 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 +#include + +/************************************************************ + * Global Functions + ************************************************************/ + +uint16 htons(uint16 hs) +{ + return HTONS(hs); +} + +uint16 ntohs (uint16 ns) +{ +#ifdef CONFIG_ENDIAN_BIG + return ns +#else + return htons(ns); +#endif +} -- cgit v1.2.3