diff options
Diffstat (limited to 'nuttx/libc')
313 files changed, 0 insertions, 34823 deletions
diff --git a/nuttx/libc/Kconfig b/nuttx/libc/Kconfig deleted file mode 100644 index 72a6a5346..000000000 --- a/nuttx/libc/Kconfig +++ /dev/null @@ -1,364 +0,0 @@ -# -# For a description of the syntax of this configuration file, -# see misc/tools/kconfig-language.txt. -# - -comment "Standard C Library Options" - -config STDIO_BUFFER_SIZE - int "C STDIO buffer size" - default 64 - ---help--- - Size of buffers using within the C buffered I/O interfaces. - (printf, putchar, fwrite, etc.). - -config STDIO_LINEBUFFER - bool "STDIO line buffering" - default y - ---help--- - Flush buffer I/O whenever a newline character is found in - the output data stream. - -config NUNGET_CHARS - int "Number unget() characters" - default 2 - ---help--- - Number of characters that can be buffered by ungetc() (Only if NFILE_STREAMS > 0) - -config LIB_HOMEDIR - string "Home directory" - default "/" - depends on !DISABLE_ENVIRON - ---help--- - The home directory to use with operations like such as 'cd ~' - -source libc/math/Kconfig - -config NOPRINTF_FIELDWIDTH - bool "Disable sprintf support fieldwidth" - default n - ---help--- - sprintf-related logic is a - little smaller if we do not support fieldwidthes - -config LIBC_FLOATINGPOINT - bool "Enable floating point in printf" - default n - ---help--- - By default, floating point - support in printf, sscanf, etc. is disabled. - -choice - prompt "Newline Options" - default EOL_IS_EITHER_CRLF - ---help--- - This selection determines the line terminating character that is used. - Some environments may return CR as end-of-line, others LF, and others - both. If not specified, the default is either CR or LF (but not both) - as the line terminating charactor. - -config EOL_IS_CR - bool "EOL is CR" - -config EOL_IS_LF - bool "EOL is LF" - -config EOL_IS_BOTH_CRLF - bool "EOL is CR and LF" - -config EOL_IS_EITHER_CRLF - bool "EOL is CR or LF" - -endchoice - -config LIBC_EXECFUNCS - bool "Enable exec[l|v] / posix_spawn() Support" - default n - depends on !BINFMT_DISABLE - ---help--- - Enable support for the exec[l|v] family of functions that can be - used to start other programs, terminating the current program and - the posix_spawn() familty of functions that can be used start other - programs without terminating the current program. The typical - usage of the exec[l|v] functions is (1) first call vfork() to create - a new thread, then (2) call exec[l|v] to replace the new thread with - a program from the file system. - - NOTE 1: This two step process start is completely unnecessary in - NuttX and is provided only for compatibily with Unix systems. These - functions are essentially just wrapper functions that (1) call the - non-standard binfmt function 'exec', and then (2) exit(0). Since - the new thread will be terminated by the exec[l|v] call, it really - served no purpose other than to suport Unix compatility. - - The posix_spawn() functions do not have this inefficiency. - - NOTE 2: Support for exec[l|v] and posix_spawn() is conditional - because they require additional support for symbol tables that - will not be available in the typical system. - -if LIBC_EXECFUNCS - -config EXECFUNCS_SYMTAB - string "Symbol table used by exec[l|v]" - default "g_symtab" - ---help--- - The exec[l|v] and posix_spawn() functions are wrapper functions that - call the non-standard binfmt function 'exec'). The binfmt - function 'exec' needs to have (1) a symbol table that provides the - list of symbols exported by the base code, and (2) the number of - symbols in that table. This selection provides the name of that - symbol table. - -config EXECFUNCS_NSYMBOLS - int "Number of Symbols in the Table" - default 0 - ---help--- - The exec[l|v] and posix_spawn() functions are wrapper functions that - call the non-standard binfmt function 'exec'). The binfmt - function 'exec' needs to have (1) a symbol table that provides the - list of symbols exported by the base code, and (2) the number of - symbols in that table. This selection provides the number of - symbols in the symbol table. - -config POSIX_SPAWN_STACKSIZE - int "posix_spawn Stack Size" - default 1024 - ---help--- - If posix_spawn[p] uses I/O redirection options, then it will require - an intermediary/proxy task to muck with the file descriptors. This - configuration item specifies the stack size used for the proxy. Default: - 1024 bytes. - -endif - -config LIBC_STRERROR - bool "Enable strerror" - default n - ---help--- - strerror() is useful because it decodes 'errno' values into a human readable - strings. But it can also require a lot of memory. If this option is selected, - strerror() will still exist in the build but it will not decode error values. - This option should be used by other logic to decide if it should use strerror() - or not. For example, the NSH application will not use strerror() if this - option is not selected; perror() will not use strerror() is this option is not - selected (see also NSH_STRERROR). - -config LIBC_STRERROR_SHORT - bool "Use short error descriptions in strerror()" - default n - depends on LIBC_STRERROR - ---help--- - If this option is selected, then strerror() will use a shortened string when - it decodes the error. Specifically, strerror() is simply use the string that - is the common name for the error. For example, the 'errno' value of 2 will - produce the string "No such file or directory" is LIBC_STRERROR_SHORT - is not defined but the string "ENOENT" is LIBC_STRERROR_SHORT is defined. - -config LIBC_PERROR_STDOUT - bool "perror() to stdout" - default n - ---help--- - POSIX requires that perror() provide its output on stderr. This option may - be defined, however, to provide perror() output that is serialized with - other stdout messages. - -config ARCH_LOWPUTC - bool "Low-level console output" - default "y" - ---help--- - architecture supports low-level, boot time console output - -config LIB_SENDFILE_BUFSIZE - int "sendfile() buffer size" - default 512 - ---help--- - Size of the I/O buffer to allocate in sendfile(). Default: 512b - -config ARCH_ROMGETC - bool "Support for ROM string access" - default n - ---help--- - In Harvard architectures, data accesses and instruction accesses - occur on different busses, perhaps concurrently. All data accesses - are performed on the data bus unless special machine instructions - are used to read data from the instruction address space. Also, in - the typical MCU, the available SRAM data memory is much smaller that - the non-volatile FLASH instruction memory. So if the application - requires many constant strings, the only practical solution may be - to store those constant strings in FLASH memory where they can only - be accessed using architecture-specific machine instructions. - - If ARCH_ROMGETC is defined, then the architecture logic must export - the function up_romgetc(). up_romgetc() will simply read one byte - of data from the instruction space. - - If ARCH_ROMGETC, certain C stdio functions are effected: (1) All - format strings in printf, fprintf, sprintf, etc. are assumed to lie - in FLASH (string arguments for %s are still assumed to reside in SRAM). - And (2), the string argument to puts and fputs is assumed to reside - in FLASH. Clearly, these assumptions may have to modified for the - particular needs of your environment. There is no "one-size-fits-all" - solution for this problem. - -config ARCH_OPTIMIZED_FUNCTIONS - bool "Enable arch optimized functions" - default n - ---help--- - Allow for architecture optimized implementations of certain library - functions. Architecture-specific implementations can improve overall - system performance. - -if ARCH_OPTIMIZED_FUNCTIONS -config ARCH_MEMCPY - bool "memcpy()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of memcpy(). - -config MEMCPY_VIK - bool "Vik memcpy()" - default n - depends on !ARCH_MEMCPY - ---help--- - Select this option to use the optimized memcpy() function by Daniel Vik. - Select this option for improved performance at the expense of increased - size. See licensing information in the top-level COPYING file. - -if MEMCPY_VIK -config MEMCPY_PRE_INC_PTRS - bool "Pre-increment pointers" - default n - ---help--- - Use pre-increment of pointers. Default is post increment of pointers. - -config MEMCPY_INDEXED_COPY - bool "Array indexing" - default y - ---help--- - Copying data using array indexing. Using this option, disables the - MEMCPY_PRE_INC_PTRS option. - -config MEMCPY_64BIT - bool "64-bit memcpy()" - default n - ---help--- - Compiles memcpy() for architectures that suppport 64-bit operations - efficiently. - -endif - -config ARCH_MEMCMP - bool "memcmp()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of memcmp(). - -config ARCH_MEMMOVE - bool "memmove()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of memmove(). - -config ARCH_MEMSET - bool "memset()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of memset(). - -config MEMSET_OPTSPEED - bool "Optimize memset() for speed" - default n - depends on !ARCH_MEMSET - ---help--- - Select this option to use a version of memcpy() optimized for speed. - Default: memcpy() is optimized for size. - -config MEMSET_64BIT - bool "64-bit memset()" - default n - depends on MEMSET_OPTSPEED - ---help--- - Compiles memset() for architectures that suppport 64-bit operations - efficiently. - -config ARCH_STRCHR - bool "strchr()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of strchr(). - -config ARCH_STRCMP - bool "strcmp()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of strcmp(). - -config ARCH_STRCPY - bool "strcpy()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of strcpy(). - -config ARCH_STRNCPY - bool "strncpy()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of strncpy(). - -config ARCH_STRLEN - bool "strlen" - default n - ---help--- - Select this option if the architecture provides an optimized version - of strlen(). - -config ARCH_STRNLEN - bool "strlen()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of strnlen(). - -config ARCH_BZERO - bool "bzero()" - default n - ---help--- - Select this option if the architecture provides an optimized version - of bzero(). - -endif - -comment "Non-standard Helper Functions" - -config LIB_KBDCODEC - bool "Keyboard CODEC" - default n - ---help--- - In NuttX, a keyboard/keypad driver is simply a character driver that - may have an (optional) encoding/decoding layer on the data returned - by the character driver. A keyboard may return simple text data - (alphabetic, numeric, and punctuaction) or control characters - (enter, control-C, etc.). We can think about this the normal - "in-band" keyboard data stream. However, in addition, most - keyboards support actions that cannot be represented as text data. - Such actions include things like cursor controls (home, up arrow, - page down, etc.), editing functions (insert, delete, etc.), volume - controls, (mute, volume up, etc.) and other special functions. We - can think about this as special, "out-of-band" keyboard commands. - In this case, some special encoding may be required to multiplex - the in-band text data and out-of-band command streams. - - This option enables the functions that implement the encoding and - decoding of keyboard data. These are the interfaces prototyped in - include/nuttx/input/kbd_codec.h. While not correctly a part of - the C library, it is included here because the decoding side of this - interface must be accessible by end user programs. diff --git a/nuttx/libc/Makefile b/nuttx/libc/Makefile deleted file mode 100644 index a76620585..000000000 --- a/nuttx/libc/Makefile +++ /dev/null @@ -1,146 +0,0 @@ -############################################################################ -# libc/Makefile -# -# Copyright (C) 2007-2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -########################################################################### - --include $(TOPDIR)/Make.defs - -ASRCS = -CSRCS = - -DEPPATH := --dep-path . -VPATH := . - -include stdio/Make.defs -include stdlib/Make.defs -include unistd/Make.defs -include sched/Make.defs -include string/Make.defs -include pthread/Make.defs -include semaphore/Make.defs -include signal/Make.defs -include mqueue/Make.defs -include math/Make.defs -include fixedmath/Make.defs -include net/Make.defs -include time/Make.defs -include libgen/Make.defs -include dirent/Make.defs -include termios/Make.defs -include spawn/Make.defs -include queue/Make.defs -include misc/Make.defs - -AOBJS = $(ASRCS:.S=$(OBJEXT)) -COBJS = $(CSRCS:.c=$(OBJEXT)) - -SRCS = $(ASRCS) $(CSRCS) -OBJS = $(AOBJS) $(COBJS) - -UBIN = libuc$(LIBEXT) -KBIN = libkc$(LIBEXT) -BIN = libc$(LIBEXT) - -all: $(BIN) - -$(AOBJS): %$(OBJEXT): %.S - $(call ASSEMBLE, $<, $@) - -$(COBJS): %$(OBJEXT): %.c - $(call COMPILE, $<, $@) - -$(BIN): $(OBJS) - $(call ARCHIVE, $@, $(OBJS)) - -ifneq ($(BIN),$(UBIN)) -.userlib: - $(Q) $(MAKE) $(UBIN) BIN=$(UBIN) TOPDIR=$(TOPDIR) EXTRADEFINES=$(EXTRADEFINES) - $(Q) touch .userlib - -$(UBIN): kclean .userlib -endif - -ifneq ($(BIN),$(KBIN)) -.kernlib: - $(Q) $(MAKE) $(KBIN) BIN=$(KBIN) TOPDIR=$(TOPDIR) EXTRADEFINES=$(EXTRADEFINES) - $(Q) touch .kernlib - -$(KBIN): uclean .kernlib -endif - -.depend: Makefile $(SRCS) - $(Q) $(MKDEP) $(DEPPATH) "$(CC)" -- $(CFLAGS) -- $(SRCS) >Make.dep - $(Q) touch $@ - -depend: .depend - -# Clean Targets: -# Clean user-mode temporary files (retaining the UBIN binary) - -uclean: -ifneq ($(OBJEXT),) -ifeq ($(CONFIG_WINDOWS_NATIVE),y) - $(Q) if exist .userlib ]; then del *$(OBJEXT) -else - $(Q) ( if [ -f .userlib ]; then rm -f *$(OBJEXT); fi ) -endif -endif - $(call DELFILE, .userlib) - -# Clean kernel-mode temporary files (retaining the KBIN binary) - -kclean: -ifneq ($(OBJEXT),) -ifeq ($(CONFIG_WINDOWS_NATIVE),y) - $(Q) if exist .kernlib ]; then del *$(OBJEXT) -else - $(Q) ( if [ -f .kernlib ]; then rm -f *$(OBJEXT); fi ) -endif -endif - $(call DELFILE, .kernlib) - -# Really clean everything - -clean: uclean kclean - $(call DELFILE, $(BIN)) - $(call DELFILE, $(UBIN)) - $(call DELFILE, $(KBIN)) - $(call CLEAN) - -# Deep clean -- removes all traces of the configuration - -distclean: clean - $(call DELFILE, Make.dep) - $(call DELFILE, .depend) - --include Make.dep diff --git a/nuttx/libc/README.txt b/nuttx/libc/README.txt deleted file mode 100644 index ed672d038..000000000 --- a/nuttx/libc/README.txt +++ /dev/null @@ -1,85 +0,0 @@ -lib -=== - -This directory contains numerous, small functions typically associated with -what you would expect to find in a standard C library. The sub-directories -in this directory contain standard interface that can be executed by user- -mode programs. - -Normally, NuttX is built with no protection and all threads running in kerne- -mode. In that model, there is no real architectural distinction between -what is a kernel-mode program and what is a user-mode program; the system is -more like on multi-threaded program that all runs in kernel-mode. - -But if the CONFIG_NUTTX_KERNEL option is selected, NuttX will be built into -distinct user-mode and kernel-mode sections. In that case, most of the -code in the nuttx/ directory will run in kernel-mode with with exceptions -of (1) the user-mode "proxies" found in syscall/proxies, and (2) the -standard C library functions found in this directory. In this build model, -it is critical to separate the user-mode OS interfaces in this way. - -Sub-Directories -=============== - -The files in the libc/ directory are organized (mostly) according which file -in the include/ directory provides the prototype for library functions. So -we have: - - libgen - libgen.h - fixedmath - fixedmath.h - math - math.h - mqueue - pthread.h - net - Various network-related header files: netinet/ether.h, arpa/inet.h - pthread - pthread.h - queue - queue.h - sched - sched.h - semaphore - semaphore.h - stdio - stdio.h - stdlib - stdlib.h - string - string.h - time - time.h - unistd - unistd.h - -There is also a misc/ subdirectory that contains various internal functions -and interfaces from header files that are too few to warrant their own sub- -directory: - - misc - Nonstandard "glue" logic, debug.h, crc32.h, dirent.h - -Library Database -================ - -Information about functions available in the NuttX C library information is -maintained in a database. That "database" is implemented as a simple comma- -separated-value file, lib.csv. Most spreadsheets programs will accept this -format and can be used to maintain the library database. - -This library database will (eventually) be used to generate symbol library -symbol table information that can be exported to external applications. - -The format of the CSV file for each line is: - - Field 1: Function name - Field 2: The header file that contains the function prototype - Field 3: Condition for compilation - Field 4: The type of function return value. - Field 5 - N+5: The type of each of the N formal parameters of the function - -Each type field has a format as follows: - - type name: - For all simpler types - formal type | actual type: - For array types where the form of the formal (eg. int parm[2]) - differs from the type of actual passed parameter (eg. int*). This - is necessary because you cannot do simple casts to array types. - formal type | union member actual type | union member fieldname: - A similar situation exists for unions. For example, the formal - parameter type union sigval -- You cannot cast a uintptr_t to - a union sigval, but you can cast to the type of one of the union - member types when passing the actual paramter. Similarly, we - cannot cast a union sigval to a uinptr_t either. Rather, we need - to cast a specific union member fieldname to uintptr_t. - -NOTE: The tool mksymtab can be used to generate a symbol table from this CSV -file. See nuttx/tools/README.txt for further details about the use of mksymtab. diff --git a/nuttx/libc/dirent/Make.defs b/nuttx/libc/dirent/Make.defs deleted file mode 100644 index f2927bed8..000000000 --- a/nuttx/libc/dirent/Make.defs +++ /dev/null @@ -1,48 +0,0 @@ -############################################################################ -# libc/dirent/Make.defs -# -# Copyright (C) 2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -############################################################################ - -ifneq ($(CONFIG_NFILE_DESCRIPTORS),0) - -# Add the dirent C files to the build - -CSRCS += lib_readdirr.c lib_telldir.c - -# Add the dirent directory to the build - -DEPPATH += --dep-path dirent -VPATH += :dirent - -endif - diff --git a/nuttx/libc/dirent/lib_readdirr.c b/nuttx/libc/dirent/lib_readdirr.c deleted file mode 100644 index 93c99ac28..000000000 --- a/nuttx/libc/dirent/lib_readdirr.c +++ /dev/null @@ -1,122 +0,0 @@ -/**************************************************************************** - * libc/dirent/lib_readdirr.c - * - * Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <string.h> -#include <dirent.h> -#include <errno.h> - -#include <nuttx/fs/fs.h> - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: readdir_r - * - * Description: - * The readdir() function returns a pointer to a dirent - * structure representing the next directory entry in the - * directory stream pointed to by dir. It returns NULL on - * reaching the end-of-file or if an error occurred. - * - * Inputs: - * dirp -- An instance of type DIR created by a previous - * call to opendir(); - * entry -- The storage pointed to by entry must be large - * enough for a dirent with an array of char d_name - * members containing at least {NAME_MAX}+1 elements. - * result -- Upon successful return, the pointer returned - * at *result shall have the same value as the - * argument entry. Upon reaching the end of the directory - * stream, this pointer shall have the value NULL. - * - * Return: - * If successful, the readdir_r() function return s zero; - * otherwise, an error number is returned to indicate the - * error. - * - * EBADF - Invalid directory stream descriptor dir - * - ****************************************************************************/ - -int readdir_r(FAR DIR *dirp, FAR struct dirent *entry, - FAR struct dirent **result) -{ - struct dirent *tmp; - - /* NOTE: The following use or errno is *not* thread-safe */ - - set_errno(0); - tmp = readdir(dirp); - if (!tmp) - { - int error = get_errno(); - if (!error) - { - if (result) - { - *result = NULL; - } - return 0; - } - else - { - return error; - } - } - - if (entry) - { - memcpy(entry, tmp, sizeof(struct dirent)); - } - - if (result) - { - *result = entry; - } - return 0; -} - diff --git a/nuttx/libc/dirent/lib_telldir.c b/nuttx/libc/dirent/lib_telldir.c deleted file mode 100644 index f77a4a1c2..000000000 --- a/nuttx/libc/dirent/lib_telldir.c +++ /dev/null @@ -1,91 +0,0 @@ -/**************************************************************************** - * libc/dirent/fs_telldir.c - * - * Copyright (C) 2007-2008, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/types.h> -#include <dirent.h> -#include <errno.h> - -#include <nuttx/fs/fs.h> -#include <nuttx/fs/dirent.h> - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: telldir - * - * Description: - * The telldir() function returns the current location - * associated with the directory stream dirp. - * - * Inputs: - * dirp -- An instance of type DIR created by a previous - * call to opendir(); - * - * Return: - * On success, the telldir() function returns the current - * location in the directory stream. On error, -1 is - * returned, and errno is set appropriately. - * - * EBADF - Invalid directory stream descriptor dir - * - ****************************************************************************/ - -off_t telldir(FAR DIR *dirp) -{ - struct fs_dirent_s *idir = (struct fs_dirent_s *)dirp; - - if (!idir || !idir->fd_root) - { - set_errno(EBADF); - return (off_t)-1; - } - - /* Just return the current position */ - - return idir->fd_position; -} - diff --git a/nuttx/libc/fixedmath/Make.defs b/nuttx/libc/fixedmath/Make.defs deleted file mode 100644 index b53df2b2c..000000000 --- a/nuttx/libc/fixedmath/Make.defs +++ /dev/null @@ -1,43 +0,0 @@ -############################################################################ -# libc/fixedmath/Make.defs -# -# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -############################################################################ - -# Add the fixed precision math C files to the build - -CSRCS += lib_rint.c lib_fixedmath.c lib_b16sin.c lib_b16cos.c lib_b16atan2.c - -# Add the fixed precision math directory to the build - -DEPPATH += --dep-path fixedmath -VPATH += :fixedmath diff --git a/nuttx/libc/fixedmath/lib_b16atan2.c b/nuttx/libc/fixedmath/lib_b16atan2.c deleted file mode 100644 index 443ab7be3..000000000 --- a/nuttx/libc/fixedmath/lib_b16atan2.c +++ /dev/null @@ -1,108 +0,0 @@ -/**************************************************************************** - * libc/fixedmath/lib_b16atan2.c - * - * Copyright (C) 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <fixedmath.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -#define B16_C1 0x00000373 /* 0.013480470 */ -#define B16_C2 0x00000eb7 /* 0.057477314 */ -#define B16_C3 0x00001f0a /* 0.121239071 */ -#define B16_C4 0x00003215 /* 0.195635925 */ -#define B16_C5 0x0000553f /* 0.332994597 */ -#define B16_C6 0x00010000 /* 0.999995630 */ -#define B16_HALFPI 0x00019220 /* 1.570796327 */ -#define B16_PI 0x00032440 /* 3.141592654 */ - -#ifndef MAX -# define MAX(a,b) (a > b ? a : b) -#endif - -#ifndef MIN -# define MIN(a,b) (a < b ? a : b) -#endif - -#ifndef ABS -# define ABS(a) (a < 0 ? -a : a) -#endif - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: b16atan2 - * - * Description: - * atan2 calculates the arctangent of y/x. (Based on a algorithm I saw - * posted on the internet... now I have lost the link -- sorry). - * - ****************************************************************************/ - -b16_t b16atan2(b16_t y, b16_t x) -{ - b16_t t0; - b16_t t1; - b16_t t2; - b16_t t3; - - t2 = ABS(x); - t1 = ABS(y); - t0 = MAX(t2, t1); - t1 = MIN(t2, t1); - t2 = ub16inv(t0); - t2 = b16mulb16(t1, t2); - - t3 = b16mulb16(t2, t2); - t0 = - B16_C1; - t0 = b16mulb16(t0, t3) + B16_C2; - t0 = b16mulb16(t0, t3) - B16_C3; - t0 = b16mulb16(t0, t3) + B16_C4; - t0 = b16mulb16(t0, t3) - B16_C5; - t0 = b16mulb16(t0, t3) + B16_C6; - t2 = b16mulb16(t0, t2); - - t2 = (ABS(y) > ABS(x)) ? B16_HALFPI - t2 : t2; - t2 = (x < 0) ? B16_PI - t2 : t2; - t2 = (y < 0) ? -t2 : t2; - - return t2; -} diff --git a/nuttx/libc/fixedmath/lib_b16cos.c b/nuttx/libc/fixedmath/lib_b16cos.c deleted file mode 100644 index 0ebe48262..000000000 --- a/nuttx/libc/fixedmath/lib_b16cos.c +++ /dev/null @@ -1,64 +0,0 @@ -/**************************************************************************** - * libc/fixedmath/lib_b16cos.c - * - * Copyright (C) 2007, 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <fixedmath.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: b16cos - ****************************************************************************/ - -b16_t b16cos(b16_t rad) -{ - /* Compute cosine: sin(rad + PI/2) = cos(rad) */ - - rad += b16HALFPI; - if (rad > b16PI) - { - rad -= b16TWOPI; - } - return b16sin(rad); -} diff --git a/nuttx/libc/fixedmath/lib_b16sin.c b/nuttx/libc/fixedmath/lib_b16sin.c deleted file mode 100644 index 9cd2f0da3..000000000 --- a/nuttx/libc/fixedmath/lib_b16sin.c +++ /dev/null @@ -1,110 +0,0 @@ -/**************************************************************************** - * libc/fixedmath/lib_b16sin.c - * - * Copyright (C) 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <fixedmath.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -#define b16_P225 0x0000399a -#define b16_P405284735 0x000067c1 -#define b16_1P27323954 0x000145f3 - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: b16sin - * Ref: http://lab.polygonal.de/2007/07/18/fast-and-accurate-sinecosine-approximation/ - ****************************************************************************/ - -b16_t b16sin(b16_t rad) -{ - b16_t tmp1; - b16_t tmp2; - b16_t tmp3; - - /* Force angle into the good range */ - - if (rad < -b16PI) - { - rad += b16TWOPI; - } - else if (rad > b16PI) - { - rad -= b16TWOPI; - } - - /* tmp1 = 1.27323954 * rad - * tmp2 = .405284735 * rad * rad - */ - - - tmp1 = b16mulb16(b16_1P27323954, rad); - tmp2 = b16mulb16(b16_P405284735, b16sqr(rad)); - - if (rad < 0) - { - /* tmp3 = 1.27323954 * rad + .405284735 * rad * rad */ - - tmp3 = tmp1 + tmp2; - } - else - { - /* tmp3 = 1.27323954 * rad - 0.405284735 * rad * rad */ - - tmp3 = tmp1 - tmp2; - } - - /* tmp1 = tmp3*tmp3 */ - - tmp1 = b16sqr(tmp3); - if (tmp3 < 0) - { - /* tmp1 = tmp3 * -tmp3 */ - - tmp1 = -tmp1; - } - - /* Return sin = .225 * (tmp3 * (+/-tmp3) - tmp3) + tmp3 */ - - return b16mulb16(b16_P225, (tmp1 - tmp3)) + tmp3; -} diff --git a/nuttx/libc/fixedmath/lib_fixedmath.c b/nuttx/libc/fixedmath/lib_fixedmath.c deleted file mode 100644 index 9e9213b4f..000000000 --- a/nuttx/libc/fixedmath/lib_fixedmath.c +++ /dev/null @@ -1,272 +0,0 @@ -/**************************************************************************** - * libc/math/lib_fixedmath.c - * - * Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdint.h> -#include <stdbool.h> -#include <fixedmath.h> - -#ifndef CONFIG_HAVE_LONG_LONG - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Name: fixsign - ****************************************************************************/ - -static void fixsign(b16_t *parg1, b16_t *parg2, bool *pnegate) -{ - bool negate = false; - b16_t arg; - - arg = *parg1; - if (arg < 0) - { - *parg1 = -arg; - negate = true; - } - - arg = *parg2; - if (arg < 0) - { - *parg2 = -arg; - negate ^= true; - } - - *pnegate = negate; -} - -/**************************************************************************** - * Name: adjustsign - ****************************************************************************/ - -static b16_t adjustsign(b16_t result, bool negate) -{ - /* If the product is negative, then we overflowed */ - - if (result < 0) - { - if (result) - { - return b16MIN; - } - else - { - return b16MAX; - } - } - - /* correct the sign of the result */ - - if (negate) - { - return -result; - } - return result; -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: b16mulb16 - ****************************************************************************/ - -b16_t b16mulb16(b16_t m1, b16_t m2) -{ - bool negate; - b16_t product; - - fixsign(&m1, &m2, &negate); - product = (b16_t)ub16mulub16((ub16_t)m1, (ub16_t)m2); - return adjustsign(product, negate); -} - -/**************************************************************************** - * Name: ub16mulub16 - **************************************************************************/ - -ub16_t ub16mulub16(ub16_t m1, ub16_t m2) -{ - /* Let: - * - * m1 = m1i*2**16 + m1f (b16) - * m2 = m2i*2**16 + m2f (b16) - * - * Then: - * - * m1*m2 = (m1i*m2i)*2**32 + (m1i*m2f + m2i*m1f)*2**16 + m1f*m2f (b32) - * = (m1i*m2i)*2**16 + (m1i*m2f + m2i*m1f) + m1f*m2f*2**-16 (b16) - * = a*2**16 + b + c*2**-16 - */ - - uint32_t m1i = ((uint32_t)m1 >> 16); - uint32_t m2i = ((uint32_t)m1 >> 16); - uint32_t m1f = ((uint32_t)m1 & 0x0000ffff); - uint32_t m2f = ((uint32_t)m2 & 0x0000ffff); - - return (m1i*m2i << 16) + m1i*m2f + m2i*m1f + (((m1f*m2f) + b16HALF) >> 16); -} - -/**************************************************************************** - * Name: b16sqr - **************************************************************************/ - -b16_t b16sqr(b16_t a) -{ - b16_t sq; - - /* The result is always positive. Just take the absolute value */ - - if (a < 0) - { - a = -a; - } - - /* Overflow occurred if the result is negative */ - - sq = (b16_t)ub16sqr(a); - if (sq < 0) - { - sq = b16MAX; - } - return sq; -} - -/**************************************************************************** - * Name: b16divb16 - **************************************************************************/ - -ub16_t ub16sqr(ub16_t a) -{ - /* Let: - * - * m = mi*2**16 + mf (b16) - * - * Then: - * - * m*m = (mi*mi)*2**32 + 2*(m1*m2)*2**16 + mf*mf (b32) - * = (mi*mi)*2**16 + 2*(mi*mf) + mf*mf*2**-16 (b16) - */ - - uint32_t mi = ((uint32_t)a >> 16); - uint32_t mf = ((uint32_t)a & 0x0000ffff); - - return (mi*mi << 16) + (mi*mf << 1) + ((mf*mf + b16HALF) >> 16); -} - -/**************************************************************************** - * Name: b16divb16 - **************************************************************************/ - -b16_t b16divb16(b16_t num, b16_t denom) -{ - bool negate; - b16_t quotient; - - fixsign(&num, &denom, &negate); - quotient = (b16_t)ub16divub16((ub16_t)num, (ub16_t)denom); - return adjustsign(quotient, negate); -} - -/**************************************************************************** - * Name: ub16divub16 - **************************************************************************/ - -ub16_t ub16divub16(ub16_t num, ub16_t denom) -{ - uint32_t term1; - uint32_t numf; - uint32_t product; - - /* Let: - * - * num = numi*2**16 + numf (b16) - * den = deni*2**16 + denf (b16) - * - * Then: - * - * num/den = numi*2**16 / den + numf / den (b0) - * = numi*2**32 / den + numf*2**16 /den (b16) - */ - - /* Check for overflow in the first part of the quotient */ - - term1 = ((uint32_t)num & 0xffff0000) / denom; - if (term1 >= 0x00010000) - { - return ub16MAX; /* Will overflow */ - } - - /* Finish the division */ - - numf = num - term1 * denom; - term1 <<= 16; - product = term1 + (numf + (denom >> 1)) / denom; - - /* Check for overflow */ - - if (product < term1) - { - return ub16MAX; /* Overflowed */ - } - return product; -} - -#endif diff --git a/nuttx/libc/fixedmath/lib_rint.c b/nuttx/libc/fixedmath/lib_rint.c deleted file mode 100644 index a1212c970..000000000 --- a/nuttx/libc/fixedmath/lib_rint.c +++ /dev/null @@ -1,135 +0,0 @@ -/************************************************************ - * libc/fixedmath/lib_rint.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <sys/types.h> -#include <stdlib.h> - -/************************************************************ - * Definitions - ************************************************************/ - -/************************************************************ - * Private Type Declarations - ************************************************************/ - -/************************************************************ - * Private Function Prototypes - ************************************************************/ - -/********************************************************** - * Global Constant Data - **********************************************************/ - -/************************************************************ - * Global Variables - ************************************************************/ - -/********************************************************** - * Private Constant Data - **********************************************************/ - -/************************************************************ - * Private Variables - ************************************************************/ - -double_t rint(double_t x) -{ - double_t ret; - - /* If the current rounding mode rounds toward negative - * infinity, rint() is identical to floor(). If the current - * rounding mode rounds toward positive infinity, rint() is - * identical to ceil(). - */ - -#if defined(CONFIG_FP_ROUND_POSITIVE) && CONFIG_FP_ROUNDING_POSITIVE != 0 - - ret = ceil(x); - -#elif defined(CONFIG_FP_ROUND_NEGATIVE) && CONFIG_FP_ROUNDING_NEGATIVE != 0 - - ret = floor(x); - -#else - - /* In the default rounding mode (round to nearest), rint(x) is the - * integer nearest x with the additional stipulation that if - * |rint(x)-x|=1/2, then rint(x) is even. - */ - - long dwinteger = (long)x; - double_t fremainder = x - (double_t)dwinteger; - - if (x < 0.0) - { - /* fremainder should be in range 0 .. -1 */ - - if (fremainder == -0.5) - { - dwinteger = ((dwinteger+1)&~1); - } - else if (fremainder < -0.5) - { - dwinteger--; - } - } - else - { - /* fremainder should be in range 0 .. 1 */ - - if (fremainder == 0.5) - { - dwinteger = ((dwinteger+1)&~1); - } - else if (fremainder > 0.5) - { - dwinteger++; - } - } - - ret = (double_t)dwinteger; -#endif - - return ret; -} diff --git a/nuttx/libc/lib.csv b/nuttx/libc/lib.csv deleted file mode 100644 index 29cdf39a6..000000000 --- a/nuttx/libc/lib.csv +++ /dev/null @@ -1,171 +0,0 @@ -"_inet_ntoa","arpa/inet.h","!defined(CONFIG_NET_IPv6) && !defined(CONFIG_CAN_PASS_STRUCTS)","FAR char","in_addr_t" -"abort","stdlib.h","","void" -"abs","stdlib.h","","int","int" -"asprintf","stdio.h","","int","FAR char **","const char *","..." -"avsprintf","stdio.h","","int","FAR char **","const char *","va_list" -"b16atan2","fixedmath.h","","b16_t","b16_t","b16_t" -"b16cos","fixedmath.h","","b16_t","b16_t" -"b16divb16","fixedmath.h","","b16_t","b16_t","b16_t" -"b16mulb16","fixedmath.h","","b16_t","b16_t","b16_t" -"b16sin","fixedmath.h","","b16_t","b16_t" -"b16sqr","fixedmath.h","","b16_t","b16_t" -"basename","libgen.h","","FAR char","FAR char *" -"cfgetspeed","termios.h","CONFIG_NFILE_DESCRIPTORS > 0 && defined(CONFIG_SERIAL_TERMIOS)","speed_t","FAR const struct termios *" -"cfsetspeed","termios.h","CONFIG_NFILE_DESCRIPTORS > 0 && defined(CONFIG_SERIAL_TERMIOS)","int","FAR struct termios *","speed_t" -"chdir","unistd.h","CONFIG_NFILE_DESCRIPTORS > 0 && !defined(CONFIG_DISABLE_ENVIRON)","int","FAR const char *" -"crc32","crc32.h","","uint32_t","FAR const uint8_t *","size_t" -"crc32part","crc32.h","","uint32_t","FAR const uint8_t *","size_t","uint32_t" -"dbg","debug.h","!defined(CONFIG_CPP_HAVE_VARARGS) && defined(CONFIG_DEBUG)","int","const char *","..." -"dirname","libgen.h","","FAR char","FAR char *" -"dq_addafter","queue.h","","void","FAR dq_entry_t *","FAR dq_entry_t *","FAR dq_queue_t *" -"dq_addbefore","queue.h","","void","FAR dq_entry_t *","FAR dq_entry_t *","FAR dq_queue_t *" -"dq_addfirst","queue.h","","void","FAR dq_entry_t *","dq_queue_t *" -"dq_addlast","queue.h","","void","FAR dq_entry_t *","dq_queue_t *" -"dq_rem","queue.h","","void","FAR dq_entry_t *","dq_queue_t *" -"dq_remfirst","queue.h","","FAR dq_entry_t","dq_queue_t *" -"dq_remlast","queue.h","","FAR dq_entry_t","dq_queue_t *" -"ether_ntoa","netinet/ether.h","","FAR char","FAR const struct ether_addr *" -"fclose","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","int","FAR FILE *" -"fdopen","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","FAR FILE","int","FAR const char *" -"fflush","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","int","FAR FILE *" -"fgetc","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","int","FAR FILE *" -"fgetpos","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","int","FAR FILE *","FAR fpos_t *" -"fgets","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","FAR char","FAR char *","int","FAR FILE *" -"fileno","stdio.h","","int","FAR FILE *" -"fopen","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","FAR FILE","FAR const char *","FAR const char *" -"fprintf","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","int","FAR FILE *","FAR const char *","..." -"fputc","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","int","int c","FAR FILE *" -"fputs","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","int","FAR const char *","FAR FILE *" -"fread","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","size_t","FAR void *","size_t","size_t","FAR FILE *" -"fseek","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","int","FAR FILE *","long int","int" -"fsetpos","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","int","FAR FILE *","FAR fpos_t *" -"ftell","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","long","FAR FILE *" -"fwrite","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","size_t","FAR const void *","size_t","size_t","FAR FILE *" -"getcwd","unistd.h","CONFIG_NFILE_DESCRIPTORS > 0 && !defined(CONFIG_DISABLE_ENVIRON)","FAR char","FAR char *","size_t" -"getopt","unistd.h","","int","int","FAR char *const[]","FAR const char *" -"getoptargp","unistd.h","","FAR char *" -"getoptindp","unistd.h","","int" -"getoptoptp","unistd.h","","int" -"gets","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","FAR char","FAR char *" -"gmtime","time.h","","struct tm","const time_t *" -"gmtime_r","time.h","","FAR struct tm","FAR const time_t *","FAR struct tm *" -"htonl","arpa/inet.h","","uint32_t","uint32_t" -"htons","arpa/inet.h","","uint16_t","uint16_t" -"imaxabs","stdlib.h","","intmax_t","intmax_t" -"inet_addr","arpa/inet.h","","in_addr_t","FAR const char " -"inet_ntoa","arpa/inet.h","!defined(CONFIG_NET_IPv6) && defined(CONFIG_CAN_PASS_STRUCTS)","FAR char","struct in_addr" -"inet_ntop","arpa/inet.h","","FAR const char","int","FAR const void *","FAR char *","socklen_t" -"inet_pton","arpa/inet.h","","int","int","FAR const char *","FAR void *" -"labs","stdlib.h","","long int","long int" -"lib_dumpbuffer","debug.h","","void","FAR const char *","FAR const uint8_t *","unsigned int" -"llabs","stdlib.h","defined(CONFIG_HAVE_LONG_LONG)","long long int","long long int" -"lldbg","debug.h","!defined(CONFIG_CPP_HAVE_VARARGS) && defined(CONFIG_DEBUG) && defined(CONFIG_ARCH_LOWPUTC)","int","const char *","..." -"llvdbg","debug.h","!defined(CONFIG_CPP_HAVE_VARARGS) && defined(CONFIG_DEBUG) && defined(CONFIG_DEBUG_VERBOSE) && defined(CONFIG_ARCH_LOWPUTC)","int","const char *","..." -"lowsyslog","syslog.h","","int","FAR const char *","..." -"match","","","int","const char *","const char *" -"memccpy","string.h","","FAR void","FAR void *","FAR const void *","int c","size_t" -"memchr","string.h","","FAR void","FAR const void *","int c","size_t" -"memcmp","string.h","","int","FAR const void *","FAR const void *","size_t" -"memcpy","string.h","","FAR void","FAR void *","FAR const void *","size_t" -"memmove","string.h","","FAR void","FAR void *","FAR const void *","size_t" -"memset","string.h","","FAR void","FAR void *","int c","size_t" -"mktime","time.h","","time_t","const struct tm *" -"mq_getattr","mqueue.h","!defined(CONFIG_DISABLE_MQUEUE)","int","mqd_t","struct mq_attr *" -"mq_setattr","mqueue.h","!defined(CONFIG_DISABLE_MQUEUE)","int","mqd_t","const struct mq_attr *","struct mq_attr *" -"ntohl","arpa/inet.h","","uint32_t","uint32_t" -"ntohs","arpa/inet.h","","uint16_t","uint16_t" -"perror","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","void","FAR const char *" -"printf","stdio.h","","int","const char *","..." -"pthread_attr_destroy","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_attr_t *" -"pthread_attr_getinheritsched","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR const pthread_attr_t *","FAR int *" -"pthread_attr_getschedparam","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_attr_t *","FAR struct sched_param *" -"pthread_attr_getschedpolicy","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_attr_t *","int *" -"pthread_attr_getstacksize","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_attr_t *","FAR long *" -"pthread_attr_init","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_attr_t *" -"pthread_attr_setinheritsched","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_attr_t *","int" -"pthread_attr_setschedparam","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_attr_t *","FAR const struct sched_param *" -"pthread_attr_setschedpolicy","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_attr_t *","int" -"pthread_attr_setstacksize","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_attr_t *","long" -"pthread_barrierattr_destroy","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_barrierattr_t *" -"pthread_barrierattr_getpshared","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR const pthread_barrierattr_t *","FAR int *" -"pthread_barrierattr_init","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_barrierattr_t *" -"pthread_barrierattr_setpshared","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_barrierattr_t *","int" -"pthread_condattr_destroy","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_condattr_t *" -"pthread_condattr_init","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_condattr_t *" -"pthread_mutexattr_destroy","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_mutexattr_t *" -"pthread_mutexattr_getpshared","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_mutexattr_t *","FAR int *" -"pthread_mutexattr_gettype","pthread.h","!defined(CONFIG_DISABLE_PTHREAD) && defined(CONFIG_MUTEX_TYPES)","int","const pthread_mutexattr_t *","int *" -"pthread_mutexattr_init","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_mutexattr_t *" -"pthread_mutexattr_setpshared","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_mutexattr_t *","int " -"pthread_mutexattr_settype","pthread.h","!defined(CONFIG_DISABLE_PTHREAD) && defined(CONFIG_MUTEX_TYPES)","int","pthread_mutexattr_t *","int" -"puts","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","int","FAR const char *" -"qsort","stdlib.h","","void","void *","size_t","size_t","int(*)(const void *","const void *)" -"rand","stdlib.h","","int" -"readdir_r","dirent.h","CONFIG_NFILE_DESCRIPTORS > 0","int","FAR DIR *","FAR struct dirent *","FAR struct dirent **" -"rint","","","double_t","double_t" -"sched_get_priority_max","sched.h","","int","int" -"sched_get_priority_min","sched.h","","int","int" -"sem_getvalue","semaphore.h","","int","FAR sem_t *","FAR int *" -"sem_init","semaphore.h","","int","FAR sem_t *","int","unsigned int" -"sendfile","sys/sendfile.h","CONFIG_NSOCKET_DESCRIPTORS > 0 || CONFIG_NFILE_DESCRIPTORS > 0","ssize_t","int","int","off_t","size_t" -"sigaddset","signal.h","!defined(CONFIG_DISABLE_SIGNALS)","int","FAR sigset_t *","int" -"sigdelset","signal.h","!defined(CONFIG_DISABLE_SIGNALS)","int","FAR sigset_t *","int" -"sigemptyset","signal.h","!defined(CONFIG_DISABLE_SIGNALS)","int","FAR sigset_t *" -"sigfillset","signal.h","!defined(CONFIG_DISABLE_SIGNALS)","int","FAR sigset_t *" -"sigismember","signal.h","!defined(CONFIG_DISABLE_SIGNALS)","int","FAR const sigset_t *","int" -"snprintf","stdio.h","","int","FAR char *","size_t","const char *","..." -"sprintf","stdio.h","","int","FAR char *","const char *","..." -"sq_addafter","queue.h","","void","FAR sq_entry_t *","FAR sq_entry_t *","FAR sq_queue_t *" -"sq_addfirst","queue.h","","void","FAR sq_entry_t *","sq_queue_t *" -"sq_addlast","queue.h","","void","FAR sq_entry_t *","sq_queue_t *" -"sq_rem","queue.h","","void","FAR sq_entry_t *","sq_queue_t *" -"sq_remafter","queue.h","","FAR sq_entry_t","FAR sq_entry_t *","sq_queue_t *" -"sq_remfirst","queue.h","","FAR sq_entry_t","sq_queue_t *" -"sq_remlast","queue.h","","FAR sq_entry_t","sq_queue_t *" -"srand","stdlib.h","","void","unsigned int" -"sscanf","stdio.h","","int","const char *","const char *","..." -"strcasecmp","string.h","","int","FAR const char *","FAR const char *" -"strcasestr","string.h","","FAR char","FAR const char *","FAR const char *" -"strcat","string.h","","FAR char","FAR char *","FAR const char *" -"strchr","string.h","","FAR char","FAR const char *","int" -"strcmp","string.h","","int","FAR const char *","FAR const char *" -"strcpy","string.h","","FAR char","char *","FAR const char *" -"strcspn","string.h","","size_t","FAR const char *","FAR const char *" -"strdup","string.h","","FAR char","FAR const char *" -"strerror","string.h","","FAR const char","int" -"strftime","time.h","","size_t","char *","size_t","const char *","const struct tm *" -"strlen","string.h","","size_t","FAR const char *" -"strncasecmp","string.h","","int","FAR const char *","FAR const char *","size_t" -"strncat","string.h","","FAR char","FAR char *","FAR const char *","size_t" -"strncmp","string.h","","int","FAR const char *","FAR const char *","size_t" -"strncpy","string.h","","FAR char","char *","FAR const char *","size_t" -"strndup","string.h","","FAR char","FAR const char *","size_t" -"strnlen","string.h","","size_t","FAR const char *","size_t" -"strpbrk","string.h","","FAR char","FAR const char *","FAR const char *" -"strrchr","string.h","","FAR char","FAR const char *","int" -"strspn","string.h","","size_t","FAR const char *","FAR const char *" -"strstr","string.h","","FAR char","FAR const char *","FAR const char *" -"strtod","stdlib.h","","double_t","const char *str","char **endptr" -"strtok","string.h","","FAR char","FAR char *","FAR const char *" -"strtok_r","string.h","","FAR char","FAR char *","FAR const char *","FAR char **" -"strtol","string.h","","long","const char *","char **","int" -"strtoll","stdlib.h","defined(CONFIG_HAVE_LONG_LONG)","long long","const char *nptr","char **endptr","int base" -"strtoul","stdlib.h","","unsigned long","const char *","char **","int" -"strtoull","stdlib.h","defined(CONFIG_HAVE_LONG_LONG)","unsigned long long","const char *","char **","int" -"syslog","syslog.h","","int","FAR const char *","..." -"syslog_enable","syslog.h","defined(CONFIG_SYSLOG_ENABLE)","void","bool" -"tcflush","termios.h","CONFIG_NFILE_DESCRIPTORS > 0 && defined(CONFIG_SERIAL_TERMIOS)","int","int","int" -"tcgetattr","termios.h","CONFIG_NFILE_DESCRIPTORS > 0 && defined(CONFIG_SERIAL_TERMIOS)","int","int","FAR struct termios *" -"tcsetattr","termios.h","CONFIG_NFILE_DESCRIPTORS > 0 && defined(CONFIG_SERIAL_TERMIOS)","int","int","int","FAR const struct termios *" -"telldir","dirent.h","CONFIG_NFILE_DESCRIPTORS > 0","off_t","FAR DIR *" -"time","time.h","","time_t","time_t *" -"ub16divub16","fixedmath.h","","ub16_t","ub16_t","ub16_t" -"ub16mulub16","fixedmath.h","","ub16_t","ub16_t","ub16_t" -"ub16sqr","fixedmath.h","","ub16_t","ub16_t" -"ungetc","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","int","int","FAR FILE *" -"vdbg","debug.h","!defined(CONFIG_CPP_HAVE_VARARGS) && defined(CONFIG_DEBUG) && defined(CONFIG_DEBUG_VERBOSE)","int","const char *","..." -"vfprintf","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","int","FAR FILE *","const char *","va_list" -"vprintf","stdio.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","int","FAR const char *","va_list" -"vsnprintf","stdio.h","","int","FAR char *","size_t","const char *","va_list" -"vsprintf","stdio.h","","int","FAR char *","const char *","va_list" -"vsscanf","stdio.h","","int","char *","const char *","va_list" diff --git a/nuttx/libc/lib_internal.h b/nuttx/libc/lib_internal.h deleted file mode 100644 index efe895465..000000000 --- a/nuttx/libc/lib_internal.h +++ /dev/null @@ -1,212 +0,0 @@ -/**************************************************************************** - * libc/lib_internal.h - * - * Copyright (C) 2007-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -#ifndef __LIB_LIB_INTERNAL_H -#define __LIB_LIB_INTERNAL_H - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/types.h> -#include <stdbool.h> -#include <stdio.h> -#include <limits.h> -#include <semaphore.h> - -#include <nuttx/streams.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ -/* This configuration directory is used in environment variable processing - * when we need to reference the user's home directory. There are no user - * directories in NuttX so, by default, this always refers to the root - * directory. - */ - -#ifndef CONFIG_LIB_HOMEDIR -# define CONFIG_LIB_HOMEDIR "/" -#endif - -/* If C std I/O buffering is not supported, then we don't need its semaphore - * protection. - */ - -#if CONFIG_STDIO_BUFFER_SIZE <= 0 -# define lib_sem_initialize(s) -# define lib_take_semaphore(s) -# define lib_give_semaphore(s) -#endif - -/* The NuttX C library an be build in two modes: (1) as a standard, C-libary - * that can be used by normal, user-space applications, or (2) as a special, - * kernel-mode C-library only used within the OS. If NuttX is not being - * built as separated kernel- and user-space modules, then only the first - * mode is supported. - */ - -#if defined(CONFIG_NUTTX_KERNEL) && defined(__KERNEL__) -# include <nuttx/kmalloc.h> -# define lib_malloc(s) kmalloc(s) -# define lib_zalloc(s) kzalloc(s) -# define lib_realloc(p,s) krealloc(p,s) -# define lib_free(p) kfree(p) -#else -# include <stdlib.h> -# define lib_malloc(s) malloc(s) -# define lib_zalloc(s) zalloc(s) -# define lib_realloc(p,s) realloc(p,s) -# define lib_free(p) free(p) -#endif - -#define LIB_BUFLEN_UNKNOWN INT_MAX - -/**************************************************************************** - * Public Types - ****************************************************************************/ - -/**************************************************************************** - * Public Variables - ****************************************************************************/ - -/* Debug output is initially disabled */ - -#ifdef CONFIG_DEBUG_ENABLE -extern bool g_dbgenable; -#endif - -/**************************************************************************** - * Public Function Prototypes - ****************************************************************************/ - -/* Defined in lib_streamsem.c */ - -#if CONFIG_NFILE_STREAMS > 0 -void stream_semtake(FAR struct streamlist *list); -void stream_semgive(FAR struct streamlist *list); -#endif - -/* Defined in lib_libnoflush.c */ - -#ifdef CONFIG_STDIO_LINEBUFFER -int lib_noflush(FAR struct lib_outstream_s *this); -#endif - -/* Defined in lib_libsprintf.c */ - -int lib_sprintf(FAR struct lib_outstream_s *obj, - const char *fmt, ...); - -/* Defined lib_libvsprintf.c */ - -int lib_vsprintf(FAR struct lib_outstream_s *obj, - FAR const char *src, va_list ap); - -/* Defined lib_rawprintf.c */ - -int lib_rawvprintf(const char *src, va_list ap); -int lib_rawvdprintf(int fd, const char *fmt, va_list ap); - -/* Defined lib_lowprintf.c */ - -int lib_lowvprintf(const char *src, va_list ap); - -/* Defined in lib_dtoa.c */ - -#ifdef CONFIG_LIBC_FLOATINGPOINT -char *__dtoa(double d, int mode, int ndigits, int *decpt, int *sign, - char **rve); -#endif - -/* Defined in lib_libwrite.c */ - -ssize_t lib_fwrite(FAR const void *ptr, size_t count, FAR FILE *stream); - -/* Defined in lib_libfread.c */ - -ssize_t lib_fread(FAR void *ptr, size_t count, FAR FILE *stream); - -/* Defined in lib_libfflush.c */ - -ssize_t lib_fflush(FAR FILE *stream, bool bforce); - -/* Defined in lib_rdflush.c */ - -int lib_rdflush(FAR FILE *stream); - -/* Defined in lib_wrflush.c */ - -int lib_wrflush(FAR FILE *stream); - -/* Defined in lib_sem.c */ - -#if CONFIG_STDIO_BUFFER_SIZE > 0 -void lib_sem_initialize(FAR struct file_struct *stream); -void lib_take_semaphore(FAR struct file_struct *stream); -void lib_give_semaphore(FAR struct file_struct *stream); -#endif - -/* Defined in lib_libgetbase.c */ - -int lib_getbase(const char *nptr, const char **endptr); - -/* Defined in lib_skipspace.c */ - -void lib_skipspace(const char **pptr); - -/* Defined in lib_isbasedigit.c */ - -bool lib_isbasedigit(int ch, int base, int *value); - -/* Defined in lib_checkbase.c */ - -int lib_checkbase(int base, const char **pptr); - -/* Defined in lib_expi.c */ - -#ifdef CONFIG_LIBM -double lib_expi(size_t n); -#endif - -/* Defined in lib_libsqrtapprox.c */ - -#ifdef CONFIG_LIBM -float lib_sqrtapprox(float x); -#endif - -#endif /* __LIB_LIB_INTERNAL_H */ diff --git a/nuttx/libc/libgen/Make.defs b/nuttx/libc/libgen/Make.defs deleted file mode 100644 index 6e786655d..000000000 --- a/nuttx/libc/libgen/Make.defs +++ /dev/null @@ -1,43 +0,0 @@ -############################################################################ -# libc/libgen/Make.defs -# -# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -############################################################################ - -# Add the libgen C files to the build - -CSRCS += lib_basename.c lib_dirname.c - -# Add the libgen directory to the build - -DEPPATH += --dep-path libgen -VPATH += :libgen diff --git a/nuttx/libc/libgen/lib_basename.c b/nuttx/libc/libgen/lib_basename.c deleted file mode 100644 index 68188edbf..000000000 --- a/nuttx/libc/libgen/lib_basename.c +++ /dev/null @@ -1,131 +0,0 @@ -/**************************************************************************** - * libc/libgen/lib_basename.c - * - * Copyright (C) 2007, 2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <string.h> -#include <libgen.h> - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -static char g_retchar[2]; - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: basename - * - * Description: - * basename() extracts the filename component from a null-terminated - * pathname string. In the usual case, basename() returns the component - * following the final '/'. Trailing '/' characters are not counted as - * part of the pathname. - * - * If path does not contain a slash, basename() returns a copy of path. - * If path is the string "/", then basename() returns the string "/". If - * path is a NULL pointer or points to an empty string, then basename() - * return the string ".". - * - * basename() may modify the contents of path, so copies should be passed. - * basename() may return pointers to statically allocated memory which may - * be overwritten by subsequent calls. - * - * Parameter: - * path The null-terminated string referring to the path to be decomposed - * - * Return: - * On success the filename component of the path is returned. - * - ****************************************************************************/ - -FAR char *basename(FAR char *path) -{ - char *p; - int len; - int ch; - - /* Handle some corner cases */ - - if (!path || *path == '\0') - { - ch = '.'; - goto out_retchar; - } - - /* Check for trailing slash characters */ - - len = strlen(path); - while (path[len-1] == '/') - { - /* Remove trailing '/' UNLESS this would make a zero length string */ - if (len > 1) - { - path[len-1] = '\0'; - len--; - } - else - { - ch = '/'; - goto out_retchar; - } - } - - /* Get the address of the last '/' which is not at the end of the path and, - * therefor, must be just before the beginning of the filename component. - */ - - p = strrchr(path, '/'); - if (p) - { - return p + 1; - } - - /* There is no '/' in the path */ - - return path; - -out_retchar: - g_retchar[0] = ch; - g_retchar[1] = '\0'; - return g_retchar; -} diff --git a/nuttx/libc/libgen/lib_dirname.c b/nuttx/libc/libgen/lib_dirname.c deleted file mode 100644 index 6d076fd61..000000000 --- a/nuttx/libc/libgen/lib_dirname.c +++ /dev/null @@ -1,144 +0,0 @@ -/**************************************************************************** - * libc/libgen/lib_dirname.c - * - * Copyright (C) 2007, 2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <string.h> -#include <libgen.h> - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -static char g_retchar[2]; - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: dirname - * - * Description: - * dirname() extracts the directory component from a null-terminated - * pathname string. In the usual case, dirname() returns the string up - * to, but not including, the final '/'. Trailing '/' characters are not - * counted as part of the pathname. - * - * If path does not contain a slash, dirname() returns the string ".". If - * path is the string "/", then dirname() returns the string "/". If path - * is a NULL pointer or points to an empty string, then dirname() returns - * the string ".". - * - * dirname() may modify the contents of path, so copies should be passed. - * dirname() may return pointers to statically allocated memory which may - * be overwritten by subsequent calls. - * - * Parameter: - * path The null-terminated string referring to the path to be decomposed - * - * Return: - * On success the directory component of the path is returned. - * - ****************************************************************************/ - -FAR char *dirname(FAR char *path) -{ - char *p; - int len; - int ch; - - /* Handle some corner cases */ - - if (!path || *path == '\0') - { - ch = '.'; - goto out_retchar; - } - - /* Check for trailing slash characters */ - - len = strlen(path); - while (path[len-1] == '/') - { - /* Remove trailing '/' UNLESS this would make a zero length string */ - if (len > 1) - { - path[len-1] = '\0'; - len--; - } - else - { - ch = '/'; - goto out_retchar; - } - } - - /* Get the address of the last '/' which is not at the end of the path and, - * therefor, must be the end of the directory component. - */ - - p = strrchr(path, '/'); - if (p) - { - /* Handle the case where the only '/' in the string is the at the beginning - * of the path. - */ - - if (p == path) - { - ch = '/'; - goto out_retchar; - } - - /* No, the directory component is the substring before the '/'. */ - - *p = '\0'; - return path; - } - - /* There is no '/' in the path */ - - ch = '.'; - -out_retchar: - g_retchar[0] = ch; - g_retchar[1] = '\0'; - return g_retchar; -} diff --git a/nuttx/libc/math/Kconfig b/nuttx/libc/math/Kconfig deleted file mode 100644 index db9dfae63..000000000 --- a/nuttx/libc/math/Kconfig +++ /dev/null @@ -1,26 +0,0 @@ -# -# For a description of the syntax of this configuration file, -# see misc/tools/kconfig-language.txt. -# - -config LIBM - bool "Standard Math library" - default n - depends on !ARCH_MATH_H - ---help--- - By default, no math library will be provided by NuttX. In this this case, it - is assumed that (1) no math library is required, or (2) you will be using the - math.h header file and the libm library provided by your toolchain. - - This is may be a very good choice is possible because your toolchain may have - have a highly optimized version of libm. - - Another possibility is that you have a custom, architecture-specific math - libary and that the corresponding math.h file resides at arch/<architecture>/include/math.h. - The option is selected via ARCH_MATH_H. If ARCH_MATH_H is selected,then the include/nuttx/math.h - header file will be copied to include/math.h where it can be used by your applications. - - If ARCH_MATH_H is not defined, then this option can be selected to build a generic, - math library built into NuttX. This math library comes from the Rhombus OS and - was written by Nick Johnson. The Rhombus OS math library port was contributed by - Darcy Gong. diff --git a/nuttx/libc/math/Make.defs b/nuttx/libc/math/Make.defs deleted file mode 100644 index ece25f4e5..000000000 --- a/nuttx/libc/math/Make.defs +++ /dev/null @@ -1,62 +0,0 @@ -############################################################################ -# libc/math/Make.defs -# -# Copyright (C) 2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -############################################################################ - -ifeq ($(CONFIG_LIBM),y) - -# Add the floating point math C files to the build - -CSRCS += lib_acosf.c lib_asinf.c lib_atan2f.c lib_atanf.c lib_ceilf.c lib_cosf.c -CSRCS += lib_coshf.c lib_expf.c lib_fabsf.c lib_floorf.c lib_fmodf.c lib_frexpf.c -CSRCS += lib_ldexpf.c lib_logf.c lib_log10f.c lib_log2f.c lib_modff.c lib_powf.c -CSRCS += lib_roundf.c lib_sinf.c lib_sinhf.c lib_sqrtf.c lib_tanf.c lib_tanhf.c - -CSRCS += lib_acos.c lib_asin.c lib_atan.c lib_atan2.c lib_ceil.c lib_cos.c -CSRCS += lib_cosh.c lib_exp.c lib_fabs.c lib_floor.c lib_fmod.c lib_frexp.c -CSRCS += lib_ldexp.c lib_log.c lib_log10.c lib_log2.c lib_modf.c lib_pow.c -CSRCS += lib_round.c lib_sin.c lib_sinh.c lib_sqrt.c lib_tan.c lib_tanh.c - -CSRCS += lib_acosl.c lib_asinl.c lib_atan2l.c lib_atanl.c lib_ceill.c lib_cosl.c -CSRCS += lib_coshl.c lib_expl.c lib_fabsl.c lib_floorl.c lib_fmodl.c lib_frexpl.c -CSRCS += lib_ldexpl.c lib_logl.c lib_log10l.c lib_log2l.c lib_modfl.c lib_powl.c -CSRCS += lib_roundl.c lib_sinl.c lib_sinhl.c lib_sqrtl.c lib_tanl.c lib_tanhl.c - -CSRCS += lib_libexpi.c lib_libsqrtapprox.c - -# Add the floating point math directory to the build - -DEPPATH += --dep-path math -VPATH += :math - -endif diff --git a/nuttx/libc/math/lib_acos.c b/nuttx/libc/math/lib_acos.c deleted file mode 100644 index 147003237..000000000 --- a/nuttx/libc/math/lib_acos.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************ - * libc/math/lib_acos.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double acos(double x) -{ - return (M_PI_2 - asin(x)); -} -#endif diff --git a/nuttx/libc/math/lib_acosf.c b/nuttx/libc/math/lib_acosf.c deleted file mode 100644 index 447b2767f..000000000 --- a/nuttx/libc/math/lib_acosf.c +++ /dev/null @@ -1,41 +0,0 @@ -/************************************************************************ - * libc/math/lib_acosf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float acosf(float x) -{ - return (M_PI_2 - asinf(x)); -} diff --git a/nuttx/libc/math/lib_acosl.c b/nuttx/libc/math/lib_acosl.c deleted file mode 100644 index a0f226238..000000000 --- a/nuttx/libc/math/lib_acosl.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************ - * libc/math/lib_acos.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double acosl(long double x) -{ - return (M_PI_2 - asinl(x)); -} -#endif diff --git a/nuttx/libc/math/lib_asin.c b/nuttx/libc/math/lib_asin.c deleted file mode 100644 index d9941a7e5..000000000 --- a/nuttx/libc/math/lib_asin.c +++ /dev/null @@ -1,69 +0,0 @@ -/************************************************************************ - * libc/math/lib_sin.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> -#include <float.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double asin(double x) -{ - long double y, y_sin, y_cos; - - y = 0; - - while (1) - { - y_sin = sin(y); - y_cos = cos(y); - - if (y > M_PI_2 || y < -M_PI_2) - { - y = fmod(y, M_PI); - } - - if (y_sin + DBL_EPSILON >= x && y_sin - DBL_EPSILON <= x) - { - break; - } - - y = y - (y_sin - x) / y_cos; - } - - return y; -} -#endif diff --git a/nuttx/libc/math/lib_asinf.c b/nuttx/libc/math/lib_asinf.c deleted file mode 100644 index 57e518acb..000000000 --- a/nuttx/libc/math/lib_asinf.c +++ /dev/null @@ -1,65 +0,0 @@ -/************************************************************************ - * libc/math/lib_sinf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> -#include <float.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float asinf(float x) -{ - long double y, y_sin, y_cos; - - y = 0; - - while (1) - { - y_sin = sinf(y); - y_cos = cosf(y); - - if (y > M_PI_2 || y < -M_PI_2) - { - y = fmodf(y, M_PI); - } - - if (y_sin + FLT_EPSILON >= x && y_sin - FLT_EPSILON <= x) - { - break; - } - - y = y - (y_sin - x) / y_cos; - } - - return y; -} - diff --git a/nuttx/libc/math/lib_asinl.c b/nuttx/libc/math/lib_asinl.c deleted file mode 100644 index 19f284e53..000000000 --- a/nuttx/libc/math/lib_asinl.c +++ /dev/null @@ -1,69 +0,0 @@ -/************************************************************************ - * libc/math/lib_sinl.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> -#include <float.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double asinl(long double x) -{ - long double y, y_sin, y_cos; - - y = 0; - - while (1) - { - y_sin = sinl(y); - y_cos = cosl(y); - - if (y > M_PI_2 || y < -M_PI_2) - { - y = fmodl(y, M_PI); - } - - if (y_sin + LDBL_EPSILON >= x && y_sin - LDBL_EPSILON <= x) - { - break; - } - - y = y - (y_sin - x) / y_cos; - } - - return y; -} -#endif diff --git a/nuttx/libc/math/lib_atan.c b/nuttx/libc/math/lib_atan.c deleted file mode 100644 index 44d68ece2..000000000 --- a/nuttx/libc/math/lib_atan.c +++ /dev/null @@ -1,48 +0,0 @@ -/************************************************************************ - * libc/math/lib_atan.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> -#include <stddef.h> -#include <stdint.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double atan(double x) -{ - return asin(x / sqrt(x * x + 1)); -} -#endif diff --git a/nuttx/libc/math/lib_atan2.c b/nuttx/libc/math/lib_atan2.c deleted file mode 100644 index 6d7d2ad48..000000000 --- a/nuttx/libc/math/lib_atan2.c +++ /dev/null @@ -1,86 +0,0 @@ -/************************************************************************ - * libc/math/lib_atan2.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double atan2(double y, double x) -{ - if (y == 0.0) - { - if (x >= 0.0) - { - return 0.0; - } - else - { - return M_PI; - } - } - else if (y > 0.0) - { - if (x == 0.0) - { - return M_PI_2; - } - else if (x > 0.0) - { - return atan(y / x); - } - else - { - return M_PI - atan(y / x); - } - } - else - { - if (x == 0.0) - { - return M_PI + M_PI_2; - } - else if (x > 0.0) - { - return 2 * M_PI - atan(y / x); - } - else - { - return M_PI + atan(y / x); - } - } -} -#endif diff --git a/nuttx/libc/math/lib_atan2f.c b/nuttx/libc/math/lib_atan2f.c deleted file mode 100644 index 7ff9af130..000000000 --- a/nuttx/libc/math/lib_atan2f.c +++ /dev/null @@ -1,81 +0,0 @@ -/************************************************************************ - * libc/math/lib_atan2f.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float atan2f(float y, float x) -{ - if (y == 0.0) - { - if (x >= 0.0) - { - return 0.0; - } - else - { - return M_PI; - } - } - else if (y > 0.0) - { - if (x == 0.0) - { - return M_PI_2; - } - else if (x > 0.0) - { - return atanf(y / x); - } - else - { - return M_PI - atanf(y / x); - } - } - else - { - if (x == 0.0) - { - return M_PI + M_PI_2; - } - else if (x > 0.0) - { - return 2 * M_PI - atanf(y / x); - } - else - { - return M_PI + atanf(y / x); - } - } -} diff --git a/nuttx/libc/math/lib_atan2l.c b/nuttx/libc/math/lib_atan2l.c deleted file mode 100644 index 48bfd06f3..000000000 --- a/nuttx/libc/math/lib_atan2l.c +++ /dev/null @@ -1,87 +0,0 @@ -/************************************************************************ - * libc/math/lib_atan2l.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double atan2l(long double y, long double x) -{ - - if (y == 0.0) - { - if (x >= 0.0) - { - return 0.0; - } - else - { - return M_PI; - } - } - else if (y > 0.0) - { - if (x == 0.0) - { - return M_PI_2; - } - else if (x > 0.0) - { - return atanl(y / x); - } - else - { - return M_PI - atanl(y / x); - } - } - else - { - if (x == 0.0) - { - return M_PI + M_PI_2; - } - else if (x > 0.0) - { - return 2 * M_PI - atanl(y / x); - } - else - { - return M_PI + atanl(y / x); - } - } -} -#endif diff --git a/nuttx/libc/math/lib_atanf.c b/nuttx/libc/math/lib_atanf.c deleted file mode 100644 index a84605787..000000000 --- a/nuttx/libc/math/lib_atanf.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************ - * libc/math/lib_atanf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> -#include <stddef.h> -#include <stdint.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float atanf(float x) -{ - return asinf(x / sqrtf(x * x + 1)); -} diff --git a/nuttx/libc/math/lib_atanl.c b/nuttx/libc/math/lib_atanl.c deleted file mode 100644 index 752d49307..000000000 --- a/nuttx/libc/math/lib_atanl.c +++ /dev/null @@ -1,48 +0,0 @@ -/************************************************************************ - * libc/math/lib_atanl.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> -#include <stddef.h> -#include <stdint.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double atanl(long double x) -{ - return asinl(x / sqrtl(x * x + 1)); -} -#endif diff --git a/nuttx/libc/math/lib_ceil.c b/nuttx/libc/math/lib_ceil.c deleted file mode 100644 index 3c6678dc1..000000000 --- a/nuttx/libc/math/lib_ceil.c +++ /dev/null @@ -1,52 +0,0 @@ -/************************************************************************ - * libc/math/lib_ceil.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double ceil(double x) -{ - modf(x, &x); - if (x > 0.0) - { - x += 1.0; - } - - return x; -} -#endif diff --git a/nuttx/libc/math/lib_ceilf.c b/nuttx/libc/math/lib_ceilf.c deleted file mode 100644 index afbe2cf13..000000000 --- a/nuttx/libc/math/lib_ceilf.c +++ /dev/null @@ -1,47 +0,0 @@ -/************************************************************************ - * libc/math/lib_ceilf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float ceilf(float x) -{ - modff(x, &x); - if (x > 0.0) - { - x += 1.0; - } - - return x; -} diff --git a/nuttx/libc/math/lib_ceill.c b/nuttx/libc/math/lib_ceill.c deleted file mode 100644 index 757016b53..000000000 --- a/nuttx/libc/math/lib_ceill.c +++ /dev/null @@ -1,52 +0,0 @@ -/************************************************************************ - * libc/math/lib_ceil;.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double ceill(long double x) -{ - modfl(x, &x); - if (x > 0.0) - { - x += 1.0; - } - - return x; -} -#endif diff --git a/nuttx/libc/math/lib_cos.c b/nuttx/libc/math/lib_cos.c deleted file mode 100644 index 4b4e1a20b..000000000 --- a/nuttx/libc/math/lib_cos.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************ - * libc/math/lib_cos.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double cos(double x) -{ - return sin(x + M_PI_2); -} -#endif diff --git a/nuttx/libc/math/lib_cosf.c b/nuttx/libc/math/lib_cosf.c deleted file mode 100644 index d9ac951f6..000000000 --- a/nuttx/libc/math/lib_cosf.c +++ /dev/null @@ -1,41 +0,0 @@ -/************************************************************************ - * libc/math/lib_cosf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float cosf(float x) -{ - return sinf(x + M_PI_2); -} diff --git a/nuttx/libc/math/lib_cosh.c b/nuttx/libc/math/lib_cosh.c deleted file mode 100644 index 3246ea5f9..000000000 --- a/nuttx/libc/math/lib_cosh.c +++ /dev/null @@ -1,47 +0,0 @@ -/************************************************************************ - * libc/math/lib_cosh.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double cosh(double x) -{ - x = exp(x); - return ((x + (1.0 / x)) / 2.0); -} -#endif diff --git a/nuttx/libc/math/lib_coshf.c b/nuttx/libc/math/lib_coshf.c deleted file mode 100644 index f0c28ab2e..000000000 --- a/nuttx/libc/math/lib_coshf.c +++ /dev/null @@ -1,42 +0,0 @@ -/************************************************************************ - * libc/math/lib_coshf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float coshf(float x) -{ - x = expf(x); - return ((x + (1.0 / x)) / 2.0); -} diff --git a/nuttx/libc/math/lib_coshl.c b/nuttx/libc/math/lib_coshl.c deleted file mode 100644 index 957ec61a7..000000000 --- a/nuttx/libc/math/lib_coshl.c +++ /dev/null @@ -1,47 +0,0 @@ -/************************************************************************ - * libc/math/lib_coshl.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double coshl(long double x) -{ - x = expl(x); - return ((x + (1.0 / x)) / 2.0); -} -#endif diff --git a/nuttx/libc/math/lib_cosl.c b/nuttx/libc/math/lib_cosl.c deleted file mode 100644 index 972d4aa9d..000000000 --- a/nuttx/libc/math/lib_cosl.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************ - * libc/math/lib_cosl.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double cosl(long double x) -{ - return sinl(x + M_PI_2); -} -#endif diff --git a/nuttx/libc/math/lib_exp.c b/nuttx/libc/math/lib_exp.c deleted file mode 100644 index 62494251d..000000000 --- a/nuttx/libc/math/lib_exp.c +++ /dev/null @@ -1,126 +0,0 @@ -/************************************************************************ - * libc/math/lib_exp.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <sys/types.h> -#include <math.h> - -#include "lib_internal.h" - -#ifdef CONFIG_HAVE_DOUBLE - -/************************************************************************ - * Private Data - ************************************************************************/ - -static double _dbl_inv_fact[] = -{ - 1.0 / 1.0, // 1 / 0! - 1.0 / 1.0, // 1 / 1! - 1.0 / 2.0, // 1 / 2! - 1.0 / 6.0, // 1 / 3! - 1.0 / 24.0, // 1 / 4! - 1.0 / 120.0, // 1 / 5! - 1.0 / 720.0, // 1 / 6! - 1.0 / 5040.0, // 1 / 7! - 1.0 / 40320.0, // 1 / 8! - 1.0 / 362880.0, // 1 / 9! - 1.0 / 3628800.0, // 1 / 10! - 1.0 / 39916800.0, // 1 / 11! - 1.0 / 479001600.0, // 1 / 12! - 1.0 / 6227020800.0, // 1 / 13! - 1.0 / 87178291200.0, // 1 / 14! - 1.0 / 1307674368000.0, // 1 / 15! - 1.0 / 20922789888000.0, // 1 / 16! - 1.0 / 355687428096000.0, // 1 / 17! - 1.0 / 6402373705728000.0, // 1 / 18! -}; - -/************************************************************************ - * Public Functions - ************************************************************************/ - -double exp(double x) -{ - size_t int_part; - bool invert; - double value; - double x0; - size_t i; - - if (x == 0) - { - return 1; - } - else if (x < 0) - { - invert = true; - x = -x; - } - else - { - invert = false; - } - - /* Extract integer component */ - - int_part = (size_t) x; - - /* Set x to fractional component */ - - x -= (double)int_part; - - /* Perform Taylor series approximation with nineteen terms */ - - value = 0.0; - x0 = 1.0; - for (i = 0; i < 19; i++) - { - value += x0 * _dbl_inv_fact[i]; - x0 *= x; - } - - /* Multiply by exp of the integer component */ - - value *= lib_expi(int_part); - - if (invert) - { - return (1.0 / value); - } - else - { - return value; - } -} -#endif diff --git a/nuttx/libc/math/lib_expf.c b/nuttx/libc/math/lib_expf.c deleted file mode 100644 index 3e43c54a6..000000000 --- a/nuttx/libc/math/lib_expf.c +++ /dev/null @@ -1,112 +0,0 @@ -/************************************************************************ - * libc/math/lib_expf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <sys/types.h> -#include <math.h> - -#include "lib_internal.h" - -/************************************************************************ - * Private Data - ************************************************************************/ - -static float _flt_inv_fact[] = -{ - 1.0 / 1.0, // 1/0! - 1.0 / 1.0, // 1/1! - 1.0 / 2.0, // 1/2! - 1.0 / 6.0, // 1/3! - 1.0 / 24.0, // 1/4! - 1.0 / 120.0, // 1/5! - 1.0 / 720.0, // 1/6! - 1.0 / 5040.0, // 1/7! - 1.0 / 40320.0, // 1/8! - 1.0 / 362880.0, // 1/9! - 1.0 / 3628800.0, // 1/10! -}; - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float expf(float x) -{ - size_t int_part; - bool invert; - float value; - float x0; - size_t i; - - if (x == 0) - { - return 1; - } - else if (x < 0) - { - invert = true; - x = -x; - } - else - { - invert = false; - } - - /* Extract integer component */ - - int_part = (size_t) x; - - /* set x to fractional component */ - - x -= (float)int_part; - - /* Perform Taylor series approximation with eleven terms */ - - value = 0.0; - x0 = 1.0; - for (i = 0; i < 10; i++) - { - value += x0 * _flt_inv_fact[i]; - x0 *= x; - } - - /* Multiply by exp of the integer component */ - - value *= lib_expi(int_part); - - if (invert) - { - return (1.0 / value); - } - else - { - return value; - } -} diff --git a/nuttx/libc/math/lib_expl.c b/nuttx/libc/math/lib_expl.c deleted file mode 100644 index 231faa35f..000000000 --- a/nuttx/libc/math/lib_expl.c +++ /dev/null @@ -1,126 +0,0 @@ -/************************************************************************ - * libc/math/lib_expl.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <sys/types.h> -#include <math.h> - -#include "lib_internal.h" - -#ifdef CONFIG_HAVE_LONG_DOUBLE - -/************************************************************************ - * Private Data - ************************************************************************/ - -static long double _ldbl_inv_fact[] = -{ - 1.0 / 1.0, // 1 / 0! - 1.0 / 1.0, // 1 / 1! - 1.0 / 2.0, // 1 / 2! - 1.0 / 6.0, // 1 / 3! - 1.0 / 24.0, // 1 / 4! - 1.0 / 120.0, // 1 / 5! - 1.0 / 720.0, // 1 / 6! - 1.0 / 5040.0, // 1 / 7! - 1.0 / 40320.0, // 1 / 8! - 1.0 / 362880.0, // 1 / 9! - 1.0 / 3628800.0, // 1 / 10! - 1.0 / 39916800.0, // 1 / 11! - 1.0 / 479001600.0, // 1 / 12! - 1.0 / 6227020800.0, // 1 / 13! - 1.0 / 87178291200.0, // 1 / 14! - 1.0 / 1307674368000.0, // 1 / 15! - 1.0 / 20922789888000.0, // 1 / 16! - 1.0 / 355687428096000.0, // 1 / 17! - 1.0 / 6402373705728000.0, // 1 / 18! -}; - -/************************************************************************ - * Public Functions - ************************************************************************/ - -long double expl(long double x) -{ - size_t int_part; - bool invert; - long double value; - long double x0; - size_t i; - - if (x == 0) - { - return 1; - } - else if (x < 0) - { - invert = true; - x = -x; - } - else - { - invert = false; - } - - /* Extract integer component */ - - int_part = (size_t) x; - - /* Set x to fractional component */ - - x -= (long double)int_part; - - /* Perform Taylor series approximation with nineteen terms */ - - value = 0.0; - x0 = 1.0; - for (i = 0; i < 19; i++) - { - value += x0 * _ldbl_inv_fact[i]; - x0 *= x; - } - - /* Multiply by exp of the integer component */ - - value *= lib_expi(int_part); - - if (invert) - { - return (1.0 / value); - } - else - { - return value; - } -} -#endif diff --git a/nuttx/libc/math/lib_fabs.c b/nuttx/libc/math/lib_fabs.c deleted file mode 100644 index 774755087..000000000 --- a/nuttx/libc/math/lib_fabs.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************ - * libc/math/lib_fabs.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double fabs(double x) -{ - return ((x < 0) ? -x : x); -} -#endif diff --git a/nuttx/libc/math/lib_fabsf.c b/nuttx/libc/math/lib_fabsf.c deleted file mode 100644 index 4c8ebae62..000000000 --- a/nuttx/libc/math/lib_fabsf.c +++ /dev/null @@ -1,41 +0,0 @@ -/************************************************************************ - * libc/math/lib_fabsf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float fabsf(float x) -{ - return ((x < 0) ? -x : x); -} diff --git a/nuttx/libc/math/lib_fabsl.c b/nuttx/libc/math/lib_fabsl.c deleted file mode 100644 index 96ac7d5db..000000000 --- a/nuttx/libc/math/lib_fabsl.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************ - * libc/math/lib_fabsl.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double fabsl(long double x) -{ - return ((x < 0) ? -x : x); -} -#endif diff --git a/nuttx/libc/math/lib_floor.c b/nuttx/libc/math/lib_floor.c deleted file mode 100644 index 3330607ce..000000000 --- a/nuttx/libc/math/lib_floor.c +++ /dev/null @@ -1,52 +0,0 @@ -/************************************************************************ - * libc/math/lib_floor.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double floor(double x) -{ - modf(x, &x); - if (x < 0.0) - { - x -= 1.0; - } - - return x; -} -#endif diff --git a/nuttx/libc/math/lib_floorf.c b/nuttx/libc/math/lib_floorf.c deleted file mode 100644 index 81483d4c9..000000000 --- a/nuttx/libc/math/lib_floorf.c +++ /dev/null @@ -1,47 +0,0 @@ -/************************************************************************ - * libc/math/lib_floorf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float floorf(float x) -{ - modff(x, &x); - if (x < 0.0) - { - x -= 1.0; - } - - return x; -} diff --git a/nuttx/libc/math/lib_floorl.c b/nuttx/libc/math/lib_floorl.c deleted file mode 100644 index 0d9ec43b4..000000000 --- a/nuttx/libc/math/lib_floorl.c +++ /dev/null @@ -1,52 +0,0 @@ -/************************************************************************ - * libc/math/lib_floorl.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double floorl(long double x) -{ - modfl(x, &x); - if (x < 0.0) - { - x -= 1.0; - } - - return x; -} -#endif diff --git a/nuttx/libc/math/lib_fmod.c b/nuttx/libc/math/lib_fmod.c deleted file mode 100644 index c66210cde..000000000 --- a/nuttx/libc/math/lib_fmod.c +++ /dev/null @@ -1,52 +0,0 @@ -/************************************************************************ - * libc/math/lib_fmod.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double fmod(double x, double div) -{ - double n0; - - x /= div; - x = modf(x, &n0); - x *= div; - - return x; -} -#endif diff --git a/nuttx/libc/math/lib_fmodf.c b/nuttx/libc/math/lib_fmodf.c deleted file mode 100644 index d70bb791c..000000000 --- a/nuttx/libc/math/lib_fmodf.c +++ /dev/null @@ -1,47 +0,0 @@ -/************************************************************************ - * libc/math/lib_fmodf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float fmodf(float x, float div) -{ - float n0; - - x /= div; - x = modff(x, &n0); - x *= div; - - return x; -} diff --git a/nuttx/libc/math/lib_fmodl.c b/nuttx/libc/math/lib_fmodl.c deleted file mode 100644 index 1299bf6e8..000000000 --- a/nuttx/libc/math/lib_fmodl.c +++ /dev/null @@ -1,52 +0,0 @@ -/************************************************************************ - * libc/math/lib_fmodl.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double fmodl(long double x, long double div) -{ - long double n0; - - x /= div; - x = modfl(x, &n0); - x *= div; - - return x; -} -#endif diff --git a/nuttx/libc/math/lib_frexp.c b/nuttx/libc/math/lib_frexp.c deleted file mode 100644 index b9576dfd4..000000000 --- a/nuttx/libc/math/lib_frexp.c +++ /dev/null @@ -1,47 +0,0 @@ -/************************************************************************ - * libc/math/lib_frexp.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double frexp(double x, int *exponent) -{ - *exponent = (int)ceil(log2(x)); - return x / ldexp(1.0, *exponent); -} -#endif diff --git a/nuttx/libc/math/lib_frexpf.c b/nuttx/libc/math/lib_frexpf.c deleted file mode 100644 index d93ffb173..000000000 --- a/nuttx/libc/math/lib_frexpf.c +++ /dev/null @@ -1,42 +0,0 @@ -/************************************************************************ - * libc/math/lib_frexpf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float frexpf(float x, int *exponent) -{ - *exponent = (int)ceilf(log2f(x)); - return x / ldexpf(1.0, *exponent); -} diff --git a/nuttx/libc/math/lib_frexpl.c b/nuttx/libc/math/lib_frexpl.c deleted file mode 100644 index 90993b137..000000000 --- a/nuttx/libc/math/lib_frexpl.c +++ /dev/null @@ -1,47 +0,0 @@ -/************************************************************************ - * libc/math/lib_frexpl.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double frexpl(long double x, int *exponent) -{ - *exponent = (int)ceill(log2(x)); - return x / ldexpl(1.0, *exponent); -} -#endif diff --git a/nuttx/libc/math/lib_ldexp.c b/nuttx/libc/math/lib_ldexp.c deleted file mode 100644 index 9b74d53d7..000000000 --- a/nuttx/libc/math/lib_ldexp.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************ - * libc/math/lib_ldexp.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double ldexp(double x, int n) -{ - return (x * pow(2.0, (double)n)); -} -#endif diff --git a/nuttx/libc/math/lib_ldexpf.c b/nuttx/libc/math/lib_ldexpf.c deleted file mode 100644 index f3aaf555b..000000000 --- a/nuttx/libc/math/lib_ldexpf.c +++ /dev/null @@ -1,41 +0,0 @@ -/************************************************************************ - * libc/math/lib_ldexpf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float ldexpf(float x, int n) -{ - return (x * powf(2.0, (float)n)); -} diff --git a/nuttx/libc/math/lib_ldexpl.c b/nuttx/libc/math/lib_ldexpl.c deleted file mode 100644 index 29764aaba..000000000 --- a/nuttx/libc/math/lib_ldexpl.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************ - * libc/math/lib_ldexpl.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double ldexpl(long double x, int n) -{ - return (x * powl(2.0, (long double)n)); -} -#endif diff --git a/nuttx/libc/math/lib_libexpi.c b/nuttx/libc/math/lib_libexpi.c deleted file mode 100644 index 33ba537b1..000000000 --- a/nuttx/libc/math/lib_libexpi.c +++ /dev/null @@ -1,103 +0,0 @@ -/************************************************************************ - * libc/math/lib_libexpi.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <sys/types.h> -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -/************************************************************************ - * Pre-processor Definitions - ************************************************************************/ - -#define M_E2 (M_E * M_E) -#define M_E4 (M_E2 * M_E2) -#define M_E8 (M_E4 * M_E4) -#define M_E16 (M_E8 * M_E8) -#define M_E32 (M_E16 * M_E16) -#define M_E64 (M_E32 * M_E32) -#define M_E128 (M_E64 * M_E64) -#define M_E256 (M_E128 * M_E128) -#define M_E512 (M_E256 * M_E256) -#define M_E1024 (M_E512 * M_E512) - -/************************************************************************ - * Private Data - ************************************************************************/ - -static double _expi_square_tbl[11] = -{ - M_E, // e^1 - M_E2, // e^2 - M_E4, // e^4 - M_E8, // e^8 - M_E16, // e^16 - M_E32, // e^32 - M_E64, // e^64 - M_E128, // e^128 - M_E256, // e^256 - M_E512, // e^512 - M_E1024, // e^1024 -}; - -/************************************************************************ - * Public Functions - ************************************************************************/ - -double lib_expi(size_t n) -{ - size_t i; - double val; - - if (n > 1024) - { - return INFINITY; - } - - val = 1.0; - - for (i = 0; n; i++) - { - if (n & (1 << i)) - { - n &= ~(1 << i); - val *= _expi_square_tbl[i]; - } - } - - return val; -} - diff --git a/nuttx/libc/math/lib_libsqrtapprox.c b/nuttx/libc/math/lib_libsqrtapprox.c deleted file mode 100644 index b6a9b0d54..000000000 --- a/nuttx/libc/math/lib_libsqrtapprox.c +++ /dev/null @@ -1,50 +0,0 @@ -/************************************************************************ - * libc/math/lib_libsqrtapprox.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <stdint.h> -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float lib_sqrtapprox(float x) -{ - int32_t i; - - /* Floats + bit manipulation = +inf fun! */ - - i = *((int32_t *) & x); - i = 0x1fc00000 + (i >> 1); - x = *((float *)&i); - - return x; -} diff --git a/nuttx/libc/math/lib_log.c b/nuttx/libc/math/lib_log.c deleted file mode 100644 index 7156f6b41..000000000 --- a/nuttx/libc/math/lib_log.c +++ /dev/null @@ -1,82 +0,0 @@ -/************************************************************************ - * libc/math/lib_log.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> -#include <float.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double log(double x) -{ - double y, y_old, ey, epsilon; - - y = 0.0; - y_old = 1.0; - epsilon = DBL_EPSILON; - - while (y > y_old + epsilon || y < y_old - epsilon) - { - y_old = y; - ey = exp(y); - y -= (ey - x) / ey; - - if (y > 700.0) - { - y = 700.0; - } - - if (y < -700.0) - { - y = -700.0; - } - - epsilon = (fabs(y) > 1.0) ? fabs(y) * DBL_EPSILON : DBL_EPSILON; - } - - if (y == 700.0) - { - return INFINITY; - } - - if (y == -700.0) - { - return INFINITY; - } - - return y; -} -#endif diff --git a/nuttx/libc/math/lib_log10.c b/nuttx/libc/math/lib_log10.c deleted file mode 100644 index 9daa91492..000000000 --- a/nuttx/libc/math/lib_log10.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************ - * libc/math/lib_log10.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double log10(double x) -{ - return (log(x) / M_LN10); -} -#endif diff --git a/nuttx/libc/math/lib_log10f.c b/nuttx/libc/math/lib_log10f.c deleted file mode 100644 index 778daedd5..000000000 --- a/nuttx/libc/math/lib_log10f.c +++ /dev/null @@ -1,41 +0,0 @@ -/************************************************************************ - * libc/math/lib_log10f.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float log10f(float x) -{ - return (logf(x) / M_LN10); -} diff --git a/nuttx/libc/math/lib_log10l.c b/nuttx/libc/math/lib_log10l.c deleted file mode 100644 index efbeb721b..000000000 --- a/nuttx/libc/math/lib_log10l.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************ - * libc/math/lib_log10l.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double log10l(long double x) -{ - return (logl(x) / M_LN10); -} -#endif diff --git a/nuttx/libc/math/lib_log2.c b/nuttx/libc/math/lib_log2.c deleted file mode 100644 index 4da39acdc..000000000 --- a/nuttx/libc/math/lib_log2.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************ - * libc/math/lib_log2.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double log2(double x) -{ - return (log(x) / M_LN2); -} -#endif diff --git a/nuttx/libc/math/lib_log2f.c b/nuttx/libc/math/lib_log2f.c deleted file mode 100644 index f514e5a9e..000000000 --- a/nuttx/libc/math/lib_log2f.c +++ /dev/null @@ -1,41 +0,0 @@ -/************************************************************************ - * libc/math/lib_log2f.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float log2f(float x) -{ - return (logf(x) / M_LN2); -} diff --git a/nuttx/libc/math/lib_log2l.c b/nuttx/libc/math/lib_log2l.c deleted file mode 100644 index 21e80a930..000000000 --- a/nuttx/libc/math/lib_log2l.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************ - * libc/math/lib_log2l.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double log2l(long double x) -{ - return (logl(x) / M_LN2); -} -#endif diff --git a/nuttx/libc/math/lib_logf.c b/nuttx/libc/math/lib_logf.c deleted file mode 100644 index 3815fef84..000000000 --- a/nuttx/libc/math/lib_logf.c +++ /dev/null @@ -1,77 +0,0 @@ -/************************************************************************ - * libc/math/lib_logf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> -#include <float.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float logf(float x) -{ - float y, y_old, ey, epsilon; - - y = 0.0; - y_old = 1.0; - epsilon = FLT_EPSILON; - - while (y > y_old + epsilon || y < y_old - epsilon) - { - y_old = y; - ey = exp(y); - y -= (ey - x) / ey; - - if (y > 700.0) - { - y = 700.0; - } - - if (y < -700.0) - { - y = -700.0; - } - - epsilon = (fabs(y) > 1.0) ? fabs(y) * FLT_EPSILON : FLT_EPSILON; - } - - if (y == 700.0) - { - return INFINITY; - } - - if (y == -700.0) - { - return INFINITY; - } - - return y; -} diff --git a/nuttx/libc/math/lib_logl.c b/nuttx/libc/math/lib_logl.c deleted file mode 100644 index 612816011..000000000 --- a/nuttx/libc/math/lib_logl.c +++ /dev/null @@ -1,80 +0,0 @@ -/************************************************************************ - * libc/math/lib_lol.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> -#include <float.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double logl(long double x) -{ - long double y, y_old, ey, epsilon; - - y = 0.0; - y_old = 1.0; - epsilon = LDBL_EPSILON; - - while (y > y_old + epsilon || y < y_old - epsilon) - { - y_old = y; - ey = expl(y); - y -= (ey - x) / ey; - - if (y > 700.0) - { - y = 700.0; - } - - if (y < -700.0) - { - y = -700.0; - } - } - - if (y == 700.0) - { - return INFINITY; - } - - if (y == -700.0) - { - return INFINITY; - } - - return y; -} -#endif diff --git a/nuttx/libc/math/lib_modf.c b/nuttx/libc/math/lib_modf.c deleted file mode 100644 index f3f25f6fb..000000000 --- a/nuttx/libc/math/lib_modf.c +++ /dev/null @@ -1,58 +0,0 @@ -/************************************************************************ - * libc/math/lib_modf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <stdint.h> -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double modf(double x, double *iptr) -{ - if (fabs(x) >= 4503599627370496.0) - { - *iptr = x; - return 0.0; - } - else if (fabs(x) < 1.0) - { - *iptr = 0.0; - return x; - } - else - { - *iptr = (double)(int64_t) x; - return (x - *iptr); - } -} -#endif diff --git a/nuttx/libc/math/lib_modff.c b/nuttx/libc/math/lib_modff.c deleted file mode 100644 index 28d3a3ae0..000000000 --- a/nuttx/libc/math/lib_modff.c +++ /dev/null @@ -1,55 +0,0 @@ -/************************************************************************ - * libc/math/lib_modff.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float modff(float x, float *iptr) -{ - if (fabsf(x) >= 8388608.0) - { - *iptr = x; - return 0.0; - } - else if (fabs(x) < 1.0) - { - *iptr = 0.0; - return x; - } - else - { - *iptr = (float)(int)x; - return (x - *iptr); - } -} diff --git a/nuttx/libc/math/lib_modfl.c b/nuttx/libc/math/lib_modfl.c deleted file mode 100644 index 77bba0e0c..000000000 --- a/nuttx/libc/math/lib_modfl.c +++ /dev/null @@ -1,61 +0,0 @@ -/************************************************************************ - * libc/math/lib_modfl.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <stdint.h> -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double modfl(long double x, long double *iptr) -{ - if (fabs(x) >= 4503599627370496.0) - { - *iptr = x; - return 0.0; - } - else if (fabs(x) < 1.0) - { - *iptr = 0.0; - return x; - } - else - { - *iptr = (long double)(int64_t) x; - return (x - *iptr); - } -} -#endif diff --git a/nuttx/libc/math/lib_pow.c b/nuttx/libc/math/lib_pow.c deleted file mode 100644 index a19d491fa..000000000 --- a/nuttx/libc/math/lib_pow.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************ - * libc/math/lib_pow.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double pow(double b, double e) -{ - return exp(e * log(b)); -} -#endif diff --git a/nuttx/libc/math/lib_powf.c b/nuttx/libc/math/lib_powf.c deleted file mode 100644 index 570904898..000000000 --- a/nuttx/libc/math/lib_powf.c +++ /dev/null @@ -1,41 +0,0 @@ -/************************************************************************ - * libc/math/lib_powf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float powf(float b, float e) -{ - return expf(e * logf(b)); -} diff --git a/nuttx/libc/math/lib_powl.c b/nuttx/libc/math/lib_powl.c deleted file mode 100644 index 81438217c..000000000 --- a/nuttx/libc/math/lib_powl.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************ - * libc/math/lib_powl.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double powl(long double b, long double e) -{ - return expl(e * logl(b)); -} -#endif diff --git a/nuttx/libc/math/lib_round.c b/nuttx/libc/math/lib_round.c deleted file mode 100644 index 6191cee5b..000000000 --- a/nuttx/libc/math/lib_round.c +++ /dev/null @@ -1,40 +0,0 @@ -/************************************************************************ - * lib/math/lib_round.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * (C) 2012 Petteri Aimonen <jpa@nx.mail.kapsi.fi> - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double round(double x) -{ - double f = modf(x, &x); - if (x <= 0.0 && f <= -0.5) - { - x -= 1.0; - } - - if (x >= 0.0 && f >= 0.5) - { - x += 1.0; - } - - return x; -} -#endif diff --git a/nuttx/libc/math/lib_roundf.c b/nuttx/libc/math/lib_roundf.c deleted file mode 100644 index 145cf3df6..000000000 --- a/nuttx/libc/math/lib_roundf.c +++ /dev/null @@ -1,38 +0,0 @@ -/************************************************************************ - * lib/math/lib_roundf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * (C) 2012 Petteri Aimonen <jpa@nx.mail.kapsi.fi> - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float roundf(float x) -{ - float f = modff(x, &x); - if (x <= 0.0f && f <= -0.5f) - { - x -= 1.0f; - } - - if (x >= 0.0f && f >= 0.5f) - { - x += 1.0f; - } - - return x; -} diff --git a/nuttx/libc/math/lib_roundl.c b/nuttx/libc/math/lib_roundl.c deleted file mode 100644 index b2ddba670..000000000 --- a/nuttx/libc/math/lib_roundl.c +++ /dev/null @@ -1,40 +0,0 @@ -/************************************************************************ - * lib/math/lib_round.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * (C) 2012 Petteri Aimonen <jpa@nx.mail.kapsi.fi> - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double roundl(long double x) -{ - long double f = modfl(x, &x); - if (x <= 0.0 && f <= -0.5) - { - x -= 1.0; - } - - if (x >= 0.0 && f >= 0.5) - { - x += 1.0; - } - - return x; -} -#endif diff --git a/nuttx/libc/math/lib_sin.c b/nuttx/libc/math/lib_sin.c deleted file mode 100644 index e005d98cb..000000000 --- a/nuttx/libc/math/lib_sin.c +++ /dev/null @@ -1,114 +0,0 @@ -/************************************************************************ - * libc/math/lib_sin.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <sys/types.h> -#include <math.h> - -#ifdef CONFIG_HAVE_DOUBLE - -/************************************************************************ - * Private Data - ************************************************************************/ - -static double _dbl_inv_fact[] = -{ - 1.0 / 1.0, // 1 / 1! - 1.0 / 6.0, // 1 / 3! - 1.0 / 120.0, // 1 / 5! - 1.0 / 5040.0, // 1 / 7! - 1.0 / 362880.0, // 1 / 9! - 1.0 / 39916800.0, // 1 / 11! - 1.0 / 6227020800.0, // 1 / 13! - 1.0 / 1307674368000.0, // 1 / 15! - 1.0 / 355687428096000.0, // 1 / 17! - 1.0 / 121645100408832000.0, // 1 / 19! -}; - -/************************************************************************ - * Public Functions - ************************************************************************/ - -double sin(double x) -{ - double x_squared; - double sin_x; - size_t i; - - /* Move x to [-pi, pi) */ - - x = fmod(x, 2 * M_PI); - if (x >= M_PI) - { - x -= 2 * M_PI; - } - - if (x < -M_PI) - { - x += 2 * M_PI; - } - - /* Move x to [-pi/2, pi/2) */ - - if (x >= M_PI_2) - { - x = M_PI - x; - } - - if (x < -M_PI_2) - { - x = -M_PI - x; - } - - x_squared = x * x; - sin_x = 0.0; - - /* Perform Taylor series approximation for sin(x) with ten terms */ - - for (i = 0; i < 10; i++) - { - if (i % 2 == 0) - { - sin_x += x * _dbl_inv_fact[i]; - } - else - { - sin_x -= x * _dbl_inv_fact[i]; - } - - x *= x_squared; - } - - return sin_x; -} -#endif diff --git a/nuttx/libc/math/lib_sinf.c b/nuttx/libc/math/lib_sinf.c deleted file mode 100644 index 9e493d8ef..000000000 --- a/nuttx/libc/math/lib_sinf.c +++ /dev/null @@ -1,104 +0,0 @@ -/************************************************************************ - * libc/math/lib_sinf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <sys/types.h> -#include <math.h> - -/************************************************************************ - * Private Data - ************************************************************************/ - -static float _flt_inv_fact[] = -{ - 1.0 / 1.0, // 1 / 1! - 1.0 / 6.0, // 1 / 3! - 1.0 / 120.0, // 1 / 5! - 1.0 / 5040.0, // 1 / 7! - 1.0 / 362880.0, // 1 / 9! - 1.0 / 39916800.0, // 1 / 11! -}; - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float sinf(float x) -{ - float x_squared; - float sin_x; - size_t i; - - /* Move x to [-pi, pi) */ - - x = fmodf(x, 2 * M_PI); - if (x >= M_PI) - { - x -= 2 * M_PI; - } - - if (x < -M_PI) - { - x += 2 * M_PI; - } - - /* Move x to [-pi/2, pi/2) */ - - if (x >= M_PI_2) - { - x = M_PI - x; - } - - if (x < -M_PI_2) - { - x = -M_PI - x; - } - - x_squared = x * x; - sin_x = 0.0; - - /* Perform Taylor series approximation for sin(x) with six terms */ - - for (i = 0; i < 6; i++) - { - if (i % 2 == 0) - { - sin_x += x * _flt_inv_fact[i]; - } - else - { - sin_x -= x * _flt_inv_fact[i]; - } - - x *= x_squared; - } - - return sin_x; -} diff --git a/nuttx/libc/math/lib_sinh.c b/nuttx/libc/math/lib_sinh.c deleted file mode 100644 index 0c3e2d11d..000000000 --- a/nuttx/libc/math/lib_sinh.c +++ /dev/null @@ -1,47 +0,0 @@ -/************************************************************************ - * libc/math/lib_sinh.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double sinh(double x) -{ - x = exp(x); - return ((x - (1.0 / x)) / 2.0); -} -#endif diff --git a/nuttx/libc/math/lib_sinhf.c b/nuttx/libc/math/lib_sinhf.c deleted file mode 100644 index e9d198440..000000000 --- a/nuttx/libc/math/lib_sinhf.c +++ /dev/null @@ -1,42 +0,0 @@ -/************************************************************************ - * libc/math/lib_sinhf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float sinhf(float x) -{ - x = expf(x); - return ((x - (1.0 / x)) / 2.0); -} diff --git a/nuttx/libc/math/lib_sinhl.c b/nuttx/libc/math/lib_sinhl.c deleted file mode 100644 index a1bcad81e..000000000 --- a/nuttx/libc/math/lib_sinhl.c +++ /dev/null @@ -1,47 +0,0 @@ -/************************************************************************ - * libc/math/lib_sinhl.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double sinhl(long double x) -{ - x = expl(x); - return ((x - (1.0 / x)) / 2.0); -} -#endif diff --git a/nuttx/libc/math/lib_sinl.c b/nuttx/libc/math/lib_sinl.c deleted file mode 100644 index 6ed539a39..000000000 --- a/nuttx/libc/math/lib_sinl.c +++ /dev/null @@ -1,114 +0,0 @@ -/************************************************************************ - * libc/math/lib_sinl.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <sys/types.h> -#include <math.h> - -#ifdef CONFIG_HAVE_LONG_DOUBLE - -/************************************************************************ - * Private Data - ************************************************************************/ - -static long double _ldbl_inv_fact[] = -{ - 1.0 / 1.0, // 1 / 1! - 1.0 / 6.0, // 1 / 3! - 1.0 / 120.0, // 1 / 5! - 1.0 / 5040.0, // 1 / 7! - 1.0 / 362880.0, // 1 / 9! - 1.0 / 39916800.0, // 1 / 11! - 1.0 / 6227020800.0, // 1 / 13! - 1.0 / 1307674368000.0, // 1 / 15! - 1.0 / 355687428096000.0, // 1 / 17! - 1.0 / 121645100408832000.0, // 1 / 19! -}; - -/************************************************************************ - * Public Functions - ************************************************************************/ - -long double sinl(long double x) -{ - long double x_squared; - long double sin_x; - size_t i; - - /* Move x to [-pi, pi) */ - - x = fmodl(x, 2 * M_PI); - if (x >= M_PI) - { - x -= 2 * M_PI; - } - - if (x < -M_PI) - { - x += 2 * M_PI; - } - - /* Move x to [-pi/2, pi/2) */ - - if (x >= M_PI_2) - { - x = M_PI - x; - } - - if (x < -M_PI_2) - { - x = -M_PI - x; - } - - x_squared = x * x; - sin_x = 0.0; - - /* Perform Taylor series approximation for sin(x) with ten terms */ - - for (i = 0; i < 10; i++) - { - if (i % 2 == 0) - { - sin_x += x * _ldbl_inv_fact[i]; - } - else - { - sin_x -= x * _ldbl_inv_fact[i]; - } - - x *= x_squared; - } - - return sin_x; -} -#endif diff --git a/nuttx/libc/math/lib_sqrt.c b/nuttx/libc/math/lib_sqrt.c deleted file mode 100644 index e8a1c42ea..000000000 --- a/nuttx/libc/math/lib_sqrt.c +++ /dev/null @@ -1,99 +0,0 @@ -/************************************************************************ - * libc/math/lib_sqrt.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> -#include <errno.h> - -#include "lib_internal.h" - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double sqrt(double x) -{ - long double y, y1; - - if (x < 0.0) - { - errno = EDOM; - return NAN; - } - - if (isnan(x)) - { - return NAN; - } - - if (isinf(x)) - { - return INFINITY; - } - - if (x == 0.0) - { - return 0.0; - } - - /* Guess square root (using bit manipulation) */ - - y = lib_sqrtapprox(x); - - /* Perform four iterations of approximation. This number (4) is - * definitely optimal - */ - - y = 0.5 * (y + x / y); - y = 0.5 * (y + x / y); - y = 0.5 * (y + x / y); - y = 0.5 * (y + x / y); - - /* If guess was terribe (out of range of float). Repeat approximation - * until convergence. - */ - - if (y * y < x - 1.0 || y * y > x + 1.0) - { - y1 = -1.0; - while (y != y1) - { - y1 = y; - y = 0.5 * (y + x / y); - } - } - - return y; -} -#endif diff --git a/nuttx/libc/math/lib_sqrtf.c b/nuttx/libc/math/lib_sqrtf.c deleted file mode 100644 index cf45ccacc..000000000 --- a/nuttx/libc/math/lib_sqrtf.c +++ /dev/null @@ -1,84 +0,0 @@ -/************************************************************************ - * libc/math/lib_sqrtf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> -#include <errno.h> - -#include "lib_internal.h" - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float sqrtf(float x) -{ - float y; - - /* Filter out invalid/trivial inputs */ - - if (x < 0.0) - { - errno = EDOM; - return NAN; - } - - if (isnan(x)) - { - return NAN; - } - - if (isinf(x)) - { - return INFINITY; - } - - if (x == 0.0) - { - return 0.0; - } - - /* Guess square root (using bit manipulation) */ - - y = lib_sqrtapprox(x); - - /* Perform three iterations of approximation. This number (3) is - * definitely optimal - */ - - y = 0.5 * (y + x / y); - y = 0.5 * (y + x / y); - y = 0.5 * (y + x / y); - - return y; -} diff --git a/nuttx/libc/math/lib_sqrtl.c b/nuttx/libc/math/lib_sqrtl.c deleted file mode 100644 index 4035992fe..000000000 --- a/nuttx/libc/math/lib_sqrtl.c +++ /dev/null @@ -1,101 +0,0 @@ -/************************************************************************ - * libc/math/lib_sqrtl.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009-2011 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> -#include <errno.h> - -#include "lib_internal.h" - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double sqrtl(long double x) -{ - long double y, y1; - - /* Filter out invalid/trivial inputs */ - - if (x < 0.0) - { - errno = EDOM; - return NAN; - } - - if (isnan(x)) - { - return NAN; - } - - if (isinf(x)) - { - return INFINITY; - } - - if (x == 0.0) - { - return 0.0; - } - - /* Guess square root (using bit manipulation) */ - - y = lib_sqrtapprox(x); - - /* Perform four iterations of approximation. This number (4) is - * definitely optimal - */ - - y = 0.5 * (y + x / y); - y = 0.5 * (y + x / y); - y = 0.5 * (y + x / y); - y = 0.5 * (y + x / y); - - /* If guess was terribe (out of range of float). Repeat approximation - * until convergence - */ - - if (y * y < x - 1.0 || y * y > x + 1.0) - { - y1 = -1.0; - while (y != y1) - { - y1 = y; - y = 0.5 * (y + x / y); - } - } - - return y; -} -#endif diff --git a/nuttx/libc/math/lib_tan.c b/nuttx/libc/math/lib_tan.c deleted file mode 100644 index 4c091c09b..000000000 --- a/nuttx/libc/math/lib_tan.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************ - * libc/math/lib_tan.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double tan(double x) -{ - return (sin(x) / cos(x)); -} -#endif diff --git a/nuttx/libc/math/lib_tanf.c b/nuttx/libc/math/lib_tanf.c deleted file mode 100644 index 0c9110a0b..000000000 --- a/nuttx/libc/math/lib_tanf.c +++ /dev/null @@ -1,41 +0,0 @@ -/************************************************************************ - * libc/math/lib_tanf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float tanf(float x) -{ - return (sinf(x) / cosf(x)); -} diff --git a/nuttx/libc/math/lib_tanh.c b/nuttx/libc/math/lib_tanh.c deleted file mode 100644 index 3b9ea0f41..000000000 --- a/nuttx/libc/math/lib_tanh.c +++ /dev/null @@ -1,49 +0,0 @@ -/************************************************************************ - * libc/math/lib_tanh.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_DOUBLE -double tanh(double x) -{ - double x0 = exp(x); - double x1 = 1.0 / x0; - - return ((x0 + x1) / (x0 - x1)); -} -#endif diff --git a/nuttx/libc/math/lib_tanhf.c b/nuttx/libc/math/lib_tanhf.c deleted file mode 100644 index 43d418204..000000000 --- a/nuttx/libc/math/lib_tanhf.c +++ /dev/null @@ -1,44 +0,0 @@ -/************************************************************************ - * libc/math/lib_tanhf.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -float tanhf(float x) -{ - float x0 = expf(x); - float x1 = 1.0 / x0; - - return ((x0 + x1) / (x0 - x1)); -} diff --git a/nuttx/libc/math/lib_tanhl.c b/nuttx/libc/math/lib_tanhl.c deleted file mode 100644 index 5aafd1e7b..000000000 --- a/nuttx/libc/math/lib_tanhl.c +++ /dev/null @@ -1,49 +0,0 @@ -/************************************************************************ - * libc/math/lib_tanhl.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double tanhl(long double x) -{ - long double x0 = exp(x); - long double x1 = 1.0 / x0; - - return ((x0 + x1) / (x0 - x1)); -} -#endif diff --git a/nuttx/libc/math/lib_tanl.c b/nuttx/libc/math/lib_tanl.c deleted file mode 100644 index e77abe0f1..000000000 --- a/nuttx/libc/math/lib_tanl.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************************ - * libc/math/lib_tanl.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Ported by: Darcy Gong - * - * It derives from the Rhombs OS math library by Nick Johnson which has - * a compatibile, MIT-style license: - * - * Copyright (C) 2009, 2010 Nick Johnson <nickbjohnson4224 at gmail.com> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <math.h> - -/************************************************************************ - * Public Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_DOUBLE -long double tanl(long double x) -{ - return (sinl(x) / cosl(x)); -} -#endif diff --git a/nuttx/libc/misc/Make.defs b/nuttx/libc/misc/Make.defs deleted file mode 100644 index 0d3c87d9d..000000000 --- a/nuttx/libc/misc/Make.defs +++ /dev/null @@ -1,75 +0,0 @@ -############################################################################ -# libc/misc/Make.defs -# -# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -############################################################################ - -# Add the internal C files to the build - -CSRCS += lib_init.c lib_filesem.c - -# Add C files that depend on file OR socket descriptors - -ifneq ($(CONFIG_NFILE_DESCRIPTORS),0) - -CSRCS += lib_sendfile.c -ifneq ($(CONFIG_NFILE_STREAMS),0) -CSRCS += lib_streamsem.c -endif - -else -ifneq ($(CONFIG_NSOCKET_DESCRIPTORS),0) - -CSRCS += lib_sendfile.c -ifneq ($(CONFIG_NFILE_STREAMS),0) -CSRCS += lib_streamsem.c -endif - -endif -endif - -# Add the miscellaneous C files to the build - -CSRCS += lib_match.c -CSRCS += lib_crc32.c -CSRCS += lib_dbg.c lib_dumpbuffer.c - -# Keyboard driver encoder/decoder - -ifeq ($(CONFIG_LIB_KBDCODEC),y) -CSRCS += lib_kbdencode.c lib_kbddecode.c -endif - -# Add the misc directory to the build - -DEPPATH += --dep-path misc -VPATH += :misc diff --git a/nuttx/libc/misc/lib_crc32.c b/nuttx/libc/misc/lib_crc32.c deleted file mode 100644 index ae73ba3d7..000000000 --- a/nuttx/libc/misc/lib_crc32.c +++ /dev/null @@ -1,123 +0,0 @@ -/************************************************************************************************ - * libc/misc/lib_crc32.c - * - * This file is a part of NuttX: - * - * Copyright (C) 2010-2011 Gregory Nutt. All rights reserved. - * - * The logic in this file was developed by Gary S. Brown: - * - * COPYRIGHT (C) 1986 Gary S. Brown. You may use this program, or code or tables - * extracted from it, as desired without restriction. - * - * First, the polynomial itself and its table of feedback terms. The polynomial is: - * - * X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0 - * - * Note that we take it "backwards" and put the highest-order term in the lowest-order bit. - * The X^32 term is "implied"; the LSB is the X^31 term, etc. The X^0 term (usually shown - * as "+1") results in the MSB being 1 - * - * Note that the usual hardware shift register implementation, which is what we're using - * (we're merely optimizing it by doing eight-bit chunks at a time) shifts bits into the - * lowest-order term. In our implementation, that means shifting towards the right. Why - * do we do it this way? Because the calculated CRC must be transmitted in order from - * highest-order term to lowest-order term. UARTs transmit characters in order from LSB - * to MSB. By storing the CRC this way we hand it to the UART in the order low-byte to - * high-byte; the UART sends each low-bit to hight-bit; and the result is transmission bit - * by bit from highest- to lowest-order term without requiring any bit shuffling on our - * part. Reception works similarly - * - * The feedback terms table consists of 256, 32-bit entries. Notes - * - * - The table can be generated at runtime if desired; code to do so is shown later. It - * might not be obvious, but the feedback terms simply represent the results of eight - * shift/xor operations for all combinations of data and CRC register values - * - * - The values must be right-shifted by eight bits by the updcrc logic; the shift must - * be u_(bring in zeroes). On some hardware you could probably optimize the shift in - * assembler by using byte-swap instructions polynomial $edb88320 - ************************************************************************************************/ - -/************************************************************************************************ - * Included Files - ************************************************************************************************/ - -#include <sys/types.h> -#include <stdint.h> -#include <crc32.h> - -/************************************************************************************************ - * Private Data - ************************************************************************************************/ - -static const uint32_t crc32_tab[] = -{ - 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, - 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, - 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, - 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, - 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, - 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, - 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, - 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, - 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, - 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, - 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, - 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, - 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, - 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, - 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, - 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, - 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, - 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, - 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, - 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, - 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, - 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, - 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, - 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, - 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, - 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, - 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, - 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, - 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, - 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, - 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, - 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d -}; - -/************************************************************************************************ - * Public Functions - ************************************************************************************************/ -/************************************************************************************************ - * Name: crc32part - * - * Description: - * Continue CRC calculation on a part of the buffer. - * - ************************************************************************************************/ - -uint32_t crc32part(FAR const uint8_t *src, size_t len, uint32_t crc32val) -{ - size_t i; - - for (i = 0; i < len; i++) - { - crc32val = crc32_tab[(crc32val ^ src[i]) & 0xff] ^ (crc32val >> 8); - } - return crc32val; -} - -/************************************************************************************************ - * Name: crc32 - * - * Description: - * Return a 32-bit CRC of the contents of the 'src' buffer, length 'len' - * - ************************************************************************************************/ - -uint32_t crc32(FAR const uint8_t *src, size_t len) -{ - return crc32part(src, len, 0); -} diff --git a/nuttx/libc/misc/lib_dbg.c b/nuttx/libc/misc/lib_dbg.c deleted file mode 100644 index 921a4e24d..000000000 --- a/nuttx/libc/misc/lib_dbg.c +++ /dev/null @@ -1,165 +0,0 @@ -/**************************************************************************** - * libc/misc/lib_dbg.c - * - * Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdarg.h> -#include <debug.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/* Debug output is initially disabled */ - -#ifdef CONFIG_SYSLOG_ENABLE -bool g_syslogenable; -#endif - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: syslog_enable - * - * Description: - * Enable or disable debug output. - * - ****************************************************************************/ - -#ifdef CONFIG_SYSLOG_ENABLE -void syslog_enable(bool enable) -{ - g_syslogenable = enable; -} -#endif - -/**************************************************************************** - * Name: dbg, lldbg, vdbg - * - * Description: - * If the cross-compiler's pre-processor does not support variable - * length arguments, then these additional APIs will be built. - * - ****************************************************************************/ - -#ifndef CONFIG_CPP_HAVE_VARARGS -#ifdef CONFIG_DEBUG -int dbg(const char *format, ...) -{ - va_list ap; - int ret; - -#ifdef CONFIG_SYSLOG_ENABLE - ret = 0; - if (g_syslogenable) -#endif - { - va_start(ap, format); - ret = vsyslog(format, ap); - va_end(ap); - } - - return ret; -} - -#ifdef CONFIG_ARCH_LOWPUTC -int lldbg(const char *format, ...) -{ - va_list ap; - int ret; - -#ifdef CONFIG_SYSLOG_ENABLE - ret = 0; - if (g_syslogenable) -#endif - { - va_start(ap, format); - ret = lowvsyslog(format, ap); - va_end(ap); - } - - return ret; -} -#endif - -#ifdef CONFIG_DEBUG_VERBOSE -int vdbg(const char *format, ...) -{ - va_list ap; - int ret; - -#ifdef CONFIG_SYSLOG_ENABLE - ret = 0; - if (g_syslogenable) -#endif - { - va_start(ap, format); - ret = vsyslog(format, ap); - va_end(ap); - } - - return ret; -} - -#ifdef CONFIG_ARCH_LOWPUTC -int llvdbg(const char *format, ...) -{ - va_list ap; - int ret; - -#ifdef CONFIG_SYSLOG_ENABLE - ret = 0; - if (g_syslogenable) -#endif - { - va_start(ap, format); - ret = lowvsyslog(format, ap); - va_end(ap); - } - - return ret; -} -#endif /* CONFIG_ARCH_LOWPUTC */ -#endif /* CONFIG_DEBUG_VERBOSE */ -#endif /* CONFIG_DEBUG */ -#endif /* CONFIG_CPP_HAVE_VARARGS */ diff --git a/nuttx/libc/misc/lib_dumpbuffer.c b/nuttx/libc/misc/lib_dumpbuffer.c deleted file mode 100644 index 5194560fd..000000000 --- a/nuttx/libc/misc/lib_dumpbuffer.c +++ /dev/null @@ -1,129 +0,0 @@ -/**************************************************************************** - * libc/misc/lib_dumpbuffer.c - * - * Copyright (C) 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <stdint.h> -#include <debug.h> - -/**************************************************************************** - * Pre-processor definitions - ****************************************************************************/ - -/* Select the lowest level debug interface available */ - -#ifdef CONFIG_CPP_HAVE_VARARGS -# ifdef CONFIG_ARCH_LOWPUTC -# define message(format, arg...) lowsyslog(format, ##arg) -# else -# define message(format, arg...) syslog(format, ##arg) -# endif -#else -# ifdef CONFIG_ARCH_LOWPUTC -# define message lowsyslog -# else -# define message syslog -# endif -#endif - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_dumpbuffer - * - * Description: - * Do a pretty buffer dump - * - ****************************************************************************/ - -void lib_dumpbuffer(FAR const char *msg, FAR const uint8_t *buffer, unsigned int buflen) -{ - int i, j, k; - - message("%s (%p):\n", msg, buffer); - for (i = 0; i < buflen; i += 32) - { - message("%04x: ", i); - for (j = 0; j < 32; j++) - { - k = i + j; - - if (j == 16) - { - message(" "); - } - - if (k < buflen) - { - message("%02x", buffer[k]); - } - else - { - message(" "); - } - } - - message(" "); - for (j = 0; j < 32; j++) - { - k = i + j; - - if (j == 16) - { - message(" "); - } - - if (k < buflen) - { - if (buffer[k] >= 0x20 && buffer[k] < 0x7f) - { - message("%c", buffer[k]); - } - else - { - message("."); - } - } - } - message("\n"); - } -} diff --git a/nuttx/libc/misc/lib_filesem.c b/nuttx/libc/misc/lib_filesem.c deleted file mode 100644 index f38ff5f23..000000000 --- a/nuttx/libc/misc/lib_filesem.c +++ /dev/null @@ -1,145 +0,0 @@ -/************************************************************************ - * libc/misc/lib_filesem.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/types.h> -#include <unistd.h> -#include <semaphore.h> -#include <errno.h> -#include <assert.h> - -#include "lib_internal.h" - -#if CONFIG_STDIO_BUFFER_SIZE > 0 - -/************************************************************************ - * Pre-processor Definitions - ************************************************************************/ - -/************************************************************************ - * Private Data - ************************************************************************/ - -/************************************************************************ - * Global Functions - ************************************************************************/ - -/************************************************************************ - * lib_sem_initialize - ************************************************************************/ - -void lib_sem_initialize(FAR struct file_struct *stream) -{ - /* Initialize the LIB semaphore to one (to support one-at-a-time access - * to private data sets. - */ - - (void)sem_init(&stream->fs_sem, 0, 1); - - stream->fs_holder = -1; - stream->fs_counts = 0; -} - -/************************************************************************ - * lib_take_semaphore - ************************************************************************/ - -void lib_take_semaphore(FAR struct file_struct *stream) -{ - pid_t my_pid = getpid(); - - /* Do I already have the semaphore? */ - - if (stream->fs_holder == my_pid) - { - /* Yes, just increment the number of references that I have */ - - stream->fs_counts++; - } - else - { - /* Take the semaphore (perhaps waiting) */ - - while (sem_wait(&stream->fs_sem) != 0) - { - /* The only case that an error should occr here is if the wait - * was awakened by a signal. - */ - - ASSERT(get_errno() == EINTR); - } - - /* We have it. Claim the stak and return */ - - stream->fs_holder = my_pid; - stream->fs_counts = 1; - } -} - -/************************************************************************ - * lib_give_semaphore - ************************************************************************/ - -void lib_give_semaphore(FAR struct file_struct *stream) -{ - pid_t my_pid = getpid(); - - /* I better be holding at least one reference to the semaphore */ - - ASSERT(stream->fs_holder == my_pid); - - /* Do I hold multiple references to the semphore */ - - if (stream->fs_counts > 1) - { - /* Yes, just release one count and return */ - - stream->fs_counts--; - } - else - { - /* Nope, this is the last reference I have */ - - stream->fs_holder = -1; - stream->fs_counts = 0; - ASSERT(sem_post(&stream->fs_sem) == 0); - } -} -#endif /* CONFIG_STDIO_BUFFER_SIZE */ diff --git a/nuttx/libc/misc/lib_init.c b/nuttx/libc/misc/lib_init.c deleted file mode 100644 index 434c46505..000000000 --- a/nuttx/libc/misc/lib_init.c +++ /dev/null @@ -1,149 +0,0 @@ -/************************************************************ - * libc/misc/lib_init.c - * - * Copyright (C) 2007, 2011, 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************/ - -/************************************************************ - * Included Files - ************************************************************/ - -#include <nuttx/config.h> - -#include <stdio.h> -#include <string.h> -#include <errno.h> - -#include <nuttx/kmalloc.h> -#include <nuttx/fs/fs.h> -#include <nuttx/lib.h> - -#include "lib_internal.h" - -/************************************************************ - * Definitions - ************************************************************/ - -/************************************************************ - * Private Variables - ************************************************************/ - -/************************************************************ - * Private Functions - ************************************************************/ - -/************************************************************ - * Public Functions - ************************************************************/ - -/************************************************************ - * lib_initialize - ************************************************************/ - -/* General library initialization hook */ - -void weak_const_function lib_initialize(void) -{ -} - -#if CONFIG_NFILE_STREAMS > 0 -/* The following function is called when a new task is allocated. It - * intializes the streamlist instance that is stored in the task group. - */ - -void lib_streaminit(FAR struct streamlist *list) -{ - int i; - - /* Initialize the list access mutex */ - - (void)sem_init(&list->sl_sem, 0, 1); - - /* Initialize each FILE structure */ - - for (i = 0; i < CONFIG_NFILE_STREAMS; i++) - { - /* Clear the IOB */ - - memset(&list->sl_streams[i], 0, sizeof(FILE)); - - /* Indicate not opened */ - - list->sl_streams[i].fs_filedes = -1; - - /* Initialize the stream semaphore to one to support one-at- - * a-time access to private data sets. - */ - - lib_sem_initialize(&list->sl_streams[i]); - } -} - -/* this function is called when a TCB is destroyed. Note that is - * does not close the file by release this inode. This happens - * separately when the file descriptor list is freed. - */ - -void lib_releaselist(FAR struct streamlist *list) -{ -#if CONFIG_STDIO_BUFFER_SIZE > 0 - int i; -#endif - - DEBUGASSERT(list); - - /* Destroy the semaphore and release the filelist */ - - (void)sem_destroy(&list->sl_sem); - - /* Release each stream in the list */ - -#if CONFIG_STDIO_BUFFER_SIZE > 0 - for (i = 0; i < CONFIG_NFILE_STREAMS; i++) - { - /* Destroy the semaphore that protects the IO buffer */ - - (void)sem_destroy(&list->sl_streams[i].fs_sem); - - /* Release the IO buffer */ - - if (list->sl_streams[i].fs_bufstart) - { - sched_free(list->sl_streams[i].fs_bufstart); - } - } -#endif -} - -#endif /* CONFIG_NFILE_STREAMS */ - - diff --git a/nuttx/libc/misc/lib_kbddecode.c b/nuttx/libc/misc/lib_kbddecode.c deleted file mode 100644 index 62554902c..000000000 --- a/nuttx/libc/misc/lib_kbddecode.c +++ /dev/null @@ -1,267 +0,0 @@ -/**************************************************************************** - * libc/msic/lib_kbddecode.c - * Decoding side of the Keyboard CODEC - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Authors: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdint.h> -#include <assert.h> -#include <debug.h> - -#include <nuttx/streams.h> -#include <nuttx/ascii.h> -#include <nuttx/input/kbd_codec.h> - -/**************************************************************************** - * Pre-Processor Definitions - ****************************************************************************/ - -#define NDX_ESC 0 -#define NDX_BRACKET 1 -#define NDX_CODE 2 -#define NDX_TERMINATOR 3 - -#define NCH_ESC 1 -#define NCH_BRACKET 2 -#define NCH_CODE 3 -#define NCH_TERMINATOR 4 - -#define TERM_MIN ('a' + KBD_RELEASE) -#define TERM_MAX ('a' + KBD_SPECREL) -#define TERM_RETURN(a) ((a) - 'a') - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: kbd_reget - * - * Description: - * We have unused characters from the last, unsuccessful. Return one of - * these instead of the . - * - * Input Parameters: - * stream - An instance of lib_instream_s to do the low-level get - * operation. - * pch - The location character to save the returned value. This may be - * either a normal, character code or a special command from enum - * kbd_keycode_e - * - * Returned Value: - * KBD_PRESS - Indicates the successful receipt of norma keyboard data. - * - ****************************************************************************/ - -static int kbd_reget(FAR struct kbd_getstate_s *state, FAR uint8_t *pch) -{ - /* Return the next character */ - - *pch = state->buf[state->ndx]; - state->ndx++; - state->nch--; - return KBD_PRESS; -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: kbd_decode - * - * Description: - * Get one byte of data or special command from the driver provided input - * buffer. - * - * Input Parameters: - * stream - An instance of lib_instream_s to do the low-level get - * operation. - * pch - The location to save the returned value. This may be - * either a normal, character code or a special command from enum - * kbd_keycode_e - * state - A user provided buffer to support parsing. This structure - * should be cleared the first time that kbd_decode is called. - * - * Returned Value: - * - * KBD_PRESS - Indicates the successful receipt of normal, keyboard data. - * This corresponds to a keypress event. The returned value in pch is a - * simple byte of text or control data corresponding to the pressed key. - * KBD_RELEASE - Indicates a key release event. The returned value in pch - * is the byte of text or control data corresponding to the released key. - * KBD_SPECPRESS - Indicates the successful receipt of a special keyboard - * command. The returned value in pch is a value from enum kbd_getstate_s. - * KBD_SPECREL - Indicates a special key release event. The returned value - * in pch is a value from enum kbd_getstate_s. - * EOF - An error has getting the next character (reported by the stream). - * Normally indicates the end of file. - * - ****************************************************************************/ - -int kbd_decode(FAR struct lib_instream_s *stream, - FAR struct kbd_getstate_s *state, FAR uint8_t *pch) -{ - int ch; - - DEBUGASSERT(stream && state && pch); - - /* Are their ungotten characters from the last, failed parse? */ - - if (state->nch > 0) - { - /* Yes, return the next ungotten character */ - - return kbd_reget(state, pch); - } - - state->ndx = 0; - - /* No, ungotten characters. Check for the beginning of an ESC sequence. */ - - ch = stream->get(stream); - if (ch == EOF) - { - /* End of file/stream */ - - return KBD_ERROR; - } - else - { - state->buf[NDX_ESC] = (uint8_t)ch; - state->nch = NCH_ESC; - - if (ch != ASCII_ESC) - { - /* Not the beginning of an escape sequence. Return the character. */ - - return kbd_reget(state, pch); - } - } - - /* Check for ESC-[ */ - - ch = stream->get(stream); - if (ch == EOF) - { - /* End of file/stream. Return the escape character now. We will - * return the EOF indication next time. - */ - - return kbd_reget(state, pch); - } - else - { - state->buf[NDX_BRACKET] = ch; - state->nch = NCH_BRACKET; - - if (ch != '[') - { - /* Not the beginning of an escape sequence. Return the ESC now, - * return the following character later. - */ - - return kbd_reget(state, pch); - } - } - - /* Get and verify the special keyboard data to decode */ - - ch = stream->get(stream); - if (ch == EOF) - { - /* End of file/stream. Unget everything and return the ESC character. - */ - - return kbd_reget(state, pch); - } - else - { - state->buf[NDX_CODE] = (uint8_t)ch; - state->nch = NCH_CODE; - - /* Check for a valid special command code */ - - if (ch < FIRST_KEYCODE || ch > LAST_KEYCODE) - { - /* Not a special command code, return the ESC now and the next two - * characters later. - */ - - return kbd_reget(state, pch); - } - } - - /* Check for the final semicolon */ - - ch = stream->get(stream); - if (ch == EOF) - { - /* End of file/stream. Unget everything and return the ESC character. - */ - - return kbd_reget(state, pch); - } - else - { - state->buf[NDX_TERMINATOR] = (uint8_t)ch; - state->nch = NCH_TERMINATOR; - - /* Check for a valid special command code */ - - if (ch < TERM_MIN || ch > TERM_MAX) - { - /* Not a special command code, return the ESC now and the next two - * characters later. - */ - - return kbd_reget(state, pch); - } - } - - /* We have successfully parsed the the entire escape sequence. Return the - * keyboard value in pch and the value an indication determined by the - * terminating character. - */ - - *pch = state->buf[NDX_CODE]; - state->nch = 0; - return TERM_RETURN(state->buf[NDX_TERMINATOR]); -} - diff --git a/nuttx/libc/misc/lib_kbdencode.c b/nuttx/libc/misc/lib_kbdencode.c deleted file mode 100644 index 80138ca80..000000000 --- a/nuttx/libc/misc/lib_kbdencode.c +++ /dev/null @@ -1,151 +0,0 @@ -/**************************************************************************** - * libc/msic/lib_kbdencode.c - * Encoding side of the Keyboard CODEC - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Authors: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdint.h> -#include <assert.h> - -#include <nuttx/streams.h> -#include <nuttx/ascii.h> -#include <nuttx/input/kbd_codec.h> - -/**************************************************************************** - * Pre-Processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Name: kbd_encode - * - * Description: - * Encode one special special sequence command into the output stream. - * - * Input Parameters: - * keycode - The command to be added to the output stream. - * stream - An instance of lib_outstream_s to do the low-level put - * operation. - * terminator - Escape sequence terminating character. - * - * Returned Value: - * None - * - ****************************************************************************/ - -static void kbd_encode(uint8_t keycode, FAR struct lib_outstream_s *stream, - uint8_t terminator) -{ - stream->put(stream, ASCII_ESC); - stream->put(stream, '['); - stream->put(stream, (int)keycode); - stream->put(stream, terminator); -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: kbd_release - * - * Description: - * Encode the release of a normal key. - * - * Input Parameters: - * ch - The character associated with the key that was releared. - * stream - An instance of lib_outstream_s to do the low-level put - * operation. - * - * Returned Value: - * None - * - ****************************************************************************/ - -void kbd_release(uint8_t ch, FAR struct lib_outstream_s *stream) -{ - kbd_encode(ch, stream, ('a' + KBD_RELEASE)); -} - -/**************************************************************************** - * Name: kbd_specpress - * - * Description: - * Denotes a special key press event. Put one special keyboard command - * into the output stream. - * - * Input Parameters: - * keycode - The command to be added to the output stream. - * stream - An instance of lib_outstream_s to do the low-level put - * operation. - * - * Returned Value: - * None - * - ****************************************************************************/ - -void kbd_specpress(enum kbd_keycode_e keycode, - FAR struct lib_outstream_s *stream) -{ - DEBUGASSERT(stream && keycode >= KEYCODE_FWDDEL && keycode <= LAST_KEYCODE); - kbd_encode((uint8_t)keycode, stream, ('a' + KBD_SPECPRESS)); -} - -/**************************************************************************** - * Name: kbd_specrel - * - * Description: - * Denotes a special key release event. Put one special keyboard - * command into the output stream. - * - * Input Parameters: - * keycode - The command to be added to the output stream. - * stream - An instance of lib_outstream_s to do the low-level put - * operation. - * - * Returned Value: - * None - * - ****************************************************************************/ - -void kbd_specrel(enum kbd_keycode_e keycode, - FAR struct lib_outstream_s *stream) -{ - DEBUGASSERT(stream && keycode >= KEYCODE_FWDDEL && keycode <= LAST_KEYCODE); - kbd_encode((uint8_t)keycode, stream, ('a' + KBD_SPECREL)); -} diff --git a/nuttx/libc/misc/lib_match.c b/nuttx/libc/misc/lib_match.c deleted file mode 100644 index a8cfad329..000000000 --- a/nuttx/libc/misc/lib_match.c +++ /dev/null @@ -1,148 +0,0 @@ -/**************************************************************************** - * libc/misc/lib_match.c - simple shell-style filename matcher - * - * Simple shell-style filename pattern matcher written by Jef Poskanzer - * This pattern matcher only handles '?', '*' and '**', and multiple - * patterns separated by '|'. - * - * Copyright © 1995,2000 by Jef Poskanzer <jef@mail.acme.com>. - * All rights reserved. - * - * 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. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <string.h> -#include <nuttx/regex.h> - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: match_one - * - * Description: - * Does all of the work for one '|' delimited pattern - * - * Returned Value: - * Returns 1 (match) or 0 (no-match). - * - ****************************************************************************/ - -static int match_one(const char *pattern, int patlen, const char *string) -{ - const char *p; - int pl; - int i; - - for (p = pattern; p - pattern < patlen; p++, string++) - { - if (*p == '?' && *string != '\0') - { - continue; - } - - if (*p == '*') - { - p++; - if (*p == '*') - { - /* Double-wildcard matches anything. */ - - p++; - i = strlen(string); - } - else - { - /* Single-wildcard matches anything but slash. */ - - i = strcspn(string, "/"); - } - - pl = patlen - (p - pattern); - for (; i >= 0; i--) - { - if (match_one(p, pl, &(string[i]))) - { - return 1; - } - } - return 0; - } - - if (*p != *string) - { - return 0; - } - } - - if (*string == '\0') - { - return 1; - } - return 0; -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: match - * - * Description: - * Simple shell-style filename pattern matcher written by Jef Poskanzer - * This pattern matcher only handles '?', '*' and '**', and multiple - * patterns separated by '|'. - * - * Returned Value: - * Returns 1 (match) or 0 (no-match). - * - ****************************************************************************/ - -int match(const char *pattern, const char *string) -{ - const char *or; - - for (;;) - { - or = strchr(pattern, '|'); - if (or == (char *)0) - { - return match_one(pattern, strlen(pattern), string); - } - - if (match_one(pattern, or - pattern, string)) - { - return 1; - } - - pattern = or + 1; - } -} - diff --git a/nuttx/libc/misc/lib_sendfile.c b/nuttx/libc/misc/lib_sendfile.c deleted file mode 100644 index 8a38dc317..000000000 --- a/nuttx/libc/misc/lib_sendfile.c +++ /dev/null @@ -1,297 +0,0 @@ -/************************************************************************ - * libc/misc/lib_streamsem.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/sendfile.h> -#include <stdbool.h> -#include <stdlib.h> -#include <unistd.h> -#include <errno.h> - -#if CONFIG_NSOCKET_DESCRIPTORS > 0 || CONFIG_NFILE_DESCRIPTORS > 0 - -/************************************************************************ - * Private types - ************************************************************************/ - -/************************************************************************ - * Private Variables - ************************************************************************/ - -/************************************************************************ - * Public Variables - ************************************************************************/ - -/************************************************************************ - * Private Functions - ************************************************************************/ - -/************************************************************************ - * Public Functions - ************************************************************************/ - -/************************************************************************ - * Name: sendfile - * - * Description: - * sendfile() copies data between one file descriptor and another. - * sendfile() basically just wraps a sequence of reads() and writes() - * to perform a copy. It serves a purpose in systems where there is - * a penalty for copies to between user and kernal space, but really - * nothing in NuttX but provide some Linux compatible (and adding - * another 'almost standard' interface). - * - * NOTE: This interface is *not* specified in POSIX.1-2001, or other - * standards. The implementation here is very similar to the Linux - * sendfile interface. Other UNIX systems implement sendfile() with - * different semantics and prototypes. sendfile() should not be used - * in portable programs. - * - * Input Parmeters: - * infd - A file (or socket) descriptor opened for reading - * outfd - A descriptor opened for writing. - * offset - If 'offset' is not NULL, then it points to a variable - * holding the file offset from which sendfile() will start - * reading data from 'infd'. When sendfile() returns, this - * variable will be set to the offset of the byte following - * the last byte that was read. If 'offset' is not NULL, - * then sendfile() does not modify the current file offset of - * 'infd'; otherwise the current file offset is adjusted to - * reflect the number of bytes read from 'infd.' - * - * If 'offset' is NULL, then data will be read from 'infd' - * starting at the current file offset, and the file offset - * will be updated by the call. - * count - The number of bytes to copy between the file descriptors. - * - * Returned Value: - * If the transfer was successful, the number of bytes written to outfd is - * returned. On error, -1 is returned, and errno is set appropriately. - * There error values are those returned by read() or write() plus: - * - * EINVAL - Bad input parameters. - * ENOMEM - Could not allocated an I/O buffer - * - ************************************************************************/ - -ssize_t sendfile(int outfd, int infd, off_t *offset, size_t count) -{ - FAR uint8_t *iobuffer; - FAR uint8_t *wrbuffer; - off_t startpos = 0; - ssize_t nbytesread; - ssize_t nbyteswritten; - size_t ntransferred; - bool endxfr; - - /* Get the current file position. */ - - if (offset) - { - /* Use lseek to get the current file position */ - - startpos = lseek(infd, 0, SEEK_CUR); - if (startpos == (off_t)-1) - { - return ERROR; - } - - /* Use lseek again to set the new file position */ - - if (lseek(infd, *offset, SEEK_SET) == (off_t)-1) - { - return ERROR; - } - } - - /* Allocate an I/O buffer */ - - iobuffer = (FAR void *)malloc(CONFIG_LIB_SENDFILE_BUFSIZE); - if (!iobuffer) - { - set_errno(ENOMEM); - return ERROR; - } - - /* Now transfer 'count' bytes from the infd to the outfd */ - - for (ntransferred = 0, endxfr = false; ntransferred < count && !endxfr; ) - { - /* Loop until the read side of the transfer comes to some conclusion */ - - do - { - /* Read a buffer of data from the infd */ - - nbytesread = read(infd, iobuffer, CONFIG_LIB_SENDFILE_BUFSIZE); - - /* Check for end of file */ - - if (nbytesread == 0) - { - /* End of file. Break out and return current number of bytes - * transferred. - */ - - endxfr = true; - break; - } - - /* Check for a read ERROR. EINTR is a special case. This function - * should break out and return an error if EINTR is returned and - * no data has been transferred. But what should it do if some - * data has been transferred? I suppose just continue? - */ - - else if (nbytesread < 0) - { - /* EINTR is not an error (but will still stop the copy) */ - -#ifndef CONFIG_DISABLE_SIGNALS - if (errno != EINTR || ntransferred == 0) -#endif - { - /* Read error. Break out and return the error condition. */ - - ntransferred = ERROR; - endxfr = true; - break; - } - } - } - while (nbytesread < 0); - - /* Was anything read? */ - - if (!endxfr) - { - /* Yes.. Loop until the read side of the transfer comes to some - * conclusion. - */ - - wrbuffer = iobuffer; - do - { - /* Write the buffer of data to the outfd */ - - nbyteswritten = write(outfd, wrbuffer, nbytesread); - - /* Check for a complete (or parial) write. write() should not - * return zero. - */ - - if (nbyteswritten >= 0) - { - /* Advance the buffer pointer and decrement the number of bytes - * remaining in the iobuffer. Typically, nbytesread will now - * be zero. - */ - - wrbuffer += nbyteswritten; - nbytesread -= nbyteswritten; - - /* Increment the total number of bytes successfully transferred. */ - - ntransferred += nbyteswritten; - } - - /* Otherwise an error occurred */ - - else - { - /* Check for a read ERROR. EINTR is a special case. This - * function should break out and return an error if EINTR - * is returned and no data has been transferred. But what - * should it do if some data has been transferred? I - * suppose just continue? - */ - -#ifndef CONFIG_DISABLE_SIGNALS - if (errno != EINTR || ntransferred == 0) -#endif - { - /* Write error. Break out and return the error condition */ - - ntransferred = ERROR; - endxfr = true; - break; - } - } - } - while (nbytesread > 0); - } - } - - /* Release the I/O buffer */ - - free(iobuffer); - - /* Return the current file position */ - - if (offset) - { - /* Use lseek to get the current file position */ - - off_t curpos = lseek(infd, 0, SEEK_CUR); - if (curpos == (off_t)-1) - { - return ERROR; - } - - /* Return the current file position */ - - *offset = curpos; - - /* Use lseek again to restore the original file position */ - - if (lseek(infd, startpos, SEEK_SET) == (off_t)-1) - { - return ERROR; - } - } - - /* Finally return the number of bytes actually transferred (or ERROR - * if any failure occurred). - */ - - return ntransferred; -} - -#endif /* CONFIG_NSOCKET_DESCRIPTORS > 0 || CONFIG_NFILE_DESCRIPTORS > 0 */ diff --git a/nuttx/libc/misc/lib_streamsem.c b/nuttx/libc/misc/lib_streamsem.c deleted file mode 100644 index 3397f9907..000000000 --- a/nuttx/libc/misc/lib_streamsem.c +++ /dev/null @@ -1,88 +0,0 @@ -/************************************************************************ - * libc/misc/lib_streamsem.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> - -#include <stdlib.h> -#include <string.h> -#include <assert.h> -#include <semaphore.h> -#include <errno.h> -#include <nuttx/fs/fs.h> - -#include "lib_internal.h" - -/************************************************************************ - * Private types - ************************************************************************/ - -/************************************************************************ - * Private Variables - ************************************************************************/ - -/************************************************************************ - * Public Variables - ************************************************************************/ - -/************************************************************************ - * Private Functions - ************************************************************************/ - -/************************************************************************ - * Public Functions - ************************************************************************/ - -void stream_semtake(FAR struct streamlist *list) -{ - /* Take the semaphore (perhaps waiting) */ - - while (sem_wait(&list->sl_sem) != 0) - { - /* The only case that an error should occr here is if - * the wait was awakened by a signal. - */ - - ASSERT(get_errno() == EINTR); - } -} - -void stream_semgive(FAR struct streamlist *list) -{ - sem_post(&list->sl_sem); -} diff --git a/nuttx/libc/mqueue/Make.defs b/nuttx/libc/mqueue/Make.defs deleted file mode 100644 index 826970fa3..000000000 --- a/nuttx/libc/mqueue/Make.defs +++ /dev/null @@ -1,48 +0,0 @@ -############################################################################ -# libc/mqueue/Make.defs -# -# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -############################################################################ - -ifneq ($(CONFIG_DISABLE_MQUEUE),y) - -# Add the mqueue C files to the build - -CSRCS += mq_setattr.c mq_getattr.c - -# Add the mqueue directory to the build - -DEPPATH += --dep-path mqueue -VPATH += :mqueue - -endif - diff --git a/nuttx/libc/mqueue/mq_getattr.c b/nuttx/libc/mqueue/mq_getattr.c deleted file mode 100644 index 2fc0e131b..000000000 --- a/nuttx/libc/mqueue/mq_getattr.c +++ /dev/null @@ -1,104 +0,0 @@ -/************************************************************************ - * libc/mqueue/mq_getattr.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> - -#include <mqueue.h> -#include <nuttx/mqueue.h> - -/************************************************************************ - * Definitions - ************************************************************************/ - -/************************************************************************ - * Private Type Declarations - ************************************************************************/ - -/************************************************************************ - * Global Variables - ************************************************************************/ - -/************************************************************************ - * Private Variables - ************************************************************************/ - -/************************************************************************ - * Private Functions - ************************************************************************/ - -/************************************************************************ - * Public Functions - ************************************************************************/ - -/************************************************************************ - * Function: mq_getattr - * - * Description: - * This functions gets status information and attributes - * associated with the specified message queue. - * - * Parameters: - * mqdes - Message queue descriptor - * mq_stat - Buffer in which to return attributes - * - * Return Value: - * 0 (OK) if attributes provided, -1 (ERROR) otherwise. - * - * Assumptions: - * - ************************************************************************/ - -int mq_getattr(mqd_t mqdes, struct mq_attr *mq_stat) -{ - int ret = ERROR; - - if (mqdes && mq_stat) - { - /* Return the attributes */ - - mq_stat->mq_maxmsg = mqdes->msgq->maxmsgs; - mq_stat->mq_msgsize = mqdes->msgq->maxmsgsize; - mq_stat->mq_flags = mqdes->oflags; - mq_stat->mq_curmsgs = mqdes->msgq->nmsgs; - - ret = OK; - } - - return ret; -} diff --git a/nuttx/libc/mqueue/mq_setattr.c b/nuttx/libc/mqueue/mq_setattr.c deleted file mode 100644 index 45a848e6d..000000000 --- a/nuttx/libc/mqueue/mq_setattr.c +++ /dev/null @@ -1,118 +0,0 @@ -/************************************************************************ - * libc/mqueue/mq_setattr.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> - -#include <fcntl.h> /* O_NONBLOCK */ -#include <mqueue.h> - -#include <nuttx/mqueue.h> - -/************************************************************************ - * Definitions - ************************************************************************/ - -/************************************************************************ - * Private Type Declarations - ************************************************************************/ - -/************************************************************************ - * Global Variables - ************************************************************************/ - -/************************************************************************ - * Private Variables - ************************************************************************/ - -/************************************************************************ - * Private Functions - ************************************************************************/ - -/************************************************************************ - * Public Functions - ************************************************************************/ - -/************************************************************************ - * Function: mq_setattr - * - * Description: - * This function sets the attributes associated with the - * specified message queue "mqdes." Only the "O_NONBLOCK" - * bit of the "mq_flags" can be changed. - * - * If "oldstat" is non-null, mq_setattr() will store the - * previous message queue attributes at that location (just - * as would have been returned by mq_getattr()). - * - * Parameters: - * mqdes - Message queue descriptor - * mq_stat - New attributes - * oldstate - Old attributes - * - * Return Value: - * 0 (OK) if attributes are set successfully, otherwise - * -1 (ERROR). - * - * Assumptions: - * - ************************************************************************/ - -int mq_setattr(mqd_t mqdes, const struct mq_attr *mq_stat, - struct mq_attr *oldstat) -{ - int ret = ERROR; - - if (mqdes && mq_stat) - { - /* Return the attributes if so requested */ - - if (oldstat) - { - (void)mq_getattr(mqdes, oldstat); - } - - /* Set the new value of the O_NONBLOCK flag. */ - - mqdes->oflags = ((mq_stat->mq_flags & O_NONBLOCK) | - (mqdes->oflags & (~O_NONBLOCK))); - ret = OK; - } - - return ret; -} diff --git a/nuttx/libc/net/Make.defs b/nuttx/libc/net/Make.defs deleted file mode 100644 index 9d4e5c06b..000000000 --- a/nuttx/libc/net/Make.defs +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################ -# libc/net/Make.defs -# -# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -############################################################################ - -# Add the networking C files to the build - -CSRCS += lib_etherntoa.c lib_htons.c lib_htonl.c lib_inetaddr.c -CSRCS += lib_inetntoa.c lib_inetntop.c lib_inetpton.c - -# Add the net directory to the build - -DEPPATH += --dep-path net -VPATH += :net diff --git a/nuttx/libc/net/lib_etherntoa.c b/nuttx/libc/net/lib_etherntoa.c deleted file mode 100644 index 91fb01c57..000000000 --- a/nuttx/libc/net/lib_etherntoa.c +++ /dev/null @@ -1,69 +0,0 @@ -/**************************************************************************** - * libc/net/lib_etherntoa.c - * - * Copyright (C) 2007, 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> -#include <stdio.h> - -#include <net/ethernet.h> -#include <netinet/ether.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: ether_ntoa - * - * Description: - * The ether_ntoa() function converts the Ethernet host address addr given - * in network byte order to a string in standard hex-digits-and-colons - * notation. The string is returned in a statically allocated buffer, which - * subsequent calls will overwrite. - * - ****************************************************************************/ - -FAR char *ether_ntoa(FAR const struct ether_addr *addr) -{ - static char buffer[20]; - sprintf(buffer, "%02x:%02x:%02x:%02x:%02x:%02x", - addr->ether_addr_octet[0], addr->ether_addr_octet[1], - addr->ether_addr_octet[2], addr->ether_addr_octet[3], - addr->ether_addr_octet[4], addr->ether_addr_octet[5]); - return buffer; -} diff --git a/nuttx/libc/net/lib_htonl.c b/nuttx/libc/net/lib_htonl.c deleted file mode 100644 index a10f54f37..000000000 --- a/nuttx/libc/net/lib_htonl.c +++ /dev/null @@ -1,68 +0,0 @@ -/************************************************************ - * libc/net/lib_ntohl.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************/ - -/************************************************************ - * Included Files - ************************************************************/ - -#include <nuttx/config.h> - -#include <stdint.h> -#include <arpa/inet.h> - -/************************************************************ - * Global Functions - ************************************************************/ - -uint32_t htonl(uint32_t hl) -{ -#ifdef CONFIG_ENDIAN_BIG - return hl; -#else - return (( (hl) >> 24) | - (((hl) >> 8) & 0x0000ff00) | - (((hl) << 8) & 0x00ff0000) | - ( (hl) << 24)); -#endif -} - -uint32_t ntohl(uint32_t nl) -{ -#ifdef CONFIG_ENDIAN_BIG - return nl; -#else - return htonl(nl); -#endif -} diff --git a/nuttx/libc/net/lib_htons.c b/nuttx/libc/net/lib_htons.c deleted file mode 100644 index 13addd913..000000000 --- a/nuttx/libc/net/lib_htons.c +++ /dev/null @@ -1,65 +0,0 @@ -/*************************************************************************** - * libc/net/lib_htons.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <stdint.h> -#include <arpa/inet.h> - -/*************************************************************************** - * Global Functions - ***************************************************************************/ - -uint16_t htons(uint16_t hs) -{ - return HTONS(hs); -} - -uint16_t ntohs(uint16_t ns) -{ -#ifdef CONFIG_ENDIAN_BIG - return ns; -#else - return htons(ns); -#endif -} diff --git a/nuttx/libc/net/lib_inetaddr.c b/nuttx/libc/net/lib_inetaddr.c deleted file mode 100644 index 46c6c548d..000000000 --- a/nuttx/libc/net/lib_inetaddr.c +++ /dev/null @@ -1,74 +0,0 @@ -/**************************************************************************** - * libc/net/lib_inetaddr.c - * - * Copyright (C) 2011 Yu Qiang. All rights reserved. - * Author: Yu Qiang <yuq825@gmail.com> - * - * This file is a part of NuttX: - * - * Copyright (C) 2011 Gregory Nutt. All rights reserved. - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <stdio.h> -#include <arpa/inet.h> - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * name inet_addr - * - * Description: - * The inet_addr() function converts the string pointed to by cp, in the - * standard IPv4 dotted decimal notation, to an integer value suitable for - * use as an Internet address. - - ****************************************************************************/ - -in_addr_t inet_addr(FAR const char *cp) -{ - unsigned int a, b, c, d; - uint32_t result; - - sscanf(cp, "%u.%u.%u.%u", &a, &b, &c, &d); - result = a << 8; - result |= b; - result <<= 8; - result |= c; - result <<= 8; - result |= d; - return HTONL(result); -} diff --git a/nuttx/libc/net/lib_inetntoa.c b/nuttx/libc/net/lib_inetntoa.c deleted file mode 100644 index e2d92d864..000000000 --- a/nuttx/libc/net/lib_inetntoa.c +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** - * libc/net/lib_inetntoa.c - * - * Copyright (C) 2007-2008, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> -#include <stdio.h> -#include <arpa/inet.h> - -#ifndef CONFIG_NET_IPv6 - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: inet_ntoa - * - * Description: - * The inet_ntoa() function converts the Internet host address in given in - * network byte order to a string in standard numbers-and-dots notation. - * The string is returned in a statically allocated buffer, which subsequent - * calls will overwrite. - * - ****************************************************************************/ - -#ifdef CONFIG_CAN_PASS_STRUCTS -FAR char *inet_ntoa(struct in_addr in) -{ - static char buffer[INET_ADDRSTRLEN+2]; - FAR char *ptr = (FAR char*)&in.s_addr; - sprintf(buffer, "%d.%d.%d.%d", ptr[0], ptr[1], ptr[2], ptr[3]); - return buffer; -} -#else -FAR char *_inet_ntoa(in_addr_t in) -{ - static char buffer[INET_ADDRSTRLEN+2]; - FAR char *ptr = (FAR char*)∈ - sprintf(buffer, "%d.%d.%d.%d", ptr[0], ptr[1], ptr[2], ptr[3]); - return buffer; -} -#endif -#endif /* !CONFIG_NET_IPv6 */ - diff --git a/nuttx/libc/net/lib_inetntop.c b/nuttx/libc/net/lib_inetntop.c deleted file mode 100644 index 25c32c48c..000000000 --- a/nuttx/libc/net/lib_inetntop.c +++ /dev/null @@ -1,202 +0,0 @@ -/**************************************************************************** - * libc/net/lib_inetntop.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * Includes some logic extracted from hwport_ftpd, written by Jaehyuk Cho - * <minzkn@minzkn.com> which was released under the BSD license. - * - * Copyright (C) HWPORT.COM. All rights reserved. - * Author: JAEHYUK CHO <mailto:minzkn@minzkn.com> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/socket.h> - -#include <stdio.h> -#include <string.h> -#include <errno.h> - -#include <arpa/inet.h> - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: inet_ntop - * - * Description: - * The inet_ntop() function converts a numeric address into a text string - * suitable for presentation. - * - * Input Parameters: - * af - The af argument specifies the family of the address. This can be - * AF_INET or AF_INET6. - * src - The src argument points to a buffer holding an address of the - * specified type. The address must be in network byte order. - * dst - The dst argument points to a buffer where the function stores - * the resulting text string; it shall not be NULL. - * size - The size argument specifies the size of this buffer, which must - * be large enough to hold the text string (INET_ADDRSTRLEN - * characters for IPv4, INET6_ADDRSTRLEN characters for IPv6). - * - * Returned Value: - * inet_ntop() returns a pointer to the buffer containing the text string - * if the conversion succeeds. Otherwise, NULL is returned and the errno - * is set to indicate the error. There follow errno values may be set: - * - * EAFNOSUPPORT - The af argument is invalid. - * ENOSPC - The size of the inet_ntop() result buffer is inadequate - * - ****************************************************************************/ - -FAR const char *inet_ntop(int af, FAR const void *src, FAR char *dst, socklen_t size) -{ - int errval; -#ifndef CONFIG_NET_IPv6 - FAR char *ptr; - - DEBUGASSERT(src && dst); - - if (af != AF_INET) - { - errval = EAFNOSUPPORT; - goto errout; - } - - if (size < INET_ADDRSTRLEN) - { - errval = ENOSPC; - goto errout; - } - - ptr = (FAR char*)src; - sprintf(dst, "%d.%d.%d.%d", ptr[0], ptr[1], ptr[2], ptr[3]); - return dst; -#else - FAR const struct in6_addr *in6_addr; - uint16_t warray[8]; - int offset; - int entry; - int count; - int maxentry; - int maxcount; - - DEBUGASSERT(src && dst); - - if (af != AF_INET6) - { - errval = EAFNOSUPPORT; - goto errout; - } - - if (size < INET6_ADDRSTRLEN) - { - errval = ENOSPC; - goto errout; - } - - in6_addr = (FAR const struct in6_addr *)src; - entry = -1; - maxentry = -1; - maxcount = 0; - offset = 0; - - while (offset < 8) - { - warray[offset] = ntohs(in6_addr->s6_addr16[offset]); - if (warray[offset] == 0) - { - entry = offset; - count = 1; - offset++; - - while (offset < 8) - { - warray[offset] = ntohs(in6_addr->s6_addr16[offset]); - if (warray[offset] != 0) - { - break; - } - offset++; - count++; - } - - if (count > maxcount) - { - maxentry = entry; - maxcount = count; - } - } - offset++; - } - - offset = 0; - dst[0] = '\0'; - - while (offset < 8) - { - if (offset == maxentry) - { - size -= snprintf(&dst[strlen(dst)], size, ":"); - offset += maxcount; - if (offset >= 8) - { - size -= snprintf(&dst[strlen(dst)], size, ":"); - } - } - else - { - if (offset > 0) - { - size -= snprintf(&dst[strlen(dst)], size, ":"); - } - - size -= snprintf(&dst[strlen(dst)], size, "%x", warray[offset]); - offset++; - } - } - - return dst; -#endif - -errout: - set_errno(errval); - memset(dst, 0, size); - return NULL; -} diff --git a/nuttx/libc/net/lib_inetpton.c b/nuttx/libc/net/lib_inetpton.c deleted file mode 100644 index c5f117535..000000000 --- a/nuttx/libc/net/lib_inetpton.c +++ /dev/null @@ -1,338 +0,0 @@ -/**************************************************************************** - * libc/net/lib_inetpton.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * Includes some logic extracted from hwport_ftpd, written by Jaehyuk Cho - * <minzkn@minzkn.com> which was released under the BSD license. - * - * Copyright (C) HWPORT.COM. All rights reserved. - * Author: JAEHYUK CHO <mailto:minzkn@minzkn.com> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/socket.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -#include <arpa/inet.h> - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: inet_pton - * - * Description: - * The inet_pton() function converts an address in its standard text - * presentation form into its numeric binary form. - * - * If the af argument of inet_pton() is AF_INET, the src string will be - * in the standard IPv4 dotted-decimal form: - * - * ddd.ddd.ddd.ddd - * - * where "ddd" is a one to three digit decimal number between 0 and 255. - * - * If the af argument of inet_pton() is AF_INET6, the src string will be in - * one of the following standard IPv6 text forms: - * - * 1. The preferred form is "x:x:x:x:x:x:x:x", where the 'x' s are the - * hexadecimal values of the eight 16-bit pieces of the address. Leading - * zeros in individual fields can be omitted, but there must be at least - * one numeral in every field. - * - * 2. A string of contiguous zero fields in the preferred form can be shown - * as "::". The "::" can only appear once in an address. Unspecified - * addresses ( "0:0:0:0:0:0:0:0" ) may be represented simply as "::". - * - * 3. A third form that is sometimes more convenient when dealing with a - * mixed environment of IPv4 and IPv6 nodes is "x:x:x:x:x:x:d.d.d.d", - * where the 'x' s are the hexadecimal values of the six high-order - * 16-bit pieces of the address, and the 'd' s are the decimal values - * of the four low-order 8-bit pieces of the address (standard IPv4 - * representation). - * - * Input Parameters: - * af - The af argument specifies the family of the address. This can be - * AF_INET or AF_INET6. - * src - The src argument points to the string being passed in. - * dst - The dst argument points to a numstr into which the function stores - * the numeric address; this must be large enough to hold the numeric - * address (32 bits for AF_INET, 128 bits for AF_INET6). - * - * Returned Value: - * The inet_pton() function returns 1 if the conversion succeeds, with the - * address pointed to by dst in network byte order. It will return 0 if the - * input is not a valid IPv4 dotted-decimal string or a valid IPv6 address - * string, or -1 with errno set to EAFNOSUPPOR] if the af argument is unknown. - * - ****************************************************************************/ - -int inet_pton(int af, FAR const char *src, FAR void *dst) -{ -#ifndef CONFIG_NET_IPv6 - size_t srcoffset; - size_t numoffset; - int value; - int ndots; - uint8_t ch; - char numstr[4]; - uint8_t *ip; - - DEBUGASSERT(src && dst); - - if (af != AF_INET) - { - set_errno(EAFNOSUPPORT); - return -1; - } - - (void)memset(dst, 0, sizeof(struct in_addr)); - - ip = (uint8_t *)dst; - srcoffset = 0; - numoffset = 0; - ndots = 0; - - for(;;) - { - ch = (uint8_t)src[srcoffset++]; - - if (ch == '.' || ch == '\0') - { - if (ch == '.' && ndots >= 4) - { - /* Too many dots */ - - break; - } - - if (numoffset <= 0) - { - /* Empty numeric string */ - - break; - } - - numstr[numoffset] = '\0'; - numoffset = 0; - - value = atoi(numstr); - if (value < 0 || value > 255) - { - /* Out of range value */ - - break; - } - - ip[ndots] = (uint8_t)value; - - if (ch == '\0') - { - if (ndots != 3) - { - /* Not enough dots */ - - break; - } - - /* Return 1 if the conversion succeeds */ - - return 1; - } - - ndots++; - } - else if (ch >= '0' && ch <= '9') - { - numstr[numoffset++] = ch; - if (numoffset >= 4) - { - /* Number is too long */ - - break; - } - } - else - { - /* Illegal character */ - - break; - } - } - - /* Return zero if there is any problem parsing the input */ - - return 0; -#else - size_t srcoffset; - size_t numoffset; - long value; - int nsep; - int nrsep; - uint8_t ch; - char numstr[5]; - uint8_t ip[sizeof(struct in6_addr)]; - uint8_t rip[sizeof(struct in6_addr)]; - bool rtime; - - DEBUGASSERT(src && dst); - - if (af != AF_INET6) - { - set_errno(EAFNOSUPPORT); - return -1; - } - - (void)memset(dst, 0, sizeof(struct in6_addr)); - - srcoffset = 0; - numoffset = 0; - nsep = 0; - nrsep = 0; - rtime = false; - - for(;;) - { - ch = (uint8_t)src[srcoffset++]; - - if (ch == ':' || ch == '\0') - { - if (ch == ':' && (nsep + nrsep) >= 8) - { - /* Too many separators */ - - break; - } - - if (ch != '\0' && numoffset <= 0) - { - /* Empty numeric string */ - - if (rtime && nrsep > 1) - { - /* dup simple */ - - break; - } - - numoffset = 0; - rtime = true; - continue; - } - - numstr[numoffset] = '\0'; - numoffset = 0; - - value = strtol(numstr, NULL, 16); - if (value < 0 || value > 0xffff) - { - /* Out of range value */ - - break; - } - - if (!rtime) - { - ip[(nsep << 1) + 0] = (uint8_t)((value >> 8) & 0xff); - ip[(nsep << 1) + 1] = (uint8_t)((value >> 0) & 0xff); - nsep++; - } - else - { - rip[(nrsep << 1) + 0] = (uint8_t)((value >> 8) & 0xff); - rip[(nrsep << 1) + 1] = (uint8_t)((value >> 0) & 0xff); - nrsep++; - } - - if (ch == '\0' /* || ch == '/' */) - { - if ((nsep <= 1 && nrsep <= 0) || - (nsep + nrsep) < 1 || - (nsep + nrsep) > 8) - { - /* Separator count problem */ - - break; - } - - if (nsep > 0) - { - memcpy(dst, &ip[0], nsep << 1); - } - - if (nrsep > 0) - { - memcpy(dst + (16 - (nrsep << 1)), &rip[0], nrsep << 1); - } - - /* Return 1 if the conversion succeeds */ - - return 1; - } - } - else if ((ch >= '0' && ch <= '9') || - (ch >= 'a' && ch <= 'f') || - (ch >= 'A' && ch <= 'F')) - { - numstr[numoffset++] = ch; - if (numoffset >= 5) - { - /* Numeric string is too long */ - - break; - } - } - else - { - /* Illegal character */ - - break; - } - } - - - /* Return zero if there is any problem parsing the input */ - - return 0; -#endif -} diff --git a/nuttx/libc/pthread/Make.defs b/nuttx/libc/pthread/Make.defs deleted file mode 100644 index 07e4f0570..000000000 --- a/nuttx/libc/pthread/Make.defs +++ /dev/null @@ -1,56 +0,0 @@ -############################################################################ -# libc/pthread/Make.defs -# -# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -############################################################################ - -# Add the pthread C files to the build - -CSRCS += pthread_attrinit.c pthread_attrdestroy.c \ - pthread_attrsetschedpolicy.c pthread_attrgetschedpolicy.c \ - pthread_attrsetinheritsched.c pthread_attrgetinheritsched.c \ - pthread_attrsetstacksize.c pthread_attrgetstacksize.c \ - pthread_attrsetschedparam.c pthread_attrgetschedparam.c \ - pthread_barrierattrinit.c pthread_barrierattrdestroy.c \ - pthread_barrierattrgetpshared.c pthread_barrierattrsetpshared.c \ - pthread_condattrinit.c pthread_condattrdestroy.c \ - pthread_mutexattrinit.c pthread_mutexattrdestroy.c \ - pthread_mutexattrgetpshared.c pthread_mutexattrsetpshared.c - -ifeq ($(CONFIG_MUTEX_TYPES),y) -CSRCS += pthread_mutexattrsettype.c pthread_mutexattrgettype.c -endif - -# Add the pthread directory to the build - -DEPPATH += --dep-path pthread -VPATH += :pthread diff --git a/nuttx/libc/pthread/pthread_attrdestroy.c b/nuttx/libc/pthread/pthread_attrdestroy.c deleted file mode 100644 index 37ad46ebc..000000000 --- a/nuttx/libc/pthread/pthread_attrdestroy.c +++ /dev/null @@ -1,108 +0,0 @@ -/**************************************************************************** - * libc/pthread/pthread_attrdestroy.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <pthread.h> -#include <string.h> -#include <debug.h> -#include <errno.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: pthread_attr_destroy - * - * Description: - * An attributes object can be deleted when it is no longer - * needed. - * - * Parameters: - * attr - * - * Return Value: - * 0 meaning success - * - * Assumptions: - * - ****************************************************************************/ - -int pthread_attr_destroy(FAR pthread_attr_t *attr) -{ - int ret; - - sdbg("attr=0x%p\n", attr); - - if (!attr) - { - ret = EINVAL; - } - else - { - memset(attr, 0, sizeof(pthread_attr_t)); - ret = OK; - } - - sdbg("Returning %d\n", ret); - return ret; -} - - diff --git a/nuttx/libc/pthread/pthread_attrgetinheritsched.c b/nuttx/libc/pthread/pthread_attrgetinheritsched.c deleted file mode 100644 index 6ec8ae71f..000000000 --- a/nuttx/libc/pthread/pthread_attrgetinheritsched.c +++ /dev/null @@ -1,111 +0,0 @@ -/**************************************************************************** - * libc/pthread/pthread_attrgetinheritsched.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <pthread.h> -#include <string.h> -#include <debug.h> -#include <errno.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: pthread_attr_getinheritsched - * - * Description: - * Report whether the scheduling info in the pthread - * attributes will be used or if the thread will - * inherit the properties of the parent. - * - * Parameters: - * attr - * inheritsched - * - * Return Value: - * 0 if successful. Otherwise, an error code. - * - * Assumptions: - * - ****************************************************************************/ - -int pthread_attr_getinheritsched(FAR const pthread_attr_t *attr, - FAR int *inheritsched) -{ - int ret; - - sdbg("attr=0x%p inheritsched=0x%p\n", attr, inheritsched); - - if (!attr || !inheritsched) - { - ret = EINVAL; - } - else - { - *inheritsched = (int)attr->inheritsched; - ret = OK; - } - - sdbg("Returning %d\n", ret); - return ret; -} - - diff --git a/nuttx/libc/pthread/pthread_attrgetschedparam.c b/nuttx/libc/pthread/pthread_attrgetschedparam.c deleted file mode 100644 index 6bcc9618e..000000000 --- a/nuttx/libc/pthread/pthread_attrgetschedparam.c +++ /dev/null @@ -1,110 +0,0 @@ -/**************************************************************************** - * libc/pthread/pthread_attrgetschedparam.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <pthread.h> -#include <string.h> -#include <sched.h> -#include <debug.h> -#include <errno.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: pthread_attr_getschedparam - * - * Description: - * - * Parameters: - * attr - * param - * - * Return Value: - * 0 if successful. Otherwise, an error code. - * - * Assumptions: - * - ****************************************************************************/ - -int pthread_attr_getschedparam(FAR pthread_attr_t *attr, - FAR struct sched_param *param) -{ - int ret; - - sdbg("attr=0x%p param=0x%p\n", attr, param); - - if (!attr || !param) - { - ret = EINVAL; - } - else - { - param->sched_priority = attr->priority; - ret = OK; - } - - sdbg("Returning %d\n", ret); - return ret; -} - - - diff --git a/nuttx/libc/pthread/pthread_attrgetschedpolicy.c b/nuttx/libc/pthread/pthread_attrgetschedpolicy.c deleted file mode 100644 index 8845e2bd8..000000000 --- a/nuttx/libc/pthread/pthread_attrgetschedpolicy.c +++ /dev/null @@ -1,105 +0,0 @@ -/**************************************************************************** - * libc/pthread/pthread_attrgetschedpolicy.c - * - * Copyright (C) 2007, 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <sys/types.h> -#include <pthread.h> -#include <string.h> -#include <debug.h> -#include <errno.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: pthread_attr_getschedpolicy - * - * Description: - * Obtain the scheduling algorithm attribute. - * - * Parameters: - * attr - * policy - * - * Return Value: - * 0 if successful. Otherwise, an error code. - * - * Assumptions: - * - ****************************************************************************/ - -int pthread_attr_getschedpolicy(FAR pthread_attr_t *attr, int *policy) -{ - int ret; - - sdbg("attr=0x%p policy=0x%p\n", attr, policy); - - if (!attr || !policy) - { - ret = EINVAL; - } - else - { - *policy = attr->policy; - ret = OK; - } - - sdbg("Returning %d\n", ret); - return ret; -} diff --git a/nuttx/libc/pthread/pthread_attrgetstacksize.c b/nuttx/libc/pthread/pthread_attrgetstacksize.c deleted file mode 100644 index 9fde29e81..000000000 --- a/nuttx/libc/pthread/pthread_attrgetstacksize.c +++ /dev/null @@ -1,106 +0,0 @@ -/**************************************************************************** - * libc/pthread/pthread_attrgetstacksize.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <sys/types.h> -#include <pthread.h> -#include <string.h> -#include <debug.h> -#include <errno.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: pthread_attr_getstacksize - * - * Description: - * - * Parameters: - * attr - * stacksize - * - * Return Value: - * 0 if successful. Otherwise, an error code. - * - * Assumptions: - * - ****************************************************************************/ - -int pthread_attr_getstacksize(FAR pthread_attr_t *attr, FAR long *stacksize) -{ - int ret; - - sdbg("attr=0x%p stacksize=0x%p\n", attr, stacksize); - - if (!stacksize) - { - ret = EINVAL; - } - else - { - *stacksize = attr->stacksize; - ret = OK; - } - - sdbg("Returning %d\n", ret); - return ret; -} - - diff --git a/nuttx/libc/pthread/pthread_attrinit.c b/nuttx/libc/pthread/pthread_attrinit.c deleted file mode 100644 index 427a582b9..000000000 --- a/nuttx/libc/pthread/pthread_attrinit.c +++ /dev/null @@ -1,123 +0,0 @@ -/**************************************************************************** - * libc/pthread/pthread_attrinit.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <pthread.h> -#include <string.h> -#include <debug.h> -#include <errno.h> - -#include <nuttx/pthread.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/* Default pthread attributes (see included/nuttx/pthread.h). When configured - * to build separate kernel- and user-address spaces, this global is - * duplicated in each address spaced. This copy can only be shared within - * the user address space. - */ - -#if defined(CONFIG_NUTTX_KERNEL) && !defined(__KERNEL__) -pthread_attr_t g_default_pthread_attr = PTHREAD_ATTR_INITIALIZER; -#endif - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: pthread_attr_init - * - * Description: - * Initializes a thread attributes object (attr) with - * default values for all of the individual attributes - * used by a given implementation. - * - * Parameters: - * attr - * - * Return Value: - * 0 on success, otherwise an error number - * - * Assumptions: - * - ****************************************************************************/ - -int pthread_attr_init(FAR pthread_attr_t *attr) -{ - int ret = OK; - - sdbg("attr=0x%p\n", attr); - if (!attr) - { - ret = ENOMEM; - } - else - { - /* Set the child thread priority to be the default - * priority. Set the child stack size to some arbitrary - * default value. - */ - - memcpy(attr, &g_default_pthread_attr, sizeof(pthread_attr_t)); - } - - sdbg("Returning %d\n", ret); - return ret; -} - diff --git a/nuttx/libc/pthread/pthread_attrsetinheritsched.c b/nuttx/libc/pthread/pthread_attrsetinheritsched.c deleted file mode 100644 index 1102fe176..000000000 --- a/nuttx/libc/pthread/pthread_attrsetinheritsched.c +++ /dev/null @@ -1,113 +0,0 @@ -/**************************************************************************** - * libc/pthread/pthread_attrsetinheritsched.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdint.h> -#include <pthread.h> -#include <string.h> -#include <debug.h> -#include <errno.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: pthread_attr_setinheritsched - * - * Description: - * Indicate whether the scheduling info in the pthread - * attributes will be used or if the thread will - * inherit the properties of the parent. - * - * Parameters: - * attr - * policy - * - * Return Value: - * 0 if successful. Otherwise, an error code. - * - * Assumptions: - * - ****************************************************************************/ - -int pthread_attr_setinheritsched(FAR pthread_attr_t *attr, - int inheritsched) -{ - int ret; - - sdbg("inheritsched=%d\n", inheritsched); - - if (!attr || - (inheritsched != PTHREAD_INHERIT_SCHED && - inheritsched != PTHREAD_EXPLICIT_SCHED)) - { - ret = EINVAL; - } - else - { - attr->inheritsched = (uint8_t)inheritsched; - ret = OK; - } - - sdbg("Returning %d\n", ret); - return ret; -} - diff --git a/nuttx/libc/pthread/pthread_attrsetschedparam.c b/nuttx/libc/pthread/pthread_attrsetschedparam.c deleted file mode 100644 index 587d62206..000000000 --- a/nuttx/libc/pthread/pthread_attrsetschedparam.c +++ /dev/null @@ -1,108 +0,0 @@ -/**************************************************************************** - * libc/pthread/pthread_attrsetschedparam.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <pthread.h> -#include <string.h> -#include <sched.h> -#include <debug.h> -#include <errno.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: pthread_attr_setschedparam - * - * Description: - * - * Parameters: - * attr - * param - * - * Return Value: - * 0 if successful. Otherwise, an error code. - * - * Assumptions: - * - ****************************************************************************/ - -int pthread_attr_setschedparam(FAR pthread_attr_t *attr, - FAR const struct sched_param *param) -{ - int ret; - - sdbg("attr=0x%p param=0x%p\n", attr, param); - - if (!attr || !param) - { - ret = EINVAL; - } - else - { - attr->priority = (short)param->sched_priority; - ret = OK; - } - sdbg("Returning %d\n", ret); - return ret; -} - - diff --git a/nuttx/libc/pthread/pthread_attrsetschedpolicy.c b/nuttx/libc/pthread/pthread_attrsetschedpolicy.c deleted file mode 100644 index e1d1c8619..000000000 --- a/nuttx/libc/pthread/pthread_attrsetschedpolicy.c +++ /dev/null @@ -1,111 +0,0 @@ -/**************************************************************************** - * libc/pthread/pthread_attrsetschedpolicy.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <pthread.h> -#include <string.h> -#include <sched.h> -#include <debug.h> -#include <errno.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: pthread_attr_setschedpolicy - * - * Description: - * Set the scheduling algorithm attribute. - * - * Parameters: - * attr - * policy - * - * Return Value: - * 0 if successful. Otherwise, an error code. - * - * Assumptions: - * - ****************************************************************************/ - -int pthread_attr_setschedpolicy(FAR pthread_attr_t *attr, int policy) -{ - int ret; - - sdbg("attr=0x%p policy=%d\n", attr, policy); - -#if CONFIG_RR_INTERVAL > 0 - if (!attr || (policy != SCHED_FIFO && policy != SCHED_RR)) -#else - if (!attr || policy != SCHED_FIFO ) -#endif - { - ret = EINVAL; - } - else - { - attr->policy = policy; - ret = OK; - } - - sdbg("Returning %d\n", ret); - return ret; -} diff --git a/nuttx/libc/pthread/pthread_attrsetstacksize.c b/nuttx/libc/pthread/pthread_attrsetstacksize.c deleted file mode 100644 index fca993baf..000000000 --- a/nuttx/libc/pthread/pthread_attrsetstacksize.c +++ /dev/null @@ -1,106 +0,0 @@ -/**************************************************************************** - * libc/pthread/pthread_attrsetstacksize.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <pthread.h> -#include <string.h> -#include <debug.h> -#include <errno.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: pthread_attr_setstacksize - * - * Description: - * - * Parameters: - * attr - * stacksize - * - * Return Value: - * 0 if successful. Otherwise, an error code. - * - * Assumptions: - * - ****************************************************************************/ - -int pthread_attr_setstacksize(FAR pthread_attr_t *attr, long stacksize) -{ - int ret; - - sdbg("attr=0x%p stacksize=%ld\n", attr, stacksize); - - if (!attr || stacksize < PTHREAD_STACK_MIN) - { - ret = EINVAL; - } - else - { - attr->stacksize = stacksize; - ret = OK; - } - - sdbg("Returning %d\n", ret); - return ret; -} - diff --git a/nuttx/libc/pthread/pthread_barrierattrdestroy.c b/nuttx/libc/pthread/pthread_barrierattrdestroy.c deleted file mode 100644 index 5519caa61..000000000 --- a/nuttx/libc/pthread/pthread_barrierattrdestroy.c +++ /dev/null @@ -1,102 +0,0 @@ -/******************************************************************************** - * libc/pthread/pthread_barrierattrdestroy.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ********************************************************************************/ - -/******************************************************************************** - * Included Files - ********************************************************************************/ - -#include <nuttx/config.h> - -#include <pthread.h> -#include <errno.h> -#include <debug.h> - -/******************************************************************************** - * Definitions - ********************************************************************************/ - -/******************************************************************************** - * Private Type Declarations - ********************************************************************************/ - -/******************************************************************************** - * Global Variables - ********************************************************************************/ - -/******************************************************************************** - * Private Variables - ********************************************************************************/ - -/******************************************************************************** - * Private Function Prototypes - ********************************************************************************/ - -/******************************************************************************** - * Public Functions - ********************************************************************************/ - -/******************************************************************************** - * Function: pthread_barrierattr_destroy - * - * Description: - * The pthread_barrierattr_destroy() function will destroy a barrier attributes - * object. A destroyed attr attributes object can be reinitialized using - * pthread_barrierattr_init(); the results of otherwise referencing the object - * after it has been destroyed are undefined. - * - * Parameters: - * attr - barrier attributes to be destroyed. - * - * Return Value: - * 0 (OK) on success or EINVAL if attr is invalid. - * - * Assumptions: - * - ********************************************************************************/ - -int pthread_barrierattr_destroy(FAR pthread_barrierattr_t *attr) -{ - int ret = OK; - - if (!attr) - { - ret = EINVAL; - } - else - { - attr->pshared = PTHREAD_PROCESS_PRIVATE; - } - return ret; -} diff --git a/nuttx/libc/pthread/pthread_barrierattrgetpshared.c b/nuttx/libc/pthread/pthread_barrierattrgetpshared.c deleted file mode 100644 index 83faffae0..000000000 --- a/nuttx/libc/pthread/pthread_barrierattrgetpshared.c +++ /dev/null @@ -1,101 +0,0 @@ -/******************************************************************************** - * libc/pthread/pthread_barrierattrgetpshared.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ********************************************************************************/ - -/******************************************************************************** - * Included Files - ********************************************************************************/ - -#include <nuttx/config.h> - -#include <pthread.h> -#include <errno.h> -#include <debug.h> - -/******************************************************************************** - * Definitions - ********************************************************************************/ - -/******************************************************************************** - * Private Type Declarations - ********************************************************************************/ - -/******************************************************************************** - * Global Variables - ********************************************************************************/ - -/******************************************************************************** - * Private Variables - ********************************************************************************/ - -/******************************************************************************** - * Private Function Prototypes - ********************************************************************************/ - -/******************************************************************************** - * Public Functions - ********************************************************************************/ - -/******************************************************************************** - * Function: pthread_barrierattr_getpshared - * - * Description: - * The pthread_barrierattr_getpshared() function will obtain the value of the - * process-shared attribute from the attributes object referenced by attr. - * - * Parameters: - * attr - barrier attributes to be queried. - * pshared - the location to stored the current value of the pshared attribute. - * - * Return Value: - * 0 (OK) on success or EINVAL if either attr or pshared is invalid. - * - * Assumptions: - * - ********************************************************************************/ - -int pthread_barrierattr_getpshared(FAR const pthread_barrierattr_t *attr, FAR int *pshared) -{ - int ret = OK; - - if (!attr || !pshared) - { - ret = EINVAL; - } - else - { - *pshared = attr->pshared; - } - return ret; -} diff --git a/nuttx/libc/pthread/pthread_barrierattrinit.c b/nuttx/libc/pthread/pthread_barrierattrinit.c deleted file mode 100644 index 7ab101883..000000000 --- a/nuttx/libc/pthread/pthread_barrierattrinit.c +++ /dev/null @@ -1,101 +0,0 @@ -/******************************************************************************** - * libc/pthread/pthread_barrierattrinit.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ********************************************************************************/ - -/******************************************************************************** - * Included Files - ********************************************************************************/ - -#include <nuttx/config.h> - -#include <pthread.h> -#include <errno.h> -#include <debug.h> - -/******************************************************************************** - * Definitions - ********************************************************************************/ - -/******************************************************************************** - * Private Type Declarations - ********************************************************************************/ - -/******************************************************************************** - * Global Variables - ********************************************************************************/ - -/******************************************************************************** - * Private Variables - ********************************************************************************/ - -/******************************************************************************** - * Private Function Prototypes - ********************************************************************************/ - -/******************************************************************************** - * Public Functions - ********************************************************************************/ - -/******************************************************************************** - * Function: pthread_barrierattr_init - * - * Description: - * The pthread_barrierattr_init() function will initialize a barrier attribute - * object attr with the default value for all of the attributes defined by the - * implementation. - * - * Parameters: - * attr - barrier attributes to be initialized. - * - * Return Value: - * 0 (OK) on success or EINVAL if attr is invalid. - * - * Assumptions: - * - ********************************************************************************/ - -int pthread_barrierattr_init(FAR pthread_barrierattr_t *attr) -{ - int ret = OK; - - if (!attr) - { - ret = EINVAL; - } - else - { - attr->pshared = PTHREAD_PROCESS_PRIVATE; - } - return ret; -} diff --git a/nuttx/libc/pthread/pthread_barrierattrsetpshared.c b/nuttx/libc/pthread/pthread_barrierattrsetpshared.c deleted file mode 100644 index 2585de7a0..000000000 --- a/nuttx/libc/pthread/pthread_barrierattrsetpshared.c +++ /dev/null @@ -1,111 +0,0 @@ -/******************************************************************************** - * libc/pthread/pthread_barrierattrsetpshared.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ********************************************************************************/ - -/******************************************************************************** - * Included Files - ********************************************************************************/ - -#include <nuttx/config.h> - -#include <pthread.h> -#include <errno.h> -#include <debug.h> - -/******************************************************************************** - * Definitions - ********************************************************************************/ - -/******************************************************************************** - * Private Type Declarations - ********************************************************************************/ - -/******************************************************************************** - * Global Variables - ********************************************************************************/ - -/******************************************************************************** - * Private Variables - ********************************************************************************/ - -/******************************************************************************** - * Private Function Prototypes - ********************************************************************************/ - -/******************************************************************************** - * Public Functions - ********************************************************************************/ - -/******************************************************************************** - * Function: pthread_barrierattr_setpshared - * - * Description: - * The process-shared attribute is set to PTHREAD_PROCESS_SHARED to permit a - * barrier to be operated upon by any thread that has access to the memory where - * the barrier is allocated. If the process-shared attribute is - * PTHREAD_PROCESS_PRIVATE, the barrier can only be operated upon by threads - * created within the same process as the thread that initialized the barrier. - * If threads of different processes attempt to operate on such a barrier, the - * behavior is undefined. The default value of the attribute is - * PTHREAD_PROCESS_PRIVATE. - * - * Both constants PTHREAD_PROCESS_SHARED and PTHREAD_PROCESS_PRIVATE are defined - * in pthread.h. - * - * Parameters: - * attr - barrier attributes to be modified. - * pshared - the new value of the pshared attribute. - * - * Return Value: - * 0 (OK) on success or EINVAL if either attr is invalid or pshared is not one - * of PTHREAD_PROCESS_SHARED or PTHREAD_PROCESS_PRIVATE. - * - * Assumptions: - * - ********************************************************************************/ - -int pthread_barrierattr_setpshared(FAR pthread_barrierattr_t *attr, int pshared) -{ - int ret = OK; - - if (!attr || (pshared != PTHREAD_PROCESS_SHARED && pshared != PTHREAD_PROCESS_PRIVATE)) - { - ret = EINVAL; - } - else - { - attr->pshared = pshared; - } - return ret; -} diff --git a/nuttx/libc/pthread/pthread_condattrdestroy.c b/nuttx/libc/pthread/pthread_condattrdestroy.c deleted file mode 100644 index 30a0c4db1..000000000 --- a/nuttx/libc/pthread/pthread_condattrdestroy.c +++ /dev/null @@ -1,82 +0,0 @@ -/**************************************************************************** - * libc/pthread/pthread_condattrdestroy.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <pthread.h> -#include <debug.h> -#include <errno.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: pthread_condattr_destroy - * - * Description: - * Operations on condition variable attributes - * - * Parameters: - * None - * - * Return Value: - * None - * - * Assumptions: - * - ****************************************************************************/ - -int pthread_condattr_destroy(FAR pthread_condattr_t *attr) -{ - int ret = OK; - - sdbg("attr=0x%p\n", attr); - - if (!attr) - { - ret = EINVAL; - } - - sdbg("Returning %d\n", ret); - return ret; -} - - - diff --git a/nuttx/libc/pthread/pthread_condattrinit.c b/nuttx/libc/pthread/pthread_condattrinit.c deleted file mode 100644 index 511376f2e..000000000 --- a/nuttx/libc/pthread/pthread_condattrinit.c +++ /dev/null @@ -1,85 +0,0 @@ -/**************************************************************************** - * libc/pthread/pthread_condattrinit.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <pthread.h> -#include <debug.h> -#include <errno.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: pthread_condattr_init - * - * Description: - * Operations on condition variable attributes - * - * Parameters: - * None - * - * Return Value: - * None - * - * Assumptions: - * - ****************************************************************************/ - -int pthread_condattr_init(FAR pthread_condattr_t *attr) -{ - int ret = OK; - - sdbg("attr=0x%p\n", attr); - - if (!attr) - { - ret = EINVAL; - } - else - { - *attr = 0; - } - - sdbg("Returning %d\n", ret); - return ret; -} - - diff --git a/nuttx/libc/pthread/pthread_mutexattrdestroy.c b/nuttx/libc/pthread/pthread_mutexattrdestroy.c deleted file mode 100644 index 82a13c300..000000000 --- a/nuttx/libc/pthread/pthread_mutexattrdestroy.c +++ /dev/null @@ -1,104 +0,0 @@ -/**************************************************************************** - * libc/pthread/pthread_mutexattrdestroy.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <pthread.h> -#include <errno.h> -#include <debug.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: pthread_mutexattr_destroy - * - * Description: - * Destroy mutex attributes. - * - * Parameters: - * attr - * pshared - * - * Return Value: - * 0 if successful. Otherwise, an error code. - * - * Assumptions: - * - ****************************************************************************/ - -int pthread_mutexattr_destroy(FAR pthread_mutexattr_t *attr) -{ - int ret = OK; - - sdbg("attr=0x%p\n", attr); - - if (!attr) - { - ret = EINVAL; - } - else - { - attr->pshared = 0; - } - - sdbg("Returning %d\n", ret); - return ret; -} diff --git a/nuttx/libc/pthread/pthread_mutexattrgetpshared.c b/nuttx/libc/pthread/pthread_mutexattrgetpshared.c deleted file mode 100644 index dc18484ec..000000000 --- a/nuttx/libc/pthread/pthread_mutexattrgetpshared.c +++ /dev/null @@ -1,104 +0,0 @@ -/**************************************************************************** - * libc/pthread/pthread_mutexattrgetpshared.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <pthread.h> -#include <errno.h> -#include <debug.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: pthread_mutexattr_getpshared - * - * Description: - * Get pshared mutex attribute. - * - * Parameters: - * attr - * pshared - * - * Return Value: - * 0 if successful. Otherwise, an error code. - * - * Assumptions: - * - ****************************************************************************/ - -int pthread_mutexattr_getpshared(FAR pthread_mutexattr_t *attr, FAR int *pshared) -{ - int ret = OK; - - sdbg("attr=0x%p pshared=0x%p\n", attr, pshared); - - if (!attr || !pshared) - { - ret = EINVAL; - } - else - { - *pshared = attr->pshared; - } - - sdbg("Returning %d\n", ret); - return ret; -} diff --git a/nuttx/libc/pthread/pthread_mutexattrgettype.c b/nuttx/libc/pthread/pthread_mutexattrgettype.c deleted file mode 100644 index 3b8b3ec05..000000000 --- a/nuttx/libc/pthread/pthread_mutexattrgettype.c +++ /dev/null @@ -1,98 +0,0 @@ -/**************************************************************************** - * libc/pthread/pthread_mutexattrgettype.c - * - * Copyright (C) 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> -#include <pthread.h> -#include <errno.h> - -#ifdef CONFIG_MUTEX_TYPES - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: pthread_mutexattr_gettype - * - * Description: - * Return the mutex type from the mutex attributes. - * - * Parameters: - * attr - The mutex attributes to query - * type - Location to return the mutex type - * - * Return Value: - * 0, if the mutex type was successfully return in 'type', or - * EINVAL, if any NULL pointers provided. - * - * Assumptions: - * - ****************************************************************************/ - -int pthread_mutexattr_gettype(const pthread_mutexattr_t *attr, int *type) -{ - if (attr && type) - { - *type = attr->type; - return 0; - } - return EINVAL; -} - -#endif /* CONFIG_MUTEX_TYPES */ diff --git a/nuttx/libc/pthread/pthread_mutexattrinit.c b/nuttx/libc/pthread/pthread_mutexattrinit.c deleted file mode 100644 index f8c272195..000000000 --- a/nuttx/libc/pthread/pthread_mutexattrinit.c +++ /dev/null @@ -1,106 +0,0 @@ -/**************************************************************************** - * libc/pthread/pthread_mutexattrinit.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <pthread.h> -#include <errno.h> -#include <debug.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: pthread_mutexattr_init - * - * Description: - * Create mutex attributes. - * - * Parameters: - * attr - * - * Return Value: - * 0 if successful. Otherwise, an error code. - * - * Assumptions: - * - ****************************************************************************/ - -int pthread_mutexattr_init(FAR pthread_mutexattr_t *attr) -{ - int ret = OK; - - sdbg("attr=0x%p\n", attr); - - if (!attr) - { - ret = EINVAL; - } - else - { - attr->pshared = 0; -#ifdef CONFIG_MUTEX_TYPES - attr->type = PTHREAD_MUTEX_DEFAULT; -#endif - } - - sdbg("Returning %d\n", ret); - return ret; -} diff --git a/nuttx/libc/pthread/pthread_mutexattrsetpshared.c b/nuttx/libc/pthread/pthread_mutexattrsetpshared.c deleted file mode 100644 index 7501fd980..000000000 --- a/nuttx/libc/pthread/pthread_mutexattrsetpshared.c +++ /dev/null @@ -1,104 +0,0 @@ -/**************************************************************************** - * libc/pthread/pthread_mutexattrsetpshared.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <pthread.h> -#include <errno.h> -#include <debug.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: pthread_mutexattr_setpshared - * - * Description: - * Set pshared mutex attribute. - * - * Parameters: - * attr - * pshared - * - * Return Value: - * 0 if successful. Otherwise, an error code. - * - * Assumptions: - * - ****************************************************************************/ - -int pthread_mutexattr_setpshared(FAR pthread_mutexattr_t *attr, int pshared) -{ - int ret = OK; - - sdbg("attr=0x%p pshared=%d\n", attr, pshared); - - if (!attr || (pshared != 0 && pshared != 1)) - { - ret = EINVAL; - } - else - { - attr->pshared = pshared; - } - - sdbg("Returning %d\n", ret); - return ret; -} diff --git a/nuttx/libc/pthread/pthread_mutexattrsettype.c b/nuttx/libc/pthread/pthread_mutexattrsettype.c deleted file mode 100644 index 068a27dc2..000000000 --- a/nuttx/libc/pthread/pthread_mutexattrsettype.c +++ /dev/null @@ -1,98 +0,0 @@ -/**************************************************************************** - * libc/pthread/pthread_mutexattrsettype.c - * - * Copyright (C) 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> -#include <pthread.h> -#include <errno.h> - -#ifdef CONFIG_MUTEX_TYPES - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: pthread_mutexattr_settype - * - * Description: - * Set the mutex type in the mutex attributes. - * - * Parameters: - * attr - The mutex attributes in which to set the mutex type. - * type - The mutex type value to set. - * - * Return Value: - * 0, if the mutex type was successfully set in 'attr', or - * EINVAL, if 'attr' is NULL or 'type' unrecognized. - * - * Assumptions: - * - ****************************************************************************/ - -int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type) -{ - if (attr && type >= PTHREAD_MUTEX_NORMAL && type <= PTHREAD_MUTEX_RECURSIVE) - { - attr->type = type; - return OK; - } - return EINVAL; -} - -#endif /* CONFIG_MUTEX_TYPES */ diff --git a/nuttx/libc/queue/Make.defs b/nuttx/libc/queue/Make.defs deleted file mode 100644 index 9a843dbdc..000000000 --- a/nuttx/libc/queue/Make.defs +++ /dev/null @@ -1,47 +0,0 @@ -############################################################################ -# libc/queue/Make.defs -# -# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -############################################################################ - -# Add the queue C files to the build - -CSRCS += sq_addlast.c sq_addfirst.c sq_addafter.c \ - sq_rem.c sq_remlast.c sq_remfirst.c sq_remafter.c - -CSRCS += dq_addlast.c dq_addfirst.c dq_addafter.c dq_addbefore.c \ - dq_rem.c dq_remlast.c dq_remfirst.c - -# Add the queue directory to the build - -DEPPATH += --dep-path queue -VPATH += :queue diff --git a/nuttx/libc/queue/dq_addafter.c b/nuttx/libc/queue/dq_addafter.c deleted file mode 100644 index e4d1abf63..000000000 --- a/nuttx/libc/queue/dq_addafter.c +++ /dev/null @@ -1,74 +0,0 @@ -/************************************************************ - * libc/queue/dq_addafter.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <queue.h> - -/************************************************************ - * Public Functions - ************************************************************/ - -/************************************************************ - * Name: dq_addafter - * - * Description: - * dq_addafter function adds 'node' after 'qqqq' in the - * 'queue.' - * - ************************************************************/ - -void dq_addafter(FAR dq_entry_t *prev, FAR dq_entry_t *node, - dq_queue_t *queue) -{ - if (!queue->head || prev == queue->tail) - { - dq_addlast(node, queue); - } - else - { - FAR dq_entry_t *next = prev->flink; - node->blink = prev; - node->flink = next; - next->blink = node; - prev->flink = node; - } -} diff --git a/nuttx/libc/queue/dq_addbefore.c b/nuttx/libc/queue/dq_addbefore.c deleted file mode 100644 index 3c403fc94..000000000 --- a/nuttx/libc/queue/dq_addbefore.c +++ /dev/null @@ -1,69 +0,0 @@ -/**************************************************************************** - * libc/queue/dq_addbefore.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <queue.h> - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: dq_addbefore - * - * Description: - * dq_addbefore adds 'node' before 'next' in 'queue' - * - ****************************************************************************/ - -void dq_addbefore(FAR dq_entry_t *next, FAR dq_entry_t *node, - dq_queue_t *queue) -{ - if (!queue->head || next == queue->head) - { - dq_addfirst(node, queue); - } - else - { - FAR dq_entry_t *prev = next->blink; - node->flink = next; - node->blink = prev; - prev->flink = node; - next->blink = node; - } -} diff --git a/nuttx/libc/queue/dq_addfirst.c b/nuttx/libc/queue/dq_addfirst.c deleted file mode 100644 index 56767b928..000000000 --- a/nuttx/libc/queue/dq_addfirst.c +++ /dev/null @@ -1,74 +0,0 @@ -/************************************************************ - * libc/queue/dq_addfirst.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <queue.h> - -/************************************************************ - * Public Functions - ************************************************************/ - -/************************************************************ - * Name: dq_addfirst - * - * Description: - * dq_addfirst affs 'node' at the beginning of 'queue' - * - ************************************************************/ - -void dq_addfirst(FAR dq_entry_t *node, dq_queue_t *queue) -{ - node->blink = NULL; - node->flink = queue->head; - - if (!queue->head) - { - queue->head = node; - queue->tail = node; - } - else - { - queue->head->blink = node; - queue->head = node; - } -} - diff --git a/nuttx/libc/queue/dq_addlast.c b/nuttx/libc/queue/dq_addlast.c deleted file mode 100644 index 3ef08abd0..000000000 --- a/nuttx/libc/queue/dq_addlast.c +++ /dev/null @@ -1,74 +0,0 @@ -/************************************************************ - * libc/queue/dq_addlast.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <queue.h> - -/************************************************************ - * Public Functions - ************************************************************/ - -/************************************************************ - * Name: dq_addlast - * - * Description - * dq_addlast adds 'node' to the end of 'queue' - * - ************************************************************/ - -void dq_addlast(FAR dq_entry_t *node, dq_queue_t *queue) -{ - node->flink = NULL; - node->blink = queue->tail; - - if (!queue->head) - { - queue->head = node; - queue->tail = node; - } - else - { - queue->tail->flink = node; - queue->tail = node; - } -} - diff --git a/nuttx/libc/queue/dq_rem.c b/nuttx/libc/queue/dq_rem.c deleted file mode 100644 index db20762c7..000000000 --- a/nuttx/libc/queue/dq_rem.c +++ /dev/null @@ -1,84 +0,0 @@ -/************************************************************ - * libc/queue/dq_rem.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <queue.h> - -/************************************************************ - * Public Functions - ************************************************************/ - -/************************************************************ - * Name: dq_rem - * - * Descripton: - * dq_rem removes 'node' from 'queue' - * - ************************************************************/ - -void dq_rem(FAR dq_entry_t *node, dq_queue_t *queue) -{ - FAR dq_entry_t *prev = node->blink; - FAR dq_entry_t *next = node->flink; - - if (!prev) - { - queue->head = next; - } - else - { - prev->flink = next; - } - - if (!next) - { - queue->tail = prev; - } - else - { - next->blink = prev; - } - - node->flink = NULL; - node->blink = NULL; -} - diff --git a/nuttx/libc/queue/dq_remfirst.c b/nuttx/libc/queue/dq_remfirst.c deleted file mode 100644 index e87acc338..000000000 --- a/nuttx/libc/queue/dq_remfirst.c +++ /dev/null @@ -1,82 +0,0 @@ -/************************************************************ - * libc/queue/dq_remfirst.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <queue.h> - -/************************************************************ - * Public Functions - ************************************************************/ - -/************************************************************ - * Name: dq_remfirst - * - * Description: - * dq_remfirst removes 'node' from the head of 'queue' - * - ************************************************************/ - -FAR dq_entry_t *dq_remfirst(dq_queue_t *queue) -{ - FAR dq_entry_t *ret = queue->head; - - if (ret) - { - FAR dq_entry_t *next = ret->flink; - if (!next) - { - queue->head = NULL; - queue->tail = NULL; - } - else - { - queue->head = next; - next->blink = NULL; - } - - ret->flink = NULL; - ret->blink = NULL; - } - - return ret; -} - diff --git a/nuttx/libc/queue/dq_remlast.c b/nuttx/libc/queue/dq_remlast.c deleted file mode 100644 index 18c182335..000000000 --- a/nuttx/libc/queue/dq_remlast.c +++ /dev/null @@ -1,78 +0,0 @@ -/**************************************************************************** - * libc/queue/dq_remlast.c - * - * Copyright (C) 2007, 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <queue.h> - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/***************************************************(************************ - * Name: dq_remlast - * - * Description: - * dq_remlast removes the last entry from 'queue' - * - ****************************************************************************/ - -FAR dq_entry_t *dq_remlast(dq_queue_t *queue) -{ - FAR dq_entry_t *ret = queue->tail; - - if (ret) - { - FAR dq_entry_t *prev = ret->blink; - if (!prev) - { - queue->head = NULL; - queue->tail = NULL; - } - else - { - queue->tail = prev; - prev->flink = NULL; - } - - ret->flink = NULL; - ret->blink = NULL; - } - - return ret; -} - diff --git a/nuttx/libc/queue/sq_addafter.c b/nuttx/libc/queue/sq_addafter.c deleted file mode 100644 index 5d47feba0..000000000 --- a/nuttx/libc/queue/sq_addafter.c +++ /dev/null @@ -1,71 +0,0 @@ -/************************************************************ - * libc/queue/sq_addafter.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <queue.h> - -/************************************************************ - * Public Functions - ************************************************************/ - -/************************************************************ - * Name: sq_addafter.c - * - * Description: - * The sq_addafter function adds 'node' after 'prev' in the - * 'queue.' - * - ************************************************************/ - -void sq_addafter(FAR sq_entry_t *prev, FAR sq_entry_t *node, - sq_queue_t *queue) -{ - if (!queue->head || prev == queue->tail) - { - sq_addlast(node, queue); - } - else - { - node->flink = prev->flink; - prev->flink = node; - } -} diff --git a/nuttx/libc/queue/sq_addfirst.c b/nuttx/libc/queue/sq_addfirst.c deleted file mode 100644 index 962486154..000000000 --- a/nuttx/libc/queue/sq_addfirst.c +++ /dev/null @@ -1,67 +0,0 @@ -/************************************************************ - * libc/queue/sq_addfirst.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <queue.h> - -/************************************************************ - * Public Functions - ************************************************************/ - -/************************************************************ - * Name: sq_addfirst - * - * Description: - * The sq_addfirst function places the 'node' at the head - * of the 'queue' - * - ************************************************************/ - -void sq_addfirst(FAR sq_entry_t *node, sq_queue_t *queue) -{ - node->flink = queue->head; - if (!queue->head) - { - queue->tail = node; - } - queue->head = node; -} diff --git a/nuttx/libc/queue/sq_addlast.c b/nuttx/libc/queue/sq_addlast.c deleted file mode 100644 index faa07efb5..000000000 --- a/nuttx/libc/queue/sq_addlast.c +++ /dev/null @@ -1,72 +0,0 @@ -/************************************************************ - * libc/queue/sq_addlast.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <queue.h> - -/************************************************************ - * Public Functions - ************************************************************/ - -/************************************************************ - * Name: sq_addlast - * - * Description: - * The sq_addlast function places the 'node' at the tail of - * the 'queue' - ************************************************************/ - -void sq_addlast(FAR sq_entry_t *node, sq_queue_t *queue) -{ - node->flink = NULL; - if (!queue->head) - { - queue->head = node; - queue->tail = node; - } - else - { - queue->tail->flink = node; - queue->tail = node; - } -} - diff --git a/nuttx/libc/queue/sq_rem.c b/nuttx/libc/queue/sq_rem.c deleted file mode 100644 index 720be182c..000000000 --- a/nuttx/libc/queue/sq_rem.c +++ /dev/null @@ -1,83 +0,0 @@ -/************************************************************ - * libc/queue/sq_rem.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <queue.h> - -/************************************************************ - * public Functions - ************************************************************/ - -/************************************************************ - * Name: sq_rem - * - * Description: - * sq_rem removes a 'node' for 'queue.' - * - ************************************************************/ - -void sq_rem(FAR sq_entry_t *node, sq_queue_t *queue) -{ - if (queue->head && node) - { - if (node == queue->head) - { - queue->head = node->flink; - if (node == queue->tail) - { - queue->tail = NULL; - } - } - else - { - FAR sq_entry_t *prev; - for(prev = (FAR sq_entry_t*)queue->head; - prev && prev->flink != node; - prev = prev->flink); - - if (prev) - { - sq_remafter(prev, queue); - } - } - } -} diff --git a/nuttx/libc/queue/sq_remafter.c b/nuttx/libc/queue/sq_remafter.c deleted file mode 100644 index 0545a00f9..000000000 --- a/nuttx/libc/queue/sq_remafter.c +++ /dev/null @@ -1,79 +0,0 @@ -/************************************************************ - * libc/queue/sq_remafter.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <queue.h> - -/************************************************************ - * Public Functions - ************************************************************/ - -/************************************************************ - * Name: - * - * Description: - * sq_remafter removes the entry following 'node; from the - * 'queue' Returns a reference to the removed entry. - * - ************************************************************/ - -FAR sq_entry_t *sq_remafter(FAR sq_entry_t *node, sq_queue_t *queue) -{ - FAR sq_entry_t *ret = node->flink; - if (queue->head && ret) - { - if (queue->tail == ret) - { - queue->tail = node; - node->flink = NULL; - } - else - { - node->flink = ret->flink; - } - - ret->flink = NULL; - } - - return ret; -} - diff --git a/nuttx/libc/queue/sq_remfirst.c b/nuttx/libc/queue/sq_remfirst.c deleted file mode 100644 index f81c18dc2..000000000 --- a/nuttx/libc/queue/sq_remfirst.c +++ /dev/null @@ -1,76 +0,0 @@ -/************************************************************ - * libc/queue/sq_remfirst.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <queue.h> - -/************************************************************ - * Public Functions - ************************************************************/ - -/************************************************************ - * Name: sq_remfirst - * - * Description: - * sq_remfirst function removes the first entry from - * 'queue' - * - ************************************************************/ - -FAR sq_entry_t *sq_remfirst(sq_queue_t *queue) -{ - FAR sq_entry_t *ret = queue->head; - - if (ret) - { - queue->head = ret->flink; - if (!queue->head) - { - queue->tail = NULL; - } - - ret->flink = NULL; - } - - return ret; -} - diff --git a/nuttx/libc/queue/sq_remlast.c b/nuttx/libc/queue/sq_remlast.c deleted file mode 100644 index 8f045e493..000000000 --- a/nuttx/libc/queue/sq_remlast.c +++ /dev/null @@ -1,87 +0,0 @@ -/************************************************************ - * libc/queue/sq_remlast.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <queue.h> - -/************************************************************ - * Public Functions - ************************************************************/ - -/************************************************************ - * Name: sq_remlast - * - * Description: - * Removes the last entry in a singly-linked queue. - * - ************************************************************/ - -FAR sq_entry_t *sq_remlast(sq_queue_t *queue) -{ - FAR sq_entry_t *ret = queue->tail; - - if (ret) - { - if (queue->head == queue->tail) - { - queue->head = NULL; - queue->tail = NULL; - } - else - { - FAR sq_entry_t *prev; - for(prev = queue->head; - prev && prev->flink != ret; - prev = prev->flink); - - if (prev) - { - prev->flink = NULL; - queue->tail = prev; - } - } - - ret->flink = NULL; - } - - return ret; -} diff --git a/nuttx/libc/sched/Make.defs b/nuttx/libc/sched/Make.defs deleted file mode 100644 index d2356db0f..000000000 --- a/nuttx/libc/sched/Make.defs +++ /dev/null @@ -1,43 +0,0 @@ -############################################################################ -# libc/sched/Make.defs -# -# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -############################################################################ - -# Add the sched C files to the build - -CSRCS += sched_getprioritymax.c sched_getprioritymin.c - -# Add the sched directory to the build - -DEPPATH += --dep-path sched -VPATH += :sched diff --git a/nuttx/libc/sched/sched_getprioritymax.c b/nuttx/libc/sched/sched_getprioritymax.c deleted file mode 100644 index 6ea37e76a..000000000 --- a/nuttx/libc/sched/sched_getprioritymax.c +++ /dev/null @@ -1,100 +0,0 @@ -/************************************************************************ - * libc/sched/sched_getprioritymax.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> - -#include <nuttx/arch.h> - -/************************************************************************ - * Definitions - ************************************************************************/ - -/************************************************************************ - * Private Type Declarations - ************************************************************************/ - -/************************************************************************ - * Global Variables - ************************************************************************/ - -/************************************************************************ - * Private Variables - ************************************************************************/ - -/************************************************************************ - * Private Function Prototypes - ************************************************************************/ - -/************************************************************************ - * Private Functions - ************************************************************************/ - -/************************************************************************ - * Public Functions - ************************************************************************/ - -/************************************************************************ - * Name: ched_get_priority_max - * - * Description: - * This function returns the value of the highest possible - * task priority for a specified scheduling policy. - * - * Inputs: - * policy - Scheduling policy requested. - * - * Return Value: - * The maximum priority value or -1 (ERROR) - * (errno is not set) - * - * Assumptions: - * - ************************************************************************/ - -int sched_get_priority_max(int policy) -{ - if (policy != SCHED_FIFO && policy != SCHED_RR) - { - return ERROR; - } - else - { - return SCHED_PRIORITY_MAX; - } -} diff --git a/nuttx/libc/sched/sched_getprioritymin.c b/nuttx/libc/sched/sched_getprioritymin.c deleted file mode 100644 index dbb46d81e..000000000 --- a/nuttx/libc/sched/sched_getprioritymin.c +++ /dev/null @@ -1,100 +0,0 @@ -/************************************************************************ - * libc/sched/sched_getprioritymin.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> - -#include <nuttx/arch.h> - -/************************************************************************ - * Definitions - ************************************************************************/ - -/************************************************************************ - * Private Type Declarations - ************************************************************************/ - -/************************************************************************ - * Global Variables - ************************************************************************/ - -/************************************************************************ - * Private Variables - ************************************************************************/ - -/************************************************************************ - * Private Function Prototypes - ************************************************************************/ - -/************************************************************************ - * Private Functions - ************************************************************************/ - -/************************************************************************ - * Public Functions - ************************************************************************/ - -/************************************************************************ - * Name: sched_get_priority_min - * - * Description: - * This function returns the value of the lowest possible - * task priority for a specified scheduling policy. - * - * Inputs: - * policy - Scheduling policy requested. - * - * Return Value: - * The minimum priority value or -1 (ERROR) - * (errno is not set) - * - * Assumptions: - * - ************************************************************************/ - -int sched_get_priority_min(int policy) -{ - if (policy != SCHED_FIFO && policy != SCHED_RR) - { - return ERROR; - } - else - { - return SCHED_PRIORITY_MIN; - } -} diff --git a/nuttx/libc/semaphore/Make.defs b/nuttx/libc/semaphore/Make.defs deleted file mode 100644 index b6551ff96..000000000 --- a/nuttx/libc/semaphore/Make.defs +++ /dev/null @@ -1,43 +0,0 @@ -############################################################################ -# libc/semaphore/Make.defs -# -# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -############################################################################ - -# Add the semaphore C files to the build - -CSRCS += sem_init.c sem_getvalue.c - -# Add the semaphore directory to the build - -DEPPATH += --dep-path semaphore -VPATH += :semaphore diff --git a/nuttx/libc/semaphore/sem_getvalue.c b/nuttx/libc/semaphore/sem_getvalue.c deleted file mode 100644 index ce9d12611..000000000 --- a/nuttx/libc/semaphore/sem_getvalue.c +++ /dev/null @@ -1,108 +0,0 @@ -/**************************************************************************** - * libc/semaphore/sem_getvalue.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/types.h> -#include <semaphore.h> -#include <errno.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: sem_getvalue - * - * Description: - * This function updates the location referenced by 'sval' argument to - * have the value of the semaphore referenced by 'sem' without effecting - * the state of the semaphore. The updated value represents the actual - * semaphore value that occurred at some unspecified time during the call, - * but may not reflect the actual value of the semaphore when it is - * returned to the calling task. - * - * If 'sem' is locked, the value return by sem_getvalue() will either be - * zero or a negative number whose absolute value represents the number - * of tasks waiting for the semaphore. - * - * Parameters: - * sem - Semaphore descriptor - * sval - Buffer by which the value is returned - * - * Return Value: - * 0 (OK), or -1 (ERROR) if unsuccessful - * - * Assumptions: - * - ****************************************************************************/ - -int sem_getvalue(FAR sem_t *sem, FAR int *sval) -{ - if (sem && sval) - { - *sval = sem->semcount; - return OK; - } - else - { - set_errno(EINVAL); - return ERROR; - } -} diff --git a/nuttx/libc/semaphore/sem_init.c b/nuttx/libc/semaphore/sem_init.c deleted file mode 100644 index 7732eb57a..000000000 --- a/nuttx/libc/semaphore/sem_init.c +++ /dev/null @@ -1,125 +0,0 @@ -/**************************************************************************** - * libc/sem/sem_init.c - * - * Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/types.h> -#include <limits.h> -#include <semaphore.h> -#include <errno.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: sem_init - * - * Description: - * This function initializes the UNAMED semaphore sem. Following a - * successful call to sem_init(), the semaophore may be used in subsequent - * calls to sem_wait(), sem_post(), and sem_trywait(). The semaphore - * remains usable until it is destroyed. - * - * Only sem itself may be used for performing synchronization. The result - * of referring to copies of sem in calls to sem_wait(), sem_trywait(), - * sem_post(), and sem_destroy() is undefined. - * - * Parameters: - * sem - Semaphore to be initialized - * pshared - Process sharing (not used) - * value - Semaphore initialization value - * - * Return Value: - * 0 (OK), or -1 (ERROR) if unsuccessful. - * - * Assumptions: - * - ****************************************************************************/ - -int sem_init(FAR sem_t *sem, int pshared, unsigned int value) -{ - /* Verify that a semaphore was provided and the count is within the valid - * range. - */ - - if (sem && value <= SEM_VALUE_MAX) - { - /* Initialize the seamphore count */ - - sem->semcount = (int16_t)value; - - /* Initialize to support priority inheritance */ - -#ifdef CONFIG_PRIORITY_INHERITANCE -# if CONFIG_SEM_PREALLOCHOLDERS > 0 - sem->hhead = NULL; -# else - sem->holder.htcb = NULL; - sem->holder.counts = 0; -# endif -#endif - return OK; - } - else - { - set_errno(EINVAL); - return ERROR; - } -} diff --git a/nuttx/libc/signal/Make.defs b/nuttx/libc/signal/Make.defs deleted file mode 100644 index fe7eb180e..000000000 --- a/nuttx/libc/signal/Make.defs +++ /dev/null @@ -1,47 +0,0 @@ -############################################################################ -# libc/signal/Make.defs -# -# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -############################################################################ - -ifneq ($(CONFIG_DISABLE_SIGNALS),y) - -# Add the signal C files to the build - -CSRCS += sig_emptyset.c sig_fillset.c sig_addset.c sig_delset.c sig_ismember.c - -# Add the signal directory to the build - -DEPPATH += --dep-path signal -VPATH += :signal - -endif diff --git a/nuttx/libc/signal/sig_addset.c b/nuttx/libc/signal/sig_addset.c deleted file mode 100644 index 06ddabd6b..000000000 --- a/nuttx/libc/signal/sig_addset.c +++ /dev/null @@ -1,100 +0,0 @@ -/**************************************************************************** - * libc/signal/sig_addset.c - * - * Copyright (C) 2007, 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <signal.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: sigaddset - * - * Description: - * This function adds the signal specified by signo to the signal set - * specified by set. - * - * Parameters: - * set - Signal set to add signal to - * signo - Signal to add - * - * Return Value: - * 0 (OK), or -1 (ERROR) if the signal number is invalid. - * - * Assumptions: - * - ****************************************************************************/ - -int sigaddset(FAR sigset_t *set, int signo) -{ - int ret = ERROR; - - /* Verify the signal */ - - if (GOOD_SIGNO(signo)) - { - /* Add the signal to the set */ - - *set |= SIGNO2SET(signo); - ret = OK; - } - - return ret; -} - diff --git a/nuttx/libc/signal/sig_delset.c b/nuttx/libc/signal/sig_delset.c deleted file mode 100644 index 04112d872..000000000 --- a/nuttx/libc/signal/sig_delset.c +++ /dev/null @@ -1,100 +0,0 @@ -/**************************************************************************** - * libc/signal/sig_delset.c - * - * Copyright (C) 2007, 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <signal.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: sigdelset - * - * Description: - * This function deletes the signal specified by signo from the signal - * set specified by the 'set' argument. - * - * Parameters: - * set - Signal set to delete the signal from - * signo - Signal to delete - * - * Return Value: - * 0 (OK), or -1 (ERROR) if the signal number is invalid. - * - * Assumptions: - * - ****************************************************************************/ - -int sigdelset(FAR sigset_t *set, int signo) -{ - int ret = ERROR; - - /* Verify the signal */ - - if (GOOD_SIGNO(signo)) - { - /* Delete the signal to the set */ - - *set &= ~SIGNO2SET(signo); - ret = OK; - } - - return ret; -} - diff --git a/nuttx/libc/signal/sig_emptyset.c b/nuttx/libc/signal/sig_emptyset.c deleted file mode 100644 index 16ddd3f68..000000000 --- a/nuttx/libc/signal/sig_emptyset.c +++ /dev/null @@ -1,88 +0,0 @@ -/**************************************************************************** - * libc/signal/sig_emptyset.c - * - * Copyright (C) 2007, 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <signal.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: sigemptyset - * - * Description: - * This function initializes the signal set specified by set such that all - * signals are excluded. - * - * Parameters: - * set - Signal set to initalize - * - * Return Value: - * 0 (OK), or -1 (ERROR) if the signal set cannot be initialized. - * - * Assumptions: - * - ****************************************************************************/ - -int sigemptyset(FAR sigset_t *set) -{ - *set = NULL_SIGNAL_SET; - return OK; -} - diff --git a/nuttx/libc/signal/sig_fillset.c b/nuttx/libc/signal/sig_fillset.c deleted file mode 100644 index 99ee95c1f..000000000 --- a/nuttx/libc/signal/sig_fillset.c +++ /dev/null @@ -1,88 +0,0 @@ -/**************************************************************************** - * libc/signal/sig_fillset.c - * - * Copyright (C) 2007, 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <signal.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Publics Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: sigfillset - * - * Description: - * This function initializes the signal set specified by set such that all - * signals are included. - * - * Parameters: - * set - Signal set to initalize - * - * Return Value: - * 0 (OK), or -1 (ERROR) if the signal set cannot be initialized. - * - * Assumptions: - * - ****************************************************************************/ - -int sigfillset(FAR sigset_t *set) -{ - *set = ALL_SIGNAL_SET; - return OK; -} - diff --git a/nuttx/libc/signal/sig_ismember.c b/nuttx/libc/signal/sig_ismember.c deleted file mode 100644 index 1a8590e00..000000000 --- a/nuttx/libc/signal/sig_ismember.c +++ /dev/null @@ -1,101 +0,0 @@ -/**************************************************************************** - * libc/signal/sig_ismember.c - * - * Copyright (C) 2007, 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <signal.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: sigismember - * - * Description: - * This function tests whether the signal specified by signo is a member - * of the set specified by set. - * - * Parameters: - * set - Signal set to test - * signo - Signal to test for - * - * Return Value: - * 1 (true), if the specified signal is a member of the set, - * 0 (OK or FALSE), if it is not, or - * -1 (ERROR) if the signal number is invalid. - * - * Assumptions: - * - ****************************************************************************/ - -int sigismember(FAR const sigset_t *set, int signo) -{ - int ret = ERROR; - - /* Verify the signal */ - - if (GOOD_SIGNO(signo)) - { - /* Check if the signal is in the set */ - - ret = ((*set & SIGNO2SET(signo)) != 0); - } - - return ret; -} - diff --git a/nuttx/libc/spawn/Make.defs b/nuttx/libc/spawn/Make.defs deleted file mode 100644 index 8cb086fee..000000000 --- a/nuttx/libc/spawn/Make.defs +++ /dev/null @@ -1,63 +0,0 @@ -############################################################################ -# libc/spawn/Make.defs -# -# Copyright (C) 2013 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -############################################################################ - -# Add the spawn C files to the build - -ifeq ($(CONFIG_LIBC_EXECFUNCS),y) - -CSRCS += lib_psfa_addaction.c lib_psfa_addclose.c lib_psfa_adddup2.c -CSRCS += lib_psfa_addopen.c lib_psfa_destroy.c lib_psfa_init.c - -ifeq ($(CONFIG_DEBUG),y) -CSRCS += lib_psfa_dump.c -endif - -CSRCS += lib_psa_getflags.c lib_psa_getschedparam.c lib_psa_getschedpolicy.c -CSRCS += lib_psa_init.c lib_psa_setflags.c lib_psa_setschedparam.c -CSRCS += lib_psa_setschedpolicy.c - -ifneq ($(CONFIG_DISABLE_SIGNALS),y) -CSRCS += lib_psa_getsigmask.c lib_psa_setsigmask.c -endif - -ifeq ($(CONFIG_DEBUG),y) -CSRCS += lib_psa_dump.c -endif - -# Add the spawn directory to the build - -DEPPATH += --dep-path spawn -VPATH += :spawn -endif diff --git a/nuttx/libc/spawn/lib_psa_dump.c b/nuttx/libc/spawn/lib_psa_dump.c deleted file mode 100644 index 03770c6ff..000000000 --- a/nuttx/libc/spawn/lib_psa_dump.c +++ /dev/null @@ -1,127 +0,0 @@ -/**************************************************************************** - * libc/string/lib_psa_dump.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <spawn.h> -#include <debug.h> - -#ifdef CONFIG_DEBUG - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: posix_spawnattr_dump - * - * Description: - * Show the current attributes. - * - * Input Parameters: - * attr - The address of the spawn attributes to be dumped. - * - * Returned Value: - * None - * - ****************************************************************************/ - -void posix_spawnattr_dump(posix_spawnattr_t *attr) -{ - dbg("attr[%p]:\n", attr); - dbg(" flags: %04x\n", attr->flags); - if (attr->flags == 0) - { - dbg(" None\n"); - } - else - { - if ((attr->flags & POSIX_SPAWN_RESETIDS) != 0) - { - dbg(" POSIX_SPAWN_RESETIDS\n"); - } - - if ((attr->flags & POSIX_SPAWN_SETPGROUP) != 0) - { - dbg(" POSIX_SPAWN_SETPGROUP\n"); - } - - if ((attr->flags & POSIX_SPAWN_SETSCHEDPARAM) != 0) - { - dbg(" POSIX_SPAWN_SETSCHEDPARAM\n"); - } - - if ((attr->flags & POSIX_SPAWN_SETSCHEDULER) != 0) - { - dbg(" POSIX_SPAWN_SETSCHEDULER\n"); - } - - if ((attr->flags & POSIX_SPAWN_SETSIGDEF) != 0) - { - dbg(" POSIX_SPAWN_SETSIGDEF\n"); - } - - if ((attr->flags & POSIX_SPAWN_SETSIGMASK) != 0) - { - dbg(" POSIX_SPAWN_SETSIGMASK\n"); - } - } - - dbg(" priority: %d\n", attr->priority); - - dbg(" policy: %d\n", attr->policy); - if (attr->policy == SCHED_FIFO) - { - dbg(" SCHED_FIFO\n"); - } - else if (attr->policy == SCHED_RR) - { - dbg(" SCHED_RR\n"); - } - else - { - dbg(" Unrecognized\n"); - } - -#ifndef CONFIG_DISABLE_SIGNALS - dbg(" sigmask: %08x\n", attr->sigmask); -#endif -}; - -#endif /* CONFIG_DEBUG */
\ No newline at end of file diff --git a/nuttx/libc/spawn/lib_psa_getflags.c b/nuttx/libc/spawn/lib_psa_getflags.c deleted file mode 100644 index f0e07f0c2..000000000 --- a/nuttx/libc/spawn/lib_psa_getflags.c +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** - * libc/string/lib_psa_getflags.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <spawn.h> -#include <assert.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: posix_spawnattr_getflags - * - * Description: - * The posix_spawnattr_getflags() function will obtain the value of the - * spawn-flags attribute from the attributes object referenced by attr. - * - * Input Parameters: - * attr - The address spawn attributes to be queried. - * flags - The location to return the spawn flags - * - * Returned Value: - * On success, these functions return 0; on failure they return an error - * number from <errno.h>. - * - ****************************************************************************/ - -int posix_spawnattr_getflags(FAR const posix_spawnattr_t *attr, - FAR short *flags) -{ - DEBUGASSERT(attr && flags); - *flags = (short)attr->flags; - return OK; -} diff --git a/nuttx/libc/spawn/lib_psa_getschedparam.c b/nuttx/libc/spawn/lib_psa_getschedparam.c deleted file mode 100644 index ed8cb1f70..000000000 --- a/nuttx/libc/spawn/lib_psa_getschedparam.c +++ /dev/null @@ -1,74 +0,0 @@ -/**************************************************************************** - * libc/string/lib_psa_getschedparam.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sched.h> -#include <spawn.h> -#include <assert.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: posix_spawnattr_getschedparam - * - * Description: - * The posix_spawnattr_getschedparam() function will obtain the value of - * the spawn-schedparam attribute from the attributes object referenced - * by attr. - * - * Input Parameters: - * attr - The address spawn attributes to be queried. - * flags - The location to return the spawn-schedparam value. - * - * Returned Value: - * On success, these functions return 0; on failure they return an error - * number from <errno.h>. - * - ****************************************************************************/ - -int posix_spawnattr_getschedparam(FAR const posix_spawnattr_t *attr, - FAR struct sched_param *param) -{ - DEBUGASSERT(attr && param); - param->sched_priority = attr->priority; - return OK; -} diff --git a/nuttx/libc/spawn/lib_psa_getschedpolicy.c b/nuttx/libc/spawn/lib_psa_getschedpolicy.c deleted file mode 100644 index 8f3645666..000000000 --- a/nuttx/libc/spawn/lib_psa_getschedpolicy.c +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** - * libc/string/lib_psa_getschedpolicy.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <spawn.h> -#include <assert.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: posix_spawnattr_getschedpolicy - * - * Description: - * The posix_spawnattr_getschedpolicy() function shall obtain the value - * of the spawn-schedpolicy attribute from the attributes object referenced - * by attr. - * - * Input Parameters: - * attr - The address spawn attributes to be queried. - * policy - The location to return the scheduler policy - * - * Returned Value: - * On success, these functions return 0; on failure they return an error - * number from <errno.h>. - * - ****************************************************************************/ - -int posix_spawnattr_getschedpolicy(FAR const posix_spawnattr_t *attr, - FAR int *policy) -{ - DEBUGASSERT(attr && policy); - *policy = (int)attr->policy; - return OK; -} diff --git a/nuttx/libc/spawn/lib_psa_getsigmask.c b/nuttx/libc/spawn/lib_psa_getsigmask.c deleted file mode 100644 index dd3495b4d..000000000 --- a/nuttx/libc/spawn/lib_psa_getsigmask.c +++ /dev/null @@ -1,78 +0,0 @@ -/**************************************************************************** - * libc/string/lib_psa_getsigmask.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <signal.h> -#include <spawn.h> -#include <assert.h> - -#ifndef CONFIG_DISABLE_SIGNALS - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: posix_spawnattr_getsigmask - * - * Description: - * The posix_spawnattr_getsigdefault() function will obtain the value of - * the spawn-sigmask attribute from the attributes object referenced - * by attr. - * - * Input Parameters: - * attr - The address spawn attributes to be queried. - * sigmask - The location to return the signal mask - * - * Returned Value: - * On success, these functions return 0; on failure they return an error - * number from <errno.h>. - * - ****************************************************************************/ - -int posix_spawnattr_getsigmask(FAR const posix_spawnattr_t *attr, - FAR sigset_t *sigmask) -{ - DEBUGASSERT(attr && sigmask); - *sigmask = attr->sigmask; - return OK; -} - -#endif /* !CONFIG_DISABLE_SIGNALS */ diff --git a/nuttx/libc/spawn/lib_psa_init.c b/nuttx/libc/spawn/lib_psa_init.c deleted file mode 100644 index f76188c52..000000000 --- a/nuttx/libc/spawn/lib_psa_init.c +++ /dev/null @@ -1,93 +0,0 @@ -/**************************************************************************** - * libc/string/lib_psa_init.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sched.h> -#include <spawn.h> -#include <assert.h> -#include <errno.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: posix_spawnattr_init - * - * Description: - * The posix_spawnattr_init() function initializes the object referenced - * by attr, to an empty set of spawn attributes for subsequent use in a - * call to posix_spawn() or posix_spawnp(). - * - * Input Parameters: - * attr - The address of the spawn attributes to be initialized. - * - * Returned Value: - * On success, these functions return 0; on failure they return an error - * number from <errno.h>. - * - ****************************************************************************/ - -int posix_spawnattr_init(posix_spawnattr_t *attr) -{ - struct sched_param param; - int ret; - - DEBUGASSERT(attr); - - /* Flags: None */ - - attr->flags = 0; - - /* Set the default scheduler policy to the policy of this task */ - - attr->policy = sched_getscheduler(0); - - /* Set the default priority to the same priority as this task */ - - ret = sched_getparam(0, ¶m); - if (ret < 0) - { - return errno; - } - - attr->priority = param.sched_priority; - return OK; -} diff --git a/nuttx/libc/spawn/lib_psa_setflags.c b/nuttx/libc/spawn/lib_psa_setflags.c deleted file mode 100644 index 34b71d841..000000000 --- a/nuttx/libc/spawn/lib_psa_setflags.c +++ /dev/null @@ -1,71 +0,0 @@ -/**************************************************************************** - * libc/string/lib_psa_setflags.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <spawn.h> -#include <assert.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: posix_spawnattr_setflags - * - * Description: - * The posix_spawnattr_setflags() function will set the spawn-flags - * attribute in an initialized attributes object referenced by attr. - * - * Input Parameters: - * attr - The address spawn attributes to be used. - * flags - The new value of the spawn flags - * - * Returned Value: - * On success, these functions return 0; on failure they return an error - * number from <errno.h>. - * - ****************************************************************************/ - -int posix_spawnattr_setflags(FAR posix_spawnattr_t *attr, short flags) -{ - DEBUGASSERT(attr && (flags & ~0xff) == 0); - attr->flags = (uint8_t)flags; - return OK; -} diff --git a/nuttx/libc/spawn/lib_psa_setschedparam.c b/nuttx/libc/spawn/lib_psa_setschedparam.c deleted file mode 100644 index 5e992e8a9..000000000 --- a/nuttx/libc/spawn/lib_psa_setschedparam.c +++ /dev/null @@ -1,74 +0,0 @@ -/**************************************************************************** - * libc/string/lib_psa_setschedparam.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sched.h> -#include <spawn.h> -#include <assert.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: posix_spawnattr_setschedparam - * - * Description: - * The posix_spawnattr_setschedparam() function shall set the spawn- - * schedparam attribute in an initialized attributes object referenced - * by attr. - * - * Input Parameters: - * attr - The address spawn attributes to be used. - * param - The new sched_priority to set. - * - * Returned Value: - * On success, these functions return 0; on failure they return an error - * number from <errno.h>. - * - ****************************************************************************/ - -int posix_spawnattr_setschedparam(FAR posix_spawnattr_t *attr, - FAR const struct sched_param *param) -{ - DEBUGASSERT(attr && param && (unsigned)param->sched_priority <= 0xff); - attr->priority = (uint8_t)param->sched_priority; - return OK; -} diff --git a/nuttx/libc/spawn/lib_psa_setschedpolicy.c b/nuttx/libc/spawn/lib_psa_setschedpolicy.c deleted file mode 100644 index 136a6f0fd..000000000 --- a/nuttx/libc/spawn/lib_psa_setschedpolicy.c +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** - * libc/string/lib_psa_setschedpolicy.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <spawn.h> -#include <assert.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: posix_spawnattr_setschedpolicy - * - * Description: - * The posix_spawnattr_setschedpolicy() function will set the spawn- - * schedpolicy attribute in an initialized attributes object referenced - * by attr. - * - * Input Parameters: - * attr - The address spawn attributes to be used. - * flags - The new value of the spawn flags - * - * Returned Value: - * On success, these functions return 0; on failure they return an error - * number from <errno.h>. - * - ****************************************************************************/ - -int posix_spawnattr_setschedpolicy(FAR posix_spawnattr_t *attr, int policy) -{ - DEBUGASSERT(attr && (policy == SCHED_FIFO || policy == SCHED_RR)); - attr->policy = (uint8_t)policy; - return OK; -} diff --git a/nuttx/libc/spawn/lib_psa_setsigmask.c b/nuttx/libc/spawn/lib_psa_setsigmask.c deleted file mode 100644 index 28b7daf77..000000000 --- a/nuttx/libc/spawn/lib_psa_setsigmask.c +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** - * libc/string/lib_psa_setsigmask.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <signal.h> -#include <spawn.h> -#include <assert.h> - -#ifndef CONFIG_DISABLE_SIGNALS - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: posix_spawnattr_setsigmask - * - * Description: - * The posix_spawnattr_setsigmask() function will set the spawn- - * sigmask attribute in an initialized attributes object referenced - * by attr. - * - * Input Parameters: - * attr - The address spawn attributes to be used. - * flags - The new value of the default signal set - * - * Returned Value: - * On success, these functions return 0; on failure they return an error - * number from <errno.h>. - * - ****************************************************************************/ - -int posix_spawnattr_setsigmask(FAR posix_spawnattr_t *attr, - FAR const sigset_t *sigmask) -{ - DEBUGASSERT(attr && sigmask); - attr->sigmask = *sigmask; - return OK; -} - -#endif /* !CONFIG_DISABLE_SIGNALS */ - diff --git a/nuttx/libc/spawn/lib_psfa_addaction.c b/nuttx/libc/spawn/lib_psfa_addaction.c deleted file mode 100644 index 8700efc2a..000000000 --- a/nuttx/libc/spawn/lib_psfa_addaction.c +++ /dev/null @@ -1,91 +0,0 @@ -/**************************************************************************** - * libc/string/lib_psfa_addaction.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <spawn.h> - -#include <nuttx/spawn.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: add_file_action - * - * Description: - * Add the file action to the end for the file action list. - * - * Input Parameters: - * file_actions - The head of the file action list. - * entry - The file action to be added - * - * Returned Value: - * None - * - ****************************************************************************/ - -void add_file_action(FAR posix_spawn_file_actions_t *file_actions, - FAR struct spawn_general_file_action_s *entry) -{ - FAR struct spawn_general_file_action_s *prev; - FAR struct spawn_general_file_action_s *next; - - /* Find the end of the list */ - - for (prev = NULL, next = (FAR struct spawn_general_file_action_s *)*file_actions; - next; - prev = next, next = next->flink); - - /* Here next is NULL and prev points to the last entry in the list (or - * is NULL if the list is empty). - */ - - if (prev) - { - prev->flink = entry; - } - else - { - *file_actions = (posix_spawn_file_actions_t)entry; - } - - entry->flink = NULL; -} diff --git a/nuttx/libc/spawn/lib_psfa_addclose.c b/nuttx/libc/spawn/lib_psfa_addclose.c deleted file mode 100644 index 1c72f0f82..000000000 --- a/nuttx/libc/spawn/lib_psfa_addclose.c +++ /dev/null @@ -1,100 +0,0 @@ -/**************************************************************************** - * libc/string/lib_psfa_addclose.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdlib.h> -#include <spawn.h> -#include <assert.h> -#include <errno.h> - -#include <nuttx/spawn.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: posix_spawn_file_actions_addclose - * - * Description: - * The posix_spawn_file_actions_addclose() function adds a close operation - * to the list of operations associated with the object referenced by - * file_actions, for subsequent use in a call to posix_spawn() or - * posix_spawnp(). The descriptor referred to by fd is closed as if - * close() had been called on it prior to the new child process starting - * execution. - * - * Input Parameters: - * file_actions - The posix_spawn_file_actions_t to append the action. - * fd - The file descriptor to be closed. - * - * Returned Value: - * On success, these functions return 0; on failure they return an error - * number from <errno.h>. - * - ****************************************************************************/ - -int posix_spawn_file_actions_addclose(FAR posix_spawn_file_actions_t *file_actions, - int fd) -{ - FAR struct spawn_close_file_action_s *entry; - - DEBUGASSERT(file_actions && fd >= 0 && fd < CONFIG_NFILE_DESCRIPTORS); - - /* Allocate the action list entry */ - - entry = (FAR struct spawn_close_file_action_s *) - zalloc(sizeof(struct spawn_close_file_action_s)); - - if (!entry) - { - return ENOMEM; - } - - /* Initialize the file action entry */ - - entry->action = SPAWN_FILE_ACTION_CLOSE; - entry->fd = fd; - - /* And add it to the file action list */ - - add_file_action(file_actions, (FAR struct spawn_general_file_action_s *)entry); - return OK; -} diff --git a/nuttx/libc/spawn/lib_psfa_adddup2.c b/nuttx/libc/spawn/lib_psfa_adddup2.c deleted file mode 100644 index deb3cbdb3..000000000 --- a/nuttx/libc/spawn/lib_psfa_adddup2.c +++ /dev/null @@ -1,104 +0,0 @@ -/**************************************************************************** - * libc/string/lib_psfa_adddup2.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdlib.h> -#include <spawn.h> -#include <assert.h> -#include <errno.h> - -#include <nuttx/spawn.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: posix_spawn_file_actions_adddup2 - * - * Description: - * The posix_spawn_file_actions_adddup2() function adds a dup2 operation to - * the list of operations associated with the object referenced by - * file_actions, for subsequent use in a call to posix_spawn() or - * posix_spawnp(). The descriptor referred to by fd2 is created as - * if dup2() had been called on fd1 prior to the new child process - * starting execution. - * - * Input Parameters: - * file_actions - The posix_spawn_file_actions_t to append the action. - * fd1 - The first file descriptor to be argument to dup2. - * fd2 - The first file descriptor to be argument to dup2. - * - * Returned Value: - * On success, these functions return 0; on failure they return an error - * number from <errno.h>. - * - ****************************************************************************/ - -int posix_spawn_file_actions_adddup2(FAR posix_spawn_file_actions_t *file_actions, - int fd1, int fd2) -{ - FAR struct spawn_dup2_file_action_s *entry; - - DEBUGASSERT(file_actions && - fd1 >= 0 && fd1 < CONFIG_NFILE_DESCRIPTORS && - fd2 >= 0 && fd2 < CONFIG_NFILE_DESCRIPTORS); - - /* Allocate the action list entry */ - - entry = (FAR struct spawn_dup2_file_action_s *) - zalloc(sizeof(struct spawn_close_file_action_s)); - - if (!entry) - { - return ENOMEM; - } - - /* Initialize the file action entry */ - - entry->action = SPAWN_FILE_ACTION_DUP2; - entry->fd1 = fd1; - entry->fd2 = fd2; - - /* And add it to the file action list */ - - add_file_action(file_actions, (FAR struct spawn_general_file_action_s *)entry); - return OK; -} diff --git a/nuttx/libc/spawn/lib_psfa_addopen.c b/nuttx/libc/spawn/lib_psfa_addopen.c deleted file mode 100644 index 66bbd813a..000000000 --- a/nuttx/libc/spawn/lib_psfa_addopen.c +++ /dev/null @@ -1,119 +0,0 @@ -/**************************************************************************** - * libc/string/lib_psfa_addopen.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdlib.h> -#include <string.h> -#include <spawn.h> -#include <assert.h> -#include <errno.h> - -#include <nuttx/spawn.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: posix_spawn_file_actions_addopen - * - * Description: - * The posix_spawn_file_actions_addopen() function adds an open operation - * to the list of operations associated with the object referenced by - * file_actions, for subsequent use in a call to posix_spawn() or - * posix_spawnp(). The descriptor referred to by fd is opened using - * the path, oflag, and mode arguments as if open() had been called on it - * prior to the new child process starting execution. The string path is - * copied by the posix_spawn_file_actions_addopen() function during this - * process, so storage need not be persistent in the caller. - * - * Input Parameters: - * file_actions - The posix_spawn_file_actions_t to append the action. - * fd - The file descriptor to be opened. - * path - The path to be opened. - * oflags - Open flags - * mode - File creation mode - * - * Returned Value: - * On success, these functions return 0; on failure they return an error - * number from <errno.h>. - * - ****************************************************************************/ - -int posix_spawn_file_actions_addopen(FAR posix_spawn_file_actions_t *file_actions, - int fd, FAR const char *path, int oflags, - mode_t mode) -{ - FAR struct spawn_open_file_action_s *entry; - size_t len; - size_t alloc; - - DEBUGASSERT(file_actions && path && - fd >= 0 && fd < CONFIG_NFILE_DESCRIPTORS); - - /* Get the size of the action including storage for the path plus its NUL - * terminating character. - */ - - len = strlen(path); - alloc = SIZEOF_OPEN_FILE_ACTION_S(len); - - /* Allocate the action list entry of this size */ - - entry = (FAR struct spawn_open_file_action_s *)zalloc(alloc); - - if (!entry) - { - return ENOMEM; - } - - /* Initialize the file action entry */ - - entry->action = SPAWN_FILE_ACTION_OPEN; - entry->fd = fd; - entry->oflags = oflags; - entry->mode = mode; - strncpy(entry->path, path, len+1); - - /* And add it to the file action list */ - - add_file_action(file_actions, (FAR struct spawn_general_file_action_s *)entry); - return OK; -} diff --git a/nuttx/libc/spawn/lib_psfa_destroy.c b/nuttx/libc/spawn/lib_psfa_destroy.c deleted file mode 100644 index a21886645..000000000 --- a/nuttx/libc/spawn/lib_psfa_destroy.c +++ /dev/null @@ -1,96 +0,0 @@ -/**************************************************************************** - * libc/string/lib_psfa_destroy.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdlib.h> -#include <spawn.h> -#include <assert.h> - -#include <nuttx/spawn.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: posix_spawn_file_actions_destroy - * - * Description: - * The posix_spawn_file_actions_destroy() function destroys the object - * referenced by file_actions which was previously intialized by - * posix_spawn_file_actions_init(), returning any resources obtained at the - * time of initialization to the system for subsequent reuse. A - * posix_spawn_file_actions_t may be reinitialized after having been - * destroyed, but must not be reused after destruction, unless it has been - * reinitialized. - * - * Input Parameters: - * file_actions - The posix_spawn_file_actions_t to be destroyed. - * - * Returned Value: - * On success, these functions return 0; on failure they return an error - * number from <errno.h>. - * - ****************************************************************************/ - -int posix_spawn_file_actions_destroy(FAR posix_spawn_file_actions_t *file_actions) -{ - FAR struct spawn_general_file_action_s *curr; - FAR struct spawn_general_file_action_s *next; - - DEBUGASSERT(file_actions); - - /* Destroy each file action, one at a time */ - - for (curr = (FAR struct spawn_general_file_action_s *)*file_actions; - curr; - curr = next) - { - /* Get the pointer to the next element before destroying the current one */ - - next = curr->flink; - free(curr); - } - - /* Mark the list empty */ - - *file_actions = NULL; - return OK; -} diff --git a/nuttx/libc/spawn/lib_psfa_dump.c b/nuttx/libc/spawn/lib_psfa_dump.c deleted file mode 100644 index 0dbaeb023..000000000 --- a/nuttx/libc/spawn/lib_psfa_dump.c +++ /dev/null @@ -1,129 +0,0 @@ -/**************************************************************************** - * libc/string/lib_psfa_dump.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <spawn.h> -#include <assert.h> -#include <debug.h> - -#include <nuttx/spawn.h> - -#ifdef CONFIG_DEBUG - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_psfa_dump - * - * Description: - * Show the entryent file actions. - * - * Input Parameters: - * file_actions - The address of the file_actions to be dumped. - * - * Returned Value: - * None - * - ****************************************************************************/ - -void posix_spawn_file_actions_dump(FAR posix_spawn_file_actions_t *file_actions) -{ - FAR struct spawn_general_file_action_s *entry; - - DEBUGASSERT(file_actions); - - dbg("File Actions[%p->%p]:\n", file_actions, *file_actions); - if (!*file_actions) - { - dbg(" NONE\n"); - return; - } - - /* Destroy each file action, one at a time */ - - for (entry = (FAR struct spawn_general_file_action_s *)*file_actions; - entry; - entry = entry->flink) - { - switch (entry->action) - { - case SPAWN_FILE_ACTION_CLOSE: - { - FAR struct spawn_close_file_action_s *action = - (FAR struct spawn_close_file_action_s *)entry; - - dbg(" CLOSE: fd=%d\n", action->fd); - } - break; - - case SPAWN_FILE_ACTION_DUP2: - { - FAR struct spawn_dup2_file_action_s *action = - (FAR struct spawn_dup2_file_action_s *)entry; - - dbg(" DUP2: %d->%d\n", action->fd1, action->fd2); - } - break; - - case SPAWN_FILE_ACTION_OPEN: - { - FAR struct spawn_open_file_action_s *action = - (FAR struct spawn_open_file_action_s *)entry; - - svdbg(" OPEN: path=%s oflags=%04x mode=%04x fd=%d\n", - action->path, action->oflags, action->mode, action->fd); - } - break; - - case SPAWN_FILE_ACTION_NONE: - default: - dbg(" ERROR: Unknown action: %d\n", entry->action); - break; - } - } -} - -#endif /* CONFIG_DEBUG */
\ No newline at end of file diff --git a/nuttx/libc/spawn/lib_psfa_init.c b/nuttx/libc/spawn/lib_psfa_init.c deleted file mode 100644 index 5c902125a..000000000 --- a/nuttx/libc/spawn/lib_psfa_init.c +++ /dev/null @@ -1,70 +0,0 @@ -/**************************************************************************** - * libc/string/lib_psfa_init.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <spawn.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: posix_spawn_file_actions_init - * - * Description: - * The posix_spawn_file_actions_init() function initializes the object - * referenced by file_actions to an empty set of file actions for - * subsequent use in a call to posix_spawn() or posix_spawnp(). - * - * Input Parameters: - * file_actions - The address of the posix_spawn_file_actions_t to be - * initialized. - * - * Returned Value: - * On success, these functions return 0; on failure they return an error - * number from <errno.h>. - * - ****************************************************************************/ - -int posix_spawn_file_actions_init(FAR posix_spawn_file_actions_t *file_actions) -{ - *file_actions = NULL; - return OK; -} diff --git a/nuttx/libc/stdio/Make.defs b/nuttx/libc/stdio/Make.defs deleted file mode 100644 index 32502f32c..000000000 --- a/nuttx/libc/stdio/Make.defs +++ /dev/null @@ -1,85 +0,0 @@ -############################################################################ -# libc/stdio/Make.defs -# -# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -############################################################################ - -# Add the stdio C files to the build -# This first group of C files do not depend on having file descriptors or -# C streams. - -CSRCS += lib_fileno.c lib_printf.c lib_syslog.c lib_lowsyslog.c\ - lib_sprintf.c lib_asprintf.c lib_snprintf.c lib_libsprintf.c \ - lib_vsprintf.c lib_avsprintf.c lib_vsnprintf.c lib_libvsprintf.c \ - lib_meminstream.c lib_memoutstream.c lib_lowinstream.c \ - lib_lowoutstream.c lib_zeroinstream.c lib_nullinstream.c \ - lib_nulloutstream.c lib_sscanf.c - -# The remaining sources files depend upon file descriptors - -ifneq ($(CONFIG_NFILE_DESCRIPTORS),0) - -CSRCS += lib_rawinstream.c lib_rawoutstream.c - -# And these depend upon both file descriptors and C streams - -ifneq ($(CONFIG_NFILE_STREAMS),0) - -CSRCS += lib_fopen.c lib_fclose.c lib_fread.c lib_libfread.c lib_fseek.c \ - lib_ftell.c lib_fsetpos.c lib_fgetpos.c lib_fgetc.c lib_fgets.c \ - lib_gets.c lib_fwrite.c lib_libfwrite.c lib_fflush.c \ - lib_libflushall.c lib_libfflush.c lib_rdflush.c lib_wrflush.c \ - lib_fputc.c lib_puts.c lib_fputs.c lib_ungetc.c lib_vprintf.c \ - lib_fprintf.c lib_vfprintf.c lib_vdprintf.c lib_stdinstream.c lib_stdoutstream.c \ - lib_perror.c lib_feof.c lib_ferror.c lib_clearerr.c - -endif -endif - -# Other support that depends on specific, configured features. - -ifeq ($(CONFIG_SYSLOG),y) -CSRCS += lib_syslogstream.c -endif - -ifeq ($(CONFIG_LIBC_FLOATINGPOINT),y) -CSRCS += lib_dtoa.c -endif - -ifeq ($(CONFIG_STDIO_LINEBUFFER),y) -CSRCS += lib_libnoflush.c -endif - -# Add the stdio directory to the build - -DEPPATH += --dep-path stdio -VPATH += :stdio diff --git a/nuttx/libc/stdio/lib_asprintf.c b/nuttx/libc/stdio/lib_asprintf.c deleted file mode 100644 index 20ca6de32..000000000 --- a/nuttx/libc/stdio/lib_asprintf.c +++ /dev/null @@ -1,105 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_asprintf.c - * - * Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <stdio.h> -#include <stdarg.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: asprintf - * - * Description: - * This function is similar to sprintf, except that it dynamically - * allocates a string (as with malloc) to hold the output, instead of - * putting the output in a buffer you allocate in advance. The ptr - * argument should be the address of a char * object, and a successful - * call to asprintf stores a pointer to the newly allocated string at that - * location. - * - * Returned Value: - * The returned value is the number of characters allocated for the buffer, - * or less than zero if an error occurred. Usually this means that the buffer - * could not be allocated. - * - ****************************************************************************/ - -int asprintf (FAR char **ptr, const char *fmt, ...) -{ - va_list ap; - int ret; - - /* Let avsprintf do all of the work */ - - va_start(ap, fmt); - ret = avsprintf(ptr, fmt, ap); - va_end(ap); - - return ret; -} diff --git a/nuttx/libc/stdio/lib_avsprintf.c b/nuttx/libc/stdio/lib_avsprintf.c deleted file mode 100644 index 15ff8c9fb..000000000 --- a/nuttx/libc/stdio/lib_avsprintf.c +++ /dev/null @@ -1,146 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_avsprintf.c - * - * Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <stdarg.h> -#include <assert.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: avsprintf - * - * Description: - * This function is similar to vsprintf, except that it dynamically - * allocates a string (as with malloc) to hold the output, instead of - * putting the output in a buffer you allocate in advance. The ptr - * argument should be the address of a char * object, and a successful - * call to avsprintf stores a pointer to the newly allocated string at that - * location. - * - * Returned Value: - * The returned value is the number of characters allocated for the buffer, - * or less than zero if an error occurred. Usually this means that the buffer - * could not be allocated. - * - ****************************************************************************/ - -int avsprintf(FAR char **ptr, const char *fmt, va_list ap) -{ - struct lib_outstream_s nulloutstream; - struct lib_memoutstream_s memoutstream; - FAR char *buf; - int nbytes; - - DEBUGASSERT(ptr && fmt); - - /* First, use a nullstream to get the size of the buffer. The number - * of bytes returned may or may not include the null terminator. - */ - - lib_nulloutstream(&nulloutstream); - nbytes = lib_vsprintf((FAR struct lib_outstream_s *)&nulloutstream, fmt, ap); - - /* Then allocate a buffer to hold that number of characters, adding one - * for the null terminator. - */ - - buf = (FAR char *)malloc(nulloutstream.nput + 1); - if (!buf) - { - return ERROR; - } - - /* Initialize a memory stream to write into the allocated buffer. The - * memory stream will reserve one byte at the end of the buffer for the - * null terminator and will not report this in the number of output bytes. - */ - - lib_memoutstream((FAR struct lib_memoutstream_s *)&memoutstream, - buf, nulloutstream.nput + 1); - - /* Then let lib_vsprintf do it's real thing */ - - nbytes = lib_vsprintf((FAR struct lib_outstream_s *)&memoutstream.public, fmt, ap); - - /* Return a pointer to the string to the caller. NOTE: the memstream put() - * method has already added the NUL terminator to the end of the string (not - * included in the nput count). - * - * Hmmm.. looks like the memory would be stranded if lib_vsprintf() returned - * an error. Does that ever happen? - */ - - DEBUGASSERT(nbytes < 0 || nbytes == nulloutstream.nput); - *ptr = buf; - return nbytes; -} diff --git a/nuttx/libc/stdio/lib_clearerr.c b/nuttx/libc/stdio/lib_clearerr.c deleted file mode 100644 index 589b56feb..000000000 --- a/nuttx/libc/stdio/lib_clearerr.c +++ /dev/null @@ -1,69 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_clearerr.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdio.h> -#include <errno.h> - -#include <nuttx/fs/fs.h> - -#if CONFIG_NFILE_STREAMS > 0 - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: Functions - * - * Description: - * Clear any end-of-file or error conditions. - * - * Returned Value: - * None - * - ****************************************************************************/ - -void clearerr(FILE *stream) -{ - stream->fs_flags = 0; -} -#endif /* CONFIG_NFILE_STREAMS */ - diff --git a/nuttx/libc/stdio/lib_dtoa.c b/nuttx/libc/stdio/lib_dtoa.c deleted file mode 100644 index 44290ae32..000000000 --- a/nuttx/libc/stdio/lib_dtoa.c +++ /dev/null @@ -1,1641 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_dtoa.c - * - * This file was ported to NuttX by Yolande Cates. - * - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Chris Torek. - * - * 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. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdint.h> -#include <string.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -#ifdef Unsigned_Shifts -# define Sign_Extend(a,b) if (b < 0) a |= 0xffff0000; -#else -# define Sign_Extend(a,b) /* no-op */ -#endif - -#ifdef CONFIG_ENDIAN_BIG -# define word0(x) ((uint32_t *)&x)[0] -# define word1(x) ((uint32_t *)&x)[1] -#else -# define word0(x) ((uint32_t *)&x)[1] -# define word1(x) ((uint32_t *)&x)[0] -#endif - -#ifdef CONFIG_ENDIAN_BIG -# define Storeinc(a,b,c) (((unsigned short *)a)[0] = (unsigned short)b, \ - ((unsigned short *)a)[1] = (unsigned short)c, a++) -#else -# define Storeinc(a,b,c) (((unsigned short *)a)[1] = (unsigned short)b, \ - ((unsigned short *)a)[0] = (unsigned short)c, a++) -#endif - -#define Exp_shift 20 -#define Exp_shift1 20 -#define Exp_msk1 0x100000 -#define Exp_msk11 0x100000 -#define Exp_mask 0x7ff00000 -#define P 53 -#define Bias 1023 -#define IEEE_Arith -#define Emin (-1022) -#define Exp_1 0x3ff00000 -#define Exp_11 0x3ff00000 -#define Ebits 11 -#define Frac_mask 0xfffff -#define Frac_mask1 0xfffff -#define Ten_pmax 22 -#define Bletch 0x10 -#define Bndry_mask 0xfffff -#define Bndry_mask1 0xfffff -#define LSB 1 -#define Sign_bit 0x80000000 -#define Log2P 1 -#define Tiny0 0 -#define Tiny1 1 -#define Quick_max 14 -#define Int_max 14 -#define Infinite(x) (word0(x) == 0x7ff00000) /* sufficient test for here */ - -#define Kmax 15 - -#define Bcopy(x,y) memcpy((char *)&x->sign, (char *)&y->sign, \ - y->wds*sizeof(long) + 2*sizeof(int)) - -/**************************************************************************** - * Private Type Definitions - ****************************************************************************/ - -struct Bigint -{ - struct Bigint *next; - int k, maxwds, sign, wds; - unsigned long x[1]; -}; - -typedef struct Bigint Bigint; - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -static Bigint *freelist[Kmax + 1]; - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -static Bigint *Balloc(int k) -{ - int x; - Bigint *rv; - - if ((rv = freelist[k])) - { - freelist[k] = rv->next; - } - else - { - x = 1 << k; - rv = (Bigint *)lib_malloc(sizeof(Bigint) + (x - 1) * sizeof(long)); - rv->k = k; - rv->maxwds = x; - } - rv->sign = rv->wds = 0; - return rv; -} - -static void Bfree(Bigint * v) -{ - if (v) - { - v->next = freelist[v->k]; - freelist[v->k] = v; - } -} - -/* multiply by m and add a */ - -static Bigint *multadd(Bigint * b, int m, int a) -{ - int i, wds; - unsigned long *x, y; -#ifdef Pack_32 - unsigned long xi, z; -#endif - Bigint *b1; - - wds = b->wds; - x = b->x; - i = 0; - do - { -#ifdef Pack_32 - xi = *x; - y = (xi & 0xffff) * m + a; - z = (xi >> 16) * m + (y >> 16); - a = (int)(z >> 16); - *x++ = (z << 16) + (y & 0xffff); -#else - y = *x * m + a; - a = (int)(y >> 16); - *x++ = y & 0xffff; -#endif - } - while (++i < wds); - if (a) - { - if (wds >= b->maxwds) - { - b1 = Balloc(b->k + 1); - Bcopy(b1, b); - Bfree(b); - b = b1; - } - b->x[wds++] = a; - b->wds = wds; - } - return b; -} - -static int hi0bits(unsigned long x) -{ - int k = 0; - - if (!(x & 0xffff0000)) - { - k = 16; - x <<= 16; - } - - if (!(x & 0xff000000)) - { - k += 8; - x <<= 8; - } - - if (!(x & 0xf0000000)) - { - k += 4; - x <<= 4; - } - - if (!(x & 0xc0000000)) - { - k += 2; - x <<= 2; - } - - if (!(x & 0x80000000)) - { - k++; - if (!(x & 0x40000000)) - { - return 32; - } - } - return k; -} - -static int lo0bits(unsigned long *y) -{ - int k; - unsigned long x = *y; - - if (x & 7) - { - if (x & 1) - { - return 0; - } - if (x & 2) - { - *y = x >> 1; - return 1; - } - *y = x >> 2; - return 2; - } - - k = 0; - if (!(x & 0xffff)) - { - k = 16; - x >>= 16; - } - - if (!(x & 0xff)) - { - k += 8; - x >>= 8; - } - - if (!(x & 0xf)) - { - k += 4; - x >>= 4; - } - - if (!(x & 0x3)) - { - k += 2; - x >>= 2; - } - - if (!(x & 1)) - { - k++; - x >>= 1; - if (!x & 1) - { - return 32; - } - } - *y = x; - return k; -} - -static Bigint *i2b(int i) -{ - Bigint *b; - - b = Balloc(1); - b->x[0] = i; - b->wds = 1; - return b; -} - -static Bigint *mult(Bigint * a, Bigint * b) -{ - Bigint *c; - int k, wa, wb, wc; - unsigned long carry, y, z; - unsigned long *x, *xa, *xae, *xb, *xbe, *xc, *xc0; -#ifdef Pack_32 - uint32_t z2; -#endif - - if (a->wds < b->wds) - { - c = a; - a = b; - b = c; - } - - k = a->k; - wa = a->wds; - wb = b->wds; - wc = wa + wb; - if (wc > a->maxwds) - { - k++; - } - c = Balloc(k); - for (x = c->x, xa = x + wc; x < xa; x++) - { - *x = 0; - } - xa = a->x; - xae = xa + wa; - xb = b->x; - xbe = xb + wb; - xc0 = c->x; -#ifdef Pack_32 - for (; xb < xbe; xb++, xc0++) - { - if ((y = *xb & 0xffff)) - { - x = xa; - xc = xc0; - carry = 0; - do - { - z = (*x & 0xffff) * y + (*xc & 0xffff) + carry; - carry = z >> 16; - z2 = (*x++ >> 16) * y + (*xc >> 16) + carry; - carry = z2 >> 16; - Storeinc(xc, z2, z); - } - while (x < xae); - *xc = carry; - } - if ((y = *xb >> 16)) - { - x = xa; - xc = xc0; - carry = 0; - z2 = *xc; - do - { - z = (*x & 0xffff) * y + (*xc >> 16) + carry; - carry = z >> 16; - Storeinc(xc, z, z2); - z2 = (*x++ >> 16) * y + (*xc & 0xffff) + carry; - carry = z2 >> 16; - } - while (x < xae); - *xc = z2; - } - } -#else - for (; xb < xbe; xc0++) - { - if ((y = *xb++)) - { - x = xa; - xc = xc0; - carry = 0; - do - { - z = *x++ * y + *xc + carry; - carry = z >> 16; - *xc++ = z & 0xffff; - } - while (x < xae); - *xc = carry; - } - } -#endif - for (xc0 = c->x, xc = xc0 + wc; wc > 0 && !*--xc; --wc); - c->wds = wc; - return c; -} - -static Bigint *p5s; - -static Bigint *pow5mult(Bigint * b, int k) -{ - Bigint *b1, *p5, *p51; - int i; - static int p05[3] = { 5, 25, 125 }; - - if ((i = k & 3)) - b = multadd(b, p05[i - 1], 0); - - if (!(k >>= 2)) - { - return b; - } - - if (!(p5 = p5s)) - { - /* first time */ - p5 = p5s = i2b(625); - p5->next = 0; - } - - for (;;) - { - if (k & 1) - { - b1 = mult(b, p5); - Bfree(b); - b = b1; - } - if (!(k >>= 1)) - { - break; - } - - if (!(p51 = p5->next)) - { - p51 = p5->next = mult(p5, p5); - p51->next = 0; - } - p5 = p51; - } - return b; -} - -static Bigint *lshift(Bigint * b, int k) -{ - int i, k1, n, n1; - Bigint *b1; - unsigned long *x, *x1, *xe, z; - -#ifdef Pack_32 - n = k >> 5; -#else - n = k >> 4; -#endif - k1 = b->k; - n1 = n + b->wds + 1; - for (i = b->maxwds; n1 > i; i <<= 1) - { - k1++; - } - b1 = Balloc(k1); - x1 = b1->x; - for (i = 0; i < n; i++) - { - *x1++ = 0; - } - x = b->x; - xe = x + b->wds; -#ifdef Pack_32 - if (k &= 0x1f) - { - k1 = 32 - k; - z = 0; - do - { - *x1++ = *x << k | z; - z = *x++ >> k1; - } - while (x < xe); - if ((*x1 = z)) - { - ++n1; - } - } -#else - if (k &= 0xf) - { - k1 = 16 - k; - z = 0; - do - { - *x1++ = ((*x << k) & 0xffff) | z; - z = *x++ >> k1; - } - while (x < xe); - if ((*x1 = z)) - { - ++n1; - } - } -#endif - else - do - { - *x1++ = *x++; - } - while (x < xe); - b1->wds = n1 - 1; - Bfree(b); - return b1; -} - -static int cmp(Bigint * a, Bigint * b) -{ - unsigned long *xa, *xa0, *xb, *xb0; - int i, j; - - i = a->wds; - j = b->wds; -#ifdef CONFIG_DEBUG_LIB - if (i > 1 && !a->x[i - 1]) - { - ldbg("cmp called with a->x[a->wds-1] == 0\n"); - } - if (j > 1 && !b->x[j - 1]) - { - ldbg("cmp called with b->x[b->wds-1] == 0\n"); - } -#endif - if (i -= j) - return i; - xa0 = a->x; - xa = xa0 + j; - xb0 = b->x; - xb = xb0 + j; - for (;;) - { - if (*--xa != *--xb) - return *xa < *xb ? -1 : 1; - if (xa <= xa0) - break; - } - return 0; -} - -static Bigint *diff(Bigint * a, Bigint * b) -{ - Bigint *c; - int i, wa, wb; - long borrow, y; /* We need signed shifts here. */ - unsigned long *xa, *xae, *xb, *xbe, *xc; -#ifdef Pack_32 - int32_t z; -#endif - - i = cmp(a, b); - if (!i) - { - c = Balloc(0); - c->wds = 1; - c->x[0] = 0; - return c; - } - if (i < 0) - { - c = a; - a = b; - b = c; - i = 1; - } - else - i = 0; - c = Balloc(a->k); - c->sign = i; - wa = a->wds; - xa = a->x; - xae = xa + wa; - wb = b->wds; - xb = b->x; - xbe = xb + wb; - xc = c->x; - borrow = 0; -#ifdef Pack_32 - do - { - y = (*xa & 0xffff) - (*xb & 0xffff) + borrow; - borrow = y >> 16; - Sign_Extend(borrow, y); - z = (*xa++ >> 16) - (*xb++ >> 16) + borrow; - borrow = z >> 16; - Sign_Extend(borrow, z); - Storeinc(xc, z, y); - } - while (xb < xbe); - while (xa < xae) - { - y = (*xa & 0xffff) + borrow; - borrow = y >> 16; - Sign_Extend(borrow, y); - z = (*xa++ >> 16) + borrow; - borrow = z >> 16; - Sign_Extend(borrow, z); - Storeinc(xc, z, y); - } -#else - do - { - y = *xa++ - *xb++ + borrow; - borrow = y >> 16; - Sign_Extend(borrow, y); - *xc++ = y & 0xffff; - } - while (xb < xbe); - while (xa < xae) - { - y = *xa++ + borrow; - borrow = y >> 16; - Sign_Extend(borrow, y); - *xc++ = y & 0xffff; - } -#endif - while (!*--xc) - wa--; - c->wds = wa; - return c; -} - -static Bigint *d2b(double d, int *e, int *bits) -{ - Bigint *b; - int de, i, k; - unsigned long *x, y, z; - -#ifdef Pack_32 - b = Balloc(1); -#else - b = Balloc(2); -#endif - x = b->x; - - z = word0(d) & Frac_mask; - word0(d) &= 0x7fffffff; /* clear sign bit, which we ignore */ - if ((de = (int)(word0(d) >> Exp_shift))) - z |= Exp_msk1; -#ifdef Pack_32 - if ((y = word1(d))) - { - if ((k = lo0bits(&y))) - { - x[0] = y | z << (32 - k); - z >>= k; - } - else - x[0] = y; - i = b->wds = (x[1] = z) ? 2 : 1; - } - else - { -#ifdef CONFIG_DEBUG_LIB - if (!z) - { - ldbg("Zero passed to d2b\n"); - } -#endif - k = lo0bits(&z); - x[0] = z; - i = b->wds = 1; - k += 32; - } -#else - if ((y = word1(d))) - { - if ((k = lo0bits(&y))) - if (k >= 16) - { - x[0] = y | ((z << (32 - k)) & 0xffff); - x[1] = z >> (k - 16) & 0xffff; - x[2] = z >> k; - i = 2; - } - else - { - x[0] = y & 0xffff; - x[1] = (y >> 16) | ((z << (16 - k)) & 0xffff); - x[2] = z >> k & 0xffff; - x[3] = z >> (k + 16); - i = 3; - } - else - { - x[0] = y & 0xffff; - x[1] = y >> 16; - x[2] = z & 0xffff; - x[3] = z >> 16; - i = 3; - } - } - else - { -#ifdef CONFIG_DEBUG_LIB - if (!z) - { - ldbg("Zero passed to d2b\n"); - } -#endif - k = lo0bits(&z); - if (k >= 16) - { - x[0] = z; - i = 0; - } - else - { - x[0] = z & 0xffff; - x[1] = z >> 16; - i = 1; - } - k += 32; - } - while (!x[i]) - --i; - b->wds = i + 1; -#endif - if (de) - { - *e = de - Bias - (P - 1) + k; - *bits = P - k; - } - else - { - *e = de - Bias - (P - 1) + 1 + k; -#ifdef Pack_32 - *bits = 32 * i - hi0bits(x[i - 1]); -#else - *bits = (i + 2) * 16 - hi0bits(x[i]); -#endif - } - return b; -} - -static const double tens[] = { - 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, - 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, - 1e20, 1e21, 1e22 -}; - -#ifdef IEEE_Arith -static const double bigtens[] = { 1e16, 1e32, 1e64, 1e128, 1e256 }; -static const double tinytens[] = { 1e-16, 1e-32, 1e-64, 1e-128, 1e-256 }; - -# define n_bigtens 5 -#else -static const double bigtens[] = { 1e16, 1e32 }; -static const double tinytens[] = { 1e-16, 1e-32 }; - -# define n_bigtens 2 -#endif - -static int quorem(Bigint * b, Bigint * S) -{ - int n; - long borrow, y; - unsigned long carry, q, ys; - unsigned long *bx, *bxe, *sx, *sxe; -#ifdef Pack_32 - int32_t z; - uint32_t si, zs; -#endif - - n = S->wds; -#ifdef CONFIG_DEBUG_LIB - if (b->wds > n) - { - ldbg("oversize b in quorem\n"); - } -#endif - if (b->wds < n) - { - return 0; - } - sx = S->x; - sxe = sx + --n; - bx = b->x; - bxe = bx + n; - q = *bxe / (*sxe + 1); /* ensure q <= true quotient */ -#ifdef CONFIG_DEBUG_LIB - if (q > 9) - { - ldbg("oversized quotient in quorem\n"); - } -#endif - if (q) - { - borrow = 0; - carry = 0; - do - { -#ifdef Pack_32 - si = *sx++; - ys = (si & 0xffff) * q + carry; - zs = (si >> 16) * q + (ys >> 16); - carry = zs >> 16; - y = (*bx & 0xffff) - (ys & 0xffff) + borrow; - borrow = y >> 16; - Sign_Extend(borrow, y); - z = (*bx >> 16) - (zs & 0xffff) + borrow; - borrow = z >> 16; - Sign_Extend(borrow, z); - Storeinc(bx, z, y); -#else - ys = *sx++ * q + carry; - carry = ys >> 16; - y = *bx - (ys & 0xffff) + borrow; - borrow = y >> 16; - Sign_Extend(borrow, y); - *bx++ = y & 0xffff; -#endif - } - while (sx <= sxe); - if (!*bxe) - { - bx = b->x; - while (--bxe > bx && !*bxe) - --n; - b->wds = n; - } - } - if (cmp(b, S) >= 0) - { - q++; - borrow = 0; - carry = 0; - bx = b->x; - sx = S->x; - do - { -#ifdef Pack_32 - si = *sx++; - ys = (si & 0xffff) + carry; - zs = (si >> 16) + (ys >> 16); - carry = zs >> 16; - y = (*bx & 0xffff) - (ys & 0xffff) + borrow; - borrow = y >> 16; - Sign_Extend(borrow, y); - z = (*bx >> 16) - (zs & 0xffff) + borrow; - borrow = z >> 16; - Sign_Extend(borrow, z); - Storeinc(bx, z, y); -#else - ys = *sx++ + carry; - carry = ys >> 16; - y = *bx - (ys & 0xffff) + borrow; - borrow = y >> 16; - Sign_Extend(borrow, y); - *bx++ = y & 0xffff; -#endif - } - while (sx <= sxe); - bx = b->x; - bxe = bx + n; - if (!*bxe) - { - while (--bxe > bx && !*bxe) - --n; - b->wds = n; - } - } - return q; -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/* dtoa for IEEE arithmetic (dmg): convert double to ASCII string. - * - * Inspired by "How to Print Floating-Point Numbers Accurately" by - * Guy L. Steele, Jr. and Jon L. White [Proc. ACM SIGPLAN '90, pp. 92-101]. - * - * Modifications: - * 1. Rather than iterating, we use a simple numeric overestimate - * to determine k = floor(log10(d)). We scale relevant - * quantities using O(log2(k)) rather than O(k) multiplications. - * 2. For some modes > 2 (corresponding to ecvt and fcvt), we don't - * try to generate digits strictly left to right. Instead, we - * compute with fewer bits and propagate the carry if necessary - * when rounding the final digit up. This is often faster. - * 3. Under the assumption that input will be rounded nearest, - * mode 0 renders 1e23 as 1e23 rather than 9.999999999999999e22. - * That is, we allow equality in stopping tests when the - * round-nearest rule will give the same floating-point value - * as would satisfaction of the stopping test with strict - * inequality. - * 4. We remove common factors of powers of 2 from relevant - * quantities. - * 5. When converting floating-point integers less than 1e16, - * we use floating-point arithmetic rather than resorting - * to multiple-precision integers. - * 6. When asked to produce fewer than 15 digits, we first try - * to get by with floating-point arithmetic; we resort to - * multiple-precision integer arithmetic only if we cannot - * guarantee that the floating-point calculation has given - * the correctly rounded result. For k requested digits and - * "uniformly" distributed input, the probability is - * something like 10^(k-15) that we must resort to the int32_t - * calculation. - */ - -char *__dtoa(double d, int mode, int ndigits, int *decpt, int *sign, char **rve) -{ - /* Arguments ndigits, decpt, sign are similar to those of ecvt and fcvt; - * trailing zeros are suppressed from the returned string. If not null, *rve - * is set to point to the end of the return value. If d is +-Infinity or - * NaN, then *decpt is set to 9999. - * - * mode: 0 ==> shortest string that yields d when read in and rounded to - * nearest. 1 ==> like 0, but with Steele & White stopping rule; e.g. with - * IEEE P754 arithmetic , mode 0 gives 1e23 whereas mode 1 gives - * 9.999999999999999e22. 2 ==> max(1,ndigits) significant digits. This gives - * a return value similar to that of ecvt, except that trailing zeros are - * suppressed. 3 ==> through ndigits past the decimal point. This gives a - * return value similar to that from fcvt, except that trailing zeros are - * suppressed, and ndigits can be negative. 4-9 should give the same return - * values as 2-3, i.e., 4 <= mode <= 9 ==> same return as mode 2 + (mode & - * 1). These modes are mainly for debugging; often they run slower but - * sometimes faster than modes 2-3. 4,5,8,9 ==> left-to-right digit - * generation. 6-9 ==> don't try fast floating-point estimate (if - * applicable). - * - * Values of mode other than 0-9 are treated as mode 0. - * - * Sufficient space is allocated to the return value to hold the suppressed - * trailing zeros. */ - - int bbits, b2, b5, be, dig, i, ieps, ilim = 0, ilim0, ilim1 = 0, - j, j_1, k, k0, k_check, leftright, m2, m5, s2, s5, spec_case = 0, try_quick; - long L; - int denorm; - unsigned long x; - Bigint *b, *b1, *delta, *mlo = NULL, *mhi, *S; - double d2, ds, eps; - char *s, *s0; - static Bigint *result; - static int result_k; - - if (result) - { - result->k = result_k; - result->maxwds = 1 << result_k; - Bfree(result); - result = 0; - } - - if (word0(d) & Sign_bit) - { - /* set sign for everything, including 0's and NaNs */ - *sign = 1; - word0(d) &= ~Sign_bit; /* clear sign bit */ - } - else - { - *sign = 0; - } - -#if defined(IEEE_Arith) -# ifdef IEEE_Arith - if ((word0(d) & Exp_mask) == Exp_mask) -#else - if (word0(d) == 0x8000) -#endif - { - /* Infinity or NaN */ - *decpt = 9999; - s = -#ifdef IEEE_Arith - !word1(d) && !(word0(d) & 0xfffff) ? "Infinity" : -#endif - "NaN"; - if (rve) - *rve = -#ifdef IEEE_Arith - s[3] ? s + 8 : -#endif - s + 3; - return s; - } -#endif - if (!d) - { - *decpt = 1; - s = "0"; - if (rve) - *rve = s + 1; - return s; - } - - b = d2b(d, &be, &bbits); - if ((i = (int)(word0(d) >> Exp_shift1 & (Exp_mask >> Exp_shift1)))) - { - d2 = d; - word0(d2) &= Frac_mask1; - word0(d2) |= Exp_11; - - /* log(x) ~=~ log(1.5) + (x-1.5)/1.5 log10(x) = log(x) / log(10) ~=~ - * log(1.5)/log(10) + (x-1.5)/(1.5*log(10)) log10(d) = - * (i-Bias)*log(2)/log(10) + log10(d2) This suggests computing an - * approximation k to log10(d) by k = (i - Bias)*0.301029995663981 + ( - * (d2-1.5)*0.289529654602168 + 0.176091259055681 ); We want k to be too - * large rather than too small. The error in the first-order Taylor - * series approximation is in our favor, so we just round up the constant - * enough to compensate for any error in the multiplication of (i - Bias) - * by 0.301029995663981; since |i - Bias| <= 1077, and 1077 * 0.30103 * - * 2^-52 ~=~ 7.2e-14, adding 1e-13 to the constant term more than - * suffices. Hence we adjust the constant term to 0.1760912590558. (We - * could get a more accurate k by invoking log10, but this is probably - * not worthwhile.) */ - - i -= Bias; - denorm = 0; - } - else - { - /* d is denormalized */ - - i = bbits + be + (Bias + (P - 1) - 1); - x = i > 32 ? word0(d) << (64 - i) | word1(d) >> (i - 32) - : word1(d) << (32 - i); - d2 = x; - word0(d2) -= 31 * Exp_msk1; /* adjust exponent */ - i -= (Bias + (P - 1) - 1) + 1; - denorm = 1; - } - - ds = (d2 - 1.5) * 0.289529654602168 + 0.1760912590558 + i * 0.301029995663981; - k = (int)ds; - if (ds < 0. && ds != k) - { - k--; /* want k = floor(ds) */ - } - k_check = 1; - - if (k >= 0 && k <= Ten_pmax) - { - if (d < tens[k]) - k--; - k_check = 0; - } - - j = bbits - i - 1; - if (j >= 0) - { - b2 = 0; - s2 = j; - } - else - { - b2 = -j; - s2 = 0; - } - - if (k >= 0) - { - b5 = 0; - s5 = k; - s2 += k; - } - else - { - b2 -= k; - b5 = -k; - s5 = 0; - } - - if (mode < 0 || mode > 9) - { - mode = 0; - } - - try_quick = 1; - if (mode > 5) - { - mode -= 4; - try_quick = 0; - } - - leftright = 1; - switch (mode) - { - case 0: - case 1: - ilim = ilim1 = -1; - i = 18; - ndigits = 0; - break; - - case 2: - leftright = 0; - /* no break */ - case 4: - if (ndigits <= 0) - { - ndigits = 1; - } - - ilim = ilim1 = i = ndigits; - break; - - case 3: - leftright = 0; - /* no break */ - case 5: - i = ndigits + k + 1; - ilim = i; - ilim1 = i - 1; - if (i <= 0) - { - i = 1; - } - } - - j = sizeof(unsigned long); - for (result_k = 0; - (signed)(sizeof(Bigint) - sizeof(unsigned long) + j) <= i; - j <<= 1) - { - result_k++; - } - - result = Balloc(result_k); - s = s0 = (char *)result; - - if (ilim >= 0 && ilim <= Quick_max && try_quick) - { - /* Try to get by with floating-point arithmetic. */ - - i = 0; - d2 = d; - k0 = k; - ilim0 = ilim; - ieps = 2; /* conservative */ - - if (k > 0) - { - ds = tens[k & 0xf]; - j = k >> 4; - - if (j & Bletch) - { - /* prevent overflows */ - j &= Bletch - 1; - d /= bigtens[n_bigtens - 1]; - ieps++; - } - - for (; j; j >>= 1, i++) - { - if (j & 1) - { - ieps++; - ds *= bigtens[i]; - } - } - - d /= ds; - } - else if ((j_1 = -k)) - { - d *= tens[j_1 & 0xf]; - for (j = j_1 >> 4; j; j >>= 1, i++) - { - if (j & 1) - { - ieps++; - d *= bigtens[i]; - } - } - } - - if (k_check && d < 1. && ilim > 0) - { - if (ilim1 <= 0) - { - goto fast_failed; - } - - ilim = ilim1; - k--; - d *= 10.; - ieps++; - } - - eps = ieps * d + 7.; - word0(eps) -= (P - 1) * Exp_msk1; - if (ilim == 0) - { - S = mhi = 0; - d -= 5.; - if (d > eps) - goto one_digit; - if (d < -eps) - goto no_digits; - goto fast_failed; - } - -#ifndef No_leftright - if (leftright) - { - /* Use Steele & White method of only generating digits needed. */ - - eps = 0.5 / tens[ilim - 1] - eps; - for (i = 0;;) - { - L = (int)d; - d -= L; - *s++ = '0' + (int)L; - if (d < eps) - goto ret1; - if (1. - d < eps) - goto bump_up; - if (++i >= ilim) - break; - eps *= 10.; - d *= 10.; - } - } - else - { -#endif - /* Generate ilim digits, then fix them up. */ - - eps *= tens[ilim - 1]; - for (i = 1;; i++, d *= 10.) - { - L = (int)d; - d -= L; - *s++ = '0' + (int)L; - if (i == ilim) - { - if (d > 0.5 + eps) - goto bump_up; - else if (d < 0.5 - eps) - { - while (*--s == '0'); - s++; - goto ret1; - } - break; - } - } -#ifndef No_leftright - } -#endif - fast_failed: - s = s0; - d = d2; - k = k0; - ilim = ilim0; - } - - /* Do we have a "small" integer? */ - - if (be >= 0 && k <= Int_max) - { - /* Yes. */ - - ds = tens[k]; - if (ndigits < 0 && ilim <= 0) - { - S = mhi = 0; - if (ilim < 0 || d <= 5 * ds) - goto no_digits; - goto one_digit; - } - - for (i = 1;; i++) - { - L = (int)(d / ds); - d -= L * ds; -#ifdef Check_FLT_ROUNDS - /* If FLT_ROUNDS == 2, L will usually be high by 1 */ - if (d < 0) - { - L--; - d += ds; - } -#endif - *s++ = '0' + (int)L; - if (i == ilim) - { - d += d; - if (d > ds || (d == ds && (L & 1))) - { - bump_up: - while (*--s == '9') - if (s == s0) - { - k++; - *s = '0'; - break; - } - ++*s++; - } - break; - } - if (!(d *= 10.)) - { - break; - } - } - - goto ret1; - } - - m2 = b2; - m5 = b5; - mhi = mlo = 0; - if (leftright) - { - if (mode < 2) - { - i = denorm ? be + (Bias + (P - 1) - 1 + 1) : 1 + P - bbits; - } - else - { - j = ilim - 1; - if (m5 >= j) - m5 -= j; - else - { - s5 += j -= m5; - b5 += j; - m5 = 0; - } - if ((i = ilim) < 0) - { - m2 -= i; - i = 0; - } - } - - b2 += i; - s2 += i; - mhi = i2b(1); - } - - if (m2 > 0 && s2 > 0) - { - i = m2 < s2 ? m2 : s2; - b2 -= i; - m2 -= i; - s2 -= i; - } - - if (b5 > 0) - { - if (leftright) - { - if (m5 > 0) - { - mhi = pow5mult(mhi, m5); - b1 = mult(mhi, b); - Bfree(b); - b = b1; - } - if ((j = b5 - m5)) - b = pow5mult(b, j); - } - else - { - b = pow5mult(b, b5); - } - } - - S = i2b(1); - if (s5 > 0) - { - S = pow5mult(S, s5); - } - - /* Check for special case that d is a normalized power of 2. */ - - if (mode < 2) - { - if (!word1(d) && !(word0(d) & Bndry_mask) && word0(d) & Exp_mask) - { - /* The special case */ - b2 += Log2P; - s2 += Log2P; - spec_case = 1; - } - else - { - spec_case = 0; - } - } - - /* Arrange for convenient computation of quotients: shift left if - * necessary so divisor has 4 leading 0 bits. - * - * Perhaps we should just compute leading 28 bits of S once and for all - * and pass them and a shift to quorem, so it can do shifts and ors - * to compute the numerator for q. - */ - -#ifdef Pack_32 - if ((i = ((s5 ? 32 - hi0bits(S->x[S->wds - 1]) : 1) + s2) & 0x1f)) - { - i = 32 - i; - } -#else - if ((i = ((s5 ? 32 - hi0bits(S->x[S->wds - 1]) : 1) + s2) & 0xf)) - { - i = 16 - i; - } -#endif - - if (i > 4) - { - i -= 4; - b2 += i; - m2 += i; - s2 += i; - } - else if (i < 4) - { - i += 28; - b2 += i; - m2 += i; - s2 += i; - } - - if (b2 > 0) - { - b = lshift(b, b2); - } - - if (s2 > 0) - { - S = lshift(S, s2); - } - - if (k_check) - { - if (cmp(b, S) < 0) - { - k--; - b = multadd(b, 10, 0); /* we botched the k estimate */ - if (leftright) - { - mhi = multadd(mhi, 10, 0); - } - - ilim = ilim1; - } - } - - if (ilim <= 0 && mode > 2) - { - if (ilim < 0 || cmp(b, S = multadd(S, 5, 0)) <= 0) - { - /* no digits, fcvt style */ - no_digits: - k = -1 - ndigits; - goto ret; - } - one_digit: - *s++ = '1'; - k++; - goto ret; - } - - if (leftright) - { - if (m2 > 0) - { - mhi = lshift(mhi, m2); - } - - /* Compute mlo -- check for special case that d is a normalized power of - * 2. */ - - mlo = mhi; - if (spec_case) - { - mhi = Balloc(mhi->k); - Bcopy(mhi, mlo); - mhi = lshift(mhi, Log2P); - } - - for (i = 1;; i++) - { - dig = quorem(b, S) + '0'; - /* Do we yet have the shortest decimal string that will round to d? */ - j = cmp(b, mlo); - delta = diff(S, mhi); - j_1 = delta->sign ? 1 : cmp(b, delta); - Bfree(delta); -#ifndef ROUND_BIASED - if (j_1 == 0 && !mode && !(word1(d) & 1)) - { - if (dig == '9') - { - goto round_9_up; - } - - if (j > 0) - { - dig++; - } - - *s++ = dig; - goto ret; - } -#endif - if (j < 0 || (j == 0 && !mode -#ifndef ROUND_BIASED - && (!(word1(d) & 1)) -#endif - )) - { - if ((j_1 > 0)) - { - b = lshift(b, 1); - j_1 = cmp(b, S); - if ((j_1 > 0 || (j_1 == 0 && (dig & 1))) && dig++ == '9') - { - goto round_9_up; - } - } - - *s++ = dig; - goto ret; - } - - if (j_1 > 0) - { - if (dig == '9') - { /* possible if i == 1 */ - round_9_up: - *s++ = '9'; - goto roundoff; - } - - *s++ = dig + 1; - goto ret; - } - - *s++ = dig; - if (i == ilim) - { - break; - } - - b = multadd(b, 10, 0); - if (mlo == mhi) - { - mlo = mhi = multadd(mhi, 10, 0); - } - else - { - mlo = multadd(mlo, 10, 0); - mhi = multadd(mhi, 10, 0); - } - } - } - else - { - for (i = 1;; i++) - { - *s++ = dig = quorem(b, S) + '0'; - if (i >= ilim) - { - break; - } - - b = multadd(b, 10, 0); - } - } - - /* Round off last digit */ - - b = lshift(b, 1); - j = cmp(b, S); - if (j > 0 || (j == 0 && (dig & 1))) - { - roundoff: - while (*--s == '9') - if (s == s0) - { - k++; - *s++ = '1'; - goto ret; - } - ++*s++; - } - else - { - while (*--s == '0'); - s++; - } - -ret: - Bfree(S); - if (mhi) - { - if (mlo && mlo != mhi) - { - Bfree(mlo); - } - - Bfree(mhi); - } -ret1: - Bfree(b); - if (s == s0) - { /* don't return empty string */ - *s++ = '0'; - k = 0; - } - - *s = 0; - *decpt = k + 1; - if (rve) - { - *rve = s; - } - - return s0; -} diff --git a/nuttx/libc/stdio/lib_fclose.c b/nuttx/libc/stdio/lib_fclose.c deleted file mode 100644 index c04537adf..000000000 --- a/nuttx/libc/stdio/lib_fclose.c +++ /dev/null @@ -1,154 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_fclose.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <unistd.h> -#include <stdlib.h> -#include <fcntl.h> -#include <string.h> -#include <errno.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: fclose - * - * Description - * The fclose() function will flush the stream pointed to by stream - * (writing any buffered output data using lib_fflush()) and close the - * underlying file descriptor. - * - * Returned Value: - * Upon successful completion 0 is returned. Otherwise, EOF is returned - * and the global variable errno is set to indicate the error. In either - * case any further access (including another call to fclose()) to the - * stream results in undefined behaviour. - * - ****************************************************************************/ - -int fclose(FAR FILE *stream) -{ - int err = EINVAL; - int ret = ERROR; - int status; - - /* Verify that a stream was provided. */ - - if (stream) - { - /* Check that the underlying file descriptor corresponds to an an open - * file. - */ - - ret = OK; - if (stream->fs_filedes >= 0) - { - /* If the stream was opened for writing, then flush the stream */ - - if ((stream->fs_oflags & O_WROK) != 0) - { - ret = lib_fflush(stream, true); - err = errno; - } - - /* Close the underlying file descriptor and save the return status */ - - status = close(stream->fs_filedes); - - /* If close() returns an error but flush() did not then make sure - * that we return the close() error condition. - */ - - if (ret == OK) - { - ret = status; - err = errno; - } - } - -#if CONFIG_STDIO_BUFFER_SIZE > 0 - /* Destroy the semaphore */ - - sem_destroy(&stream->fs_sem); - - /* Release the buffer */ - - if (stream->fs_bufstart) - { - lib_free(stream->fs_bufstart); - } - - /* Clear the whole structure */ - - memset(stream, 0, sizeof(FILE)); -#else -#if CONFIG_NUNGET_CHARS > 0 - /* Reset the number of ungetc characters */ - - stream->fs_nungotten = 0; -#endif - /* Reset the flags */ - - stream->fs_oflags = 0; -#endif - /* Setting the fs_filedescriptor to -1 makes the stream available for reuse */ - - stream->fs_filedes = -1; - } - - /* On an error, reset the errno to the first error encountered and return - * EOF. - */ - - if (ret != OK) - { - set_errno(err); - return EOF; - } - - /* Return success */ - - return OK; -} - diff --git a/nuttx/libc/stdio/lib_feof.c b/nuttx/libc/stdio/lib_feof.c deleted file mode 100644 index e036398fd..000000000 --- a/nuttx/libc/stdio/lib_feof.c +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_feof.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdio.h> -#include <errno.h> - -#include <nuttx/fs/fs.h> - -#if CONFIG_NFILE_STREAMS > 0 - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: feof - * - * Description: - * The feof() function shall test if the currently file pointer for the - * stream is at the end of file. - * - * Returned Value: - * This function will return non-zero if the the file pointer is positioned - * at the end of file. - * - ****************************************************************************/ - -int feof(FILE *stream) -{ - /* If the end-of-file condition is encountered by any of the C-buffered - * I/O functions that perform read operations, they should set the - * __FS_FLAG_EOF in the fs_flags field of struct file_struct. - */ - - return (stream->fs_flags & __FS_FLAG_EOF) != 0; -} - -#endif /* CONFIG_NFILE_STREAMS */ - diff --git a/nuttx/libc/stdio/lib_ferror.c b/nuttx/libc/stdio/lib_ferror.c deleted file mode 100644 index a977394cb..000000000 --- a/nuttx/libc/stdio/lib_ferror.c +++ /dev/null @@ -1,90 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_ferror.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdio.h> -#include <errno.h> - -#include <nuttx/fs/fs.h> - -#if CONFIG_NFILE_STREAMS > 0 - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: ferror - * - * Description: - * This function will test if the last operation resulted in an eror. This - * is used to disambiguate EOF and error conditions. - * - * Return Value: - * A non-zero value is returned to indicate the error condition. - * - ****************************************************************************/ - -int ferror(FILE *stream) -{ -#if 0 - /* If an error is encountered by any of the C-buffered I/O functions, they - * should set the __FS_FLAG_ERROR in the fs_flags field of struct - * file_struct. - */ - - return (stream->fs_flags & __FS_FLAG_ERROR) != 0; -#else - /* However, nothing currenlty sets the __FS_FLAG_ERROR flag (that is a job - * for another day). The __FS_FLAG_EOF is set by operations that perform - * read operations. Since ferror() is probably only called to disambiguate - * the meaning of other functions that return EOF, to indicate either EOF or - * an error, just testing for not EOF is probably sufficient for now. - * - * This approach would not work if ferror() is called in other contexts. In - * those cases, ferror() will always report an error. - */ - - return (stream->fs_flags & __FS_FLAG_EOF) == 0; -#endif -} - -#endif /* CONFIG_NFILE_STREAMS */ - diff --git a/nuttx/libc/stdio/lib_fflush.c b/nuttx/libc/stdio/lib_fflush.c deleted file mode 100644 index a84a14a59..000000000 --- a/nuttx/libc/stdio/lib_fflush.c +++ /dev/null @@ -1,132 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_fflush.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdbool.h> -#include <stdio.h> -#include <fcntl.h> -#include <errno.h> - -#include <nuttx/fs/fs.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: fflush - * - * Description: - * The function fflush() forces a write of all user-space buffered data for - * the given output or update stream via the stream's underlying write - * function. The open status of the stream is unaffected. - * - * If the stream argument is NULL, fflush() flushes all open output streams. - * - * Return: - * OK on success EOF on failure (with errno set appropriately) - * - ****************************************************************************/ - -int fflush(FAR FILE *stream) -{ - int ret; - - /* Is the stream argument NULL? */ - - if (!stream) - { - /* Yes... then this is a request to flush all streams */ - - ret = lib_flushall(sched_getstreams()); - } - else - { - ret = lib_fflush(stream, true); - } - - /* Check the return value */ - - if (ret < 0) - { - /* An error occurred during the flush AND/OR we were unable to flush - * all of the buffered write data. Set the errno value. - */ - - set_errno(-ret); - - /* And return EOF on failure. */ - - return EOF; - } - - return OK; -} - diff --git a/nuttx/libc/stdio/lib_fgetc.c b/nuttx/libc/stdio/lib_fgetc.c deleted file mode 100644 index 81e2e4ba7..000000000 --- a/nuttx/libc/stdio/lib_fgetc.c +++ /dev/null @@ -1,101 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_fgetc.c - * - * Copyright (C) 2007, 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <stdio.h> -#include "lib_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Function Prototypes - ****************************************************************************/ - -/************************************************************************** - * Global Constant Data - **************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/************************************************************************** - * Private Constant Data - **************************************************************************/ - -/**************************************************************************** - * Private Variables - **************************************************************************/ - -/**************************************************************************** - * Global Functions - **************************************************************************/ - -/**************************************************************************** - * fgetc - **************************************************************************/ - -int fgetc(FAR FILE *stream) -{ - unsigned char ch; - ssize_t ret; - - ret = lib_fread(&ch, 1, stream); - if (ret > 0) - { - return ch; - } - else - { - return EOF; - } -} diff --git a/nuttx/libc/stdio/lib_fgetpos.c b/nuttx/libc/stdio/lib_fgetpos.c deleted file mode 100644 index 7663ca2db..000000000 --- a/nuttx/libc/stdio/lib_fgetpos.c +++ /dev/null @@ -1,123 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_fgetpos.c - * - * Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <sys/types.h> -#include <stdio.h> -#include <errno.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: fgetpos - * - * Description: - * fgetpos() function is an alternate interfaces equivalent to ftell(). - * It gets the current value of the file offset and store it in the location - * referenced by pos. On some non-UNIX systems an fpos_t object may be a - * complex object and fsetpos may be the only way to portably reposition a - * stream. - * - * Returned Value: - * Zero on succes; -1 on failure with errno set appropriately. - * - ****************************************************************************/ - -int fgetpos(FAR FILE *stream, FAR fpos_t *pos) -{ - long position; - -#if CONFIG_DEBUG - if (!stream || !pos) - { - set_errno(EINVAL); - return ERROR; - } -#endif - - position = ftell(stream); - if (position == -1) - { - return ERROR; - } - - *pos = (fpos_t)position; - return OK; -} diff --git a/nuttx/libc/stdio/lib_fgets.c b/nuttx/libc/stdio/lib_fgets.c deleted file mode 100644 index 87eed285d..000000000 --- a/nuttx/libc/stdio/lib_fgets.c +++ /dev/null @@ -1,207 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_fgets.c - * - * Copyright (C) 2007-2008, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdbool.h> -#include <stdio.h> -#include <unistd.h> -#include <string.h> -#include <ctype.h> -#include <debug.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ -/* Some environments may return CR as end-of-line, others LF, and others - * both. If not specified, the logic here assumes either (but not both) as - * the default. - */ - -#if defined(CONFIG_EOL_IS_CR) -# undef CONFIG_EOL_IS_LF -# undef CONFIG_EOL_IS_BOTH_CRLF -# undef CONFIG_EOL_IS_EITHER_CRLF -#elif defined(CONFIG_EOL_IS_LF) -# undef CONFIG_EOL_IS_CR -# undef CONFIG_EOL_IS_BOTH_CRLF -# undef CONFIG_EOL_IS_EITHER_CRLF -#elif defined(CONFIG_EOL_IS_BOTH_CRLF) -# undef CONFIG_EOL_IS_CR -# undef CONFIG_EOL_IS_LF -# undef CONFIG_EOL_IS_EITHER_CRLF -#elif defined(CONFIG_EOL_IS_EITHER_CRLF) -# undef CONFIG_EOL_IS_CR -# undef CONFIG_EOL_IS_LF -# undef CONFIG_EOL_IS_BOTH_CRLF -#else -# undef CONFIG_EOL_IS_CR -# undef CONFIG_EOL_IS_LF -# undef CONFIG_EOL_IS_BOTH_CRLF -# define CONFIG_EOL_IS_EITHER_CRLF 1 -#endif - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: fgets - * - * Description: - * fgets() reads in at most one less than 'buflen' characters from stream - * and stores them into the buffer pointed to by 'buf'. Reading stops after - * an EOF or a newline. If a newline is read, it is stored into the - * buffer. A null terminator is stored after the last character in the - * buffer. - * - **************************************************************************/ - -char *fgets(FAR char *buf, int buflen, FILE *stream) -{ - int nch = 0; - - /* Sanity checks */ - - if (!stream || !buf || buflen < 1 || stream->fs_filedes < 0) - { - return NULL; - } - - if (buflen < 2) - { - *buf = '\0'; - return buf; - } - - /* Read characters until we have a full line. On each the loop we must - * be assured that there are two free bytes in the line buffer: One for - * the next character and one for the null terminator. - */ - - for(;;) - { - /* Get the next character */ - - int ch = fgetc(stream); - - /* Check for end-of-line. This is tricky only in that some - * environments may return CR as end-of-line, others LF, and - * others both. - */ - -#if defined(CONFIG_EOL_IS_LF) || defined(CONFIG_EOL_IS_BOTH_CRLF) - if (ch == '\n') -#elif defined(CONFIG_EOL_IS_CR) - if (ch == '\r') -#else /* elif defined(CONFIG_EOL_IS_EITHER_CRLF) */ - if (ch == '\n' || ch == '\r') -#endif - { - /* The newline is stored in the buffer along with the null - * terminator. - */ - - buf[nch++] = '\n'; - buf[nch] = '\0'; - return buf; - } - - /* Check for end-of-file */ - - else if (ch == EOF) - { - /* End of file with no data? */ - - if (!nch) - { - /* Yes.. return NULL as the end of file mark */ - - return NULL; - } - else - { - /* Terminate the line */ - - buf[nch] = '\0'; - return buf; - } - } - - /* Otherwise, check if the character is printable and, if so, put the - * character in the line buffer - */ - - else if (isprint(ch)) - { - buf[nch++] = ch; - - /* Check if there is room for another character and the line's - * null terminator. If not then we have to end the line now. - */ - - if (nch + 1 >= buflen) - { - buf[nch] = '\0'; - return buf; - } - } - } -} - diff --git a/nuttx/libc/stdio/lib_fileno.c b/nuttx/libc/stdio/lib_fileno.c deleted file mode 100644 index f227aa372..000000000 --- a/nuttx/libc/stdio/lib_fileno.c +++ /dev/null @@ -1,70 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_fileno.c - * - * Copyright (C) 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdio.h> -#include <errno.h> - -#include <nuttx/fs/fs.h> - -#if CONFIG_NFILE_STREAMS > 0 - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -int fileno(FAR FILE *stream) -{ - int ret = -1; - if (stream) - { - ret = stream->fs_filedes; - } - - if (ret < 0) - { - set_errno(EBADF); - return ERROR; - } - - return ret; -} -#endif /* CONFIG_NFILE_STREAMS */ - diff --git a/nuttx/libc/stdio/lib_fopen.c b/nuttx/libc/stdio/lib_fopen.c deleted file mode 100644 index cb68b3584..000000000 --- a/nuttx/libc/stdio/lib_fopen.c +++ /dev/null @@ -1,299 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_fopen.c - * - * Copyright (C) 2007-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <fcntl.h> -#include <string.h> -#include <errno.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Types - ****************************************************************************/ - -enum open_mode_e -{ - MODE_NONE = 0, /* No access mode determined */ - MODE_R, /* "r" or "rb" open for reading */ - MODE_W, /* "w" or "wb" open for writing, truncating or creating file */ - MODE_A, /* "a" or "ab" open for writing, appending to file */ - MODE_RPLUS, /* "r+", "rb+", or "r+b" open for update (reading and writing) */ - MODE_WPLUS, /* "w+", "wb+", or "w+b" open for update, truncating or creating file */ - MODE_APLUS /* "a+", "ab+", or "a+b" open for update, appending to file */ -}; - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_mode2oflags - ****************************************************************************/ - -static int lib_mode2oflags(FAR const char *mode) -{ - enum open_mode_e state; - int oflags; - - /* Verify that a mode string was provided. No error is */ - - if (!mode) - { - goto errout; - } - - /* Parse the mode string to determine the corresponding open flags */ - - state = MODE_NONE; - oflags = 0; - - for (; *mode; mode++) - { - switch (*mode) - { - /* Open for read access ("r", "r[+]", "r[b]", "r[b+]", or "r[+b]") */ - - case 'r' : - if (state == MODE_NONE) - { - /* Open for read access */ - - oflags = O_RDOK; - state = MODE_R; - } - else - { - goto errout; - } - break; - - /* Open for write access ("w", "w[+]", "w[b]", "w[b+]", or "w[+b]") */ - - case 'w' : - if (state == MODE_NONE) - { - /* Open for write access, truncating any existing file */ - - oflags = O_WROK|O_CREAT|O_TRUNC; - state = MODE_W; - } - else - { - goto errout; - } - break; - - /* Open for write/append access ("a", "a[+]", "a[b]", "a[b+]", or "a[+b]") */ - - case 'a' : - if (state == MODE_NONE) - { - /* Write to the end of the file */ - - oflags = O_WROK|O_CREAT|O_APPEND; - state = MODE_A; - } - else - { - goto errout; - } - break; - - /* Open for update access ("[r]+", "[rb]+]", "[r]+[b]", "[w]+", - * "[wb]+]", "[w]+[b]", "[a]+", "[ab]+]", "[a]+[b]") - */ - - case '+' : - switch (state) - { - case MODE_R: - { - /* Retain any binary mode selection */ - - oflags &= O_BINARY; - - /* Open for read/write access */ - - oflags |= O_RDWR; - state = MODE_RPLUS; - } - break; - - case MODE_W: - { - /* Retain any binary mode selection */ - - oflags &= O_BINARY; - - /* Open for write read/access, truncating any existing file */ - - oflags |= O_RDWR|O_CREAT|O_TRUNC; - state = MODE_WPLUS; - } - break; - - case MODE_A: - { - /* Retain any binary mode selection */ - - oflags &= O_BINARY; - - /* Read from the beginning of the file; write to the end */ - - oflags |= O_RDWR|O_CREAT|O_APPEND; - state = MODE_APLUS; - } - break; - - default: - goto errout; - break; - } - break; - - /* Open for binary access ("[r]b", "[r]b[+]", "[r+]b", "[w]b", - * "[w]b[+]", "[w+]b", "[a]b", "[a]b[+]", "[a+]b") - */ - - case 'b' : - if (state != MODE_NONE) - { - /* The file is opened in binary mode */ - - oflags |= O_BINARY; - } - else - { - goto errout; - } - break; - - /* Unrecognized or unsupported mode */ - - default: - goto errout; - break; - } - } - - return oflags; - -/* Both fopen and fdopen should fail with errno == EINVAL if the mode - * string is invalid. - */ - -errout: - set_errno(EINVAL); - return ERROR; -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: fdopen - ****************************************************************************/ - -FAR FILE *fdopen(int fd, FAR const char *mode) -{ - FAR FILE *ret = NULL; - int oflags; - - /* Map the open mode string to open flags */ - - oflags = lib_mode2oflags(mode); - if (oflags >= 0) - { - ret = fs_fdopen(fd, oflags, NULL); - } - - return ret; -} - -/**************************************************************************** - * Name: fopen - ****************************************************************************/ - -FAR FILE *fopen(FAR const char *path, FAR const char *mode) -{ - FAR FILE *ret = NULL; - int oflags; - int fd; - - /* Map the open mode string to open flags */ - - oflags = lib_mode2oflags(mode); - if (oflags < 0) - { - return NULL; - } - - /* Open the file */ - - fd = open(path, oflags, 0666); - - /* If the open was successful, then fdopen() the fil using the file - * desciptor returned by open. If open failed, then just return the - * NULL stream -- open() has already set the errno. - */ - - if (fd >= 0) - { - ret = fs_fdopen(fd, oflags, NULL); - if (!ret) - { - /* Don't forget to close the file descriptor if any other - * failures are reported by fdopen(). - */ - - (void)close(fd); - } - } - return ret; -} diff --git a/nuttx/libc/stdio/lib_fprintf.c b/nuttx/libc/stdio/lib_fprintf.c deleted file mode 100644 index 5b6fe58f4..000000000 --- a/nuttx/libc/stdio/lib_fprintf.c +++ /dev/null @@ -1,93 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_fprintf.c - * - * Copyright (C) 2007, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <stdio.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: fprintf - ****************************************************************************/ - -int fprintf(FAR FILE *stream, FAR const char *fmt, ...) -{ - va_list ap; - int n; - - /* vfprintf into the stream */ - - va_start(ap, fmt); - n = vfprintf(stream, fmt, ap); - va_end(ap); - return n; -} diff --git a/nuttx/libc/stdio/lib_fputc.c b/nuttx/libc/stdio/lib_fputc.c deleted file mode 100644 index 5d8065b43..000000000 --- a/nuttx/libc/stdio/lib_fputc.c +++ /dev/null @@ -1,113 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_fputc.c - * - * Copyright (C) 2007, 2008, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <stdio.h> -#include "lib_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: fputc - ****************************************************************************/ - -int fputc(int c, FAR FILE *stream) -{ - unsigned char buf = (unsigned char)c; - int ret; - - ret = lib_fwrite(&buf, 1, stream); - if (ret > 0) - { - /* Flush the buffer if a newline is output */ - -#ifdef CONFIG_STDIO_LINEBUFFER - if (c == '\n') - { - ret = lib_fflush(stream, true); - if (ret < 0) - { - return EOF; - } - } -#endif - return c; - } - else - { - return EOF; - } -} diff --git a/nuttx/libc/stdio/lib_fputs.c b/nuttx/libc/stdio/lib_fputs.c deleted file mode 100644 index 7b87a89d0..000000000 --- a/nuttx/libc/stdio/lib_fputs.c +++ /dev/null @@ -1,220 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_fputs.c - * - * Copyright (C) 2007, 2008, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <stdio.h> -#include <string.h> -#include <errno.h> - -#include <nuttx/arch.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: fputs - * - * Description: - * fputs() writes the string s to stream, without its trailing '\0'. - * - ****************************************************************************/ - -#if defined(CONFIG_ARCH_ROMGETC) -int fputs(FAR const char *s, FAR FILE *stream) -{ - int nput; - int ret; - char ch; - - /* Make sure that a string was provided. */ - -#ifdef CONFIG_DEBUG /* Most parameter checking is disabled if DEBUG is off */ - if (!s) - { - set_errno(EINVAL); - return EOF; - } -#endif - - /* Write the string. Loop until the null terminator is encountered */ - - for (nput = 0, ch = up_romgetc(s); ch; nput++, s++, ch = up_romgetc(s)) - { - /* Write the next character to the stream buffer */ - - ret = lib_fwrite(&ch, 1, stream); - if (ret <= 0) - { - return EOF; - } - - /* Flush the buffer if a newline was written to the buffer */ - -#ifdef CONFIG_STDIO_LINEBUFFER - if (ch == '\n') - { - ret = lib_fflush(stream, true); - if (ret < 0) - { - return EOF; - } - } -#endif - } - - return nput; -} - -#elif defined(CONFIG_STDIO_LINEBUFFER) -int fputs(FAR const char *s, FAR FILE *stream) -{ - int nput; - int ret; - - /* Make sure that a string was provided. */ - -#ifdef CONFIG_DEBUG /* Most parameter checking is disabled if DEBUG is off */ - if (!s) - { - set_errno(EINVAL); - return EOF; - } -#endif - - /* Write the string. Loop until the null terminator is encountered */ - - for (nput = 0; *s; nput++, s++) - { - /* Write the next character to the stream buffer */ - - ret = lib_fwrite(s, 1, stream); - if (ret <= 0) - { - return EOF; - } - - /* Flush the buffer if a newline was written to the buffer */ - - if (*s == '\n') - { - ret = lib_fflush(stream, true); - if (ret < 0) - { - return EOF; - } - } - } - - return nput; -} - -#else -int fputs(FAR const char *s, FAR FILE *stream) -{ - int ntowrite; - int nput; - - /* Make sure that a string was provided. */ - -#ifdef CONFIG_DEBUG /* Most parameter checking is disabled if DEBUG is off */ - if (!s) - { - set_errno(EINVAL); - return EOF; - } -#endif - - /* Get the length of the string. */ - - ntowrite = strlen(s); - if (ntowrite == 0) - { - return 0; - } - - /* Write the string */ - - nput = lib_fwrite(s, ntowrite, stream); - if (nput < 0) - { - return EOF; - } - return nput; -} -#endif diff --git a/nuttx/libc/stdio/lib_fread.c b/nuttx/libc/stdio/lib_fread.c deleted file mode 100644 index 671714122..000000000 --- a/nuttx/libc/stdio/lib_fread.c +++ /dev/null @@ -1,101 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_fread.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/types.h> -#include <stdio.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: fread - ****************************************************************************/ - -size_t fread(FAR void *ptr, size_t size, size_t n_items, FAR FILE *stream) -{ - size_t full_size = n_items * (size_t)size; - ssize_t bytes_read; - size_t items_read = 0; - - /* Write the data into the stream buffer */ - - bytes_read = lib_fread(ptr, full_size, stream); - if (bytes_read > 0) - { - /* Return the number of full items read */ - - items_read = bytes_read / size; - } - return items_read; -} - - diff --git a/nuttx/libc/stdio/lib_fseek.c b/nuttx/libc/stdio/lib_fseek.c deleted file mode 100644 index 36216d94a..000000000 --- a/nuttx/libc/stdio/lib_fseek.c +++ /dev/null @@ -1,138 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_fseek.c - * - * Copyright (C) 2007, 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <sys/types.h> -#include <stdio.h> -#include <unistd.h> -#include <fcntl.h> -#include <errno.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: fseek - * - * Description: - * The fseek() function sets the file position indicator for the stream - * pointed to by stream. The new position, measured in bytes, is obtained - * by adding offset bytes to the position specified by whence. If whence is - * set to SEEK_SET, SEEK_CUR, or SEEK_END, the offset is relative to the - * start of the file, the current position indicator, or end-of-file, - * respectively. A successful call to the fseek() function clears the - * end-of-file indicator for the stream and undoes any effects of the ungetc(3) - * function on the same stream. - * - * Returned Value: - * Zero on succes; -1 on failure with errno set appropriately. - * - ****************************************************************************/ - -int fseek(FAR FILE *stream, long int offset, int whence) -{ - #if CONFIG_STDIO_BUFFER_SIZE > 0 - /* Flush any valid read/write data in the buffer (also verifies stream) */ - - if (lib_rdflush(stream) < 0 || lib_wrflush(stream) < 0) - { - return ERROR; - } -#else - /* Verify that we were provided with a stream */ - - if (!stream) - { - set_errno(EBADF); - return ERROR; - } -#endif - - /* On success or failure, discard any characters saved by ungetc() */ - -#if CONFIG_NUNGET_CHARS > 0 - stream->fs_nungotten = 0; -#endif - - /* Perform the fseek on the underlying file descriptor */ - - return lseek(stream->fs_filedes, offset, whence) == (off_t)-1 ? ERROR : OK; -} - - diff --git a/nuttx/libc/stdio/lib_fsetpos.c b/nuttx/libc/stdio/lib_fsetpos.c deleted file mode 100644 index 3d79a1877..000000000 --- a/nuttx/libc/stdio/lib_fsetpos.c +++ /dev/null @@ -1,116 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_fsetpos.c - * - * Copyright (C) 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <sys/types.h> -#include <stdio.h> -#include <unistd.h> -#include <fcntl.h> -#include <errno.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: fsetpos - * - * Description: - * fsetpos() function is an alternate interfaces equivalent to fseek() - * (with whence set to SEEK_SET). It sets the current value of the file - * offset to value in the location referenced by pos. On some non-UNIX - * systems an fpos_t object may be a complex object and fsetpos may be the - * only way to portably reposition a stream. - * - * Returned Value: - * Zero on succes; -1 on failure with errno set appropriately. - * - ****************************************************************************/ - -int fsetpos(FAR FILE *stream, FAR fpos_t *pos) -{ -#if CONFIG_DEBUG - if (!stream || !pos) - { - set_errno(EINVAL); - return ERROR; - } -#endif - - return fseek(stream, (FAR off_t)*pos, SEEK_SET); -} diff --git a/nuttx/libc/stdio/lib_ftell.c b/nuttx/libc/stdio/lib_ftell.c deleted file mode 100644 index 99fc20f34..000000000 --- a/nuttx/libc/stdio/lib_ftell.c +++ /dev/null @@ -1,129 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_ftell.c - * - * Copyright (C) 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <sys/types.h> -#include <stdio.h> -#include <unistd.h> -#include <fcntl.h> -#include <errno.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: ftell - * - * Description: - * ftell() returns the current value of the file position indicator for the - * stream pointed to by stream. - * - * Returned Value: - * Zero on succes; -1 on failure with errno set appropriately. - * - ****************************************************************************/ - -long ftell(FAR FILE *stream) -{ - off_t position; - - /* Verify that we were provided with a stream */ - - if (!stream) - { - set_errno(EBADF); - return ERROR; - } - - /* Perform the lseek to the current position. This will not move the - * file pointer, but will return its current setting - */ - - position = lseek(stream->fs_filedes, 0, SEEK_CUR); - if (position != (off_t)-1) - { - return (long)position; - } - else - { - return ERROR; - } -} - - diff --git a/nuttx/libc/stdio/lib_fwrite.c b/nuttx/libc/stdio/lib_fwrite.c deleted file mode 100644 index e8de004fe..000000000 --- a/nuttx/libc/stdio/lib_fwrite.c +++ /dev/null @@ -1,99 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_fwrite.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/types.h> -#include <stdio.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: fwrite - ****************************************************************************/ - -size_t fwrite(FAR const void *ptr, size_t size, size_t n_items, FAR FILE *stream) -{ - size_t full_size = n_items * (size_t)size; - ssize_t bytes_written; - size_t items_written = 0; - - /* Write the data into the stream buffer */ - - bytes_written = lib_fwrite(ptr, full_size, stream); - if (bytes_written > 0) - { - /* Return the number of full items written */ - - items_written = bytes_written / size; - } - return items_written; -} diff --git a/nuttx/libc/stdio/lib_gets.c b/nuttx/libc/stdio/lib_gets.c deleted file mode 100644 index 39c31d273..000000000 --- a/nuttx/libc/stdio/lib_gets.c +++ /dev/null @@ -1,120 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_gets.c - * - * Copyright (C) 2007-2008, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <stdio.h> -#include <limits.h> -#include <string.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: gets - * - * Description: - * gets() reads a line from stdin into the buffer pointed to by s until - * either a terminating newline or EOF, which it replaces with '\0'. No - * check for buffer overrun is performed - * - * This API should not be used because it is inherently unsafe. Consider - * using fgets which is safer and slightly more efficient. - * - **************************************************************************/ - -FAR char *gets(FAR char *s) -{ - /* gets is ALMOST the same as fgets using stdin and no length limit - * (hence, the unsafeness of gets). So let fgets do most of the work. - */ - - FAR char *ret = fgets(s, INT_MAX, stdin); - if (ret) - { - /* Another subtle difference from fgets is that gets replaces - * end-of-line markers with null terminators. We will do that as - * a second step (with some loss in performance). - */ - - int len = strlen(ret); - if (len > 0 && ret[len-1] == '\n') - { - ret[len-1] = '\0'; - } - } - - return ret; -} - diff --git a/nuttx/libc/stdio/lib_libdtoa.c b/nuttx/libc/stdio/lib_libdtoa.c deleted file mode 100644 index 395a55b61..000000000 --- a/nuttx/libc/stdio/lib_libdtoa.c +++ /dev/null @@ -1,330 +0,0 @@ -/**************************************************************************** - * libc/unistd/lib_libdtoa.c - * - * This file was ported to NuttX by Yolande Cates. - * - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Chris Torek. - * - * 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. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ -#include <math.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -#define MAX_PREC 16 - -#ifndef MIN -# define MIN(a,b) (a < b ? a : b) -#endif - -#ifndef MAX -# define MAX(a,b) (a > b ? a : b) -#endif - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Name: zeroes - * - * Description: - * Print the specified number of zeres - * - ****************************************************************************/ - -static void zeroes(FAR struct lib_outstream_s *obj, int nzeroes) -{ - int i; - - for (i = nzeroes; i > 0; i--) - { - obj->put(obj, '0'); - } -} - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -static void lib_dtoa_string(FAR struct lib_outstream_s *obj, const char *str) -{ - while (*str) { - obj->put(obj, *str++); - } -} - -/**************************************************************************** - * Name: lib_dtoa - * - * Description: - * This is part of lib_vsprintf(). It handles the floating point formats. - * This version supports only the %f (with precision). If no precision - * was provided in the format, this will use precision == 0 which is - * probably not what you want. - * - * Input Parameters: - * obj - The output stream object - * fmt - The format character. Not used 'f' is always assumed - * prec - The number of digits to the right of the decimal point. If no - * precision is provided in the format, this will be zero. And, - * unfortunately in this case, it will be treated literally as - * a precision of zero. - * flags - Only ALTFORM and SHOWPLUS flags are supported. ALTFORM only - * applies if prec == 0 which is not supported anyway. - * value - The floating point value to convert. - * - ****************************************************************************/ - -static void lib_dtoa(FAR struct lib_outstream_s *obj, int fmt, int prec, - uint8_t flags, double value) -{ - FAR char *digits; /* String returned by __dtoa */ - FAR char *digalloc; /* Copy of digits to be freed after usage */ - FAR char *rve; /* Points to the end of the return value */ - int expt; /* Integer value of exponent */ - int numlen; /* Actual number of digits returned by cvt */ - int nchars; /* Number of characters to print */ - int dsgn; /* Unused sign indicator */ - int i; - bool done_decimal_point = false; - - /* special handling for NaN and Infinity */ - if (isnan(value)) { - lib_dtoa_string(obj, "NaN"); - return; - } - if (isinf(value)) { - if (value < 0.0d) { - obj->put(obj, '-'); - } - lib_dtoa_string(obj, "Infinity"); - return; - } - - /* Non-zero... positive or negative */ - - if (value < 0) - { - value = -value; - SET_NEGATE(flags); - } - - /* Perform the conversion */ - - digits = __dtoa(value, 3, prec, &expt, &dsgn, &rve); - digalloc = digits; - numlen = rve - digits; - - if (IS_NEGATE(flags)) - { - obj->put(obj, '-'); - } - else if (IS_SHOWPLUS(flags)) - { - obj->put(obj, '+'); - } - - /* Special case exact zero or the case where the number is smaller than - * the print precision. - */ - - if (value == 0 || expt < -prec) - { - /* kludge for __dtoa irregularity */ - - obj->put(obj, '0'); - - /* A decimal point is printed only in the alternate form or if a - * particular precision is requested. - */ - - if (prec > 0 || IS_ALTFORM(flags)) - { - obj->put(obj, '.'); - done_decimal_point = true; - - /* Always print at least one digit to the right of the decimal point. */ - - prec = MAX(1, prec); - } - } - - /* A non-zero value will be printed */ - - else - { - - /* Handle the case where the value is less than 1.0 (in magnitude) and - * will need a leading zero. - */ - - if (expt <= 0) - { - /* Print a single zero to the left of the decimal point */ - - obj->put(obj, '0'); - - /* Print the decimal point */ - - obj->put(obj, '.'); - done_decimal_point = true; - - /* Print any leading zeros to the right of the decimal point */ - - if (expt < 0) - { - nchars = MIN(-expt, prec); - zeroes(obj, nchars); - prec -= nchars; - } - } - - /* Handle the general case where the value is greater than 1.0 (in - * magnitude). - */ - - else - { - /* Print the integer part to the left of the decimal point */ - - for (i = expt; i > 0; i--) - { - if (*digits != '\0') - { - obj->put(obj, *digits); - digits++; - } - else - { - obj->put(obj, '0'); - } - } - - /* Get the length of the fractional part */ - - numlen -= expt; - - /* If there is no fractional part, then a decimal point is printed - * only in the alternate form or if a particular precision is - * requested. - */ - - if (numlen > 0 || prec > 0 || IS_ALTFORM(flags)) - { - /* Print the decimal point */ - - obj->put(obj, '.'); - done_decimal_point = true; - - /* Always print at least one digit to the right of the decimal - * point. - */ - - prec = MAX(1, prec); - } - } - - /* If a precision was specified, then limit the number digits to the - * right of the decimal point. - */ - - if (prec > 0) - { - nchars = MIN(numlen, prec); - } - else - { - nchars = numlen; - } - - /* Print the fractional part to the right of the decimal point */ - - for (i = nchars; i > 0; i--) - { - obj->put(obj, *digits); - digits++; - } - - /* Decremnt to get the number of trailing zeroes to print */ - - prec -= nchars; - } - - /* Finally, print any trailing zeroes */ - if (done_decimal_point) { - zeroes(obj, prec); - } - - /* Is this memory supposed to be freed or not? */ - -#if 0 - if (digalloc) - { - free(digalloc); - } -#endif -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - diff --git a/nuttx/libc/stdio/lib_libfflush.c b/nuttx/libc/stdio/lib_libfflush.c deleted file mode 100644 index f2f0cfe14..000000000 --- a/nuttx/libc/stdio/lib_libfflush.c +++ /dev/null @@ -1,202 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_libfflush.c - * - * Copyright (C) 2007-2008, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <sys/types.h> -#include <stdbool.h> -#include <unistd.h> -#include <fcntl.h> -#include <errno.h> - -#include <nuttx/fs/fs.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_fflush - * - * Description: - * The function lib_fflush() forces a write of all user-space buffered data for - * the given output or update stream via the stream's underlying write - * function. The open status of the stream is unaffected. - * - * Parmeters: - * stream - the stream to flush - * bforce - flush must be complete. - * - * Return: - * A negated errno value on failure, otherwise the number of bytes remaining - * in the buffer. - * - ****************************************************************************/ - -ssize_t lib_fflush(FAR FILE *stream, bool bforce) -{ -#if CONFIG_STDIO_BUFFER_SIZE > 0 - FAR const unsigned char *src; - ssize_t bytes_written; - ssize_t nbuffer; - - /* Return EBADF if the file is not opened for writing */ - - if (stream->fs_filedes < 0 || (stream->fs_oflags & O_WROK) == 0) - { - return -EBADF; - } - - /* Make sure that we have exclusive access to the stream */ - - lib_take_semaphore(stream); - - /* Make sure that the buffer holds valid data */ - - if (stream->fs_bufpos != stream->fs_bufstart) - { - /* Make sure that the buffer holds buffered write data. We do not - * support concurrent read/write buffer usage. - */ - - if (stream->fs_bufread != stream->fs_bufstart) - { - /* The buffer holds read data... just return zero meaning "no bytes - * remaining in the buffer." - */ - - lib_give_semaphore(stream); - return 0; - } - - /* How many bytes of write data are used in the buffer now */ - - nbuffer = stream->fs_bufpos - stream->fs_bufstart; - - /* Try to write that amount */ - - src = stream->fs_bufstart; - do - { - /* Perform the write */ - - bytes_written = write(stream->fs_filedes, src, nbuffer); - if (bytes_written < 0) - { - /* Write failed. The cause of the failure is in 'errno'. - * returned the negated errno value. - */ - - lib_give_semaphore(stream); - return -get_errno(); - } - - /* Handle partial writes. fflush() must either return with - * an error condition or with the data successfully flushed - * from the buffer. - */ - - src += bytes_written; - nbuffer -= bytes_written; - } - while (bforce && nbuffer > 0); - - /* Reset the buffer position to the beginning of the buffer */ - - stream->fs_bufpos = stream->fs_bufstart; - - /* For the case of an incomplete write, nbuffer will be non-zero - * It will hold the number of bytes that were not written. - * Move the data down in the buffer to handle this (rare) case - */ - - while (nbuffer) - { - *stream->fs_bufpos++ = *src++; - --nbuffer; - } - } - - /* Restore normal access to the stream and return the number of bytes - * remaining in the buffer. - */ - - lib_give_semaphore(stream); - return stream->fs_bufpos - stream->fs_bufstart; -#else - /* Return no bytes remaining in the buffer */ - - return 0; -#endif -} - diff --git a/nuttx/libc/stdio/lib_libflushall.c b/nuttx/libc/stdio/lib_libflushall.c deleted file mode 100644 index 22baed968..000000000 --- a/nuttx/libc/stdio/lib_libflushall.c +++ /dev/null @@ -1,137 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_libflushall.c - * - * Copyright (C) 2007-2009, 2011-2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdbool.h> -#include <fcntl.h> -#include <errno.h> - -#include <nuttx/fs/fs.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_flushall - * - * Description: - * Called either (1) by the OS when a task exits, or (2) from fflush() - * when a NULL stream argument is provided. - * - ****************************************************************************/ - -int lib_flushall(FAR struct streamlist *list) -{ - int lasterrno = OK; - int ret; - - /* Make sure that there are streams associated with this thread */ - - if (list) - { - int i; - - /* Process each stream in the thread's stream list */ - - stream_semtake(list); - for (i = 0; i < CONFIG_NFILE_STREAMS; i++) - { - FILE *stream = &list->sl_streams[i]; - - /* If the stream is open (i.e., assigned a non-negative file - * descriptor) and opened for writing, then flush all of the pending - * write data in the stream. - */ - - if (stream->fs_filedes >= 0 && (stream->fs_oflags & O_WROK) != 0) - { - /* Flush the writable FILE */ - - ret = lib_fflush(stream, true); - if (ret < 0) - { - /* An error occurred during the flush AND/OR we were unable - * to flush all of the buffered write data. Remember the - * last errcode. - */ - - lasterrno = ret; - } - } - } - - stream_semgive(list); - } - - /* If any flush failed, return the errorcode of the last failed flush */ - - return lasterrno; -} diff --git a/nuttx/libc/stdio/lib_libfread.c b/nuttx/libc/stdio/lib_libfread.c deleted file mode 100644 index f8cf0f40a..000000000 --- a/nuttx/libc/stdio/lib_libfread.c +++ /dev/null @@ -1,318 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_libfread.c - * - * Copyright (C) 2007-2009, 2011-2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> /* for CONFIG_STDIO_BUFFER_SIZE */ - -#include <sys/types.h> -#include <stdio.h> -#include <unistd.h> -#include <string.h> -#include <fcntl.h> -#include <errno.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_fread - ****************************************************************************/ - -ssize_t lib_fread(FAR void *ptr, size_t count, FAR FILE *stream) -{ - unsigned char *dest = (unsigned char*)ptr; - ssize_t bytes_read; -#if CONFIG_STDIO_BUFFER_SIZE > 0 - int ret; -#endif - - /* Make sure that reading from this stream is allowed */ - - if (!stream || (stream->fs_oflags & O_RDOK) == 0) - { - set_errno(EBADF); - bytes_read = -1; - } - else - { - /* The stream must be stable until we complete the read */ - - lib_take_semaphore(stream); - -#if CONFIG_NUNGET_CHARS > 0 - /* First, re-read any previously ungotten characters */ - - while ((stream->fs_nungotten > 0) && (count > 0)) - { - /* Decrement the count of ungotten bytes to get an index */ - - stream->fs_nungotten--; - - /* Return the last ungotten byte */ - - *dest++ = stream->fs_ungotten[stream->fs_nungotten]; - - /* That's one less byte that we have to read */ - - count--; - } -#endif - -#if CONFIG_STDIO_BUFFER_SIZE > 0 - /* If the buffer is currently being used for write access, then - * flush all of the buffered write data. We do not support concurrent - * buffered read/write access. - */ - - ret = lib_wrflush(stream); - if (ret < 0) - { - lib_give_semaphore(stream); - return ret; - } - - /* Now get any other needed chars from the buffer or the file. */ - - while (count > 0) - { - /* Is there readable data in the buffer? */ - - while ((count > 0) && (stream->fs_bufpos < stream->fs_bufread)) - { - /* Yes, copy a byte into the user buffer */ - - *dest++ = *stream->fs_bufpos++; - count--; - } - - /* The buffer is empty OR we have already supplied the number of - * bytes requested in the read. Check if we need to read - * more from the file. - */ - - if (count > 0) - { - size_t buffer_available; - - /* We need to read more data into the buffer from the file */ - - /* Mark the buffer empty */ - - stream->fs_bufpos = stream->fs_bufread = stream->fs_bufstart; - - /* How much space is available in the buffer? */ - - buffer_available = stream->fs_bufend - stream->fs_bufread; - - /* Will the number of bytes that we need to read fit into - * the buffer space that is available? If the read size is - * larger than the buffer, then read some of the data - * directly into the user's buffer. - */ - - if (count > buffer_available) - { - bytes_read = read(stream->fs_filedes, dest, count); - if (bytes_read < 0) - { - /* An error occurred on the read. The error code is - * in the 'errno' variable. - */ - - goto errout_with_errno; - } - else if (bytes_read == 0) - { - /* We are at the end of the file. But we may already - * have buffered data. In that case, we will report - * the EOF indication later. - */ - - goto shortread; - } - else - { - /* Some bytes were read. Adjust the dest pointer */ - - dest += bytes_read; - - /* Were all of the requested bytes read? */ - - if (bytes_read < count) - { - /* No. We must be at the end of file. */ - - goto shortread; - } - else - { - /* Yes. We are done. */ - - count = 0; - } - } - } - else - { - /* The number of bytes required to satisfy the read - * is less than or equal to the size of the buffer - * space that we have left. Read as much as we can - * into the buffer. - */ - - bytes_read = read(stream->fs_filedes, stream->fs_bufread, buffer_available); - if (bytes_read < 0) - { - /* An error occurred on the read. The error code is - * in the 'errno' variable. - */ - - goto errout_with_errno; - } - else if (bytes_read == 0) - { - /* We are at the end of the file. But we may already - * have buffered data. In that case, we will report - * the EOF indication later. - */ - - goto shortread; - } - else - { - /* Some bytes were read */ - - stream->fs_bufread += bytes_read; - } - } - } - } -#else - /* Now get any other needed chars from the file. */ - - while (count > 0) - { - bytes_read = read(stream->fs_filedes, dest, count); - if (bytes_read < 0) - { - /* An error occurred on the read. The error code is - * in the 'errno' variable. - */ - - goto errout_with_errno; - } - else if (bytes_read == 0) - { - /* We are at the end of the file. But we may already - * have buffered data. In that case, we will report - * the EOF indication later. - */ - - break; - } - else - { - dest += bytes_read; - count -= bytes_read; - } - } -#endif - /* Here after a successful (but perhaps short) read */ - -#if CONFIG_STDIO_BUFFER_SIZE > 0 - shortread: -#endif - bytes_read = dest - (unsigned char*)ptr; - - /* Set or clear the EOF indicator. If we get here because of a - * short read and the total number of* bytes read is zero, then - * we must be at the end-of-file. - */ - - if (bytes_read > 0) - { - stream->fs_flags &= ~__FS_FLAG_EOF; - } - else - { - stream->fs_flags |= __FS_FLAG_EOF; - } - - lib_give_semaphore(stream); - } - - return bytes_read; - -/* Error exits */ - -errout_with_errno: - lib_give_semaphore(stream); - return -get_errno(); -} - diff --git a/nuttx/libc/stdio/lib_libfwrite.c b/nuttx/libc/stdio/lib_libfwrite.c deleted file mode 100644 index b917b3b56..000000000 --- a/nuttx/libc/stdio/lib_libfwrite.c +++ /dev/null @@ -1,179 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_libfwrite.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> /* for CONFIG_STDIO_BUFFER_SIZE */ - -#include <sys/types.h> -#include <stdbool.h> -#include <stdio.h> -#include <unistd.h> -#include <fcntl.h> -#include <errno.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_fwrite - ****************************************************************************/ - -ssize_t lib_fwrite(FAR const void *ptr, size_t count, FAR FILE *stream) -#if CONFIG_STDIO_BUFFER_SIZE > 0 -{ - FAR const unsigned char *start = ptr; - FAR const unsigned char *src = ptr; - ssize_t ret = ERROR; - unsigned char *dest; - - /* Make sure that writing to this stream is allowed */ - - if (!stream || (stream->fs_oflags & O_WROK) == 0) - { - set_errno(EBADF); - goto errout; - } - - /* Get exclusive access to the stream */ - - lib_take_semaphore(stream); - - /* If the buffer is currently being used for read access, then - * discard all of the read-ahead data. We do not support concurrent - * buffered read/write access. - */ - - if (lib_rdflush(stream) < 0) - { - goto errout_with_semaphore; - } - - /* Loop until all of the bytes have been buffered */ - - while (count > 0) - { - /* Determine the number of bytes left in the buffer */ - - size_t gulp_size = stream->fs_bufend - stream->fs_bufpos; - - /* Will the user data fit into the amount of buffer space - * that we have left? - */ - - if (gulp_size > count) - { - /* Yes, clip the gulp to the size of the user data */ - - gulp_size = count; - } - - /* Adjust the number of bytes remaining to be transferred - * on the next pass through the loop (might be zero). - */ - - count -= gulp_size; - - /* Transfer the data into the buffer */ - - for (dest = stream->fs_bufpos; gulp_size > 0; gulp_size--) - { - *dest++ = *src++; - } - stream->fs_bufpos = dest; - - /* Is the buffer full? */ - - if (dest >= stream->fs_bufend) - { - /* Flush the buffered data to the IO stream */ - - int bytes_buffered = lib_fflush(stream, false); - if (bytes_buffered < 0) - { - goto errout_with_semaphore; - } - } - } - - /* Return the number of bytes written */ - - ret = src - start; - -errout_with_semaphore: - lib_give_semaphore(stream); - -errout: - return ret; -} -#else -{ - return write(stream->fs_filedes, ptr, count); -} -#endif /* CONFIG_STDIO_BUFFER_SIZE */ - diff --git a/nuttx/libc/stdio/lib_libnoflush.c b/nuttx/libc/stdio/lib_libnoflush.c deleted file mode 100644 index 076f8a17e..000000000 --- a/nuttx/libc/stdio/lib_libnoflush.c +++ /dev/null @@ -1,103 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_libnoflush.c - * - * Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdbool.h> -#include <stdio.h> -#include <fcntl.h> -#include <errno.h> - -#include <nuttx/fs/fs.h> - -#include "lib_internal.h" - -#ifdef CONFIG_STDIO_LINEBUFFER - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_noflush - * - * Description: - * lib_noflush() provides a common, dummy flush method for output streams - * that are not flushable. Only used if CONFIG_STDIO_LINEBUFFER is selected. - * - * Return: - * Always returns OK - * - ****************************************************************************/ - -int lib_noflush(FAR struct lib_outstream_s *this) -{ - return OK; -} - -#endif /* CONFIG_STDIO_LINEBUFFER */ - diff --git a/nuttx/libc/stdio/lib_libsprintf.c b/nuttx/libc/stdio/lib_libsprintf.c deleted file mode 100644 index 2d820ab37..000000000 --- a/nuttx/libc/stdio/lib_libsprintf.c +++ /dev/null @@ -1,90 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_libsprintf.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <stdio.h> -#include "lib_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_sprintf - ****************************************************************************/ - -int lib_sprintf(FAR struct lib_outstream_s *obj, const char *fmt, ...) -{ - va_list ap; - int n; - - /* Let lib_vsprintf do the real work */ - - va_start(ap, fmt); - n = lib_vsprintf(obj, fmt, ap); - va_end(ap); - return n; -} diff --git a/nuttx/libc/stdio/lib_libvsprintf.c b/nuttx/libc/stdio/lib_libvsprintf.c deleted file mode 100644 index 2cc7950f7..000000000 --- a/nuttx/libc/stdio/lib_libvsprintf.c +++ /dev/null @@ -1,1625 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_libvsprintf.c - * - * Copyright (C) 2007-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/compiler.h> - -#include <stdint.h> -#include <stdbool.h> -#include <stdio.h> -#include <string.h> - -#include <nuttx/arch.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ -/* If you have floating point but no fieldwidth, then use a fixed (but - * configurable) floating point precision. - */ - -#if defined(CONFIG_LIBC_FLOATINGPOINT) && \ - defined(CONFIG_NOPRINTF_FIELDWIDTH) && \ - !defined(CONFIG_LIBC_FIXEDPRECISION) -# define CONFIG_LIBC_FIXEDPRECISION 3 -#endif - -#define FLAG_SHOWPLUS 0x01 -#define FLAG_ALTFORM 0x02 -#define FLAG_HASDOT 0x04 -#define FLAG_HASASTERISKWIDTH 0x08 -#define FLAG_HASASTERISKTRUNC 0x10 -#define FLAG_LONGPRECISION 0x20 -#define FLAG_LONGLONGPRECISION 0x40 -#define FLAG_NEGATE 0x80 - -#define SET_SHOWPLUS(f) do (f) |= FLAG_SHOWPLUS; while (0) -#define SET_ALTFORM(f) do (f) |= FLAG_ALTFORM; while (0) -#define SET_HASDOT(f) do (f) |= FLAG_HASDOT; while (0) -#define SET_HASASTERISKWIDTH(f) do (f) |= FLAG_HASASTERISKWIDTH; while (0) -#define SET_HASASTERISKTRUNC(f) do (f) |= FLAG_HASASTERISKTRUNC; while (0) -#define SET_LONGPRECISION(f) do (f) |= FLAG_LONGPRECISION; while (0) -#define SET_LONGLONGPRECISION(f) do (f) |= FLAG_LONGLONGPRECISION; while (0) -#define SET_NEGATE(f) do (f) |= FLAG_NEGATE; while (0) - -#define CLR_SHOWPLUS(f) do (f) &= ~FLAG_SHOWPLUS; while (0) -#define CLR_ALTFORM(f) do (f) &= ~FLAG_ALTFORM; while (0) -#define CLR_HASDOT(f) do (f) &= ~FLAG_HASDOT; while (0) -#define CLR_HASASTERISKWIDTH(f) do (f) &= ~FLAG_HASASTERISKWIDTH; while (0) -#define CLR_HASASTERISKTRUNC(f) do (f) &= ~FLAG_HASASTERISKTRUNC; while (0) -#define CLR_LONGPRECISION(f) do (f) &= ~FLAG_LONGPRECISION; while (0) -#define CLR_LONGLONGPRECISION(f) do (f) &= ~FLAG_LONGLONGPRECISION; while (0) -#define CLR_NEGATE(f) do (f) &= ~FLAG_NEGATE; while (0) -#define CLR_SIGNED(f) do (f) &= ~(FLAG_SHOWPLUS|FLAG_NEGATE); while (0) - -#define IS_SHOWPLUS(f) (((f) & FLAG_SHOWPLUS) != 0) -#define IS_ALTFORM(f) (((f) & FLAG_ALTFORM) != 0) -#define IS_HASDOT(f) (((f) & FLAG_HASDOT) != 0) -#define IS_HASASTERISKWIDTH(f) (((f) & FLAG_HASASTERISKWIDTH) != 0) -#define IS_HASASTERISKTRUNC(f) (((f) & FLAG_HASASTERISKTRUNC) != 0) -#define IS_LONGPRECISION(f) (((f) & FLAG_LONGPRECISION) != 0) -#define IS_LONGLONGPRECISION(f) (((f) & FLAG_LONGLONGPRECISION) != 0) -#define IS_NEGATE(f) (((f) & FLAG_NEGATE) != 0) -#define IS_SIGNED(f) (((f) & (FLAG_SHOWPLUS|FLAG_NEGATE)) != 0) - -/* If CONFIG_ARCH_ROMGETC is defined, then it is assumed that the format - * string data cannot be accessed by simply de-referencing the format string - * pointer. This might be in the case in Harvard architectures where string - * data might be stored in instruction space or if string data were stored - * on some media like EEPROM or external serial FLASH. In all of these cases, - * string data has to be accessed indirectly using the architecture-supplied - * up_romgetc(). The following mechanisms attempt to make these different - * access methods indistinguishable in the following code. - * - * NOTE: It is assumed that string arguments for %s still reside in memory - * that can be directly accessed by de-referencing the string pointer. - */ - -#ifdef CONFIG_ARCH_ROMGETC -# define FMT_TOP ch = up_romgetc(src) /* Loop initialization */ -# define FMT_BOTTOM src++, ch = up_romgetc(src) /* Bottom of a loop */ -# define FMT_CHAR ch /* Access a character */ -# define FMT_NEXT src++; ch = up_romgetc(src) /* Advance to the next character */ -# define FMT_PREV src--; ch = up_romgetc(src) /* Backup to the previous character */ -#else -# define FMT_TOP /* Loop initialization */ -# define FMT_BOTTOM src++ /* Bottom of a loop */ -# define FMT_CHAR *src /* Access a character */ -# define FMT_NEXT src++ /* Advance to the next character */ -# define FMT_PREV src-- /* Backup to the previous character */ -#endif - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -enum -{ - FMT_RJUST = 0, /* Default */ - FMT_LJUST, - FMT_RJUST0, - FMT_CENTER -}; - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/* Pointer to ASCII conversion */ - -#ifdef CONFIG_PTR_IS_NOT_INT -static void ptohex(FAR struct lib_outstream_s *obj, uint8_t flags, FAR void *p); -#ifndef CONFIG_NOPRINTF_FIELDWIDTH -static int getsizesize(uint8_t fmt, uint8_t flags, FAR void *p) -#endif /* CONFIG_NOPRINTF_FIELDWIDTH */ -#endif /* CONFIG_PTR_IS_NOT_INT */ - -/* Unsigned int to ASCII conversion */ - -static void utodec(FAR struct lib_outstream_s *obj, unsigned int n); -static void utohex(FAR struct lib_outstream_s *obj, unsigned int n, uint8_t a); -static void utooct(FAR struct lib_outstream_s *obj, unsigned int n); -static void utobin(FAR struct lib_outstream_s *obj, unsigned int n); -static void utoascii(FAR struct lib_outstream_s *obj, uint8_t fmt, - uint8_t flags, unsigned int lln); - -#ifndef CONFIG_NOPRINTF_FIELDWIDTH -static void fixup(uint8_t fmt, FAR uint8_t *flags, int *n); -static int getusize(uint8_t fmt, uint8_t flags, unsigned int lln); -#endif - -/* Unsigned long int to ASCII conversion */ - -#ifdef CONFIG_LONG_IS_NOT_INT -static void lutodec(FAR struct lib_outstream_s *obj, unsigned long ln); -static void lutohex(FAR struct lib_outstream_s *obj, unsigned long ln, uint8_t a); -static void lutooct(FAR struct lib_outstream_s *obj, unsigned long ln); -static void lutobin(FAR struct lib_outstream_s *obj, unsigned long ln); -static void lutoascii(FAR struct lib_outstream_s *obj, uint8_t fmt, - uint8_t flags, unsigned long ln); -#ifndef CONFIG_NOPRINTF_FIELDWIDTH -static void lfixup(uint8_t fmt, FAR uint8_t *flags, long *ln); -static int getlusize(uint8_t fmt, FAR uint8_t flags, unsigned long ln); -#endif -#endif - -/* Unsigned long long int to ASCII conversions */ - -#ifdef CONFIG_HAVE_LONG_LONG -static void llutodec(FAR struct lib_outstream_s *obj, unsigned long long lln); -static void llutohex(FAR struct lib_outstream_s *obj, unsigned long long lln, uint8_t a); -static void llutooct(FAR struct lib_outstream_s *obj, unsigned long long lln); -static void llutobin(FAR struct lib_outstream_s *obj, unsigned long long lln); -static void llutoascii(FAR struct lib_outstream_s *obj, uint8_t fmt, - uint8_t flags, unsigned long long lln); -#ifndef CONFIG_NOPRINTF_FIELDWIDTH -static void llfixup(uint8_t fmt, FAR uint8_t *flags, FAR long long *lln); -static int getllusize(uint8_t fmt, FAR uint8_t flags, FAR unsigned long long lln); -#endif -#endif - -#ifndef CONFIG_NOPRINTF_FIELDWIDTH -static void prejustify(FAR struct lib_outstream_s *obj, uint8_t fmt, - uint8_t flags, int fieldwidth, int valwidth); -static void postjustify(FAR struct lib_outstream_s *obj, uint8_t fmt, - uint8_t flags, int fieldwidth, int valwidth); -#endif - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -static const char g_nullstring[] = "(null)"; - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/* Include floating point functions */ - -#ifdef CONFIG_LIBC_FLOATINGPOINT -# include "stdio/lib_libdtoa.c" -#endif - -/**************************************************************************** - * Name: ptohex - ****************************************************************************/ - -#ifdef CONFIG_PTR_IS_NOT_INT -static void ptohex(FAR struct lib_outstream_s *obj, uint8_t flags, FAR void *p) -{ - union - { - uint32_t dw; - FAR void *p; - } u; - uint8_t bits; - - /* Check for alternate form */ - - if (IS_ALTFORM(flags)) - { - /* Prefix the number with "0x" */ - - obj->put(obj, '0'); - obj->put(obj, 'x'); - } - - u.dw = 0; - u.p = p; - - for (bits = 8*sizeof(void *); bits > 0; bits -= 4) - { - uint8_t nibble = (uint8_t)((u.dw >> (bits - 4)) & 0xf); - if (nibble < 10) - { - obj->put(obj, nibble + '0'); - } - else - { - obj->put(obj, nibble + 'a' - 10); - } - } -} - -/**************************************************************************** - * Name: getpsize - ****************************************************************************/ - -#ifndef CONFIG_NOPRINTF_FIELDWIDTH -static int getpsize(uint8_t flags, FAR void *p) -{ - struct lib_outstream_s nulloutstream; - lib_nulloutstream(&nulloutstream); - - ptohex(&nulloutstream, flags, p); - return nulloutstream.nput; -} - -#endif /* CONFIG_NOPRINTF_FIELDWIDTH */ -#endif /* CONFIG_PTR_IS_NOT_INT */ - -/**************************************************************************** - * Name: utodec - ****************************************************************************/ - -static void utodec(FAR struct lib_outstream_s *obj, unsigned int n) -{ - unsigned int remainder = n % 10; - unsigned int dividend = n / 10; - - if (dividend) - { - utodec(obj, dividend); - } - - obj->put(obj, (remainder + (unsigned int)'0')); -} - -/**************************************************************************** - * Name: utohex - ****************************************************************************/ - -static void utohex(FAR struct lib_outstream_s *obj, unsigned int n, uint8_t a) -{ - bool nonzero = false; - uint8_t bits; - - for (bits = 8*sizeof(unsigned int); bits > 0; bits -= 4) - { - uint8_t nibble = (uint8_t)((n >> (bits - 4)) & 0xf); - if (nibble || nonzero) - { - nonzero = true; - - if (nibble < 10) - { - obj->put(obj, nibble + '0'); - } - else - { - obj->put(obj, nibble + a - 10); - } - } - } - - if (!nonzero) - { - obj->put(obj, '0'); - } -} - -/**************************************************************************** - * Name: utooct - ****************************************************************************/ - -static void utooct(FAR struct lib_outstream_s *obj, unsigned int n) -{ - unsigned int remainder = n & 0x7; - unsigned int dividend = n >> 3; - - if (dividend) - { - utooct(obj, dividend); - } - - obj->put(obj, (remainder + (unsigned int)'0')); -} - -/**************************************************************************** - * Name: utobin - ****************************************************************************/ - -static void utobin(FAR struct lib_outstream_s *obj, unsigned int n) -{ - unsigned int remainder = n & 1; - unsigned int dividend = n >> 1; - - if (dividend) - { - utobin(obj, dividend); - } - - obj->put(obj, (remainder + (unsigned int)'0')); -} - -/**************************************************************************** - * Name: utoascii - ****************************************************************************/ - -static void utoascii(FAR struct lib_outstream_s *obj, uint8_t fmt, uint8_t flags, unsigned int n) -{ - /* Perform the integer conversion according to the format specifier */ - - switch (fmt) - { - case 'd': - case 'i': - /* Signed base 10 */ - { -#ifdef CONFIG_NOPRINTF_FIELDWIDTH - if ((int)n < 0) - { - obj->put(obj, '-'); - n = (unsigned int)(-(int)n); - } - else if (IS_SHOWPLUS(flags)) - { - obj->put(obj, '+'); - } -#endif - /* Convert the unsigned value to a string. */ - - utodec(obj, n); - } - break; - - case 'u': - /* Unigned base 10 */ - { -#ifdef CONFIG_NOPRINTF_FIELDWIDTH - if (IS_SHOWPLUS(flags)) - { - obj->put(obj, '+'); - } -#endif - /* Convert the unsigned value to a string. */ - - utodec(obj, n); - } - break; - -#ifndef CONFIG_PTR_IS_NOT_INT - case 'p': -#endif - case 'x': - case 'X': - /* Hexadecimal */ - { - /* Check for alternate form */ - - if (IS_ALTFORM(flags)) - { - /* Prefix the number with "0x" */ - - obj->put(obj, '0'); - obj->put(obj, 'x'); - } - - /* Convert the unsigned value to a string. */ - - if (fmt == 'X') - { - utohex(obj, n, 'A'); - } - else - { - utohex(obj, n, 'a'); - } - } - break; - - case 'o': - /* Octal */ - { - /* Check for alternate form */ - - if (IS_ALTFORM(flags)) - { - /* Prefix the number with '0' */ - - obj->put(obj, '0'); - } - - /* Convert the unsigned value to a string. */ - - utooct(obj, n); - } - break; - - case 'b': - /* Binary */ - { - /* Convert the unsigned value to a string. */ - - utobin(obj, n); - } - break; - -#ifdef CONFIG_PTR_IS_NOT_INT - case 'p': -#endif - default: - break; - } -} - -/**************************************************************************** - * Name: fixup - ****************************************************************************/ - -#ifndef CONFIG_NOPRINTF_FIELDWIDTH -static void fixup(uint8_t fmt, FAR uint8_t *flags, FAR int *n) -{ - /* Perform the integer conversion according to the format specifier */ - - switch (fmt) - { - case 'd': - case 'i': - /* Signed base 10 */ - - if (*n < 0) - { - SET_NEGATE(*flags); - CLR_SHOWPLUS(*flags); - *n = -*n; - } - break; - - case 'u': - /* Unsigned base 10 */ - break; - - case 'p': - case 'x': - case 'X': - /* Hexadecimal */ - case 'o': - /* Octal */ - case 'b': - /* Binary */ - CLR_SIGNED(*flags); - break; - - default: - break; - } -} - -/**************************************************************************** - * Name: getusize - ****************************************************************************/ - -static int getusize(uint8_t fmt, uint8_t flags, unsigned int n) -{ - struct lib_outstream_s nulloutstream; - lib_nulloutstream(&nulloutstream); - - utoascii(&nulloutstream, fmt, flags, n); - return nulloutstream.nput; -} - -/**************************************************************************** - * Name: getdblsize - ****************************************************************************/ - -#ifdef CONFIG_LIBC_FLOATINGPOINT -static int getdblsize(uint8_t fmt, int trunc, uint8_t flags, double n) -{ - struct lib_outstream_s nulloutstream; - lib_nulloutstream(&nulloutstream); - - lib_dtoa(&nulloutstream, fmt, trunc, flags, n); - return nulloutstream.nput; -} -#endif -#endif /* CONFIG_NOPRINTF_FIELDWIDTH */ - -#ifdef CONFIG_LONG_IS_NOT_INT -/**************************************************************************** - * Name: lutodec - ****************************************************************************/ - -static void lutodec(FAR struct lib_outstream_s *obj, unsigned long n) -{ - unsigned int remainder = n % 10; - unsigned long dividend = n / 10; - - if (dividend) - { - lutodec(obj, dividend); - } - - obj->put(obj, (remainder + (unsigned int)'0')); -} - -/**************************************************************************** - * Name: lutohex - ****************************************************************************/ - -static void lutohex(FAR struct lib_outstream_s *obj, unsigned long n, uint8_t a) -{ - bool nonzero = false; - uint8_t bits; - - for (bits = 8*sizeof(unsigned long); bits > 0; bits -= 4) - { - uint8_t nibble = (uint8_t)((n >> (bits - 4)) & 0xf); - if (nibble || nonzero) - { - nonzero = true; - - if (nibble < 10) - { - obj->put(obj, nibble + '0'); - } - else - { - obj->put(obj, nibble + a - 10); - } - } - } - - if (!nonzero) - { - obj->put(obj, '0'); - } -} - -/**************************************************************************** - * Name: lutooct - ****************************************************************************/ - -static void lutooct(FAR struct lib_outstream_s *obj, unsigned long n) -{ - unsigned int remainder = n & 0x7; - unsigned long dividend = n >> 3; - - if (dividend) - { - lutooct(obj, dividend); - } - - obj->put(obj, (remainder + (unsigned int)'0')); -} - -/**************************************************************************** - * Name: lutobin - ****************************************************************************/ - -static void lutobin(FAR struct lib_outstream_s *obj, unsigned long n) -{ - unsigned int remainder = n & 1; - unsigned long dividend = n >> 1; - - if (dividend) - { - lutobin(obj, dividend); - } - - obj->put(obj, (remainder + (unsigned int)'0')); -} - -/**************************************************************************** - * Name: lutoascii - ****************************************************************************/ - -static void lutoascii(FAR struct lib_outstream_s *obj, uint8_t fmt, uint8_t flags, unsigned long ln) -{ - /* Perform the integer conversion according to the format specifier */ - - switch (fmt) - { - case 'd': - case 'i': - /* Signed base 10 */ - { -#ifdef CONFIG_NOPRINTF_FIELDWIDTH - if ((long)ln < 0) - { - obj->put(obj, '-'); - ln = (unsigned long)(-(long)ln); - } - else if (IS_SHOWPLUS(flags)) - { - obj->put(obj, '+'); - } -#endif - /* Convert the unsigned value to a string. */ - - lutodec(obj, ln); - } - break; - - case 'u': - /* Unigned base 10 */ - { -#ifdef CONFIG_NOPRINTF_FIELDWIDTH - if (IS_SHOWPLUS(flags)) - { - obj->put(obj, '+'); - } -#endif - /* Convert the unsigned value to a string. */ - - lutodec(obj, ln); - } - break; - - case 'x': - case 'X': - /* Hexadecimal */ - { - /* Check for alternate form */ - - if (IS_ALTFORM(flags)) - { - /* Prefix the number with "0x" */ - - obj->put(obj, '0'); - obj->put(obj, 'x'); - } - - /* Convert the unsigned value to a string. */ - - if (fmt == 'X') - { - lutohex(obj, ln, 'A'); - } - else - { - lutohex(obj, ln, 'a'); - } - } - break; - - case 'o': - /* Octal */ - { - /* Check for alternate form */ - - if (IS_ALTFORM(flags)) - { - /* Prefix the number with '0' */ - - obj->put(obj, '0'); - } - - /* Convert the unsigned value to a string. */ - - lutooct(obj, ln); - } - break; - - case 'b': - /* Binary */ - { - /* Convert the unsigned value to a string. */ - - lutobin(obj, ln); - } - break; - - case 'p': - default: - break; - } -} - -/**************************************************************************** - * Name: lfixup - ****************************************************************************/ - -#ifndef CONFIG_NOPRINTF_FIELDWIDTH -static void lfixup(uint8_t fmt, FAR uint8_t *flags, FAR long *ln) -{ - /* Perform the integer conversion according to the format specifier */ - - switch (fmt) - { - case 'd': - case 'i': - /* Signed base 10 */ - - if (*ln < 0) - { - SET_NEGATE(*flags); - CLR_SHOWPLUS(*flags); - *ln = -*ln; - } - break; - - case 'u': - /* Unsigned base 10 */ - break; - - case 'p': - case 'x': - case 'X': - /* Hexadecimal */ - case 'o': - /* Octal */ - case 'b': - /* Binary */ - CLR_SIGNED(*flags); - break; - - default: - break; - } -} - -/**************************************************************************** - * Name: getlusize - ****************************************************************************/ - -static int getlusize(uint8_t fmt, uint8_t flags, unsigned long ln) -{ - struct lib_outstream_s nulloutstream; - lib_nulloutstream(&nulloutstream); - - lutoascii(&nulloutstream, fmt, flags, ln); - return nulloutstream.nput; -} - -#endif /* CONFIG_NOPRINTF_FIELDWIDTH */ -#endif /* CONFIG_LONG_IS_NOT_INT */ - -#ifdef CONFIG_HAVE_LONG_LONG -/**************************************************************************** - * Name: llutodec - ****************************************************************************/ - -static void llutodec(FAR struct lib_outstream_s *obj, unsigned long long n) -{ - unsigned int remainder = n % 10; - unsigned long long dividend = n / 10; - - if (dividend) - { - llutodec(obj, dividend); - } - - obj->put(obj, (remainder + (unsigned int)'0')); -} - -/**************************************************************************** - * Name: llutohex - ****************************************************************************/ - -static void llutohex(FAR struct lib_outstream_s *obj, unsigned long long n, uint8_t a) -{ - bool nonzero = false; - uint8_t bits; - - for (bits = 8*sizeof(unsigned long long); bits > 0; bits -= 4) - { - uint8_t nibble = (uint8_t)((n >> (bits - 4)) & 0xf); - if (nibble || nonzero) - { - nonzero = true; - - if (nibble < 10) - { - obj->put(obj, (nibble + '0')); - } - else - { - obj->put(obj, (nibble + a - 10)); - } - } - } - - if (!nonzero) - { - obj->put(obj, '0'); - } -} - -/**************************************************************************** - * Name: llutooct - ****************************************************************************/ - -static void llutooct(FAR struct lib_outstream_s *obj, unsigned long long n) -{ - unsigned int remainder = n & 0x7; - unsigned long long dividend = n >> 3; - - if (dividend) - { - llutooct(obj, dividend); - } - - obj->put(obj, (remainder + (unsigned int)'0')); -} - -/**************************************************************************** - * Name: llutobin - ****************************************************************************/ - -static void llutobin(FAR struct lib_outstream_s *obj, unsigned long long n) -{ - unsigned int remainder = n & 1; - unsigned long long dividend = n >> 1; - - if (dividend) - { - llutobin(obj, dividend); - } - - obj->put(obj, (remainder + (unsigned int)'0')); -} - -/**************************************************************************** - * Name: llutoascii - ****************************************************************************/ - -static void llutoascii(FAR struct lib_outstream_s *obj, uint8_t fmt, uint8_t flags, unsigned long long lln) -{ - /* Perform the integer conversion according to the format specifier */ - - switch (fmt) - { - case 'd': - case 'i': - /* Signed base 10 */ - { -#ifdef CONFIG_NOPRINTF_FIELDWIDTH - if ((long long)lln < 0) - { - obj->put(obj, '-'); - lln = (unsigned long long)(-(long long)lln); - } - else if (IS_SHOWPLUS(flags)) - { - obj->put(obj, '+'); - } -#endif - /* Convert the unsigned value to a string. */ - - llutodec(obj, (unsigned long long)lln); - } - break; - - case 'u': - /* Unigned base 10 */ - { -#ifdef CONFIG_NOPRINTF_FIELDWIDTH - if (IS_SHOWPLUS(flags)) - { - obj->put(obj, '+'); - } -#endif - /* Convert the unsigned value to a string. */ - - llutodec(obj, (unsigned long long)lln); - } - break; - - case 'x': - case 'X': - /* Hexadecimal */ - { - /* Check for alternate form */ - - if (IS_ALTFORM(flags)) - { - /* Prefix the number with "0x" */ - - obj->put(obj, '0'); - obj->put(obj, 'x'); - } - - /* Convert the unsigned value to a string. */ - - if (fmt == 'X') - { - llutohex(obj, (unsigned long long)lln, 'A'); - } - else - { - llutohex(obj, (unsigned long long)lln, 'a'); - } - } - break; - - case 'o': - /* Octal */ - { - /* Check for alternate form */ - - if (IS_ALTFORM(flags)) - { - /* Prefix the number with '0' */ - - obj->put(obj, '0'); - } - - /* Convert the unsigned value to a string. */ - - llutooct(obj, (unsigned long long)lln); - } - break; - - case 'b': - /* Binary */ - { - /* Convert the unsigned value to a string. */ - - llutobin(obj, (unsigned long long)lln); - } - break; - - case 'p': - default: - break; - } -} - -/**************************************************************************** - * Name: llfixup - ****************************************************************************/ - -#ifndef CONFIG_NOPRINTF_FIELDWIDTH -static void llfixup(uint8_t fmt, FAR uint8_t *flags, FAR long long *lln) -{ - /* Perform the integer conversion according to the format specifier */ - - switch (fmt) - { - case 'd': - case 'i': - /* Signed base 10 */ - - if (*lln < 0) - { - SET_NEGATE(*flags); - CLR_SHOWPLUS(*flags); - *lln = -*lln; - } - break; - - case 'u': - /* Unsigned base 10 */ - break; - - case 'p': - case 'x': - case 'X': - /* Hexadecimal */ - case 'o': - /* Octal */ - case 'b': - /* Binary */ - CLR_SIGNED(*flags); - break; - - default: - break; - } -} - -/**************************************************************************** - * Name: getllusize - ****************************************************************************/ - -static int getllusize(uint8_t fmt, uint8_t flags, unsigned long long lln) -{ - struct lib_outstream_s nulloutstream; - lib_nulloutstream(&nulloutstream); - - - llutoascii(&nulloutstream, fmt, flags, lln); - return nulloutstream.nput; -} - -#endif /* CONFIG_NOPRINTF_FIELDWIDTH */ -#endif /* CONFIG_HAVE_LONG_LONG */ - -/**************************************************************************** - * Name: prejustify - ****************************************************************************/ - -#ifndef CONFIG_NOPRINTF_FIELDWIDTH -static void prejustify(FAR struct lib_outstream_s *obj, uint8_t fmt, - uint8_t flags, int fieldwidth, int valwidth) -{ - int i; - - switch (fmt) - { - default: - case FMT_RJUST: - if (IS_SIGNED(flags)) - { - valwidth++; - } - - for (i = fieldwidth - valwidth; i > 0; i--) - { - obj->put(obj, ' '); - } - - if (IS_NEGATE(flags)) - { - obj->put(obj, '-'); - } - else if (IS_SHOWPLUS(flags)) - { - obj->put(obj, '+'); - } - break; - - case FMT_RJUST0: - if (IS_NEGATE(flags)) - { - obj->put(obj, '-'); - valwidth++; - } - else if (IS_SHOWPLUS(flags)) - { - obj->put(obj, '+'); - valwidth++; - } - - for (i = fieldwidth - valwidth; i > 0; i--) - { - obj->put(obj, '0'); - } - break; - - case FMT_LJUST: - if (IS_NEGATE(flags)) - { - obj->put(obj, '-'); - } - else if (IS_SHOWPLUS(flags)) - { - obj->put(obj, '+'); - } - break; - } -} -#endif - -/**************************************************************************** - * Name: postjustify - ****************************************************************************/ - -#ifndef CONFIG_NOPRINTF_FIELDWIDTH -static void postjustify(FAR struct lib_outstream_s *obj, uint8_t fmt, - uint8_t flags, int fieldwidth, int valwidth) -{ - int i; - - /* Apply field justification to the integer value. */ - - switch (fmt) - { - default: - case FMT_RJUST: - case FMT_RJUST0: - break; - - case FMT_LJUST: - if (IS_SIGNED(flags)) - { - valwidth++; - } - - for (i = fieldwidth - valwidth; i > 0; i--) - { - obj->put(obj, ' '); - } - break; - } -} -#endif - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * libc/stdio/lib_vsprintf - ****************************************************************************/ - -int lib_vsprintf(FAR struct lib_outstream_s *obj, FAR const char *src, va_list ap) -{ - FAR char *ptmp; -#ifndef CONFIG_NOPRINTF_FIELDWIDTH - int width; -#ifdef CONFIG_LIBC_FLOATINGPOINT - int trunc; -#endif - uint8_t fmt; -#endif - uint8_t flags; -#ifdef CONFIG_ARCH_ROMGETC - char ch; -#endif - - for (FMT_TOP; FMT_CHAR; FMT_BOTTOM) - { - /* Just copy regular characters */ - - if (FMT_CHAR != '%') - { - /* Output the character */ - - obj->put(obj, FMT_CHAR); - - /* Flush the buffer if a newline is encountered */ - -#ifdef CONFIG_STDIO_LINEBUFFER - if (FMT_CHAR == '\n') - { - /* Should return an error on a failure to flush */ - - (void)obj->flush(obj); - } -#endif - /* Process the next character in the format */ - - continue; - } - - /* We have found a format specifier. Move past it. */ - - FMT_NEXT; - - /* Assume defaults */ - - flags = 0; -#ifndef CONFIG_NOPRINTF_FIELDWIDTH - fmt = FMT_RJUST; - width = 0; -#ifdef CONFIG_LIBC_FLOATINGPOINT - trunc = 6; -#endif -#endif - - /* Process each format qualifier. */ - - for (; FMT_CHAR; FMT_BOTTOM) - { - /* Break out of the loop when the format is known. */ - - if (strchr("diuxXpobeEfgGlLsc%", FMT_CHAR)) - { - break; - } - - /* Check for left justification. */ - - else if (FMT_CHAR == '-') - { -#ifndef CONFIG_NOPRINTF_FIELDWIDTH - fmt = FMT_LJUST; -#endif - } - - /* Check for leading zero fill right justification. */ - - else if (FMT_CHAR == '0') - { -#ifndef CONFIG_NOPRINTF_FIELDWIDTH - fmt = FMT_RJUST0; -#ifdef CONFIG_LIBC_FLOATINGPOINT - if (IS_HASDOT(flags)) { - trunc = 0; - } -#endif -#endif - } -#if 0 - /* Center justification. */ - - else if (FMT_CHAR == '~') - { -#ifndef CONFIG_NOPRINTF_FIELDWIDTH - fmt = FMT_CENTER; -#endif - } -#endif - - else if (FMT_CHAR == '*') - { -#ifndef CONFIG_NOPRINTF_FIELDWIDTH - int value = va_arg(ap, int); - if (IS_HASDOT(flags)) - { -#ifdef CONFIG_LIBC_FLOATINGPOINT - trunc = value; - SET_HASASTERISKTRUNC(flags); -#endif - } - else - { - width = value; - SET_HASASTERISKWIDTH(flags); - } -#endif - } - - /* Check for field width */ - - else if (FMT_CHAR >= '1' && FMT_CHAR <= '9') - { -#ifdef CONFIG_NOPRINTF_FIELDWIDTH - do - { - FMT_NEXT; - } - while (FMT_CHAR >= '0' && FMT_CHAR <= '9'); -#else - /* Accumulate the field width integer. */ - - int n = ((int)(FMT_CHAR)) - (int)'0'; - for (;;) - { - FMT_NEXT; - if (FMT_CHAR >= '0' && FMT_CHAR <= '9') - { - n = 10*n + (((int)(FMT_CHAR)) - (int)'0'); - } - else - { - break; - } - } - - if (IS_HASDOT(flags)) - { -#ifdef CONFIG_LIBC_FLOATINGPOINT - trunc = n; -#endif - } - else - { - width = n; - } -#endif - /* Back up to the last digit. */ - - FMT_PREV; - } - - /* Check for a decimal point. */ - - else if (FMT_CHAR == '.') - { -#ifndef CONFIG_NOPRINTF_FIELDWIDTH - SET_HASDOT(flags); -#endif - } - - /* Check for leading plus sign. */ - - else if (FMT_CHAR == '+') - { - SET_SHOWPLUS(flags); - } - - /* Check for alternate form. */ - - else if (FMT_CHAR == '#') - { - SET_ALTFORM(flags); - } - } - - /* "%%" means that a literal '%' was intended (instead of a format - * specification). - */ - - if (FMT_CHAR == '%') - { - obj->put(obj, '%'); - continue; - } - - /* Check for the string format. */ - - if (FMT_CHAR == 's') - { -#ifndef CONFIG_NOPRINTF_FIELDWIDTH - int swidth; -#endif - /* Get the string to output */ - - ptmp = va_arg(ap, char *); - if (!ptmp) - { - ptmp = (char*)g_nullstring; - } - - /* Get the widith of the string and perform right-justification - * operations. - */ - -#ifndef CONFIG_NOPRINTF_FIELDWIDTH - swidth = strlen(ptmp); - prejustify(obj, fmt, 0, width, swidth); -#endif - /* Concatenate the string into the output */ - - while (*ptmp) - { - obj->put(obj, *ptmp); - ptmp++; - } - - /* Perform left-justification operations. */ - -#ifndef CONFIG_NOPRINTF_FIELDWIDTH - postjustify(obj, fmt, 0, width, swidth); -#endif - continue; - } - - /* Check for the character output */ - - else if (FMT_CHAR == 'c') - { - /* Just copy the character into the output. */ - - int n = va_arg(ap, int); - obj->put(obj, n); - continue; - } - - /* Check for the long long prefix. */ - - if (FMT_CHAR == 'L') - { - SET_LONGLONGPRECISION(flags); - FMT_NEXT; - } - else if (FMT_CHAR == 'l') - { - SET_LONGPRECISION(flags); - FMT_NEXT; - if (FMT_CHAR == 'l') - { - SET_LONGLONGPRECISION(flags); - FMT_NEXT; - } - } - - /* Handle integer conversions */ - - if (strchr("diuxXpob", FMT_CHAR)) - { -#ifdef CONFIG_HAVE_LONG_LONG - if (IS_LONGLONGPRECISION(flags) && FMT_CHAR != 'p') - { - long long lln; -#ifndef CONFIG_NOPRINTF_FIELDWIDTH - int lluwidth; -#endif - /* Extract the long long value. */ - - lln = va_arg(ap, long long); - -#ifdef CONFIG_NOPRINTF_FIELDWIDTH - /* Output the number */ - - llutoascii(obj, FMT_CHAR, flags, (unsigned long long)lln); -#else - /* Resolve sign-ness and format issues */ - - llfixup(FMT_CHAR, &flags, &lln); - - /* Get the width of the output */ - - lluwidth = getllusize(FMT_CHAR, flags, lln); - - /* Perform left field justification actions */ - - prejustify(obj, fmt, flags, width, lluwidth); - - /* Output the number */ - - llutoascii(obj, FMT_CHAR, flags, (unsigned long long)lln); - - /* Perform right field justification actions */ - - postjustify(obj, fmt, flags, width, lluwidth); -#endif - } - else -#endif /* CONFIG_HAVE_LONG_LONG */ -#ifdef CONFIG_LONG_IS_NOT_INT - if (IS_LONGPRECISION(flags) && FMT_CHAR != 'p') - { - long ln; -#ifndef CONFIG_NOPRINTF_FIELDWIDTH - int luwidth; -#endif - /* Extract the long value. */ - - ln = va_arg(ap, long); - -#ifdef CONFIG_NOPRINTF_FIELDWIDTH - /* Output the number */ - - lutoascii(obj, FMT_CHAR, flags, (unsigned long)ln); -#else - /* Resolve sign-ness and format issues */ - - lfixup(FMT_CHAR, &flags, &ln); - - /* Get the width of the output */ - - luwidth = getlusize(FMT_CHAR, flags, ln); - - /* Perform left field justification actions */ - - prejustify(obj, fmt, flags, width, luwidth); - - /* Output the number */ - - lutoascii(obj, FMT_CHAR, flags, (unsigned long)ln); - - /* Perform right field justification actions */ - - postjustify(obj, fmt, flags, width, luwidth); -#endif - } - else -#endif /* CONFIG_LONG_IS_NOT_INT */ -#ifdef CONFIG_PTR_IS_NOT_INT - if (FMT_CHAR == 'p') - { - void *p; -#ifndef CONFIG_NOPRINTF_FIELDWIDTH - int pwidth; -#endif - /* Extract the integer value. */ - - p = va_arg(ap, void *); - -#ifdef CONFIG_NOPRINTF_FIELDWIDTH - /* Output the pointer value */ - - ptohex(obj, flags, p); -#else - /* Resolve sign-ness and format issues */ - - lfixup(FMT_CHAR, &flags, &ln); - - /* Get the width of the output */ - - luwidth = getpsize(FMT_CHAR, flags, p); - - /* Perform left field justification actions */ - - prejustify(obj, fmt, flags, width, pwidth); - - /* Output the pointer value */ - - ptohex(obj, flags, p); - - /* Perform right field justification actions */ - - postjustify(obj, fmt, flags, width, pwidth); -#endif - } - else -#endif - { - int n; -#ifndef CONFIG_NOPRINTF_FIELDWIDTH - int uwidth; -#endif - /* Extract the long long value. */ - - n = va_arg(ap, int); - -#ifdef CONFIG_NOPRINTF_FIELDWIDTH - /* Output the number */ - - utoascii(obj, FMT_CHAR, flags, (unsigned int)n); -#else - /* Resolve sign-ness and format issues */ - - fixup(FMT_CHAR, &flags, &n); - - /* Get the width of the output */ - - uwidth = getusize(FMT_CHAR, flags, n); - - /* Perform left field justification actions */ - - prejustify(obj, fmt, flags, width, uwidth); - - /* Output the number */ - - utoascii(obj, FMT_CHAR, flags, (unsigned int)n); - - /* Perform right field justification actions */ - - postjustify(obj, fmt, flags, width, uwidth); -#endif - } - } - - /* Handle floating point conversions */ - -#ifdef CONFIG_LIBC_FLOATINGPOINT - else if (strchr("eEfgG", FMT_CHAR)) - { -#ifndef CONFIG_NOPRINTF_FIELDWIDTH - double dblval = va_arg(ap, double); - int dblsize; - - /* Get the width of the output */ - - dblsize = getdblsize(FMT_CHAR, trunc, flags, dblval); - - /* Perform left field justification actions */ - - prejustify(obj, fmt, 0, width, dblsize); - - /* Output the number */ - - lib_dtoa(obj, FMT_CHAR, trunc, flags, dblval); - - /* Perform right field justification actions */ - - postjustify(obj, fmt, 0, width, dblsize); -#else - /* Output the number with a fixed precision */ - - double dblval = va_arg(ap, double); - lib_dtoa(obj, FMT_CHAR, CONFIG_LIBC_FIXEDPRECISION, flags, dblval); -#endif - } -#endif /* CONFIG_LIBC_FLOATINGPOINT */ - } - - return obj->nput; -} - - diff --git a/nuttx/libc/stdio/lib_lowinstream.c b/nuttx/libc/stdio/lib_lowinstream.c deleted file mode 100644 index 7284601e8..000000000 --- a/nuttx/libc/stdio/lib_lowinstream.c +++ /dev/null @@ -1,102 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_lowinstream.c - * - * Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdio.h> -#include <assert.h> -#include <errno.h> - -#include <nuttx/arch.h> - -#include "lib_internal.h" - -#ifdef CONFIG_ARCH_LOWGETC - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lowinstream_getc - ****************************************************************************/ - -static int lowinstream_getc(FAR struct lib_instream_s *this) -{ - int ret; - - DEBUGASSERT(this); - - /* Get the next character from the incoming stream */ - - ret = up_getc(ch) - if (ret != EOF) - { - this->nget++; - } - - return ret; -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_lowinstream - * - * Description: - * Initializes a stream for use with low-level, architecture-specific I/O. - * - * Input parameters: - * lowoutstream - User allocated, uninitialized instance of struct - * lib_lowoutstream_s to be initialized. - * - * Returned Value: - * None (User allocated instance initialized). - * - ****************************************************************************/ - -void lib_lowinstream(FAR struct lib_instream_s *stream) -{ - stream->get = lowinstream_getc; - stream->nget = 0; -} - -#endif /* CONFIG_ARCH_LOWGETC */ diff --git a/nuttx/libc/stdio/lib_lowoutstream.c b/nuttx/libc/stdio/lib_lowoutstream.c deleted file mode 100644 index f600bc614..000000000 --- a/nuttx/libc/stdio/lib_lowoutstream.c +++ /dev/null @@ -1,97 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_lowoutstream.c - * - * Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#ifdef CONFIG_ARCH_LOWPUTC - -#include <stdio.h> -#include <assert.h> -#include <errno.h> -#include <nuttx/arch.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lowoutstream_putc - ****************************************************************************/ - -static void lowoutstream_putc(FAR struct lib_outstream_s *this, int ch) -{ - DEBUGASSERT(this); - - if (up_putc(ch) != EOF) - { - this->nput++; - } -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_lowoutstream - * - * Description: - * Initializes a stream for use with low-level, architecture-specific I/O. - * - * Input parameters: - * lowoutstream - User allocated, uninitialized instance of struct - * lib_lowoutstream_s to be initialized. - * - * Returned Value: - * None (User allocated instance initialized). - * - ****************************************************************************/ - -void lib_lowoutstream(FAR struct lib_outstream_s *stream) -{ - stream->put = lowoutstream_putc; -#ifdef CONFIG_STDIO_LINEBUFFER - stream->flush = lib_noflush; -#endif - stream->nput = 0; -} - -#endif /* CONFIG_ARCH_LOWPUTC */ diff --git a/nuttx/libc/stdio/lib_lowsyslog.c b/nuttx/libc/stdio/lib_lowsyslog.c deleted file mode 100644 index bfe6a2cce..000000000 --- a/nuttx/libc/stdio/lib_lowsyslog.c +++ /dev/null @@ -1,130 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_lowsyslog.c - * - * Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdio.h> -#include <debug.h> - -#include "lib_internal.h" - -/* This interface can only be used from within the kernel */ - -#if !defined(CONFIG_NUTTX_KERNEL) || defined(__KERNEL__) - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lowvsyslog - ****************************************************************************/ - -#if defined(CONFIG_ARCH_LOWPUTC) || defined(CONFIG_SYSLOG) - -int lowvsyslog(const char *fmt, va_list ap) -{ - struct lib_outstream_s stream; - - /* Wrap the stdout in a stream object and let lib_vsprintf do the work. */ - -#ifdef CONFIG_SYSLOG - lib_syslogstream((FAR struct lib_outstream_s *)&stream); -#else - lib_lowoutstream((FAR struct lib_outstream_s *)&stream); -#endif - return lib_vsprintf((FAR struct lib_outstream_s *)&stream, fmt, ap); -} - -/**************************************************************************** - * Name: lowsyslog - ****************************************************************************/ - -int lowsyslog(const char *fmt, ...) -{ - va_list ap; - int ret; - -#ifdef CONFIG_SYSLOG_ENABLE - ret = 0; - if (g_syslogenable) -#endif - { - va_start(ap, fmt); - ret = lowvsyslog(fmt, ap); - va_end(ap); - } - - return ret; -} - -#endif /* CONFIG_ARCH_LOWPUTC || CONFIG_SYSLOG */ -#endif /* __KERNEL__ */ diff --git a/nuttx/libc/stdio/lib_meminstream.c b/nuttx/libc/stdio/lib_meminstream.c deleted file mode 100644 index 2a30d956d..000000000 --- a/nuttx/libc/stdio/lib_meminstream.c +++ /dev/null @@ -1,104 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_meminstream.c - * - * Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <assert.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: meminstream_getc - ****************************************************************************/ - -static int meminstream_getc(FAR struct lib_instream_s *this) -{ - FAR struct lib_meminstream_s *mthis = (FAR struct lib_meminstream_s *)this; - int ret; - - DEBUGASSERT(this); - - /* Get the next character (if any) from the buffer */ - - if (this->nget < mthis->buflen) - { - ret = mthis->buffer[this->nget]; - this->nget++; - } - else - { - ret = EOF; - } - - return ret; -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_meminstream - * - * Description: - * Initializes a stream for use with a fixed-size memory buffer. - * - * Input parameters: - * meminstream - User allocated, uninitialized instance of struct - * lib_meminstream_s to be initialized. - * bufstart - Address of the beginning of the fixed-size memory buffer - * buflen - Size of the fixed-sized memory buffer in bytes - * - * Returned Value: - * None (meminstream initialized). - * - ****************************************************************************/ - -void lib_meminstream(FAR struct lib_meminstream_s *meminstream, - FAR const char *bufstart, int buflen) -{ - meminstream->public.get = meminstream_getc; - meminstream->public.nget = 0; /* Will be buffer index */ - meminstream->buffer = bufstart; /* Start of buffer */ - meminstream->buflen = buflen; /* Length of the buffer */ -} - - diff --git a/nuttx/libc/stdio/lib_memoutstream.c b/nuttx/libc/stdio/lib_memoutstream.c deleted file mode 100644 index efd527cbc..000000000 --- a/nuttx/libc/stdio/lib_memoutstream.c +++ /dev/null @@ -1,105 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_memoutstream.c - * - * Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <assert.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: memoutstream_putc - ****************************************************************************/ - -static void memoutstream_putc(FAR struct lib_outstream_s *this, int ch) -{ - FAR struct lib_memoutstream_s *mthis = (FAR struct lib_memoutstream_s *)this; - - DEBUGASSERT(this); - - /* If this will not overrun the buffer, then write the character to the - * buffer. Not that buflen was pre-decremented when the stream was - * created so it is okay to write past the end of the buflen by one. - */ - - if (this->nput < mthis->buflen) - { - mthis->buffer[this->nput] = ch; - this->nput++; - mthis->buffer[this->nput] = '\0'; - } -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_memoutstream - * - * Description: - * Initializes a stream for use with a fixed-size memory buffer. - * - * Input parameters: - * memoutstream - User allocated, uninitialized instance of struct - * lib_memoutstream_s to be initialized. - * bufstart - Address of the beginning of the fixed-size memory buffer - * buflen - Size of the fixed-sized memory buffer in bytes - * - * Returned Value: - * None (memoutstream initialized). - * - ****************************************************************************/ - -void lib_memoutstream(FAR struct lib_memoutstream_s *memoutstream, - FAR char *bufstart, int buflen) -{ - memoutstream->public.put = memoutstream_putc; -#ifdef CONFIG_STDIO_LINEBUFFER - memoutstream->public.flush = lib_noflush; -#endif - memoutstream->public.nput = 0; /* Will be buffer index */ - memoutstream->buffer = bufstart; /* Start of buffer */ - memoutstream->buflen = buflen - 1; /* Save space for null terminator */ - memoutstream->buffer[0] = '\0'; /* Start with an empty string */ -} - - diff --git a/nuttx/libc/stdio/lib_nullinstream.c b/nuttx/libc/stdio/lib_nullinstream.c deleted file mode 100644 index aeb0af379..000000000 --- a/nuttx/libc/stdio/lib_nullinstream.c +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_nullinstream.c - * - * Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <stdio.h> -#include <errno.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -static int nullinstream_getc(FAR struct lib_instream_s *this) -{ - return EOF; -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_nullinstream - * - * Description: - * Initializes a NULL stream. The initialized stream will will return only - * EOF. - * - * Input parameters: - * nullinstream - User allocated, uninitialized instance of struct - * lib_instream_s to be initialized. - * - * Returned Value: - * None (User allocated instance initialized). - * - ****************************************************************************/ - -void lib_nullinstream(FAR struct lib_instream_s *nullinstream) -{ - nullinstream->get = nullinstream_getc; - nullinstream->nget = 0; -} - diff --git a/nuttx/libc/stdio/lib_nulloutstream.c b/nuttx/libc/stdio/lib_nulloutstream.c deleted file mode 100644 index 574295344..000000000 --- a/nuttx/libc/stdio/lib_nulloutstream.c +++ /dev/null @@ -1,84 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_nulloutstream.c - * - * Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <stdio.h> -#include <assert.h> -#include <errno.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -static void nulloutstream_putc(FAR struct lib_outstream_s *this, int ch) -{ - DEBUGASSERT(this); - this->nput++; -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_nulloutstream - * - * Description: - * Initializes a NULL streams. The initialized stream will write all data - * to the bit-bucket. - * - * Input parameters: - * nulloutstream - User allocated, uninitialized instance of struct - * lib_outstream_s to be initialized. - * - * Returned Value: - * None (User allocated instance initialized). - * - ****************************************************************************/ - -void lib_nulloutstream(FAR struct lib_outstream_s *nulloutstream) -{ - nulloutstream->put = nulloutstream_putc; -#ifdef CONFIG_STDIO_LINEBUFFER - nulloutstream->flush = lib_noflush; -#endif - nulloutstream->nput = 0; -} - diff --git a/nuttx/libc/stdio/lib_perror.c b/nuttx/libc/stdio/lib_perror.c deleted file mode 100644 index 181898329..000000000 --- a/nuttx/libc/stdio/lib_perror.c +++ /dev/null @@ -1,99 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_perror.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdio.h> -#include <errno.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/* POSIX requires that perror provide its output on stderr. This option may - * be defined, however, to provide perror output that is serialized with - * other stdout messages. - */ - -#ifdef CONFIG_LIBC_PERROR_STDOUT -# define PERROR_STREAM stdout -#else -# define PERROR_STREAM stderr -#endif - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: perror - ****************************************************************************/ - -void perror(FAR const char *s) -{ - - /* If strerror() is not enabled, then just print the error number */ - -#ifdef CONFIG_LIBC_STRERROR - (void)fprintf(PERROR_STREAM, "%s: %s\n", s, strerror(errno)); -#else - (void)fprintf(PERROR_STREAM, "%s: Error %d\n", s, errno); -#endif -} - diff --git a/nuttx/libc/stdio/lib_printf.c b/nuttx/libc/stdio/lib_printf.c deleted file mode 100644 index b035aa14f..000000000 --- a/nuttx/libc/stdio/lib_printf.c +++ /dev/null @@ -1,109 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_printf.c - * - * Copyright (C) 2007-2008, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <stdio.h> -#include "lib_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Function Prototypes - ****************************************************************************/ - -/************************************************************************** - * Global Constant Data - **************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/************************************************************************** - * Private Constant Data - **************************************************************************/ - -/**************************************************************************** - * Private Variables - **************************************************************************/ - -/**************************************************************************** - * Global Functions - **************************************************************************/ - -/**************************************************************************** - * Name: printf - **************************************************************************/ - -int printf(const char *fmt, ...) -{ - va_list ap; - int ret; - - va_start(ap, fmt); -#if CONFIG_NFILE_STREAMS > 0 - ret = vfprintf(stdout, fmt, ap); -#elif CONFIG_NFILE_DESCRIPTORS > 0 - ret = vsyslog(fmt, ap); -#elif defined(CONFIG_ARCH_LOWPUTC) - ret = lowvsyslog(fmt, ap); -#else -# ifdef CONFIG_CPP_HAVE_WARNING -# warning "printf has no data sink" -# endif - ret = 0; -#endif - va_end(ap); - - return ret; -} - diff --git a/nuttx/libc/stdio/lib_puts.c b/nuttx/libc/stdio/lib_puts.c deleted file mode 100644 index 53eda7081..000000000 --- a/nuttx/libc/stdio/lib_puts.c +++ /dev/null @@ -1,130 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_puts.c - * - * Copyright (C) 2007, 2008, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <stdio.h> -#include "lib_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Public Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Public Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: puts - * - * Description: - * puts() writes the string s and a trailing newline to stdout. - * - ****************************************************************************/ - -int puts(FAR const char *s) -{ - FILE *stream = stdout; - int nwritten; - int nput = EOF; - int ret; - - /* Write the string (the next two steps must be atomic) */ - - lib_take_semaphore(stream); - - /* Write the string without its trailing '\0' */ - - nwritten = fputs(s, stream); - if (nwritten > 0) - { - /* Followed by a newline */ - - char newline = '\n'; - ret = lib_fwrite(&newline, 1, stream); - if (ret > 0) - { - nput = nwritten + 1; - - /* Flush the buffer after the newline is output. */ - -#ifdef CONFIG_STDIO_LINEBUFFER - ret = lib_fflush(stream, true); - if (ret < 0) - { - nput = EOF; - } -#endif - } - } - - lib_give_semaphore(stdout); - return nput; -} - diff --git a/nuttx/libc/stdio/lib_rawinstream.c b/nuttx/libc/stdio/lib_rawinstream.c deleted file mode 100644 index 55456769e..000000000 --- a/nuttx/libc/stdio/lib_rawinstream.c +++ /dev/null @@ -1,107 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_rawinstream.c - * - * Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <unistd.h> -#include <assert.h> -#include <errno.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: rawinstream_getc - ****************************************************************************/ - -static int rawinstream_getc(FAR struct lib_instream_s *this) -{ - FAR struct lib_rawinstream_s *rthis = (FAR struct lib_rawinstream_s *)this; - int nwritten; - char ch; - - DEBUGASSERT(this && rthis->fd >= 0); - - /* Attempt to read one character */ - - nwritten = read(rthis->fd, &ch, 1); - if (nwritten == 1) - { - this->nget++; - return ch; - } - - /* Return EOF on any failure to read from the incoming byte stream. The - * only expected error is EINTR meaning that the read was interrupted - * by a signal. A Zero return value would indicated an end-of-file - * confition. - */ - - return EOF; -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_rawinstream - * - * Description: - * Initializes a stream for use with a file descriptor. - * - * Input parameters: - * rawinstream - User allocated, uninitialized instance of struct - * lib_rawinstream_s to be initialized. - * fd - User provided file/socket descriptor (must have been opened - * for the correct access). - * - * Returned Value: - * None (User allocated instance initialized). - * - ****************************************************************************/ - -void lib_rawinstream(FAR struct lib_rawinstream_s *rawinstream, int fd) -{ - rawinstream->public.get = rawinstream_getc; - rawinstream->public.nget = 0; - rawinstream->fd = fd; -} - diff --git a/nuttx/libc/stdio/lib_rawoutstream.c b/nuttx/libc/stdio/lib_rawoutstream.c deleted file mode 100644 index e1fe37134..000000000 --- a/nuttx/libc/stdio/lib_rawoutstream.c +++ /dev/null @@ -1,115 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_rawoutstream.c - * - * Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <unistd.h> -#include <assert.h> -#include <errno.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: rawoutstream_putc - ****************************************************************************/ - -static void rawoutstream_putc(FAR struct lib_outstream_s *this, int ch) -{ - FAR struct lib_rawoutstream_s *rthis = (FAR struct lib_rawoutstream_s *)this; - int nwritten; - char buffer = ch; - - DEBUGASSERT(this && rthis->fd >= 0); - - /* Loop until the character is successfully transferred or until an - * irrecoverable error occurs. - */ - - do - { - nwritten = write(rthis->fd, &buffer, 1); - if (nwritten == 1) - { - this->nput++; - return; - } - - /* The only expected error is EINTR, meaning that the write operation - * was awakened by a signal. Zero would not be a valid return value - * from write(). - */ - - DEBUGASSERT(nwritten < 0); - } - while (get_errno() == EINTR); -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_rawoutstream - * - * Description: - * Initializes a stream for use with a file descriptor. - * - * Input parameters: - * rawoutstream - User allocated, uninitialized instance of struct - * lib_rawoutstream_s to be initialized. - * fd - User provided file/socket descriptor (must have been opened - * for write access). - * - * Returned Value: - * None (User allocated instance initialized). - * - ****************************************************************************/ - -void lib_rawoutstream(FAR struct lib_rawoutstream_s *rawoutstream, int fd) -{ - rawoutstream->public.put = rawoutstream_putc; -#ifdef CONFIG_STDIO_LINEBUFFER - rawoutstream->public.flush = lib_noflush; -#endif - rawoutstream->public.nput = 0; - rawoutstream->fd = fd; -} - diff --git a/nuttx/libc/stdio/lib_rdflush.c b/nuttx/libc/stdio/lib_rdflush.c deleted file mode 100644 index c6136792b..000000000 --- a/nuttx/libc/stdio/lib_rdflush.c +++ /dev/null @@ -1,144 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_rdflush.c - * - * Copyright (C) 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <sys/types.h> -#include <stdio.h> -#include <unistd.h> -#include <errno.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_rdflush - * - * Description: - * Flush read data from the I/O buffer and adjust the file pointer to - * account for the unread data - * - ****************************************************************************/ - -#if CONFIG_STDIO_BUFFER_SIZE > 0 -int lib_rdflush(FAR FILE *stream) -{ - if (!stream) - { - set_errno(EBADF); - return ERROR; - } - - /* Get exclusive access to the stream */ - - lib_take_semaphore(stream); - - /* If the buffer is currently being used for read access, then discard all - * of the read-ahead data. We do not support concurrent buffered read/write - * access. - */ - - if (stream->fs_bufread != stream->fs_bufstart) - { - /* Now adjust the stream pointer to account for the read-ahead data that - * was not actually read by the user. - */ - -#if CONFIG_NUNGET_CHARS > 0 - off_t rdoffset = stream->fs_bufread - stream->fs_bufpos + stream->fs_nungotten; -#else - off_t rdoffset = stream->fs_bufread - stream->fs_bufpos; -#endif - /* Mark the buffer as empty (do this before calling fseek() because fseek() - * also calls this function). - */ - - stream->fs_bufpos = stream->fs_bufread = stream->fs_bufstart; -#if CONFIG_NUNGET_CHARS > 0 - stream->fs_nungotten = 0; -#endif - /* Then seek to the position corresponding to the last data read by the user */ - - if (fseek(stream, -rdoffset, SEEK_CUR) < 0) - { - lib_give_semaphore(stream); - return ERROR; - } - } - - lib_give_semaphore(stream); - return OK; -} -#endif /* CONFIG_STDIO_BUFFER_SIZE */ - diff --git a/nuttx/libc/stdio/lib_snprintf.c b/nuttx/libc/stdio/lib_snprintf.c deleted file mode 100644 index a4ba0dbb3..000000000 --- a/nuttx/libc/stdio/lib_snprintf.c +++ /dev/null @@ -1,99 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_snprintf.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/types.h> -#include <stdio.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * sprintf - ****************************************************************************/ - -int snprintf(FAR char *buf, size_t size, const char *format, ...) -{ - struct lib_memoutstream_s memoutstream; - va_list ap; - int n; - - /* Initialize a memory stream to write to the buffer */ - - lib_memoutstream((FAR struct lib_memoutstream_s *)&memoutstream, buf, size); - - /* Then let lib_vsprintf do the real work */ - - va_start(ap, format); - n = lib_vsprintf((FAR struct lib_outstream_s *)&memoutstream.public, format, ap); - va_end(ap); - return n; -} diff --git a/nuttx/libc/stdio/lib_sprintf.c b/nuttx/libc/stdio/lib_sprintf.c deleted file mode 100644 index deb0669a3..000000000 --- a/nuttx/libc/stdio/lib_sprintf.c +++ /dev/null @@ -1,95 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_sprintf.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <stdio.h> -#include "lib_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * sprintf - ****************************************************************************/ - -int sprintf (FAR char *buf, const char *fmt, ...) -{ - struct lib_memoutstream_s memoutstream; - va_list ap; - int n; - - /* Initialize a memory stream to write to the buffer */ - - lib_memoutstream((FAR struct lib_memoutstream_s *)&memoutstream, buf, LIB_BUFLEN_UNKNOWN); - - /* Then let lib_vsprintf do the real work */ - - va_start(ap, fmt); - n = lib_vsprintf((FAR struct lib_outstream_s *)&memoutstream.public, fmt, ap); - va_end(ap); - return n; -} diff --git a/nuttx/libc/stdio/lib_sscanf.c b/nuttx/libc/stdio/lib_sscanf.c deleted file mode 100644 index 0092fbec2..000000000 --- a/nuttx/libc/stdio/lib_sscanf.c +++ /dev/null @@ -1,513 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_sscanf.c - * - * Copyright (C) 2007, 2008, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/compiler.h> - -#include <sys/types.h> -#include <stdarg.h> -#include <stdlib.h> -#include <stdbool.h> -#include <string.h> -#include <ctype.h> -#include <debug.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -#define MAXLN 128 - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Function Prototypes - ****************************************************************************/ - -int vsscanf(char *buf, const char *fmt, va_list ap); - -/************************************************************************** - * Global Constant Data - **************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/************************************************************************** - * Private Constant Data - **************************************************************************/ - -static const char spaces[] = " \t\n\r\f\v"; - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: findwidth - * - * Description: - * Try to figure out the width of the input data. - * - ****************************************************************************/ - -static int findwidth(FAR const char *buf, FAR const char *fmt) -{ - FAR const char *next = fmt + 1; - - /* No... is there a space after the format? Or does the format string end - * here? - */ - - if (isspace(*next) || *next == 0) - { - /* Use the input up until the first white space is encountered. */ - - return strcspn(buf, spaces); - } - - /* No.. Another possibility is the the format character is followed by - * some recognizable delimiting value. - */ - - if (*next != '%') - { - /* If so we will say that the string ends there if we can find that - * delimiter in the input string. - */ - - FAR const char *ptr = strchr(buf, *next); - if (ptr) - { - return (int)(ptr - buf); - } - } - - /* No... the format has not delimiter and is back-to-back with the next - * formats (or no is following by a delimiter that does not exist in the - * input string). At this point we just bail and Use the input up until - * the first white space is encountered. - * - * NOTE: This means that values from the following format may be - * concatenated with the first. This is a bug. We have no generic way of - * determining the width of the data if there is no fieldwith, no space - * separating the input, and no usable delimiter character. - */ - - return strcspn(buf, spaces); -} - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Function: sscanf - * - * Description: - * ANSI standard sscanf implementation. - * - ****************************************************************************/ - -int sscanf(FAR const char *buf, FAR const char *fmt, ...) -{ - va_list ap; - int count; - - va_start(ap, fmt); - count = vsscanf((FAR char*)buf, fmt, ap); - va_end(ap); - return count; -} - -/**************************************************************************** - * Function: vsscanf - * - * Description: - * ANSI standard vsscanf implementation. - * - ****************************************************************************/ - -int vsscanf(FAR char *buf, FAR const char *fmt, va_list ap) -{ - FAR char *bufstart; - FAR char *tv; - FAR const char *tc; - bool lflag; - bool noassign; - int count; - int width; - int base = 10; - char tmp[MAXLN]; - - lvdbg("vsscanf: buf=\"%s\" fmt=\"%s\"\n", buf, fmt); - - /* Remember the start of the input buffer. We will need this for %n - * calculations. - */ - - bufstart = buf; - - /* Parse the format, extracting values from the input buffer as needed */ - - count = 0; - width = 0; - noassign = false; - lflag = false; - - while (*fmt) - { - /* Skip over white space */ - - while (isspace(*fmt)) - { - fmt++; - } - - /* Check for a conversion specifier */ - - if (*fmt == '%') - { - lvdbg("vsscanf: Specifier found\n"); - - /* Check for qualifiers on the conversion specifier */ - fmt++; - for (; *fmt; fmt++) - { - lvdbg("vsscanf: Processing %c\n", *fmt); - - if (strchr("dibouxcsefgn%", *fmt)) - { - break; - } - - if (*fmt == '*') - { - noassign = true; - } - else if (*fmt == 'l' || *fmt == 'L') - { - /* NOTE: Missing check for long long ('ll') */ - - lflag = true; - } - else if (*fmt >= '1' && *fmt <= '9') - { - for (tc = fmt; isdigit(*fmt); fmt++); - strncpy(tmp, tc, fmt - tc); - tmp[fmt - tc] = '\0'; - width = atoi(tmp); - fmt--; - } - } - - /* Process %n: Character count */ - - if (*fmt == 'n') - { - lvdbg("vsscanf: Performing character count\n"); - - if (!noassign) - { - size_t nchars = (size_t)(buf - bufstart); - - if (lflag) - { - long *plong = va_arg(ap, long*); - *plong = (long)nchars; - } - else - { - int *pint = va_arg(ap, int*); - *pint = (int)nchars; - } - } - } else { - - /* Check for valid data in input string */ - if (!(*buf)) - break; - - /* Process %s: String conversion */ - - if (*fmt == 's') - { - lvdbg("vsscanf: Performing string conversion\n"); - - while (isspace(*buf)) - { - buf++; - } - - /* Was a fieldwidth specified? */ - - if (!width) - { - /* No... Guess a field width using some heuristics */ - - width = findwidth(buf, fmt); - } - - if (!noassign) - { - tv = va_arg(ap, char*); - strncpy(tv, buf, width); - tv[width] = '\0'; - } - - buf += width; - } - - /* Process %c: Character conversion */ - - else if (*fmt == 'c') - { - lvdbg("vsscanf: Performing character conversion\n"); - - /* Was a fieldwidth specified? */ - - if (!width) - { - /* No, then width is this one single character */ - - width = 1; - } - - if (!noassign) - { - tv = va_arg(ap, char*); - strncpy(tv, buf, width); - tv[width] = '\0'; - } - - buf += width; - } - - /* Process %d, %o, %b, %x, %u: Various integer conversions */ - - else if (strchr("dobxu", *fmt)) - { - lvdbg("vsscanf: Performing integer conversion\n"); - - /* Skip over any white space before the integer string */ - - while (isspace(*buf)) - { - buf++; - } - - /* The base of the integer conversion depends on the specific - * conversion specification. - */ - - if (*fmt == 'd' || *fmt == 'u') - { - base = 10; - } - else if (*fmt == 'x') - { - base = 16; - } - else if (*fmt == 'o') - { - base = 8; - } - else if (*fmt == 'b') - { - base = 2; - } - - /* Was a fieldwidth specified? */ - - if (!width) - { - /* No... Guess a field width using some heuristics */ - - width = findwidth(buf, fmt); - } - - /* Copy the numeric string into a temporary working buffer. */ - - strncpy(tmp, buf, width); - tmp[width] = '\0'; - - lvdbg("vsscanf: tmp[]=\"%s\"\n", tmp); - - /* Perform the integer conversion */ - - buf += width; - if (!noassign) - { -#ifdef SDCC - char *endptr; - long tmplong = strtol(tmp, &endptr, base); -#else - long tmplong = strtol(tmp, NULL, base); -#endif - if (lflag) - { - long *plong = va_arg(ap, long*); - lvdbg("vsscanf: Return %ld to 0x%p\n", tmplong, plong); - *plong = tmplong; - } - else - { - int *pint = va_arg(ap, int*); - lvdbg("vsscanf: Return %ld to 0x%p\n", tmplong, pint); - *pint = (int)tmplong; - } - } - } - - /* Process %f: Floating point conversion */ - - else if (*fmt == 'f') - { -#ifndef CONFIG_LIBC_FLOATINGPOINT - /* No floating point conversions */ - - void *pv = va_arg(ap, void*); - - lvdbg("vsscanf: Return 0.0 to %p\n", pv); - *((double_t*)pv) = 0.0; -#else - lvdbg("vsscanf: Performing floating point conversion\n"); - - /* Skip over any white space before the real string */ - - while (isspace(*buf)) - { - buf++; - } - - /* Was a fieldwidth specified? */ - - if (!width) - { - /* No... Guess a field width using some heuristics */ - - width = findwidth(buf, fmt); - } - - /* Copy the real string into a temporary working buffer. */ - - strncpy(tmp, buf, width); - tmp[width] = '\0'; - buf += width; - - lvdbg("vsscanf: tmp[]=\"%s\"\n", tmp); - - /* Perform the floating point conversion */ - - if (!noassign) - { - /* strtod always returns a double */ -#ifdef SDCC - char *endptr; - double_t dvalue = strtod(tmp,&endptr); -#else - double_t dvalue = strtod(tmp, NULL); -#endif - void *pv = va_arg(ap, void*); - - lvdbg("vsscanf: Return %f to %p\n", dvalue, pv); - - /* But we have to check whether we need to return a - * float or a double. - */ - -#ifdef CONFIG_HAVE_DOUBLE - if (lflag) - { - *((double_t*)pv) = dvalue; - } - else -#endif - { - *((float*)pv) = (float)dvalue; - } - } -#endif - } - - } - - /* Note %n does not count as a conversion */ - - if (!noassign && *fmt != 'n') - { - count++; - } - - width = 0; - noassign = false; - lflag = false; - - fmt++; - } - - /* Its is not a conversion specifier */ - - else - { - while (isspace(*buf)) - { - buf++; - } - - if (*fmt != *buf) - { - break; - } - else - { - fmt++; - buf++; - } - } - } - - return count; -} diff --git a/nuttx/libc/stdio/lib_stdinstream.c b/nuttx/libc/stdio/lib_stdinstream.c deleted file mode 100644 index 261b26634..000000000 --- a/nuttx/libc/stdio/lib_stdinstream.c +++ /dev/null @@ -1,99 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_stdinstream.c - * - * Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <assert.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: stdinstream_getc - ****************************************************************************/ - -static int stdinstream_getc(FAR struct lib_instream_s *this) -{ - FAR struct lib_stdinstream_s *sthis = (FAR struct lib_stdinstream_s *)this; - int ret; - - DEBUGASSERT(this); - - /* Get the next character from the incoming stream */ - - ret = getc(sthis->stream); - if (ret != EOF) - { - this->nget++; - } - - return ret; -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_stdinstream - * - * Description: - * Initializes a stream for use with a FILE instance. - * - * Input parameters: - * stdinstream - User allocated, uninitialized instance of struct - * lib_stdinstream_s to be initialized. - * stream - User provided stream instance (must have been opened for - * read access). - * - * Returned Value: - * None (User allocated instance initialized). - * - ****************************************************************************/ - -void lib_stdinstream(FAR struct lib_stdinstream_s *stdinstream, - FAR FILE *stream) -{ - stdinstream->public.get = stdinstream_getc; - stdinstream->public.nget = 0; - stdinstream->stream = stream; -} - - diff --git a/nuttx/libc/stdio/lib_stdoutstream.c b/nuttx/libc/stdio/lib_stdoutstream.c deleted file mode 100644 index dfe67271f..000000000 --- a/nuttx/libc/stdio/lib_stdoutstream.c +++ /dev/null @@ -1,147 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_stdoutstream.c - * - * Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <fcntl.h> -#include <assert.h> -#include <errno.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: stdoutstream_putc - ****************************************************************************/ - -static void stdoutstream_putc(FAR struct lib_outstream_s *this, int ch) -{ - FAR struct lib_stdoutstream_s *sthis = (FAR struct lib_stdoutstream_s *)this; - int result; - - DEBUGASSERT(this && sthis->stream); - - /* Loop until the character is successfully transferred or an irrecoverable - * error occurs. - */ - - do - { - result = fputc(ch, sthis->stream); - if (result != EOF) - { - this->nput++; - return; - } - - /* EINTR (meaning that fputc was interrupted by a signal) is the only - * recoverable error. - */ - } - while (get_errno() == EINTR); -} - -/**************************************************************************** - * Name: stdoutstream_flush - ****************************************************************************/ - -#if defined(CONFIG_STDIO_LINEBUFFER) && CONFIG_STDIO_BUFFER_SIZE > 0 -int stdoutstream_flush(FAR struct lib_outstream_s *this) -{ - FAR struct lib_stdoutstream_s *sthis = (FAR struct lib_stdoutstream_s *)this; - return lib_fflush(sthis->stream, true); -} -#endif - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_stdoutstream - * - * Description: - * Initializes a stream for use with a FILE instance. - * - * Input parameters: - * stdoutstream - User allocated, uninitialized instance of struct - * lib_stdoutstream_s to be initialized. - * stream - User provided stream instance (must have been opened for - * write access). - * - * Returned Value: - * None (User allocated instance initialized). - * - ****************************************************************************/ - -void lib_stdoutstream(FAR struct lib_stdoutstream_s *stdoutstream, - FAR FILE *stream) -{ - /* Select the put operation */ - - stdoutstream->public.put = stdoutstream_putc; - - /* Select the correct flush operation. This flush is only called when - * a newline is encountered in the output stream. However, we do not - * want to support this line buffering behavior if the stream was - * opened in binary mode. In binary mode, the newline has no special - * meaning. - */ - -#ifdef CONFIG_STDIO_LINEBUFFER -#if CONFIG_STDIO_BUFFER_SIZE > 0 - if ((stream->fs_oflags & O_BINARY) == 0) - { - stdoutstream->public.flush = stdoutstream_flush; - } - else -#endif - { - stdoutstream->public.flush = lib_noflush; - } -#endif - - /* Set the number of bytes put to zero and remember the stream */ - - stdoutstream->public.nput = 0; - stdoutstream->stream = stream; -} - - diff --git a/nuttx/libc/stdio/lib_syslog.c b/nuttx/libc/stdio/lib_syslog.c deleted file mode 100644 index 661c3b61e..000000000 --- a/nuttx/libc/stdio/lib_syslog.c +++ /dev/null @@ -1,169 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_syslog.c - * - * Copyright (C) 2007-2009, 2011-2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdio.h> -#include <syslog.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/* Some output destinations are only available from within the kernel */ - -#if defined(CONFIG_NUTTX_KERNEL) && !defined(__KERNEL__) -# undef CONFIG_SYSLOG -# undef CONFIG_ARCH_LOWPUTC -#endif - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: vsyslog - ****************************************************************************/ - -int vsyslog(const char *fmt, va_list ap) -{ -#if defined(CONFIG_SYSLOG) - - struct lib_outstream_s stream; - - /* Wrap the low-level output in a stream object and let lib_vsprintf - * do the work. - */ - - lib_syslogstream((FAR struct lib_outstream_s *)&stream); - return lib_vsprintf((FAR struct lib_outstream_s *)&stream, fmt, ap); - -#elif CONFIG_NFILE_DESCRIPTORS > 0 - - struct lib_rawoutstream_s rawoutstream; - - /* Wrap the stdout in a stream object and let lib_vsprintf - * do the work. - */ - - lib_rawoutstream(&rawoutstream, 1); - return lib_vsprintf(&rawoutstream.public, fmt, ap); - -#elif defined(CONFIG_ARCH_LOWPUTC) - - struct lib_outstream_s stream; - - /* Wrap the low-level output in a stream object and let lib_vsprintf - * do the work. - */ - - lib_lowoutstream((FAR struct lib_outstream_s *)&stream); - return lib_vsprintf((FAR struct lib_outstream_s *)&stream, fmt, ap); - -#else - return 0; -#endif -} - -/**************************************************************************** - * Name: syslog - ****************************************************************************/ - -int syslog(const char *fmt, ...) -{ - va_list ap; - int ret; - -#ifdef CONFIG_SYSLOG_ENABLE - ret = 0; - if (g_syslogenable) -#endif - { - va_start(ap, fmt); - ret = vsyslog(fmt, ap); - va_end(ap); - } - - return ret; -} - - -/**************************************************************************** - * Name: lib_rawvdprintf - ****************************************************************************/ - -int lib_rawvdprintf(int fd, const char *fmt, va_list ap) -{ - /* Wrap the fd in a stream object and let lib_vsprintf - * do the work. - */ - struct lib_rawoutstream_s rawoutstream; - lib_rawoutstream(&rawoutstream, fd); - return lib_vsprintf(&rawoutstream.public, fmt, ap); -} diff --git a/nuttx/libc/stdio/lib_syslogstream.c b/nuttx/libc/stdio/lib_syslogstream.c deleted file mode 100644 index e29c5ca3d..000000000 --- a/nuttx/libc/stdio/lib_syslogstream.c +++ /dev/null @@ -1,123 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_syslogstream.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <unistd.h> -#include <assert.h> -#include <errno.h> - -#include <nuttx/syslog.h> - -#include "lib_internal.h" - -#ifdef CONFIG_SYSLOG - -/**************************************************************************** - * Pre-processor definition - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: syslogstream_putc - ****************************************************************************/ - -static void syslogstream_putc(FAR struct lib_outstream_s *this, int ch) -{ - int ret; - - /* Try writing until the write was successful or until an irrecoverable - * error occurs. - */ - - do - { - /* Write the character to the supported logging device. On failure, - * syslog_putc returns EOF with the errno value set; - */ - - ret = syslog_putc(ch); - if (ret != EOF) - { - this->nput++; - return; - } - - /* The special errno value -EINTR means that syslog_putc() was - * awakened by a signal. This is not a real error and must be - * ignored in this context. - */ - } - while (errno == -EINTR); -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_syslogstream - * - * Description: - * Initializes a stream for use with the configured syslog interface. - * - * Input parameters: - * lowoutstream - User allocated, uninitialized instance of struct - * lib_lowoutstream_s to be initialized. - * - * Returned Value: - * None (User allocated instance initialized). - * - ****************************************************************************/ - -void lib_syslogstream(FAR struct lib_outstream_s *stream) -{ - stream->put = syslogstream_putc; -#ifdef CONFIG_STDIO_LINEBUFFER - stream->flush = lib_noflush; -#endif - stream->nput = 0; -} - -#endif /* CONFIG_SYSLOG */ - - diff --git a/nuttx/libc/stdio/lib_ungetc.c b/nuttx/libc/stdio/lib_ungetc.c deleted file mode 100644 index 178aeddd1..000000000 --- a/nuttx/libc/stdio/lib_ungetc.c +++ /dev/null @@ -1,121 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_ungetc.c - * - * Copyright (C) 2007, 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <stdio.h> -#include <fcntl.h> -#include <errno.h> -#include <nuttx/fs/fs.h> -#include "lib_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Function Prototypes - ****************************************************************************/ - -/************************************************************************** - * Global Constant Data - **************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/************************************************************************** - * Private Constant Data - **************************************************************************/ - -/**************************************************************************** - * Private Variables - **************************************************************************/ - -/**************************************************************************** - * Public Functions - **************************************************************************/ - -/**************************************************************************** - * Name: ungetc - **************************************************************************/ - -int ungetc(int c, FAR FILE *stream) -{ -#if CONFIG_NUNGET_CHARS > 0 - int nungotten; -#endif - - /* Stream must be open for read access */ - - if ((stream && stream->fs_filedes < 0) || - ((stream->fs_oflags & O_RDOK) == 0)) - { - set_errno(EBADF); - return EOF; - } - -#if CONFIG_NUNGET_CHARS > 0 - nungotten = stream->fs_nungotten; - if (stream->fs_nungotten < CONFIG_NUNGET_CHARS) - { - stream->fs_ungotten[nungotten] = c; - stream->fs_nungotten = nungotten + 1; - return c; - } - else -#endif - { - set_errno(ENOMEM); - return EOF; - } -} - diff --git a/nuttx/libc/stdio/lib_vdprintf.c b/nuttx/libc/stdio/lib_vdprintf.c deleted file mode 100644 index 932342e1c..000000000 --- a/nuttx/libc/stdio/lib_vdprintf.c +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_vdprintf.c - * - * Copyright (C) 2007-2009, 2011 Andrew Tridgell. All rights reserved. - * Author: Andrew Tridgell <andrew@tridgell.net> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdio.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -int vdprintf(int fd, FAR const char *fmt, va_list ap) -{ - return lib_rawvdprintf(fd, fmt, ap); -} diff --git a/nuttx/libc/stdio/lib_vfprintf.c b/nuttx/libc/stdio/lib_vfprintf.c deleted file mode 100644 index cd117ddc3..000000000 --- a/nuttx/libc/stdio/lib_vfprintf.c +++ /dev/null @@ -1,102 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_vfprintf.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdio.h> -#include <semaphore.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -int vfprintf(FAR FILE *stream, FAR const char *fmt, va_list ap) -{ - struct lib_stdoutstream_s stdoutstream; - int n = ERROR; - - if (stream) - { - /* Wrap the stream in a stream object and let lib_vsprintf - * do the work. - */ - - lib_stdoutstream(&stdoutstream, stream); - - /* Hold the stream semaphore throughout the lib_vsprintf - * call so that this thread can get its entire message out - * before being pre-empted by the next thread. - */ - - lib_take_semaphore(stream); - n = lib_vsprintf(&stdoutstream.public, fmt, ap); - lib_give_semaphore(stream); - } - return n; -} diff --git a/nuttx/libc/stdio/lib_vprintf.c b/nuttx/libc/stdio/lib_vprintf.c deleted file mode 100644 index 6ddfe2b24..000000000 --- a/nuttx/libc/stdio/lib_vprintf.c +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_vprintf.c - * - * Copyright (C) 2007, 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <stdio.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Function Prototypes - ****************************************************************************/ - -/************************************************************************** - * Global Constant Data - **************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/************************************************************************** - * Private Constant Data - **************************************************************************/ - -/**************************************************************************** - * Private Variables - **************************************************************************/ - -/**************************************************************************** - * Public Functions - **************************************************************************/ - -/**************************************************************************** - * Name: vprintf - **************************************************************************/ - -int vprintf(FAR const char *fmt, va_list ap) -{ - /* vfprintf into stdout */ - - return vfprintf(stdout, fmt, ap); -} - diff --git a/nuttx/libc/stdio/lib_vsnprintf.c b/nuttx/libc/stdio/lib_vsnprintf.c deleted file mode 100644 index f7fd02e42..000000000 --- a/nuttx/libc/stdio/lib_vsnprintf.c +++ /dev/null @@ -1,96 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_vsnprintf.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/types.h> -#include <stdio.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: vsnprintf - ****************************************************************************/ - -int vsnprintf(FAR char *buf, size_t size, const char *format, va_list ap) -{ - struct lib_memoutstream_s memoutstream; - int n; - - /* Initialize a memory stream to write to the buffer */ - - lib_memoutstream((FAR struct lib_memoutstream_s *)&memoutstream, buf, size); - - /* Then let lib_vsprintf do the real work */ - - n = lib_vsprintf((FAR struct lib_outstream_s *)&memoutstream.public, format, ap); - return n; -} diff --git a/nuttx/libc/stdio/lib_vsprintf.c b/nuttx/libc/stdio/lib_vsprintf.c deleted file mode 100644 index b6d80808f..000000000 --- a/nuttx/libc/stdio/lib_vsprintf.c +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_vsprintf.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdio.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: vsprintf - ****************************************************************************/ - -int vsprintf(FAR char *dest, const char *src, va_list ap) -{ - struct lib_memoutstream_s memoutstream; - - /* Wrap the destination buffer in a stream object and let - * libc/stdio/lib_vsprintf do the work. - */ - - lib_memoutstream((FAR struct lib_memoutstream_s *)&memoutstream, dest, LIB_BUFLEN_UNKNOWN); - return lib_vsprintf((FAR struct lib_outstream_s *)&memoutstream.public, src, ap); -} diff --git a/nuttx/libc/stdio/lib_wrflush.c b/nuttx/libc/stdio/lib_wrflush.c deleted file mode 100644 index 40b8e38c8..000000000 --- a/nuttx/libc/stdio/lib_wrflush.c +++ /dev/null @@ -1,134 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_wrflush.c - * - * Copyright (C) 2008-2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdbool.h> -#include <fcntl.h> -#include <errno.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Global Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_wrflush - * - * Description: - * This is simply a version of fflush that does not report an error if - * the file is not open for writing. - * - ****************************************************************************/ - -int lib_wrflush(FAR FILE *stream) -{ -#if CONFIG_STDIO_BUFFER_SIZE > 0 - /* Verify that we were passed a valid (i.e., non-NULL) stream */ - -#ifdef CONFIG_DEBUG - if (!stream) - { - return -EINVAL; - } -#endif - - /* Verify that the stream is opened for writing... lib_fflush will - * return an error if it is called for a stream that is not opened for - * writing. Check that first so that this function will not fail in - * that case. - */ - - if ((stream->fs_oflags & O_WROK) == 0) - { - /* Report that the success was successful if we attempt to flush a - * read-only stream. - */ - - return OK; - } - - /* Flush the stream. Return success if there is no buffered write data - * -- i.e., that the stream is opened for writing and that all of the - * buffered write data was successfully flushed by lib_fflush(). - */ - - return lib_fflush(stream, true); -#else - /* Verify that we were passed a valid (i.e., non-NULL) stream */ - -#ifdef CONFIG_DEBUG - if (!stream) - { - return -EINVAL; - } -#endif - - return OK; -#endif -} diff --git a/nuttx/libc/stdio/lib_zeroinstream.c b/nuttx/libc/stdio/lib_zeroinstream.c deleted file mode 100644 index a52ecc1d0..000000000 --- a/nuttx/libc/stdio/lib_zeroinstream.c +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** - * libc/stdio/lib_zeroinstream.c - * - * Copyright (C) 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <stdio.h> -#include <errno.h> -#include "lib_internal.h" - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -static int zeroinstream_getc(FAR struct lib_instream_s *this) -{ - this->nget++; - return 0; -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_zeroinstream - * - * Description: - * Initializes a NULL stream. The initialized stream will return an - * infinitely long stream of zeroes. - * - * Input parameters: - * zeroinstream - User allocated, uninitialized instance of struct - * lib_instream_s to be initialized. - * - * Returned Value: - * None (User allocated instance initialized). - * - ****************************************************************************/ - -void lib_zeroinstream(FAR struct lib_instream_s *zeroinstream) -{ - zeroinstream->get = zeroinstream_getc; - zeroinstream->nget = 0; -} - diff --git a/nuttx/libc/stdlib/Make.defs b/nuttx/libc/stdlib/Make.defs deleted file mode 100644 index dcc4dab26..000000000 --- a/nuttx/libc/stdlib/Make.defs +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################ -# libc/stdlib/Make.defs -# -# Copyright (C) 2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -############################################################################ - -# Add the stdlib C files to the build - -CSRCS += lib_abs.c lib_abort.c lib_imaxabs.c lib_labs.c lib_llabs.c \ - lib_rand.c lib_qsort.c - -# Add the stdlib directory to the build - -DEPPATH += --dep-path stdlib -VPATH += :stdlib diff --git a/nuttx/libc/stdlib/lib_abort.c b/nuttx/libc/stdlib/lib_abort.c deleted file mode 100644 index 1c7442c7f..000000000 --- a/nuttx/libc/stdlib/lib_abort.c +++ /dev/null @@ -1,121 +0,0 @@ -/************************************************************************ - * libc/stdlib/lib_abort.c - * - * Copyright (C) 2007, 2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> - -#include <stdlib.h> -#include <pthread.h> - -/************************************************************************ - * Pre-processor Definitions - ************************************************************************/ - -/************************************************************************ - * Private Type Declarations - ************************************************************************/ - -/************************************************************************ - * Global Variables - ************************************************************************/ - -/************************************************************************ - * Private Variables - ************************************************************************/ - -/************************************************************************ - * Private Function Prototypes - ************************************************************************/ - -/************************************************************************ - * Private Functions - ************************************************************************/ - -/************************************************************************ - * Public Functions - ************************************************************************/ - -/************************************************************************ - * Name: Abort - * - * Description: - * The abort() first unblocks the SIGABRT signal, and then raises that - * signal for the calling process. This results in the abnormal - * termination of the process unless the SIGABRT signal is caught and - * the signal handler does not return. - * - * If the abort() function causes process termination, all open - * streams are closed and flushed. - * - * If the SIGABRT signal is ignored, or caught by a handler that - * returns, the abort() function will still terminate the process. - * It does this by restoring the default disposition for SIGABRT and - * then raising the signal for a second time. - * - * Input parameters: - * None - * - * Returned Value: - * This function does not return, - * - ************************************************************************/ - -void abort(void) -{ - /* NuttX does not support standard signal functionality (like the - * behavior of the SIGABRT signal). So no attempt is made to provide - * a conformant version of abort() at this time. This version does not - * signal the calling thread all. - * - * Note that pthread_exit() is called instead of exit(). That is because - * we do no know if abort was called from a pthread or a normal thread - * (we could find out, of course). If abort() is called from a non-pthread, - * then pthread_exit() should fail and fall back to call exit() anyway. - * - * If exit() is called (either below or via pthread_exit()), then exit() - * will flush and close all open files and terminate the thread. If this - * function was called from a pthread, then pthread_exit() will complete - * any joins, but will not flush or close any streams. - */ - -#ifdef CONFIG_DISABLE_PTHREAD - exit(EXIT_FAILURE); -#else - pthread_exit(NULL); -#endif -} diff --git a/nuttx/libc/stdlib/lib_abs.c b/nuttx/libc/stdlib/lib_abs.c deleted file mode 100644 index a4e4ec669..000000000 --- a/nuttx/libc/stdlib/lib_abs.c +++ /dev/null @@ -1,54 +0,0 @@ -/************************************************************************ - * libc/stdlib/lib_abs.c - * - * Copyright (C) 2010-2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <stdlib.h> - -/************************************************************************ - * Global Functions - ************************************************************************/ - -int abs(int j) -{ - if (j < 0) - { - j = -j; - } - return j; -} diff --git a/nuttx/libc/stdlib/lib_imaxabs.c b/nuttx/libc/stdlib/lib_imaxabs.c deleted file mode 100644 index d36504372..000000000 --- a/nuttx/libc/stdlib/lib_imaxabs.c +++ /dev/null @@ -1,54 +0,0 @@ -/************************************************************************ - * libc/stdlib//lib_abs.c - * - * Copyright (C) 2010-2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <inttypes.h> - -/************************************************************************ - * Global Functions - ************************************************************************/ - -intmax_t imaxabs(intmax_t j) -{ - if (j < 0) - { - j = -j; - } - return j; -} diff --git a/nuttx/libc/stdlib/lib_labs.c b/nuttx/libc/stdlib/lib_labs.c deleted file mode 100644 index 7cf92a0a1..000000000 --- a/nuttx/libc/stdlib/lib_labs.c +++ /dev/null @@ -1,54 +0,0 @@ -/************************************************************************ - * libc/stdlib/lib_labs.c - * - * Copyright (C) 2010-2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <stdlib.h> - -/************************************************************************ - * Global Functions - ************************************************************************/ - -long int labs(long int j) -{ - if (j < 0) - { - j = -j; - } - return j; -} diff --git a/nuttx/libc/stdlib/lib_llabs.c b/nuttx/libc/stdlib/lib_llabs.c deleted file mode 100644 index 3630d1716..000000000 --- a/nuttx/libc/stdlib/lib_llabs.c +++ /dev/null @@ -1,57 +0,0 @@ -/************************************************************************ - * libc/stdlib/lib_llabs.c - * - * Copyright (C) 2010-2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> -#include <stdlib.h> - -/************************************************************************ - * Global Functions - ************************************************************************/ - -#ifdef CONFIG_HAVE_LONG_LONG -long long int llabs(long long int j) -{ - if (j < 0) - { - j = -j; - } - return j; -} -#endif diff --git a/nuttx/libc/stdlib/lib_qsort.c b/nuttx/libc/stdlib/lib_qsort.c deleted file mode 100644 index 021e782d4..000000000 --- a/nuttx/libc/stdlib/lib_qsort.c +++ /dev/null @@ -1,238 +0,0 @@ -/**************************************************************************** - * libc/stdlib/lib_qsort.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * Leveraged from: - * - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * 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. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/types.h> -#include <stdlib.h> - -/**************************************************************************** - * Preprocessor Definitions - ****************************************************************************/ - -#define min(a, b) (a) < (b) ? a : b - -#define swapcode(TYPE, parmi, parmj, n) \ - { \ - long i = (n) / sizeof (TYPE); \ - register TYPE *pi = (TYPE *) (parmi); \ - register TYPE *pj = (TYPE *) (parmj); \ - do { \ - register TYPE t = *pi; \ - *pi++ = *pj; \ - *pj++ = t; \ - } while (--i > 0); \ - } - -#define SWAPINIT(a, size) \ - swaptype = ((char *)a - (char *)0) % sizeof(long) || \ - size % sizeof(long) ? 2 : size == sizeof(long)? 0 : 1; - -#define swap(a, b) \ - if (swaptype == 0) \ - { \ - long t = *(long *)(a); \ - *(long *)(a) = *(long *)(b); \ - *(long *)(b) = t; \ - } \ - else \ - { \ - swapfunc(a, b, size, swaptype); \ - } - -#define vecswap(a, b, n) if ((n) > 0) swapfunc(a, b, n, swaptype) - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -static inline void swapfunc(char *a, char *b, int n, int swaptype); -static inline char *med3(char *a, char *b, char *c, - int (*compar)(const void *, const void *)); - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -static inline void swapfunc(char *a, char *b, int n, int swaptype) -{ - if(swaptype <= 1) - { - swapcode(long, a, b, n) - } - else - { - swapcode(char, a, b, n) - } -} - -static inline char *med3(char *a, char *b, char *c, - int (*compar)(const void *, const void *)) -{ - return compar(a, b) < 0 ? - (compar(b, c) < 0 ? b : (compar(a, c) < 0 ? c : a )) - :(compar(b, c) > 0 ? b : (compar(a, c) < 0 ? a : c )); -} - -/**************************************************************************** - * Public Function - ****************************************************************************/ - -/**************************************************************************** - * Name: qsort - * - * Description: - * Qsort routine from Bentley & McIlroy's "Engineering a Sort Function". - * - ****************************************************************************/ - -void qsort(void *base, size_t nmemb, size_t size, - int(*compar)(const void *, const void *)) -{ - char *pa, *pb, *pc, *pd, *pl, *pm, *pn; - int d, r, swaptype, swap_cnt; - -loop: - SWAPINIT(base, size); - swap_cnt = 0; - if (nmemb < 7) - { - for (pm = (char *) base + size; pm < (char *) base + nmemb * size; pm += size) - { - for (pl = pm; pl > (char *) base && compar(pl - size, pl) > 0; pl -= size) - { - swap(pl, pl - size); - } - } - return; - } - - pm = (char *) base + (nmemb / 2) * size; - if (nmemb > 7) - { - pl = base; - pn = (char *) base + (nmemb - 1) * size; - if (nmemb > 40) - { - d = (nmemb / 8) * size; - pl = med3(pl, pl + d, pl + 2 * d, compar); - pm = med3(pm - d, pm, pm + d, compar); - pn = med3(pn - 2 * d, pn - d, pn, compar); - } - pm = med3(pl, pm, pn, compar); - } - swap(base, pm); - pa = pb = (char *) base + size; - - pc = pd = (char *) base + (nmemb - 1) * size; - for (;;) - { - while (pb <= pc && (r = compar(pb, base)) <= 0) - { - if (r == 0) - { - swap_cnt = 1; - swap(pa, pb); - pa += size; - } - pb += size; - } - while (pb <= pc && (r = compar(pc, base)) >= 0) - { - if (r == 0) - { - swap_cnt = 1; - swap(pc, pd); - pd -= size; - } - pc -= size; - } - - if (pb > pc) - { - break; - } - - swap(pb, pc); - swap_cnt = 1; - pb += size; - pc -= size; - } - - if (swap_cnt == 0) - { - /* Switch to insertion sort */ - - for (pm = (char *) base + size; pm < (char *) base + nmemb * size; pm += size) - { - for (pl = pm; pl > (char *) base && compar(pl - size, pl) > 0; pl -= size) - { - swap(pl, pl - size); - } - } - return; - } - - pn = (char *) base + nmemb * size; - r = min(pa - (char *)base, pb - pa); - vecswap(base, pb - r, r); - r = min(pd - pc, pn - pd - size); - vecswap(pb, pn - r, r); - - if ((r = pb - pa) > size) - { - qsort(base, r / size, size, compar); - } - - if ((r = pd - pc) > size) - { - /* Iterate rather than recurse to save stack space */ - base = pn - r; - nmemb = r / size; - goto loop; - } -} - diff --git a/nuttx/libc/stdlib/lib_rand.c b/nuttx/libc/stdlib/lib_rand.c deleted file mode 100644 index 453a4537a..000000000 --- a/nuttx/libc/stdlib/lib_rand.c +++ /dev/null @@ -1,277 +0,0 @@ -/**************************************************************************** - * libc/stdlib/lib_rand.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <sys/types.h> -#include <stdlib.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ -/* First, second, and thired order congruential generators are supported */ - -#ifndef CONFIG_LIB_RAND_ORDER -# define CONFIG_LIB_RAND_ORDER 1 -#endif - -#if CONFIG_LIB_RAND_ORDER > 3 -# undef CONFIG_LIB_RAND_ORDER -# define CONFIG_LIB_RAND_ORDER 3 -#endif - -/* Values needed by the random number generator */ - -#define RND1_CONSTK 470001 -#define RND1_CONSTP 999563 -#define RND2_CONSTK1 366528 -#define RND2_CONSTK2 508531 -#define RND2_CONSTP 998917 -#define RND3_CONSTK1 360137 -#define RND3_CONSTK2 519815 -#define RND3_CONSTK3 616087 -#define RND3_CONSTP 997783 - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -static unsigned int nrand(unsigned int nLimit); - -/* First order congruential generators */ - -static inline unsigned long fgenerate1(void); -#if (CONFIG_LIB_RAND_ORDER == 1) -static double_t frand1(void); -#endif - -/* Second order congruential generators */ - -#if (CONFIG_LIB_RAND_ORDER > 1) -static inline unsigned long fgenerate2(void); -#if (CONFIG_LIB_RAND_ORDER == 2) -static double_t frand2(void); -#endif - -/* Third order congruential generators */ - -#if (CONFIG_LIB_RAND_ORDER > 2) -static inline unsigned long fgenerate3(void); -static double_t frand3(void); -#endif -#endif - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -static unsigned long g_randint1; -#if (CONFIG_LIB_RAND_ORDER > 1) -static unsigned long g_randint2; -#if (CONFIG_LIB_RAND_ORDER > 2) -static unsigned long g_randint3; -#endif -#endif - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -static unsigned int nrand(unsigned int nLimit) -{ - unsigned long result; - double_t ratio; - - /* Loop to be sure a legal random number is generated */ - - do - { - /* Get a random integer in the requested range */ - -#if (CONFIG_LIB_RAND_ORDER == 1) - ratio = frand1(); -#elif (CONFIG_LIB_RAND_ORDER == 2) - ratio = frand2(); -#else /* if (CONFIG_LIB_RAND_ORDER > 2) */ - ratio = frand3(); -#endif - - /* Then, produce the return-able value */ - - result = (unsigned long)(((double_t)nLimit) * ratio); - } - while (result >= (unsigned long)nLimit); - - return (unsigned int)result; -} - -/* First order congruential generators */ - -static inline unsigned long fgenerate1(void) -{ - unsigned long randint; - - /* First order congruential generator. One may be added to the result of the - * generated value to avoid the value zero. This would be fatal for the - * first order random number generator. - */ - - randint = (RND1_CONSTK * g_randint1) % RND1_CONSTP; - g_randint1 = (randint == 0 ? 1 : randint); - return randint; -} - -#if (CONFIG_LIB_RAND_ORDER == 1) -static double_t frand1(void) -{ - /* First order congruential generator. */ - - unsigned long randint = fgenerate1(); - - /* Construct an floating point value in the range from 0.0 up to 1.0 */ - - return ((double_t)randint) / ((double_t)RND1_CONSTP); -} -#endif - -/* Second order congruential generators */ - -#if (CONFIG_LIB_RAND_ORDER > 1) -static inline unsigned long fgenerate2(void) -{ - unsigned long randint; - - /* Second order congruential generator. */ - - randint = (RND2_CONSTK1 * g_randint1 + - RND2_CONSTK2 * g_randint2) % RND2_CONSTP; - - g_randint2 = g_randint1; - g_randint1 = randint; - - /* We cannot permit both values to become zero. That would be fatal for the - * second order random number generator. - */ - - if (g_randint2 == 0 && g_randint1 == 0) - { - g_randint2 = 1; - } - - return randint; -} - -#if (CONFIG_LIB_RAND_ORDER == 2) -static double_t frand2(void) -{ - /* Second order congruential generator */ - - unsigned long randint = fgenerate2(); - - /* Construct an floating point value in the range from 0.0 up to 1.0 */ - - return ((double_t)randint) / ((double_t)RND2_CONSTP); -} -#endif - -/* Third order congruential generators */ - -#if (CONFIG_LIB_RAND_ORDER > 2) -static inline unsigned long fgenerate3(void) -{ - unsigned long randint; - - /* Third order congruential generator. */ - - randint = (RND3_CONSTK1 * g_randint1 + - RND3_CONSTK2 * g_randint2 + - RND3_CONSTK2 * g_randint3) % RND3_CONSTP; - - g_randint3 = g_randint2; - g_randint2 = g_randint1; - g_randint1 = randint; - - /* We cannot permit all three values to become zero. That would be fatal for the - * third order random number generator. - */ - - if (g_randint3 == 0 && g_randint2 == 0 && g_randint1 == 0) - { - g_randint3 = 1; - } - - return randint; -} - -static double_t frand3(void) -{ - /* Third order congruential generator */ - - unsigned long randint = fgenerate3(); - - /* Construct an floating point value in the range from 0.0 up to 1.0 */ - - return ((double_t)randint) / ((double_t)RND3_CONSTP); -} -#endif -#endif - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: srand, rand - ****************************************************************************/ - -void srand(unsigned int seed) -{ - g_randint1 = seed; -#if (CONFIG_LIB_RAND_ORDER > 1) - g_randint2 = seed; - (void)fgenerate1(); -#if (CONFIG_LIB_RAND_ORDER > 2) - g_randint3 = seed; - (void)fgenerate2(); -#endif -#endif -} - -int rand(void) -{ - return (int)nrand(32768); -} diff --git a/nuttx/libc/string/Make.defs b/nuttx/libc/string/Make.defs deleted file mode 100644 index 311c8afd2..000000000 --- a/nuttx/libc/string/Make.defs +++ /dev/null @@ -1,58 +0,0 @@ -############################################################################ -# libc/string/Make.defs -# -# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -############################################################################ - -# Add the string C files to the build - -CSRCS += lib_checkbase.c lib_isbasedigit.c lib_memset.c lib_memchr.c \ - lib_memccpy.c lib_memcmp.c lib_memmove.c lib_skipspace.c \ - lib_strcasecmp.c lib_strcat.c lib_strchr.c lib_strcpy.c lib_strcmp.c \ - lib_strcspn.c lib_strdup.c lib_strerror.c lib_strlen.c lib_strnlen.c \ - lib_strncasecmp.c lib_strncat.c lib_strncmp.c lib_strncpy.c \ - lib_strndup.c lib_strcasestr.c lib_strpbrk.c lib_strrchr.c\ - lib_strspn.c lib_strstr.c lib_strtok.c lib_strtokr.c lib_strtol.c \ - lib_strtoll.c lib_strtoul.c lib_strtoull.c lib_strtod.c - -ifneq ($(CONFIG_ARCH_MEMCPY),y) -ifeq ($(CONFIG_MEMCPY_VIK),y) -CSRCS += lib_vikmemcpy.c -else -CSRCS += lib_memcpy.c -endif -endif - -# Add the string directory to the build - -DEPPATH += --dep-path string -VPATH += :string diff --git a/nuttx/libc/string/lib_checkbase.c b/nuttx/libc/string/lib_checkbase.c deleted file mode 100644 index 32ae58dca..000000000 --- a/nuttx/libc/string/lib_checkbase.c +++ /dev/null @@ -1,115 +0,0 @@ -/**************************************************************************** - * libc/string/lib_checkbase.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <string.h> -#include <ctype.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_checkbase - * - * Description: - * This is part of the strol() family implementation. This function checks - * the initial part of a string to see if it can determine the numeric - * base that is represented. - * - * Assumptions: - * *ptr points to the first, non-whitespace character in the string. - * - ****************************************************************************/ - -int lib_checkbase(int base, const char **pptr) -{ - const char *ptr = *pptr; - - /* Check for unspecified base */ - - if (!base) - { - /* Assume base 10 */ - - base = 10; - - /* Check for leading '0' - that would signify octal or hex (or binary) */ - - if (*ptr == '0') - { - /* Assume octal */ - - base = 8; - ptr++; - - /* Check for hexidecimal */ - - if ((*ptr == 'X' || *ptr == 'x') && - lib_isbasedigit(ptr[1], 16, NULL)) - { - base = 16; - ptr++; - } - } - } - - /* If it a hexidecimal representation, than discard any leading "0X" or "0x" */ - - else if (base == 16) - { - if (ptr[0] == '0' && (ptr[1] == 'X' || ptr[1] == 'x')) - { - ptr += 2; - } - } - - /* Return the updated pointer and base */ - - *pptr = ptr; - return base; -} - diff --git a/nuttx/libc/string/lib_isbasedigit.c b/nuttx/libc/string/lib_isbasedigit.c deleted file mode 100644 index dff813881..000000000 --- a/nuttx/libc/string/lib_isbasedigit.c +++ /dev/null @@ -1,105 +0,0 @@ -/**************************************************************************** - * libc/string/lib_isbasedigit.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdbool.h> -#include <string.h> -#include <ctype.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_isbasedigit - * - * Description: - * Given an ASCII character, ch, and a base (1-36) do two - * things: 1) Determine if ch is a valid charcter, and 2) - * convert ch to its binary value. - * - ****************************************************************************/ - -bool lib_isbasedigit(int ch, int base, int *value) -{ - bool ret = false; - int tmp = 0; - - if (base <= 10) - { - if (ch >= '0' && ch <= base + '0' - 1) - { - tmp = ch - '0'; - ret = true; - } - } - else if (base <= 36) - { - if (ch >= '0' && ch <= '9') - { - tmp = ch - '0'; - ret = true; - } - else if (ch >= 'a' && ch <= 'a' + base - 11) - { - tmp = ch - 'a' + 10; - ret = true; - } - else if (ch >= 'A' && ch <= 'A' + base - 11) - { - tmp = ch - 'A' + 10; - ret = true; - } - } - - if (value) - { - *value = tmp; - } - return ret; -} - - diff --git a/nuttx/libc/string/lib_memccpy.c b/nuttx/libc/string/lib_memccpy.c deleted file mode 100644 index 1d77f58fe..000000000 --- a/nuttx/libc/string/lib_memccpy.c +++ /dev/null @@ -1,99 +0,0 @@ -/**************************************************************************** - * libc/string/lib_memccpy.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <sys/types.h> -#include <string.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - - -/**************************************************************************** - * Name: memccpy - * - * Description: - * The memccpy() function copies bytes from memory area s2 into s1, - * stopping after the first occurrence of byte c (converted to an unsigned - * char) is copied, or after n bytes are copied, whichever comes first. If - * copying takes place between objects that overlap, the behavior is - * undefined. - * - * Returned Value: - * The memccpy() function returns a pointer to the byte after the copy of c - * in s1, or a null pointer if c was not found in the first n bytes of s2. - * - ****************************************************************************/ - -FAR void *memccpy(FAR void *s1, FAR const void *s2, int c, size_t n) -{ - FAR unsigned char *pout = (FAR unsigned char*)s1; - FAR unsigned char *pin = (FAR unsigned char*)s2; - - /* Copy at most n bytes */ - - while (n-- > 0) - { - /* Copy one byte */ - - *pout = *pin++; - - /* Did we just copy the terminating byte c? */ - - if (*pout == (unsigned char)c) - { - /* Yes return a pointer to the byte after the copy of c into s1 */ - - return (FAR void *)pout; - } - - /* No increment to the next destination location */ - - pout++; - } - - /* C was not found in the first n bytes of s2 */ - - return NULL; -} diff --git a/nuttx/libc/string/lib_memchr.c b/nuttx/libc/string/lib_memchr.c deleted file mode 100644 index 0ac609104..000000000 --- a/nuttx/libc/string/lib_memchr.c +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************** - * libc/string/lib_memchr.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <string.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: memchr - * - * Description: - * The memchr() function locates the first occurrence of 'c' (converted to - * an unsigned char) in the initial 'n' bytes (each interpreted as - * unsigned char) of the object pointed to by s. - * - * Returned Value: - * The memchr() function returns a pointer to the located byte, or a null - * pointer if the byte does not occur in the object. - * - ****************************************************************************/ - -FAR void *memchr(FAR const void *s, int c, size_t n) -{ - FAR const unsigned char *p = (FAR const unsigned char *)s; - - if (s) - { - while (n--) - { - if (*p == (unsigned char)c) - { - return (FAR void *)p; - } - - p++; - } - } - - return NULL; -} diff --git a/nuttx/libc/string/lib_memcmp.c b/nuttx/libc/string/lib_memcmp.c deleted file mode 100644 index 5434bb847..000000000 --- a/nuttx/libc/string/lib_memcmp.c +++ /dev/null @@ -1,74 +0,0 @@ -/************************************************************ - * libc/string/lib_memcmp.c - * - * Copyright (C) 2007, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <sys/types.h> -#include <string.h> - -/************************************************************ - * Global Functions - ************************************************************/ - -#ifndef CONFIG_ARCH_MEMCMP -int memcmp(FAR const void *s1, FAR const void *s2, size_t n) -{ - unsigned char *p1 = (unsigned char *)s1; - unsigned char *p2 = (unsigned char *)s2; - - while (n-- > 0) - { - if (*p1 < *p2) - { - return -1; - } - else if (*p1 > *p2) - { - return 1; - } - - p1++; - p2++; - } - return 0; -} -#endif diff --git a/nuttx/libc/string/lib_memcpy.c b/nuttx/libc/string/lib_memcpy.c deleted file mode 100644 index 2ebd5beee..000000000 --- a/nuttx/libc/string/lib_memcpy.c +++ /dev/null @@ -1,64 +0,0 @@ -/**************************************************************************** - * libc/string/lib_memcpy.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <sys/types.h> -#include <string.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: memcpy - ****************************************************************************/ - -#ifndef CONFIG_ARCH_MEMCPY -FAR void *memcpy(FAR void *dest, FAR const void *src, size_t n) -{ - FAR unsigned char *pout = (FAR unsigned char*)dest; - FAR unsigned char *pin = (FAR unsigned char*)src; - while (n-- > 0) *pout++ = *pin++; - return dest; -} -#endif diff --git a/nuttx/libc/string/lib_memmove.c b/nuttx/libc/string/lib_memmove.c deleted file mode 100644 index cc8317223..000000000 --- a/nuttx/libc/string/lib_memmove.c +++ /dev/null @@ -1,77 +0,0 @@ -/************************************************************ - * libc/string/lib_memmove.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <sys/types.h> -#include <string.h> - -/************************************************************ - * Global Functions - ************************************************************/ - -#ifndef CONFIG_ARCH_MEMMOVE -FAR void *memmove(FAR void *dest, FAR const void *src, size_t count) -{ - char *tmp, *s; - if (dest <= src) - { - tmp = (char*) dest; - s = (char*) src; - while (count--) - { - *tmp++ = *s++; - } - } - else - { - tmp = (char*) dest + count; - s = (char*) src + count; - while (count--) - { - *--tmp = *--s; - } - } - - return dest; -} -#endif diff --git a/nuttx/libc/string/lib_memset.c b/nuttx/libc/string/lib_memset.c deleted file mode 100644 index 0b98ebf96..000000000 --- a/nuttx/libc/string/lib_memset.c +++ /dev/null @@ -1,188 +0,0 @@ - -/**************************************************************************** - * libc/string/lib_memset.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/types.h> - -#include <stdint.h> -#include <string.h> -#include <assert.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/* Can't support CONFIG_MEMSET_64BIT if the platform does not have 64-bit - * integer types. - */ - -#ifndef CONFIG_HAVE_LONG_LONG -# undef CONFIG_MEMSET_64BIT -#endif - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -#ifndef CONFIG_ARCH_MEMSET -void *memset(void *s, int c, size_t n) -{ -#ifdef CONFIG_MEMSET_OPTSPEED - /* This version is optimized for speed (you could do better - * still by exploiting processor caching or memory burst - * knowledge.) - */ - - uintptr_t addr = (uintptr_t)s; - uint16_t val16 = ((uint16_t)c << 8) | (uint16_t)c; - uint32_t val32 = ((uint32_t)val16 << 16) | (uint32_t)val16; -#ifdef CONFIG_MEMSET_64BIT - uint64_t val64 = ((uint64_t)val32 << 32) | (uint64_t)val32; -#endif - - /* Make sure that there is something to be cleared */ - - if (n > 0) - { - /* Align to a 16-bit boundary */ - - if ((addr & 1) != 0) - { - *(uint8_t*)addr = (uint8_t)c; - addr += 1; - n -= 1; - } - - /* Check if there are at least 16-bits left to be written */ - - if (n >= 2) - { - /* Align to a 32-bit boundary (we know that the destination - * address is already aligned to at least a 16-bit boundary). - */ - - if ((addr & 3) != 0) - { - *(uint16_t*)addr = val16; - addr += 2; - n -= 2; - } - -#ifndef CONFIG_MEMSET_64BIT - /* Loop while there are at least 32-bits left to be written */ - - while (n >= 4) - { - *(uint32_t*)addr = val32; - addr += 4; - n -= 4; - } -#else - /* Check if there are at least 32-bits left to be written */ - - if (n >= 4) - { - /* Align to a 64-bit boundary (we know that the destination - * address is already aligned to at least a 32-bit boundary). - */ - - if ((addr & 7) != 0) - { - *(uint32_t*)addr = val32; - addr += 4; - n -= 4; - } - - /* Loop while there are at least 64-bits left to be written */ - - while (n >= 8) - { - *(uint64_t*)addr = val64; - addr += 8; - n -= 8; - } - } -#endif - } - -#ifdef CONFIG_MEMSET_64BIT - /* We may get here with n in the range 0..7. If n >= 4, then we should - * have 64-bit alignment. - */ - - if (n >= 4) - { - *(uint32_t*)addr = val32; - addr += 4; - n -= 4; - } -#endif - - /* We may get here under the following conditions: - * - * n = 0, addr may or may not be aligned - * n = 1, addr is aligned to at least a 16-bit boundary - * n = 2, addr is aligned to a 32-bit boundary - * n = 3, addr is aligned to a 32-bit boundary - */ - - if (n >= 2) - { - *(uint16_t*)addr = val16; - addr += 2; - n -= 2; - } - - if (n >= 1) - { - *(uint8_t*)addr = (uint8_t)c; - } - } -#else - /* This version is optimized for size */ - - unsigned char *p = (unsigned char*)s; - while (n-- > 0) *p++ = c; -#endif - return s; -} -#endif diff --git a/nuttx/libc/string/lib_skipspace.c b/nuttx/libc/string/lib_skipspace.c deleted file mode 100644 index 4b72b1ec3..000000000 --- a/nuttx/libc/string/lib_skipspace.c +++ /dev/null @@ -1,69 +0,0 @@ -/**************************************************************************** - * libc/string/lib_skipspace.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <string.h> -#include <ctype.h> -#include "lib_internal.h" - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_skipspace - * - * Description: - * Skip over leading whitespace - * - ****************************************************************************/ - -void lib_skipspace(const char **pptr) -{ - const char *ptr = *pptr; - while (isspace(*ptr)) ptr++; - *pptr = ptr; -} - - diff --git a/nuttx/libc/string/lib_strcasecmp.c b/nuttx/libc/string/lib_strcasecmp.c deleted file mode 100644 index df6f08118..000000000 --- a/nuttx/libc/string/lib_strcasecmp.c +++ /dev/null @@ -1,65 +0,0 @@ -/**************************************************************************** - * libc/string/lib_strcasecmp.c - * - * Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - *****************************************************************************/ - -/**************************************************************************** - * Included Files - *****************************************************************************/ - -#include <nuttx/config.h> - -#include <string.h> -#include <ctype.h> - -/**************************************************************************** - * Public Functions - *****************************************************************************/ - -#ifndef CONFIG_ARCH_STRCMP -int strcasecmp(const char *cs, const char *ct) -{ - int result; - for (;;) - { - if ((result = (int)toupper(*cs) - (int)toupper(*ct)) != 0 || !*cs) - { - break; - } - - cs++; - ct++; - } - return result; -} -#endif diff --git a/nuttx/libc/string/lib_strcasestr.c b/nuttx/libc/string/lib_strcasestr.c deleted file mode 100644 index 7f17a686d..000000000 --- a/nuttx/libc/string/lib_strcasestr.c +++ /dev/null @@ -1,136 +0,0 @@ -/**************************************************************************** - * libc/string/lib_strstr.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * Redistribution and use str 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 str binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer str - * the documentation and/or other materials provided with the - * distribution. - * 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. - * - * 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <string.h> -#include <ctype.h> - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -static FAR char *strcasechr(FAR const char *s, int uc) -{ - register char ch; - - if (s) - { - for (; *s; s++) - { - ch = *s; - if (toupper(ch) == uc) - { - return (FAR char*)s; - } - } - } - - return NULL; -} - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -FAR char *strcasestr(FAR const char *str, FAR const char *substr) -{ - const char *candidate; /* Candidate in str with matching start character */ - char ch; /* First character of the substring */ - int len; /* The length of the substring */ - - /* Special case the empty substring */ - - len = strlen(substr); - ch = *substr; - - if (!ch) - { - /* We'll say that an empty substring matches at the beginning of - * the string - */ - - return (char*)str; - } - - /* Search for the substring */ - - candidate = str; - ch = toupper(ch); - - for (;;) - { - /* strcasechr() will return a pointer to the next occurrence of the - * character ch in the string (ignoring case) - */ - - candidate = strcasechr(candidate, ch); - if (!candidate || strlen(candidate) < len) - { - /* First character of the substring does not appear in the string - * or the remainder of the string is not long enough to contain the - * substring. - */ - - return NULL; - } - - /* Check if this is the beginning of a matching substring (ignoring case) */ - - if (strncasecmp(candidate, substr, len) == 0) - { - /* Yes.. return the pointer to the first occurrence of the matching - * substring. - */ - - return (char*)candidate; - } - - /* No, find the next candidate after this one */ - - candidate++; - } - - /* Won't get here, but some compilers might complain. Others might complain - * about this code being unreachable too. - */ - - return NULL; -} - diff --git a/nuttx/libc/string/lib_strcat.c b/nuttx/libc/string/lib_strcat.c deleted file mode 100644 index b331d3f1c..000000000 --- a/nuttx/libc/string/lib_strcat.c +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** - * libc/string/lib_strcat.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <string.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -#ifndef CONFIG_ARCH_STRCAT -char *strcat(char *dest, const char *src) -{ - char *ret = dest; - - dest += strlen(dest); - while (*src != '\0') - { - *dest++ = *src++; - } - *dest = '\0'; - - return ret; -} -#endif diff --git a/nuttx/libc/string/lib_strchr.c b/nuttx/libc/string/lib_strchr.c deleted file mode 100644 index e6af56eee..000000000 --- a/nuttx/libc/string/lib_strchr.c +++ /dev/null @@ -1,78 +0,0 @@ -/**************************************************************************** - * libc/string/lib_strchr.c - * - * Copyright (C) 2007, 2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <string.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: strchr - * - * Description: - * The strchr() function locates the first occurrence of 'c' (converted to - * a char) in the string pointed to by 's'. The terminating null byte is - * considered to be part of the string. - * - * Returned Value: - * Upon completion, strchr() returns a pointer to the byte, or a null - * pointer if the byte was not found. - * - ****************************************************************************/ - -#ifndef CONFIG_ARCH_STRCHR -FAR char *strchr(FAR const char *s, int c) -{ - if (s) - { - for (; *s; s++) - { - if (*s == c) - { - return (FAR char *)s; - } - } - } - - return NULL; -} -#endif diff --git a/nuttx/libc/string/lib_strcmp.c b/nuttx/libc/string/lib_strcmp.c deleted file mode 100644 index d4036cd3e..000000000 --- a/nuttx/libc/string/lib_strcmp.c +++ /dev/null @@ -1,59 +0,0 @@ -/**************************************************************************** - * libc/string/lib_strcmp.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - *****************************************************************************/ - -/**************************************************************************** - * Included Files - *****************************************************************************/ - -#include <nuttx/config.h> - -#include <string.h> - -/**************************************************************************** - * Public Functions - *****************************************************************************/ - -#ifndef CONFIG_ARCH_STRCMP -int strcmp(const char *cs, const char *ct) -{ - register signed char result; - for (;;) - { - if ((result = *cs - *ct++) != 0 || !*cs++) - break; - } - return result; -} -#endif diff --git a/nuttx/libc/string/lib_strcpy.c b/nuttx/libc/string/lib_strcpy.c deleted file mode 100644 index 7a0576f5a..000000000 --- a/nuttx/libc/string/lib_strcpy.c +++ /dev/null @@ -1,55 +0,0 @@ -/************************************************************************ - * libc/string/lib_strcpy.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> - -#include <string.h> - -/************************************************************************ - * Global Functions - ************************************************************************/ - -#ifndef CONFIG_ARCH_STRCPY -char *strcpy(char *dest, const char *src) -{ - char *tmp = dest; - while ((*dest++ = *src++) != '\0'); - return tmp; -} -#endif diff --git a/nuttx/libc/string/lib_strcspn.c b/nuttx/libc/string/lib_strcspn.c deleted file mode 100644 index 23e913fad..000000000 --- a/nuttx/libc/string/lib_strcspn.c +++ /dev/null @@ -1,67 +0,0 @@ -/**************************************************************************** - * libc/string/lib_strcspn.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <sys/types.h> -#include <string.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: strcspn - * - * Description: - * strspn() calculates the length of the initial segment of s which - * consists entirely of characters not in reject - * - ****************************************************************************/ - -size_t strcspn(const char *s, const char *reject) -{ - size_t i; - for (i = 0; s[i] && strchr(reject, s[i]) == NULL; i++); - return i; -} - diff --git a/nuttx/libc/string/lib_strdup.c b/nuttx/libc/string/lib_strdup.c deleted file mode 100644 index a5b3a1e8c..000000000 --- a/nuttx/libc/string/lib_strdup.c +++ /dev/null @@ -1,62 +0,0 @@ -/************************************************************************ - * libc/string//lib_strdup.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> - -#include <string.h> - -#include "lib_internal.h" - -/************************************************************************ - * Global Functions - ************************************************************************/ - -FAR char *strdup(const char *s) -{ - FAR char *news = NULL; - if (s) - { - news = (FAR char*)lib_malloc(strlen(s) + 1); - if (news) - { - strcpy(news, s); - } - } - return news; -} diff --git a/nuttx/libc/string/lib_strerror.c b/nuttx/libc/string/lib_strerror.c deleted file mode 100644 index 0c7ca28fd..000000000 --- a/nuttx/libc/string/lib_strerror.c +++ /dev/null @@ -1,375 +0,0 @@ -/************************************************************************ - * libc/string/lib_strerror.c - * - * Copyright (C) 2007, 2009, 2011-2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> - -#include <stdint.h> -#include <string.h> -#include <errno.h> - -/************************************************************************ - * Definitions - ************************************************************************/ - -/************************************************************************ - * Private Types - ************************************************************************/ - -struct errno_strmap_s -{ - uint8_t errnum; - const char *str; -}; - -/************************************************************************ - * Private Data - ************************************************************************/ - -#ifdef CONFIG_LIBC_STRERROR - -/* This table maps all error numbers to descriptive strings. - * The only assumption that the code makes with regard to this - * this table is that it is ordered by error number. - * - * The size of this table is quite large. Its size can be - * reduced by eliminating some of the more obscure error - * strings. - */ - -#ifndef CONFIG_LIBC_STRERROR_SHORT - -static const struct errno_strmap_s g_errnomap[] = -{ - { EPERM, EPERM_STR }, - { ENOENT, ENOENT_STR }, - { ESRCH, ESRCH_STR }, - { EINTR, EINTR_STR }, - { EIO, EIO_STR }, - { ENXIO, ENXIO_STR }, - { E2BIG, E2BIG_STR }, - { ENOEXEC, ENOEXEC_STR }, - { EBADF, EBADF_STR }, - { ECHILD, ECHILD_STR }, - { EAGAIN, EAGAIN_STR }, - { ENOMEM, ENOMEM_STR }, - { EACCES, EACCES_STR }, - { EFAULT, EFAULT_STR }, - { ENOTBLK, ENOTBLK_STR }, - { EBUSY, EBUSY_STR }, - { EEXIST, EEXIST_STR }, - { EXDEV, EXDEV_STR }, - { ENODEV, ENODEV_STR }, - { ENOTDIR, ENOTDIR_STR }, - { EISDIR, EISDIR_STR }, - { EINVAL, EINVAL_STR }, - { ENFILE, ENFILE_STR }, - { EMFILE, EMFILE_STR }, - { ENOTTY, ENOTTY_STR }, - { ETXTBSY, ETXTBSY_STR }, - { EFBIG, EFBIG_STR }, - { ENOSPC, ENOSPC_STR }, - { ESPIPE, ESPIPE_STR }, - { EROFS, EROFS_STR }, - { EMLINK, EMLINK_STR }, - { EPIPE, EPIPE_STR }, - { EDOM, EDOM_STR }, - { ERANGE, ERANGE_STR }, - { EDEADLK, EDEADLK_STR }, - { ENAMETOOLONG, ENAMETOOLONG_STR }, - { ENOLCK, ENOLCK_STR }, - { ENOSYS, ENOSYS_STR }, - { ENOTEMPTY, ENOTEMPTY_STR }, - { ELOOP, ELOOP_STR }, - { ENOMSG, ENOMSG_STR }, - { EIDRM, EIDRM_STR }, - { ECHRNG, ECHRNG_STR }, - { EL2NSYNC, EL2NSYNC_STR }, - { EL3HLT, EL3HLT_STR }, - { EL3RST, EL3RST_STR }, - { ELNRNG, ELNRNG_STR }, - { EUNATCH, EUNATCH_STR }, - { ENOCSI, ENOCSI_STR }, - { EL2HLT, EL2HLT_STR }, - { EBADE, EBADE_STR }, - { EBADR, EBADR_STR }, - { EXFULL, EXFULL_STR }, - { ENOANO, ENOANO_STR }, - { EBADRQC, EBADRQC_STR }, - { EBADSLT, EBADSLT_STR }, - { EBFONT, EBFONT_STR }, - { ENOSTR, ENOSTR_STR }, - { ENODATA, ENODATA_STR }, - { ETIME, ETIME_STR }, - { ENOSR, ENOSR_STR }, - { ENONET, ENONET_STR }, - { ENOPKG, ENOPKG_STR }, - { EREMOTE, EREMOTE_STR }, - { ENOLINK, ENOLINK_STR }, - { EADV, EADV_STR }, - { ESRMNT, ESRMNT_STR }, - { ECOMM, ECOMM_STR }, - { EPROTO, EPROTO_STR }, - { EMULTIHOP, EMULTIHOP_STR }, - { EDOTDOT, EDOTDOT_STR }, - { EBADMSG, EBADMSG_STR }, - { EOVERFLOW, EOVERFLOW_STR }, - { ENOTUNIQ, ENOTUNIQ_STR }, - { EBADFD, EBADFD_STR }, - { EREMCHG, EREMCHG_STR }, - { ELIBACC, ELIBACC_STR }, - { ELIBBAD, ELIBBAD_STR }, - { ELIBSCN, ELIBSCN_STR }, - { ELIBMAX, ELIBMAX_STR }, - { ELIBEXEC, ELIBEXEC_STR }, - { EILSEQ, EILSEQ_STR }, - { ERESTART, ERESTART_STR }, - { ESTRPIPE, ESTRPIPE_STR }, - { EUSERS, EUSERS_STR }, - { ENOTSOCK, ENOTSOCK_STR }, - { EDESTADDRREQ, EDESTADDRREQ_STR }, - { EMSGSIZE, EMSGSIZE_STR }, - { EPROTOTYPE, EPROTOTYPE_STR }, - { ENOPROTOOPT, ENOPROTOOPT_STR }, - { EPROTONOSUPPORT, EPROTONOSUPPORT_STR }, - { ESOCKTNOSUPPORT, ESOCKTNOSUPPORT_STR }, - { EOPNOTSUPP, EOPNOTSUPP_STR }, - { EPFNOSUPPORT, EPFNOSUPPORT_STR }, - { EAFNOSUPPORT, EAFNOSUPPORT_STR }, - { EADDRINUSE, EADDRINUSE_STR }, - { EADDRNOTAVAIL, EADDRNOTAVAIL_STR }, - { ENETDOWN, ENETDOWN_STR }, - { ENETUNREACH, ENETUNREACH_STR }, - { ENETRESET, ENETRESET_STR }, - { ECONNABORTED, ECONNABORTED_STR }, - { ECONNRESET, ECONNRESET_STR }, - { ENOBUFS, ENOBUFS_STR }, - { EISCONN, EISCONN_STR }, - { ENOTCONN, ENOTCONN_STR }, - { ESHUTDOWN, ESHUTDOWN_STR }, - { ETOOMANYREFS, ETOOMANYREFS_STR }, - { ETIMEDOUT, ETIMEDOUT_STR }, - { ECONNREFUSED, ECONNREFUSED_STR }, - { EHOSTDOWN, EHOSTDOWN_STR }, - { EHOSTUNREACH, EHOSTUNREACH_STR }, - { EALREADY, EALREADY_STR }, - { EINPROGRESS, EINPROGRESS_STR }, - { ESTALE, ESTALE_STR }, - { EUCLEAN, EUCLEAN_STR }, - { ENOTNAM, ENOTNAM_STR }, - { ENAVAIL, ENAVAIL_STR }, - { EISNAM, EISNAM_STR }, - { EREMOTEIO, EREMOTEIO_STR }, - { EDQUOT, EDQUOT_STR }, - { ENOMEDIUM, ENOMEDIUM_STR }, - { EMEDIUMTYPE, EMEDIUMTYPE_STR } -}; - -#else /* CONFIG_LIBC_STRERROR_SHORT */ - -static const struct errno_strmap_s g_errnomap[] = -{ - { EPERM, "EPERM" }, - { ENOENT, "ENOENT" }, - { ESRCH, "ESRCH" }, - { EINTR, "EINTR" }, - { EIO, "EIO" }, - { ENXIO, "ENXIO" }, - { E2BIG, "E2BIG" }, - { ENOEXEC, "ENOEXEC" }, - { EBADF, "EBADF" }, - { ECHILD, "ECHILD" }, - { EAGAIN, "EAGAIN" }, - { ENOMEM, "ENOMEM" }, - { EACCES, "EACCES" }, - { EFAULT, "EFAULT" }, - { ENOTBLK, "ENOTBLK" }, - { EBUSY, "EBUSY" }, - { EEXIST, "EEXIST" }, - { EXDEV, "EXDEV" }, - { ENODEV, "ENODEV" }, - { ENOTDIR, "ENOTDIR" }, - { EISDIR, "EISDIR" }, - { EINVAL, "EINVAL" }, - { ENFILE, "ENFILE" }, - { EMFILE, "EMFILE" }, - { ENOTTY, "ENOTTY" }, - { ETXTBSY, "ETXTBSY" }, - { EFBIG, "EFBIG" }, - { ENOSPC, "ENOSPC" }, - { ESPIPE, "ESPIPE" }, - { EROFS, "EROFS" }, - { EMLINK, "EMLINK" }, - { EPIPE, "EPIPE" }, - { EDOM, "EDOM" }, - { ERANGE, "ERANGE" }, - { EDEADLK, "EDEADLK" }, - { ENAMETOOLONG, "ENAMETOOLONG" }, - { ENOLCK, "ENOLCK" }, - { ENOSYS, "ENOSYS" }, - { ENOTEMPTY, "ENOTEMPTY" }, - { ELOOP, "ELOOP" }, - { ENOMSG, "ENOMSG" }, - { EIDRM, "EIDRM" }, - { ECHRNG, "ECHRNG" }, - { EL2NSYNC, "EL2NSYNC" }, - { EL3HLT, "EL3HLT" }, - { EL3RST, "EL3RST" }, - { EL3RST, "EL3RST" }, - { EUNATCH, "EUNATCH" }, - { ENOCSI, "ENOCSI" }, - { EL2HLT, "EL2HLT" }, - { EBADE, "EBADE" }, - { EBADR, "EBADR" }, - { EXFULL, "EXFULL" }, - { ENOANO, "ENOANO" }, - { EBADRQC, "EBADRQC" }, - { EBADSLT, "EBADSLT" }, - { EBFONT, "EBFONT" }, - { ENOSTR, "ENOSTR" }, - { ENODATA, "ENODATA" }, - { ETIME, "ETIME" }, - { ENOSR, "ENOSR" }, - { ENONET, "ENONET" }, - { ENOPKG, "ENOPKG" }, - { EREMOTE, "EREMOTE" }, - { ENOLINK, "ENOLINK" }, - { EADV, "EADV" }, - { ESRMNT, "ESRMNT" }, - { ECOMM, "ECOMM" }, - { EPROTO, "EPROTO" }, - { EMULTIHOP, "EMULTIHOP" }, - { EDOTDOT, "EDOTDOT" }, - { EBADMSG, "EBADMSG" }, - { EOVERFLOW, "EOVERFLOW" }, - { ENOTUNIQ, "ENOTUNIQ" }, - { EBADFD, "EBADFD" }, - { EREMCHG, "EREMCHG" }, - { ELIBACC, "ELIBACC" }, - { ELIBBAD, "ELIBBAD" }, - { ELIBSCN, "ELIBSCN" }, - { ELIBMAX, "ELIBMAX" }, - { ELIBEXEC, "ELIBEXEC" }, - { EILSEQ, "EILSEQ" }, - { ERESTART, "ERESTART" }, - { ESTRPIPE, "ESTRPIPE" }, - { EUSERS, "EUSERS" }, - { ENOTSOCK, "ENOTSOCK" }, - { EDESTADDRREQ, "EDESTADDRREQ" }, - { EMSGSIZE, "EMSGSIZE" }, - { EPROTOTYPE, "EPROTOTYPE" }, - { ENOPROTOOPT, "ENOPROTOOPT" }, - { EPROTONOSUPPORT, "EPROTONOSUPPORT" }, - { ESOCKTNOSUPPORT, "ESOCKTNOSUPPORT" }, - { EOPNOTSUPP, "EOPNOTSUPP" }, - { EPFNOSUPPORT, "EPFNOSUPPORT" }, - { EAFNOSUPPORT, "EAFNOSUPPORT" }, - { EADDRINUSE, "EADDRINUSE" }, - { EADDRNOTAVAIL, "EADDRNOTAVAIL" }, - { ENETDOWN, "ENETDOWN" }, - { ENETUNREACH, "ENETUNREACH" }, - { ENETRESET, "ENETRESET" }, - { ECONNABORTED, "ECONNABORTED" }, - { ECONNRESET, "ECONNRESET" }, - { ENOBUFS, "ENOBUFS" }, - { EISCONN, "EISCONN" }, - { ENOTCONN, "ENOTCONN" }, - { ESHUTDOWN, "ESHUTDOWN" }, - { ETOOMANYREFS, "ETOOMANYREFS" }, - { ETIMEDOUT, "ETIMEDOUT" }, - { ECONNREFUSED, "ECONNREFUSED" }, - { EHOSTDOWN, "EHOSTDOWN" }, - { EHOSTUNREACH, "EHOSTUNREACH" }, - { EALREADY, "EALREADY" }, - { EINPROGRESS, "EINPROGRESS" }, - { ESTALE, "ESTALE" }, - { EUCLEAN, "EUCLEAN" }, - { ENOTNAM, "ENOTNAM" }, - { ENAVAIL, "ENAVAIL" }, - { EISNAM, "EISNAM" }, - { EREMOTEIO, "EREMOTEIO" }, - { EDQUOT, "EDQUOT" }, - { ENOMEDIUM, "ENOMEDIUM" }, - { EMEDIUMTYPE, "EMEDIUMTYPE" } -}; - -#endif /* CONFIG_LIBC_STRERROR_SHORT */ - -#define NERRNO_STRS (sizeof(g_errnomap) / sizeof(struct errno_strmap_s)) - -#endif /* CONFIG_LIBC_STRERROR */ - -/************************************************************************ - * Private Functions - ************************************************************************/ - -/************************************************************************ - * Public Functions - ************************************************************************/ - -/************************************************************************ - * Name: strerror - ************************************************************************/ - -FAR const char *strerror(int errnum) -{ -#ifdef CONFIG_LIBC_STRERROR - int ndxlow = 0; - int ndxhi = NERRNO_STRS - 1; - int ndxmid; - - do - { - ndxmid = (ndxlow + ndxhi) >> 1; - if (errnum > g_errnomap[ndxmid].errnum) - { - ndxlow = ndxmid + 1; - } - else if (errnum < g_errnomap[ndxmid].errnum) - { - ndxhi = ndxmid - 1; - } - else - { - return g_errnomap[ndxmid].str; - } - } - while (ndxlow <= ndxhi); -#endif - return "Unknown error"; -} diff --git a/nuttx/libc/string/lib_strlen.c b/nuttx/libc/string/lib_strlen.c deleted file mode 100644 index 6077858e2..000000000 --- a/nuttx/libc/string/lib_strlen.c +++ /dev/null @@ -1,55 +0,0 @@ -/**************************************************************************** - * libc/string/lib_strlen.c - * - * Copyright (C) 2007, 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> -#include <sys/types.h> -#include <string.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -#ifndef CONFIG_ARCH_STRLEN -size_t strlen(const char *s) -{ - const char *sc; - for (sc = s; *sc != '\0'; ++sc); - return sc - s; -} -#endif diff --git a/nuttx/libc/string/lib_strncasecmp.c b/nuttx/libc/string/lib_strncasecmp.c deleted file mode 100644 index 35f701c5e..000000000 --- a/nuttx/libc/string/lib_strncasecmp.c +++ /dev/null @@ -1,70 +0,0 @@ -/**************************************************************************** - * libc/string/lib_strncasecmp.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <sys/types.h> -#include <string.h> -#include <ctype.h> - -/**************************************************************************** - * Global Functions - *****************************************************************************/ - -#ifndef CONFIG_ARCH_STRNCASECMP -int strncasecmp(const char *cs, const char *ct, size_t nb) -{ - int result = 0; - for (; nb > 0; nb--) - { - if ((result = (int)toupper(*cs) - (int)toupper(*ct)) != 0 || !*cs) - { - break; - } - - cs++; - ct++; - } - return result; -} -#endif diff --git a/nuttx/libc/string/lib_strncat.c b/nuttx/libc/string/lib_strncat.c deleted file mode 100644 index 78c54835e..000000000 --- a/nuttx/libc/string/lib_strncat.c +++ /dev/null @@ -1,62 +0,0 @@ -/************************************************************ - * libc/string/lib_strncat.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************/ - -/************************************************************ - * Included Files - ************************************************************/ - -#include <nuttx/config.h> -#include <sys/types.h> -#include <string.h> - -/************************************************************ - * Global Functions - ************************************************************/ - -#ifndef CONFIG_ARCH_STRNCAT -char *strncat(char *dest, const char *src, size_t n) -{ - char *ret = dest; - - dest += strlen(dest); - for (; n > 0 && *src != '\0' ; n--) - { - *dest++ = *src++; - } - *dest = '\0'; - - return ret; -} -#endif diff --git a/nuttx/libc/string/lib_strncmp.c b/nuttx/libc/string/lib_strncmp.c deleted file mode 100644 index dd8b57fd0..000000000 --- a/nuttx/libc/string/lib_strncmp.c +++ /dev/null @@ -1,65 +0,0 @@ -/**************************************************************************** - * libc/lib_strncmp.c - * - * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <sys/types.h> -#include <string.h> - -/**************************************************************************** - * Global Functions - *****************************************************************************/ - -#ifndef CONFIG_ARCH_STRNCMP -int strncmp(const char *cs, const char *ct, size_t nb) -{ - int result = 0; - for (; nb > 0; nb--) - { - if ((result = (int)*cs - (int)*ct++) != 0 || !*cs++) - { - break; - } - } - return result; -} -#endif diff --git a/nuttx/libc/string/lib_strncpy.c b/nuttx/libc/string/lib_strncpy.c deleted file mode 100644 index 8a97aa67b..000000000 --- a/nuttx/libc/string/lib_strncpy.c +++ /dev/null @@ -1,57 +0,0 @@ -/************************************************************ - * libc/string/lib_strncpy.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************/ - -/************************************************************ - * Included Files - ************************************************************/ - -#include <nuttx/config.h> -#include <sys/types.h> -#include <string.h> - -/************************************************************ - * Global Functions - ************************************************************/ - -#ifndef CONFIG_ARCH_STRNCPY -char *strncpy(char *dest, const char *src, size_t n) -{ - char *ret = dest; /* Value to be returned */ - char *end = dest + n; /* End of dest buffer + 1 byte */ - - while ((*dest++ = *src++) != '\0' && dest != end); - return ret; -} -#endif diff --git a/nuttx/libc/string/lib_strndup.c b/nuttx/libc/string/lib_strndup.c deleted file mode 100644 index 5a78e2dcf..000000000 --- a/nuttx/libc/string/lib_strndup.c +++ /dev/null @@ -1,90 +0,0 @@ -/************************************************************************ - * libc/string//lib_strndup.c - * - * Copyright (C) 2011, 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> - -#include <string.h> - -#include "lib_internal.h" - -/************************************************************************ - * Global Functions - ************************************************************************/ -/************************************************************************ - * Name: strndup - * - * Description: - * The strndup() function is equivalent to the strdup() function, - * duplicating the provided 's' in a new block of memory allocated as - * if by using malloc(), with the exception being that strndup() copies - * at most 'size' plus one bytes into the newly allocated memory, - * terminating the new string with a NUL character. If the length of 's' - * is larger than 'size', only 'size' bytes will be duplicated. If - * 'size' is larger than the length of 's', all bytes in s will be - * copied into the new memory buffer, including the terminating NUL - * character. The newly created string will always be properly - * terminated. - * - ************************************************************************/ - -FAR char *strndup(FAR const char *s, size_t size) -{ - FAR char *news = NULL; - if (s) - { - /* Get the size of the new string (limited to size) */ - - size_t allocsize = strnlen(s, size); - - /* Allocate the new string, adding 1 for the NUL terminator */ - - news = (FAR char*)lib_malloc(allocsize + 1); - if (news) - { - /* Copy the string into the allocated memory and add a NUL - * terminator in any case. - */ - - memcpy(news, s, allocsize); - news[allocsize] = '\0'; - } - } - - return news; -} diff --git a/nuttx/libc/string/lib_strnlen.c b/nuttx/libc/string/lib_strnlen.c deleted file mode 100644 index 9bc3064cb..000000000 --- a/nuttx/libc/string/lib_strnlen.c +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** - * libc/string/lib_strnlen.c - * - * This file is part of NuttX, contributed by Michael Hrabanek - * - * Copyright (C) 2010 Gregory Nutt. All rights reserved. - * Author: Michael Hrabanek - * - * Derives from the file libc/lib_strlen.c: - * - * Copyright (C) 2007, 2008, 2010 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> -#include <sys/types.h> -#include <string.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -#ifndef CONFIG_ARCH_STRNLEN -size_t strnlen(const char *s, size_t maxlen) -{ - const char *sc; - for (sc = s; maxlen != 0 && *sc != '\0'; maxlen--, ++sc); - return sc - s; -} -#endif diff --git a/nuttx/libc/string/lib_strpbrk.c b/nuttx/libc/string/lib_strpbrk.c deleted file mode 100644 index ef9b0f3e9..000000000 --- a/nuttx/libc/string/lib_strpbrk.c +++ /dev/null @@ -1,85 +0,0 @@ -/**************************************************************************** - * libc/string/lib_strpbrk.c - * - * Copyright (C) 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * Redistribution and use str 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 str binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer str - * the documentation and/or other materials provided with the - * distribution. - * 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. - * - * 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <string.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -char *strpbrk(const char *str, const char *charset) -{ - /* Sanity checking */ - -#ifdef CONFIG_DEBUG - if (!str || !charset) - { - return NULL; - } -#endif - - /* Check each character in the string */ - - while (*str) - { - /* Check if the character from the string matches any character in the charset */ - - if (strchr(charset, *str) != NULL) - { - /* Yes, then this position must be the first occurrence in string */ - - return (char*)str; - } - - /* This character from the strings matches none of those in the charset. - * Try the next character from the string. - */ - - str++; - } - - /* We have looked at every character in the string, and none of them match any of - * the characters in charset. - */ - - return NULL; -} - diff --git a/nuttx/libc/string/lib_strrchr.c b/nuttx/libc/string/lib_strrchr.c deleted file mode 100644 index 08575c82b..000000000 --- a/nuttx/libc/string/lib_strrchr.c +++ /dev/null @@ -1,68 +0,0 @@ -/************************************************************************ - * libc/string/lib_strrchr.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ************************************************************************/ - -/************************************************************************ - * Included Files - ************************************************************************/ - -#include <nuttx/config.h> - -#include <string.h> - -/************************************************************************ - * Global Functions - ************************************************************************/ - -/* The strrchr() function returns a pointer to the last - * occurrence of the character c in the string s. - */ - -char *strrchr(const char *s, int c) -{ - if (s) - { - const char *p = &s[strlen(s) - 1]; - for (; p >= s; p--) - { - if (*p == c) - { - return (char*)p; - } - } - } - - return NULL; -} - diff --git a/nuttx/libc/string/lib_strspn.c b/nuttx/libc/string/lib_strspn.c deleted file mode 100644 index 6894b2b9d..000000000 --- a/nuttx/libc/string/lib_strspn.c +++ /dev/null @@ -1,66 +0,0 @@ -/**************************************************************************** - * libc/string/lib_strspn.c - * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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 <sys/types.h> -#include <string.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: strspn - * - * Description: - * strspn() calculates the length of the initial segment of s which - * consists entirely of characters in accept. - * - ****************************************************************************/ - -size_t strspn(const char *s, const char *accept) -{ - size_t i; - for (i = 0; s[i] && strchr(accept, s[i]) != NULL; i++); - return i; -} diff --git a/nuttx/libc/string/lib_strstr.c b/nuttx/libc/string/lib_strstr.c deleted file mode 100644 index 7a60a680d..000000000 --- a/nuttx/libc/string/lib_strstr.c +++ /dev/null @@ -1,106 +0,0 @@ -/**************************************************************************** - * libc/string/lib_strstr.c - * - * Copyright (C) 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * Redistribution and use str 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 str binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer str - * the documentation and/or other materials provided with the - * distribution. - * 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. - * - * 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <string.h> - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -char *strstr(const char *str, const char *substr) -{ - const char *candidate; /* Candidate in str with matching start character */ - char ch; /* First character of the substring */ - int len; /* The length of the substring */ - - /* Special case the empty substring */ - - len = strlen(substr); - ch = *substr; - - if (!ch) - { - /* We'll say that an empty substring matches at the beginning of - * the string - */ - - return (char*)str; - } - - /* Search for the substring */ - - candidate = str; - for (;;) - { - /* strchr() will return a pointer to the next occurrence of the - * character ch in the string - */ - - candidate = strchr(candidate, ch); - if (!candidate || strlen(candidate) < len) - { - /* First character of the substring does not appear in the string - * or the remainder of the string is not long enough to contain the - * substring. - */ - - return NULL; - } - - /* Check if this is the beginning of a matching substring */ - - if (strncmp(candidate, substr, len) == 0) - { - return (char*)candidate; - } - - /* No, find the next candidate after this one */ - - candidate++; - } - - /* Won't get here, but some compilers might complain. Other compilers - * might complain about this code being unreachable too. - */ - - return NULL; -} - diff --git a/nuttx/libc/string/lib_strtod.c b/nuttx/libc/string/lib_strtod.c deleted file mode 100644 index 58dfd6a29..000000000 --- a/nuttx/libc/string/lib_strtod.c +++ /dev/null @@ -1,241 +0,0 @@ -/**************************************************************************** - * libc/string/lib_strtod.c - * Convert string to double - * - * Copyright (C) 2002 Michael Ringgaard. All rights reserved. - * Copyright (C) 2006-2007 H. Peter Anvin. - * - * 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 of the project 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <stdlib.h> -#include <ctype.h> -#include <errno.h> - -#ifdef CONFIG_HAVE_DOUBLE - -/**************************************************************************** - * Pre-processor definitions - ****************************************************************************/ - -/* These are predefined with GCC, but could be issues for other compilers. If - * not defined, an arbitrary big number is put in for now. These should be - * added to nuttx/compiler for your compiler. - */ - -#if !defined(__DBL_MIN_EXP__) || !defined(__DBL_MAX_EXP__) -# ifdef CONFIG_CPP_HAVE_WARNING -# warning "Size of exponent is unknown" -# endif -# undef __DBL_MIN_EXP__ -# define __DBL_MIN_EXP__ (-1021) -# undef __DBL_MAX_EXP__ -# define __DBL_MAX_EXP__ (1024) -#endif - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -static inline int is_real(double x) -{ - const double_t infinite = 1.0/0.0; - return (x < infinite) && (x >= -infinite); -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/***************************************************(************************ - * Name: strtod - * - * Description: - * Convert a string to a double value - * - ****************************************************************************/ - -double_t strtod(const char *str, char **endptr) -{ - double_t number; - int exponent; - int negative; - char *p = (char *) str; - double p10; - int n; - int num_digits; - int num_decimals; - const double_t infinite = 1.0/0.0; - - /* Skip leading whitespace */ - - while (isspace(*p)) - { - p++; - } - - /* Handle optional sign */ - - negative = 0; - switch (*p) - { - case '-': - negative = 1; /* Fall through to increment position */ - case '+': - p++; - } - - number = 0.; - exponent = 0; - num_digits = 0; - num_decimals = 0; - - /* Process string of digits */ - - while (isdigit(*p)) - { - number = number * 10. + (*p - '0'); - p++; - num_digits++; - } - - /* Process decimal part */ - - if (*p == '.') - { - p++; - - while (isdigit(*p)) - { - number = number * 10. + (*p - '0'); - p++; - num_digits++; - num_decimals++; - } - - exponent -= num_decimals; - } - - if (num_digits == 0) - { - set_errno(ERANGE); - return 0.0; - } - - /* Correct for sign */ - - if (negative) - { - number = -number; - } - - /* Process an exponent string */ - - if (*p == 'e' || *p == 'E') - { - /* Handle optional sign */ - - negative = 0; - switch(*++p) - { - case '-': - negative = 1; /* Fall through to increment pos */ - case '+': - p++; - } - - /* Process string of digits */ - - n = 0; - while (isdigit(*p)) - { - n = n * 10 + (*p - '0'); - p++; - } - - if (negative) - { - exponent -= n; - } - else - { - exponent += n; - } - } - - if (exponent < __DBL_MIN_EXP__ || - exponent > __DBL_MAX_EXP__) - { - set_errno(ERANGE); - return infinite; - } - - /* Scale the result */ - - p10 = 10.; - n = exponent; - if (n < 0) n = -n; - while (n) - { - if (n & 1) - { - if (exponent < 0) - { - number /= p10; - } - else - { - number *= p10; - } - } - n >>= 1; - p10 *= p10; - } - - if (!is_real(number)) - { - set_errno(ERANGE); - } - - if (endptr) - { - *endptr = p; - } - - return number; -} - -#endif /* CONFIG_HAVE_DOUBLE */ - diff --git a/nuttx/libc/string/lib_strtok.c b/nuttx/libc/string/lib_strtok.c deleted file mode 100644 index 85d6597d7..000000000 --- a/nuttx/libc/string/lib_strtok.c +++ /dev/null @@ -1,87 +0,0 @@ -/**************************************************************************** - * libc/string/lib_strtok.c - * - * Copyright (C) 2007, 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <string.h> - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -static char *g_saveptr = NULL; - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: strtok - * - * Description: - * The strtok() function parses a string into a - * sequence of tokens. On the first call to strtok() the - * string to be parsed should be specified in 'str'. In - * each subsequent call that should parse the same string, - * 'str' should be NULL. - * - * The 'delim' argument specifies a set of characters that - * delimit the tokens in the parsed string. The caller - * may specify different strings in delim in successive - * calls that parse the same string. - * - * Each call to strtok() returns a pointer to a null- - * terminated string containing the next token. This - * string does not include the delimiting character. If - * no more tokens are found, strtok() returns NULL. - * - * A sequence of two or more contiguous delimiter - * characters in the parsed string is considered to be a - * single delimiter. Delimiter characters at the start or - * end of the string are ignored. The tokens returned by - * strtok() are always non-empty strings. - * - * Return - * strtok() returns a pointer to the next token, or NULL - * if there are no more tokens. - * - ****************************************************************************/ - -char *strtok(char *str, const char *delim) -{ - return strtok_r(str, delim, &g_saveptr); -} diff --git a/nuttx/libc/string/lib_strtokr.c b/nuttx/libc/string/lib_strtokr.c deleted file mode 100644 index c7845be64..000000000 --- a/nuttx/libc/string/lib_strtokr.c +++ /dev/null @@ -1,157 +0,0 @@ -/**************************************************************************** - * libc/string/lib_strtokr.c - * - * Copyright (C) 2007, 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <string.h> - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: strtok_r - * - * Description: - * The strtok_r() function is a reentrant version strtok(). - * Like strtok(), it parses a string into a sequence of - * tokens. On the first call to strtok() the string to be - * parsed should be specified in 'str'. In each subsequent - * call that should parse the same string, 'str' should be - * NULL. - * - * The 'saveptr' argument is a pointer to a char * - * variable that is used internally by strtok_r() in - * order to maintain context between successive calls - * that parse the same string. - * - * On the first call to strtok_r(), 'str' should point to the - * string to be parsed, and the value of 'saveptr' is - * ignored. In subsequent calls, 'str' should be NULL, and - * saveptr should be unchanged since the previous call. - * - * The 'delim' argument specifies a set of characters that - * delimit the tokens in the parsed string. The caller - * may specify different strings in delim in successive - * calls that parse the same string. - * - * Each call to strtok_r() returns a pointer to a null- - * terminated string containing the next token. This - * string does not include the delimiting character. If - * no more tokens are found, strtok_r() returns NULL. - * - * A sequence of two or more contiguous delimiter - * characters in the parsed string is considered to be a - * single delimiter. Delimiter characters at the start or - * end of the string are ignored. The tokens returned by - * strtok() are always non-empty strings. - * - * Return - * strtok_r() returns a pointer to the next token, or NULL - * if there are no more tokens. - * - ****************************************************************************/ - -FAR char *strtok_r(FAR char *str, FAR const char *delim, FAR char **saveptr) -{ - char *pbegin; - char *pend = NULL; - - /* Decide if we are starting a new string or continuing from - * the point we left off. - */ - - if (str) - { - pbegin = str; - } - else if (saveptr && *saveptr) - { - pbegin = *saveptr; - } - else - { - return NULL; - } - - /* Find the beginning of the next token */ - - for (; - *pbegin && strchr(delim, *pbegin) != NULL; - pbegin++); - - /* If we are at the end of the string with nothing - * but delimiters found, then return NULL. - */ - - if (!*pbegin) - { - return NULL; - } - - /* Find the end of the token */ - - for (pend = pbegin + 1; - *pend && strchr(delim, *pend) == NULL; - pend++); - - - /* pend either points to the end of the string or to - * the first delimiter after the string. - */ - - if (*pend) - { - /* Turn the delimiter into a null terminator */ - - *pend++ = '\0'; - } - - /* Save the pointer where we left off and return the - * beginning of the token. - */ - - if (saveptr) - { - *saveptr = pend; - } - return pbegin; -} diff --git a/nuttx/libc/string/lib_strtol.c b/nuttx/libc/string/lib_strtol.c deleted file mode 100644 index 6ac0d6827..000000000 --- a/nuttx/libc/string/lib_strtol.c +++ /dev/null @@ -1,103 +0,0 @@ -/**************************************************************************** - * libc/string/lib_strtol.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdbool.h> -#include <stdlib.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: strtol - * - * Description: - * The strtol() function converts the initial part of the string in - * nptr to a long integer value according to the given base, which must be - * between 2 and 36 inclusive, or be the special value 0. - * - * Warning: does not check for integer overflow! - * - ****************************************************************************/ - -long strtol(const char *nptr, char **endptr, int base) -{ - unsigned long accum = 0; - bool negate = false; - - if (nptr) - { - /* Skip leading spaces */ - - lib_skipspace(&nptr); - - /* Check for leading + or - */ - - if (*nptr == '-') - { - negate = true; - nptr++; - } - else if (*nptr == '+') - { - nptr++; - } - - /* Get the unsigned value */ - - accum = strtoul(nptr, endptr, base); - - /* Correct the sign of the result */ - - if (negate) - { - return -(long)accum; - } - } - return (long)accum; -} - diff --git a/nuttx/libc/string/lib_strtoll.c b/nuttx/libc/string/lib_strtoll.c deleted file mode 100644 index 99fba08eb..000000000 --- a/nuttx/libc/string/lib_strtoll.c +++ /dev/null @@ -1,107 +0,0 @@ -/**************************************************************************** - * libc/string/lib_strtoll.c - * - * Copyright (C) 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdbool.h> -#include <stdlib.h> - -#include "lib_internal.h" - -#ifdef CONFIG_HAVE_LONG_LONG - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: strtoll - * - * Description: - * The strtol() function converts the initial part of the string in - * nptr to a long long integer value according to the given base, which - * must be between 2 and 36 inclusive, or be the special value 0. - * - * Warning: does not check for integer overflow! - * - ****************************************************************************/ - -long long strtoll(const char *nptr, char **endptr, int base) -{ - unsigned long long accum = 0; - bool negate = false; - - if (nptr) - { - /* Skip leading spaces */ - - lib_skipspace(&nptr); - - /* Check for leading + or - */ - - if (*nptr == '-') - { - negate = true; - nptr++; - } - else if (*nptr == '+') - { - nptr++; - } - - /* Get the unsigned value */ - - accum = strtoull(nptr, endptr, base); - - /* Correct the sign of the result */ - - if (negate) - { - return -(long long)accum; - } - } - return (long long)accum; -} - -#endif - diff --git a/nuttx/libc/string/lib_strtoul.c b/nuttx/libc/string/lib_strtoul.c deleted file mode 100644 index 8f27ae3f2..000000000 --- a/nuttx/libc/string/lib_strtoul.c +++ /dev/null @@ -1,98 +0,0 @@ -/**************************************************************************** - * /libc/string/lib_strtoul.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdlib.h> - -#include "lib_internal.h" - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: strtoul - * - * Description: - * The strtol() function converts the initial part of the string in - * nptr to a long unsigned integer value according to the given base, which - * must be between 2 and 36 inclusive, or be the special value 0. - * - * Warning: does not check for integer overflow! - * - ****************************************************************************/ - -unsigned long strtoul(const char *nptr, char **endptr, int base) -{ - unsigned long accum = 0; - int value; - - if (nptr) - { - /* Skip leading spaces */ - - lib_skipspace(&nptr); - - /* Check for unspecified base */ - - base = lib_checkbase(base, &nptr); - - /* Accumulate each "digit" */ - - while (lib_isbasedigit(*nptr, base, &value)) - { - accum = accum*base + value; - nptr++; - } - - /* Return the final pointer to the unused value */ - - if (endptr) - { - *endptr = (char *)nptr; - } - } - return accum; -} - diff --git a/nuttx/libc/string/lib_strtoull.c b/nuttx/libc/string/lib_strtoull.c deleted file mode 100644 index 4808114af..000000000 --- a/nuttx/libc/string/lib_strtoull.c +++ /dev/null @@ -1,100 +0,0 @@ -/**************************************************************************** - * /libc/string/lib_strtoull.c - * - * Copyright (C) 2009, 2010 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <stdlib.h> - -#include "lib_internal.h" - -#ifdef CONFIG_HAVE_LONG_LONG - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: strtoull - * - * Description: - * The strtol() function converts the initial part of the string in - * nptr to a long unsigned integer value according to the given base, which - * must be between 2 and 36 inclusive, or be the special value 0. - * - ****************************************************************************/ - -unsigned long long strtoull(const char *nptr, char **endptr, int base) -{ - unsigned long long accum = 0; - int value; - - if (nptr) - { - /* Skip leading spaces */ - - lib_skipspace(&nptr); - - /* Check for unspecified base */ - - base = lib_checkbase(base, &nptr); - - /* Accumulate each "digit" */ - - while (lib_isbasedigit(*nptr, base, &value)) - { - accum = accum*base + value; - nptr++; - } - - /* Return the final pointer to the unused value */ - - if (endptr) - { - *endptr = (char *)nptr; - } - } - return accum; -} -#endif - diff --git a/nuttx/libc/string/lib_vikmemcpy.c b/nuttx/libc/string/lib_vikmemcpy.c deleted file mode 100644 index 28bf4a4ce..000000000 --- a/nuttx/libc/string/lib_vikmemcpy.c +++ /dev/null @@ -1,348 +0,0 @@ -/**************************************************************************** - * File: libc/string/lib_vikmemcpy.c - * - * This is version of the optimized memcpy by Daniel Vik, adapted to the - * NuttX environment. - * - * Copyright (C) 1999-2010 Daniel Vik - * - * Adaptations include: - * - File name change - * - Use of types defined in stdint.h - * - Integration with the NuttX configuration system - * - Other cosmetic changes for consistency with NuttX coding standards - * - * This software is provided 'as-is', without any express or implied - * warranty. In no event will the authors be held liable for any - * damages arising from the use of this software. - * Permission is granted to anyone to use this software for any - * purpose, including commercial applications, and to alter it and - * redistribute it freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you - * must not claim that you wrote the original software. If you - * use this software in a product, an acknowledgment in the - * use this software in a product, an acknowledgment in the - * product documentation would be appreciated but is not - * required. - * - * 2. Altered source versions must be plainly marked as such, and - * must not be misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source - * distribution. - * - * Description: Implementation of the standard library function memcpy. - * This implementation of memcpy() is ANSI-C89 compatible. - * - * The following configuration options can be set: - * - * CONFIG_ENDIAN_BIG - * Uses processor with big endian addressing. Default is little endian. - * - * CONFIG_MEMCPY_PRE_INC_PTRS - * Use pre increment of pointers. Default is post increment of pointers. - * - * CONFIG_MEMCPY_INDEXED_COPY - * Copying data using array indexing. Using this option, disables the - * CONFIG_MEMCPY_PRE_INC_PTRS option. - * - * CONFIG_MEMCPY_64BIT - Compiles memcpy for 64 bit architectures - * - ****************************************************************************/ - -/**************************************************************************** - * Configuration definitions. - ****************************************************************************/ - -#define CONFIG_MEMCPY_INDEXED_COPY - -/******************************************************************** - * Included Files - *******************************************************************/ - -#include <nuttx/config.h> -#include <nuttx/compiler.h> - -#include <stddef.h> -#include <stdint.h> -#include <string.h> - -/******************************************************************** - * Pre-processor Definitions - *******************************************************************/ - -/* Can't support CONFIG_MEMCPY_64BIT if the platform does not have 64-bit - * integer types. - */ - -#ifndef CONFIG_HAVE_LONG_LONG -# undef CONFIG_MEMCPY_64BIT -#endif - -/* Remove definitions when CONFIG_MEMCPY_INDEXED_COPY is defined */ - -#if defined (CONFIG_MEMCPY_INDEXED_COPY) -# if defined (CONFIG_MEMCPY_PRE_INC_PTRS) -# undef CONFIG_MEMCPY_PRE_INC_PTRS -# endif /* CONFIG_MEMCPY_PRE_INC_PTRS */ -#endif /* CONFIG_MEMCPY_INDEXED_COPY */ - -/* Definitions for pre and post increment of pointers */ - -#if defined (CONFIG_MEMCPY_PRE_INC_PTRS) - -# define START_VAL(x) (x)-- -# define INC_VAL(x) *++(x) -# define CAST_TO_U8(p, o) ((uint8_t*)p + o + TYPE_WIDTH) -# define WHILE_DEST_BREAK (TYPE_WIDTH - 1) -# define PRE_LOOP_ADJUST - (TYPE_WIDTH - 1) -# define PRE_SWITCH_ADJUST + 1 - -#else /* CONFIG_MEMCPY_PRE_INC_PTRS */ - -# define START_VAL(x) -# define INC_VAL(x) *(x)++ -# define CAST_TO_U8(p, o) ((uint8_t*)p + o) -# define WHILE_DEST_BREAK 0 -# define PRE_LOOP_ADJUST -# define PRE_SWITCH_ADJUST - -#endif /* CONFIG_MEMCPY_PRE_INC_PTRS */ - -/* Definitions for endian-ness */ - -#ifdef CONFIG_ENDIAN_BIG - -# define SHL << -# define SHR >> - -#else /* CONFIG_ENDIAN_BIG */ - -# define SHL >> -# define SHR << - -#endif /* CONFIG_ENDIAN_BIG */ - -/******************************************************************** - * Macros for copying words of different alignment. - * Uses incremening pointers. - *******************************************************************/ - -#define CP_INCR() \ -{ \ - INC_VAL(dstN) = INC_VAL(srcN); \ -} - -#define CP_INCR_SH(shl, shr) \ -{ \ - dstWord = srcWord SHL shl; \ - srcWord = INC_VAL(srcN); \ - dstWord |= srcWord SHR shr; \ - INC_VAL(dstN) = dstWord; \ -} - -/******************************************************************** - * Macros for copying words of different alignment. - * Uses array indexes. - *******************************************************************/ - -#define CP_INDEX(idx) \ -{ \ - dstN[idx] = srcN[idx]; \ -} - -#define CP_INDEX_SH(x, shl, shr) \ -{ \ - dstWord = srcWord SHL shl; \ - srcWord = srcN[x]; \ - dstWord |= srcWord SHR shr; \ - dstN[x] = dstWord; \ -} - -/******************************************************************** - * Macros for copying words of different alignment. - * Uses incremening pointers or array indexes depending on - * configuration. - *******************************************************************/ - -#if defined (CONFIG_MEMCPY_INDEXED_COPY) - -# define CP(idx) CP_INDEX(idx) -# define CP_SH(idx, shl, shr) CP_INDEX_SH(idx, shl, shr) - -# define INC_INDEX(p, o) ((p) += (o)) - -#else /* CONFIG_MEMCPY_INDEXED_COPY */ - -# define CP(idx) CP_INCR() -# define CP_SH(idx, shl, shr) CP_INCR_SH(shl, shr) - -# define INC_INDEX(p, o) - -#endif /* CONFIG_MEMCPY_INDEXED_COPY */ - -#define COPY_REMAINING(count) \ -{ \ - START_VAL(dst8); \ - START_VAL(src8); \ - \ - switch (count) \ - { \ - case 7: INC_VAL(dst8) = INC_VAL(src8); \ - case 6: INC_VAL(dst8) = INC_VAL(src8); \ - case 5: INC_VAL(dst8) = INC_VAL(src8); \ - case 4: INC_VAL(dst8) = INC_VAL(src8); \ - case 3: INC_VAL(dst8) = INC_VAL(src8); \ - case 2: INC_VAL(dst8) = INC_VAL(src8); \ - case 1: INC_VAL(dst8) = INC_VAL(src8); \ - case 0: \ - default: break; \ - } \ -} - -#define COPY_NO_SHIFT() \ -{ \ - UIntN* dstN = (UIntN*)(dst8 PRE_LOOP_ADJUST); \ - UIntN* srcN = (UIntN*)(src8 PRE_LOOP_ADJUST); \ - size_t length = count / TYPE_WIDTH; \ - \ - while (length & 7) \ - { \ - CP_INCR(); \ - length--; \ - } \ - \ - length /= 8; \ - \ - while (length--) \ - { \ - CP(0); \ - CP(1); \ - CP(2); \ - CP(3); \ - CP(4); \ - CP(5); \ - CP(6); \ - CP(7); \ - \ - INC_INDEX(dstN, 8); \ - INC_INDEX(srcN, 8); \ - } \ - \ - src8 = CAST_TO_U8(srcN, 0); \ - dst8 = CAST_TO_U8(dstN, 0); \ - \ - COPY_REMAINING(count & (TYPE_WIDTH - 1)); \ - \ - return dest; \ -} - -#define COPY_SHIFT(shift) \ -{ \ - UIntN* dstN = (UIntN*)((((UIntN)dst8) PRE_LOOP_ADJUST) & \ - ~(TYPE_WIDTH - 1)); \ - UIntN* srcN = (UIntN*)((((UIntN)src8) PRE_LOOP_ADJUST) & \ - ~(TYPE_WIDTH - 1)); \ - size_t length = count / TYPE_WIDTH; \ - UIntN srcWord = INC_VAL(srcN); \ - UIntN dstWord; \ - \ - while (length & 7) \ - { \ - CP_INCR_SH(8 * shift, 8 * (TYPE_WIDTH - shift)); \ - length--; \ - } \ - \ - length /= 8; \ - \ - while (length--) \ - { \ - CP_SH(0, 8 * shift, 8 * (TYPE_WIDTH - shift)); \ - CP_SH(1, 8 * shift, 8 * (TYPE_WIDTH - shift)); \ - CP_SH(2, 8 * shift, 8 * (TYPE_WIDTH - shift)); \ - CP_SH(3, 8 * shift, 8 * (TYPE_WIDTH - shift)); \ - CP_SH(4, 8 * shift, 8 * (TYPE_WIDTH - shift)); \ - CP_SH(5, 8 * shift, 8 * (TYPE_WIDTH - shift)); \ - CP_SH(6, 8 * shift, 8 * (TYPE_WIDTH - shift)); \ - CP_SH(7, 8 * shift, 8 * (TYPE_WIDTH - shift)); \ - \ - INC_INDEX(dstN, 8); \ - INC_INDEX(srcN, 8); \ - } \ - \ - src8 = CAST_TO_U8(srcN, (shift - TYPE_WIDTH)); \ - dst8 = CAST_TO_U8(dstN, 0); \ - \ - COPY_REMAINING(count & (TYPE_WIDTH - 1)); \ - \ - return dest; \ -} - -/******************************************************************** - * Type Definitions - *******************************************************************/ - -#ifdef CONFIG_MEMCPY_64BIT -typedef uint64_t UIntN; -# define TYPE_WIDTH 8L -#else -typedef uint32_t UIntN; -# define TYPE_WIDTH 4L -#endif - -/******************************************************************** - * Public Functions - *******************************************************************/ -/******************************************************************** - * Name: memcpy - * - * Description: - * Copies count bytes from src to dest. No overlap check is performed. - * - * Input Parameters: - * dest - pointer to destination buffer - * src - pointer to source buffer - * count - number of bytes to copy - * - * Returned Value: - * A pointer to destination buffer - * - *******************************************************************/ - -void *memcpy(void *dest, const void *src, size_t count) -{ - uint8_t *dst8 = (uint8_t*)dest; - uint8_t *src8 = (uint8_t*)src; - - if (count < 8) - { - COPY_REMAINING(count); - return dest; - } - - START_VAL(dst8); - START_VAL(src8); - - while (((UIntN)dst8 & (TYPE_WIDTH - 1)) != WHILE_DEST_BREAK) - { - INC_VAL(dst8) = INC_VAL(src8); - count--; - } - - switch ((((UIntN)src8) PRE_SWITCH_ADJUST) & (TYPE_WIDTH - 1)) - { - case 0: COPY_NO_SHIFT(); break; - case 1: COPY_SHIFT(1); break; - case 2: COPY_SHIFT(2); break; - case 3: COPY_SHIFT(3); break; -#if TYPE_WIDTH > 4 - case 4: COPY_SHIFT(4); break; - case 5: COPY_SHIFT(5); break; - case 6: COPY_SHIFT(6); break; - case 7: COPY_SHIFT(7); break; -#endif - } - - return dest; -} diff --git a/nuttx/libc/termios/Make.defs b/nuttx/libc/termios/Make.defs deleted file mode 100644 index d20a5f95c..000000000 --- a/nuttx/libc/termios/Make.defs +++ /dev/null @@ -1,54 +0,0 @@ -############################################################################ -# libc/misc/Make.defs -# -# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -############################################################################ - -# termios.h support requires file descriptors and that CONFIG_SERIAL_TERMIOS -# is defined - -ifneq ($(CONFIG_NFILE_DESCRIPTORS),0) -ifeq ($(CONFIG_SERIAL_TERMIOS),y) - -# Add the termios C files to the build - -CSRCS += lib_cfgetspeed.c lib_cfsetspeed.c lib_tcflush.c -CSRCS += lib_tcgetattr.c lib_tcsetattr.c - -# Add the termios directory to the build - -DEPPATH += --dep-path termios -VPATH += termios - -endif -endif - diff --git a/nuttx/libc/termios/lib_cfgetspeed.c b/nuttx/libc/termios/lib_cfgetspeed.c deleted file mode 100644 index da10daac1..000000000 --- a/nuttx/libc/termios/lib_cfgetspeed.c +++ /dev/null @@ -1,93 +0,0 @@ -/**************************************************************************** - * libc/termios/lib_cfgetspeed.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <termios.h> -#include <assert.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: cfgetspeed - * - * Descripton: - * The cfgetspeed() function is a non-POSIX function will extract the baud - * from the termios structure to which the termiosp argument points. - * - * This function will return exactly the value in the termios data - * structure, without interpretation. - * - * NOTE 1: NuttX does not control input/output baud independently. Both - * must be the same. The POSIX standard interfaces, cfisetispeed() and - * cfisetospeed() are defined to be cfgetspeed() in termios.h. - * NOTE 2. In Nuttx, the speed_t is defined to be uint32_t and the baud - * encodings of termios.h are the actual baud values themselves. Therefore, - * any baud value may be returned here... not just those enumerated in - * termios.h - * - * Input Parameters: - * termiosp - The termiosp argument is a pointer to a termios structure. - * - * Returned Value: - * Encoded baud value from the termios structure. - * - ****************************************************************************/ - -speed_t cfgetspeed(FAR const struct termios *termiosp) -{ - DEBUGASSERT(termiosp); - return termiosp->c_speed; -} diff --git a/nuttx/libc/termios/lib_cfsetspeed.c b/nuttx/libc/termios/lib_cfsetspeed.c deleted file mode 100644 index a2a9475c4..000000000 --- a/nuttx/libc/termios/lib_cfsetspeed.c +++ /dev/null @@ -1,116 +0,0 @@ -/**************************************************************************** - * libc/termios/lib_cfsetspeed.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <sys/types.h> -#include <termios.h> -#include <assert.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: cfsetspeed - * - * Descripton: - * The cfsetspeed() function is a non-POSIX function that sets the baud - * stored in the structure pointed to by termiosp to speed. - * - * There is no effect on the baud set in the hardware until a subsequent - * successful call to tcsetattr() on the same termios structure. - * - * NOTE 1: NuttX does not control input/output baud independently. Both - * must be the same. The POSIX standard interfaces, cfisetispeed() and - * cfisetospeed() are defined to be cfsetspeed() in termios.h. - * - * NOTE 3: A consequence of NOTE 1 is that you should never attempt to - * set the input and output baud to different values. - * - * Also, the following POSIX requirement cannot be supported: "If the input - * baud rate stored in the termios structure pointed to by termios_p is 0, - * the input baud rate given to the hardware will be the same as the output - * baud rate stored in the termios structure." - * - * NOTE 2. In Nuttx, the speed_t is defined to be uint32_t and the baud - * encodings of termios.h are the actual baud values themselves. Therefore, - * any baud value can be provided as the speed argument here. However, if - * you do so, your code will *NOT* be portable to other environments where - * speed_t is smaller and where the termios.h baud values are encoded! To - * avoid portability issues, use the baud definitions in termios.h! - * - * Linux, for example, would require this (also non-portable) sequence: - * - * cfsetispeed(termiosp, BOTHER); - * termiosp->c_ispeed = baud; - * - * cfsetospeed(termiosp, BOTHER); - * termiosp->c_ospeed = baud; - * - * Input Parameters: - * termiosp - The termiosp argument is a pointer to a termios structure. - * speed - The new input speed - * - * Returned Value: - * Baud is not checked... OK is always returned (this is non-standard - * behavior). - * - ****************************************************************************/ - -int cfsetspeed(FAR struct termios *termiosp, speed_t speed) -{ - DEBUGASSERT(termiosp); - termiosp->c_speed = speed; - return OK; -} diff --git a/nuttx/libc/termios/lib_tcflush.c b/nuttx/libc/termios/lib_tcflush.c deleted file mode 100644 index 1a9710f6a..000000000 --- a/nuttx/libc/termios/lib_tcflush.c +++ /dev/null @@ -1,88 +0,0 @@ -/**************************************************************************** - * libc/termios/lib_tcflush.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/ioctl.h> - -#include <termios.h> -#include <errno.h> - -#include <nuttx/serial/tioctl.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: tcflush - * - * Descripton: - * Function for flushing a terminal/serial device - * - * Input Parameters: - * fd - The 'fd' argument is an open file descriptor associated with a terminal. - * cmd - The TCFLSH ioctl argument. - * - * Returned Value: - * Upon successful completion, 0 is returned. Otherwise, -1 is returned and - * errno is set to indicate the error. - * - ****************************************************************************/ - -int tcflush(int fd, int cmd) -{ - return ioctl(fd, TCFLSH, (unsigned long)cmd); -} diff --git a/nuttx/libc/termios/lib_tcgetattr.c b/nuttx/libc/termios/lib_tcgetattr.c deleted file mode 100644 index e8d311260..000000000 --- a/nuttx/libc/termios/lib_tcgetattr.c +++ /dev/null @@ -1,93 +0,0 @@ -/**************************************************************************** - * libc/termios/lib_tcgetattr.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/ioctl.h> - -#include <termios.h> -#include <errno.h> - -#include <nuttx/serial/tioctl.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: tcgetattr - * - * Descripton: - * The tcgetattr() function gets the parameters associated with the - * terminal referred to by 'fd' and stores them in the termios structure - * referenced by 'termiosp'. - * - * Input Parameters: - * fd - The 'fd' argument is an open file descriptor associated with a terminal. - * termiosp - The termiosp argument is a pointer to a termios structure. - * - * Returned Value: - * Upon successful completion, 0 is returned. Otherwise, -1 is returned and - * errno is set to indicate the error. The following errors may be reported: - * - * - EBADF: The 'fd' argument is not a valid file descriptor. - * - ENOTTY: The file associated with 'fd' is not a terminal. - * - ****************************************************************************/ - -int tcgetattr(int fd, FAR struct termios *termiosp) -{ - return ioctl(fd, TCGETS, (unsigned long)termiosp); -} diff --git a/nuttx/libc/termios/lib_tcsetattr.c b/nuttx/libc/termios/lib_tcsetattr.c deleted file mode 100644 index 901f2a136..000000000 --- a/nuttx/libc/termios/lib_tcsetattr.c +++ /dev/null @@ -1,122 +0,0 @@ -/**************************************************************************** - * libc/termios/lib_tcsetattr.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/ioctl.h> - -#include <termios.h> -#include <errno.h> - -#include <nuttx/serial/tioctl.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: tcsetattr - * - * Descripton: - * The tcsetattr() function sets the parameters associated with the - * terminal referred to by the open file descriptor 'fd' from the termios - * structure referenced by 'termiop' as follows: - * - * If 'options' is TCSANOW, the change will occur immediately. - * - * If 'options' is TCSADRAIN, the change will occur after all output - * written to 'fd' is transmitted. This function should be used when changing - * parameters that affect output. - * - * If 'options' is TCSAFLUSH, the change will occur after all - * output written to 'fd' is transmitted, and all input so far received but - * not read will be discarded before the change is made. - * - * The tcsetattr() function will return successfully if it was able to - * perform any of the requested actions, even if some of the requested - * actions could not be performed. It will set all the attributes that - * implementation supports as requested and leave all the attributes not - * supported by the implementation unchanged. If no part of the request - * can be honoured, it will return -1 and set errno to EINVAL. - * - * The effect of tcsetattr() is undefined if the value of the termios - * structure pointed to by 'termiop' was not derived from the result of - * a call to tcgetattr() on 'fd'; an application should modify only fields - * and flags defined by this specification between the call to tcgetattr() - * and tcsetattr(), leaving all other fields and flags unmodified. - * - * Returned Value: - * - * Upon successful completion, 0 is returned. Otherwise, -1 is returned - * and errno is set to indicate the error. The following errors may be - * reported: - * - * - EBADF: The 'fd' argument is not a valid file descriptor. - * - EINTR: A signal interrupted tcsetattr(). - * - EINVAL: The 'options' argument is not a supported value, or - * an attempt was made to change an attribute represented in the - * termios structure to an unsupported value. - * - ENOTTY: The file associated with 'fd' is not a terminal. - * - ****************************************************************************/ - -int tcsetattr(int fd, int options, FAR const struct termios *termiosp) -{ - if (options == TCSANOW) - { - return ioctl(fd, TCSETS, (unsigned long)termiosp); - } - return -ENOSYS; -} diff --git a/nuttx/libc/time/Make.defs b/nuttx/libc/time/Make.defs deleted file mode 100644 index 4848813d1..000000000 --- a/nuttx/libc/time/Make.defs +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################ -# libc/time/Make.defs -# -# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -############################################################################ - -# Add the time C files to the build - -CSRCS += lib_mktime.c lib_gmtime.c lib_gmtimer.c lib_strftime.c \ - lib_calendar2utc.c lib_daysbeforemonth.c lib_isleapyear.c lib_time.c - -# Add the time directory to the build - -DEPPATH += --dep-path time -VPATH += :time diff --git a/nuttx/libc/time/lib_calendar2utc.c b/nuttx/libc/time/lib_calendar2utc.c deleted file mode 100644 index 1b8c40a9e..000000000 --- a/nuttx/libc/time/lib_calendar2utc.c +++ /dev/null @@ -1,209 +0,0 @@ -/**************************************************************************** - * libc/time/lib_calendar2utc.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdbool.h> -#include <time.h> -#include <debug.h> - -#include <nuttx/time.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Public Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Public Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: clock_gregorian2utc, clock_julian2utc - * - * Description: - * UTC conversion routines. These conversions are based - * on algorithms from p. 604 of Seidelman, P. K. 1992. - * Explanatory Supplement to the Astronomical Almanac. - * University Science Books, Mill Valley. - * - ****************************************************************************/ - -#ifdef CONFIG_GREGORIAN_TIME -static time_t clock_gregorian2utc(int year, int month, int day) -{ - int temp; - - /* temp = (month - 14)/12; */ - - temp = (month <= 2 ? -1:0); - - return (1461*(year + 4800 + temp))/4 - + (367*(month - 2 - 12*temp))/12 - - (3*((year + 4900 + temp)/100))/4 + day - 32075; -} - -#ifdef CONFIG_JULIAN_TIME -static time_t clock_julian2utc(int year, int month, int day) -{ - return 367*year - - (7*(year + 5001 + (month-9)/7))/4 - + (275*month)/9 - + day + 1729777; -} -#endif /* CONFIG_JULIAN_TIME */ -#endif /* CONFIG_GREGORIAN_TIME */ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: clock_calendar2utc - * - * Description: - * Calendar/UTC conversion based on algorithms from p. 604 - * of Seidelman, P. K. 1992. Explanatory Supplement to - * the Astronomical Almanac. University Science Books, - * Mill Valley. - * - ****************************************************************************/ - -#ifdef CONFIG_GREGORIAN_TIME -time_t clock_calendar2utc(int year, int month, int day) -{ - int dyear; -#ifdef CONFIG_JULIAN_TIME - bool isgreg; -#endif /* CONFIG_JULIAN_TIME */ - - /* Correct year & month ranges. Shift month into range 1-12 */ - - dyear = (month-1) / 12; - month -= 12 * dyear; - year += dyear; - - if (month < 1) - { - month += 12; - year -= 1; - } - -#ifdef CONFIG_JULIAN_TIME - /* Determine which calendar to use */ - - if (year > GREG_YEAR) - { - isgreg = true; - } - else if (year < GREG_YEAR) - { - isgreg = false; - } - else if (month > GREG_MONTH) - { - isgreg = true; - } - else if (month < GREG_MONTH) - { - isgreg = false; - } - else - { - isgreg = (day >= GREG_DAY); - } - - /* Calculate and return date */ - - if (isgreg) - { - return clock_gregorian2utc(year, month, day) - JD_OF_EPOCH; - } - else - { - return clock_julian2utc (year, month, day) - JD_OF_EPOCH; - } - -#else /* CONFIG_JULIAN_TIME */ - - return clock_gregorian2utc(year, month, day) - JD_OF_EPOCH; - -#endif /* CONFIG_JULIAN_TIME */ -} -#else - -/* A highly simplified version that only handles days in the time - * since Jan 1, 1970. - */ - -time_t clock_calendar2utc(int year, int month, int day) -{ - struct tm t; - - /* mktime can (kind of) do this */ - - t.tm_year = year; - t.tm_mon = month; - t.tm_mday = day; - t.tm_hour = 0; - t.tm_min = 0; - t.tm_sec = 0; - return mktime(&t); -} -#endif /* CONFIG_GREGORIAN_TIME */ - diff --git a/nuttx/libc/time/lib_daysbeforemonth.c b/nuttx/libc/time/lib_daysbeforemonth.c deleted file mode 100644 index 28f4d67a9..000000000 --- a/nuttx/libc/time/lib_daysbeforemonth.c +++ /dev/null @@ -1,102 +0,0 @@ -/**************************************************************************** - * libc/time/lib_daysbeforemonth.c - * - * Copyright (C) 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdint.h> -#include <stdbool.h> - -#include <nuttx/time.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Public Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Public Variables - ****************************************************************************/ - -uint16_t g_daysbeforemonth[13] = -{ - 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 -}; - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: clock_daysbeforemonth - * - * Description: - * Get the number of days that occurred before the beginning of the month. - * - ****************************************************************************/ - -int clock_daysbeforemonth(int month, bool leapyear) -{ - int retval = g_daysbeforemonth[month]; - if (month >= 2 && leapyear) - { - retval++; - } - return retval; -} - - diff --git a/nuttx/libc/time/lib_gmtime.c b/nuttx/libc/time/lib_gmtime.c deleted file mode 100644 index 7a4d0f5e1..000000000 --- a/nuttx/libc/time/lib_gmtime.c +++ /dev/null @@ -1,93 +0,0 @@ -/**************************************************************************** - * libc/time/lib_gmtime.c - * - * Copyright (C) 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <time.h> -#include <errno.h> -#include <debug.h> - -#include <nuttx/time.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/************************************************************************** - * Public Constant Data - **************************************************************************/ - -/**************************************************************************** - * Public Variables - ****************************************************************************/ - -/************************************************************************** - * Private Variables - **************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: gmtime - * - * Description: - * Similar to gmtime_r, but not thread-safe - * - ****************************************************************************/ - -struct tm *gmtime(const time_t *timer) -{ - static struct tm tm; - return gmtime_r(timer, &tm); -} - diff --git a/nuttx/libc/time/lib_gmtimer.c b/nuttx/libc/time/lib_gmtimer.c deleted file mode 100644 index d98620527..000000000 --- a/nuttx/libc/time/lib_gmtimer.c +++ /dev/null @@ -1,355 +0,0 @@ -/**************************************************************************** - * libc/time/lib_gmtimer.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdbool.h> -#include <time.h> -#include <errno.h> -#include <debug.h> - -#include <nuttx/time.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -#define SEC_PER_MIN ((time_t)60) -#define SEC_PER_HOUR ((time_t)60 * SEC_PER_MIN) -#define SEC_PER_DAY ((time_t)24 * SEC_PER_HOUR) - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/* Calendar/UTC conversion routines */ - -static void clock_utc2calendar(time_t utc, int *year, int *month, int *day); -#ifdef CONFIG_GREGORIAN_TIME -static void clock_utc2gregorian (time_t jdn, int *year, int *month, int *day); - -#ifdef CONFIG_JULIAN_TIME -static void clock_utc2julian(time_t jdn, int *year, int *month, int *day); -#endif /* CONFIG_JULIAN_TIME */ -#endif /* CONFIG_GREGORIAN_TIME */ - -/************************************************************************** - * Public Constant Data - **************************************************************************/ - -/**************************************************************************** - * Public Variables - ****************************************************************************/ - -/************************************************************************** - * Private Variables - **************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: clock_calendar2utc, clock_gregorian2utc, - * and clock_julian2utc - * - * Description: - * Calendar to UTC conversion routines. These conversions - * are based on algorithms from p. 604 of Seidelman, P. K. - * 1992. Explanatory Supplement to the Astronomical - * Almanac. University Science Books, Mill Valley. - * - ****************************************************************************/ - -#ifdef CONFIG_GREGORIAN_TIME -static void clock_utc2calendar(time_t utc, int *year, int *month, int *day) -{ -#ifdef CONFIG_JULIAN_TIME - - if (utc >= GREG_DUTC) - { - clock_utc2gregorian(utc + JD_OF_EPOCH, year, month, day); - } - else - { - clock_utc2julian (utc + JD_OF_EPOCH, year, month, day); - } - -#else /* CONFIG_JULIAN_TIME */ - - clock_utc2gregorian(utc + JD_OF_EPOCH, year, month, day); - -#endif /* CONFIG_JULIAN_TIME */ -} - -static void clock_utc2gregorian(time_t jd, int *year, int *month, int *day) -{ - long l, n, i, j, d, m, y; - - l = jd + 68569; - n = (4*l) / 146097; - l = l - (146097*n + 3)/4; - i = (4000*(l+1))/1461001; - l = l - (1461*i)/4 + 31; - j = (80*l)/2447; - d = l - (2447*j)/80; - l = j/11; - m = j + 2 - 12*l; - y = 100*(n-49) + i + l; - - *year = y; - *month = m; - *day = d; -} - -#ifdef CONFIG_JULIAN_TIME - -static void clock_utc2julian(time_t jd, int *year, int *month, int *day) -{ - long j, k, l, n, d, i, m, y; - - j = jd + 1402; - k = (j-1)/1461; - l = j - 1461*k; - n = (l-1)/365 - l/1461; - i = l - 365*n + 30; - j = (80*i)/2447; - d = i - (2447*j)/80; - i = j/11; - m = j + 2 - 12*i; - y = 4*k + n + i - 4716; - - *year = y; - *month = m; - *day = d; -} - -#endif /* CONFIG_JULIAN_TIME */ -#else/* CONFIG_GREGORIAN_TIME */ - -/* Only handles dates since Jan 1, 1970 */ - -static void clock_utc2calendar(time_t days, int *year, int *month, int *day) -{ - int value; - int min; - int max; - int tmp; - bool leapyear; - - /* There is one leap year every four years, so we can get close with the - * following: - */ - - value = days / (4*365 + 1); /* Number of 4-years periods since the epoch*/ - days -= value * (4*365 + 1); /* Remaining days */ - value <<= 2; /* Years since the epoch */ - - /* Then we will brute force the next 0-3 years */ - - for (;;) - { - /* Is this year a leap year (we'll need this later too) */ - - leapyear = clock_isleapyear(value + 1970); - - /* Get the number of days in the year */ - - tmp = (leapyear ? 366 : 365); - - /* Do we have that many days? */ - - if (days >= tmp) - { - /* Yes.. bump up the year */ - - value++; - days -= tmp; - } - else - { - /* Nope... then go handle months */ - - break; - } - } - - /* At this point, value has the year and days has number days into this year */ - - *year = 1970 + value; - - /* Handle the month (zero based) */ - - min = 0; - max = 11; - - do - { - /* Get the midpoint */ - - value = (min + max) >> 1; - - /* Get the number of days that occurred before the beginning of the month - * following the midpoint. - */ - - tmp = clock_daysbeforemonth(value + 1, leapyear); - - /* Does the number of days before this month that equal or exceed the - * number of days we have remaining? - */ - - if (tmp > days) - { - /* Yes.. then the month we want is somewhere from 'min' and to the - * midpoint, 'value'. Could it be the midpoint? - */ - - tmp = clock_daysbeforemonth(value, leapyear); - if (tmp > days) - { - /* No... The one we want is somewhere between min and value-1 */ - - max = value - 1; - } - else - { - /* Yes.. 'value' contains the month that we want */ - - break; - } - } - else - { - /* No... The one we want is somwhere between value+1 and max */ - - min = value + 1; - } - - /* If we break out of the loop because min == max, then we want value - * to be equal to min == max. - */ - - value = min; - } - while (min < max); - - /* The selected month number is in value. Subtract the number of days in the - * selected month - */ - - days -= clock_daysbeforemonth(value, leapyear); - - /* At this point, value has the month into this year (zero based) and days has - * number of days into this month (zero based) - */ - - *month = value + 1; /* 1-based */ - *day = days + 1; /* 1-based */ -} - -#endif /* CONFIG_GREGORIAN_TIME */ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: gmtime_r - * - * Description: - * Time conversion (based on the POSIX API) - * - ****************************************************************************/ - -FAR struct tm *gmtime_r(FAR const time_t *timer, FAR struct tm *result) -{ - time_t epoch; - time_t jdn; - int year; - int month; - int day; - int hour; - int min; - int sec; - - /* Get the seconds since the EPOCH */ - - epoch = *timer; - sdbg("timer=%d\n", (int)epoch); - - /* Convert to days, hours, minutes, and seconds since the EPOCH */ - - jdn = epoch / SEC_PER_DAY; - epoch -= SEC_PER_DAY * jdn; - - hour = epoch / SEC_PER_HOUR; - epoch -= SEC_PER_HOUR * hour; - - min = epoch / SEC_PER_MIN; - epoch -= SEC_PER_MIN * min; - - sec = epoch; - - sdbg("hour=%d min=%d sec=%d\n", - (int)hour, (int)min, (int)sec); - - /* Convert the days since the EPOCH to calendar day */ - - clock_utc2calendar(jdn, &year, &month, &day); - - sdbg("jdn=%d year=%d month=%d day=%d\n", - (int)jdn, (int)year, (int)month, (int)day); - - /* Then return the struct tm contents */ - - result->tm_year = (int)year - 1900; /* Relative to 1900 */ - result->tm_mon = (int)month - 1; /* zero-based */ - result->tm_mday = (int)day; /* one-based */ - result->tm_hour = (int)hour; - result->tm_min = (int)min; - result->tm_sec = (int)sec; - - return result; -} - diff --git a/nuttx/libc/time/lib_isleapyear.c b/nuttx/libc/time/lib_isleapyear.c deleted file mode 100644 index 386e205b2..000000000 --- a/nuttx/libc/time/lib_isleapyear.c +++ /dev/null @@ -1,88 +0,0 @@ -/**************************************************************************** - * libc/time/lib_isleapyear.c - * - * Copyright (C) 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <nuttx/time.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Public Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Public Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: clock_isleapyear - * - * Description: - * Return true if the specified year is a leap year - * - ****************************************************************************/ - -int clock_isleapyear(int year) -{ - return year % 400 ? (year % 100 ? (year % 4 ? 0 : 1) : 0) : 1; -} - diff --git a/nuttx/libc/time/lib_mktime.c b/nuttx/libc/time/lib_mktime.c deleted file mode 100644 index 25254d70e..000000000 --- a/nuttx/libc/time/lib_mktime.c +++ /dev/null @@ -1,141 +0,0 @@ -/**************************************************************************** - * libc/time/lib_mktime.c - * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <time.h> -#include <debug.h> - -#include <nuttx/time.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Public Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Public Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: mktime - * - * Description: - * Time conversion (based on the POSIX API) - * - ****************************************************************************/ - -#ifdef CONFIG_GREGORIAN_TIME -time_t mktime(const struct tm *tp) -{ - time_t ret; - time_t jdn; - - /* Get the EPOCH-relative julian date from the calendar year, - * month, and date - */ - - jdn = clock_calendar2utc(tp->tm_year+1900, tp->tm_mon+1, tp->tm_mday); - sdbg("jdn=%d tm_year=%d tm_mon=%d tm_mday=%d\n", - (int)jdn, tp->tm_year, tp->tm_mon, tp->tm_mday); - - /* Return the seconds into the julian day. */ - - ret = ((jdn*24 + tp->tm_hour)*60 + tp->tm_min)*60 + tp->tm_sec; - sdbg("ret=%d tm_hour=%d tm_min=%d tm_sec=%d\n", - (int)ret, tp->tm_hour, tp->tm_min, tp->tm_sec); - - return ret; -} -#else - -/* Simple version that only works for dates within a (relatively) small range - * from the epoch. It does not handle earlier days or longer days where leap - * seconds, etc. apply. - */ - -time_t mktime(const struct tm *tp) -{ - unsigned int days; - - /* Years since epoch in units of days (ignoring leap years). */ - - days = (tp->tm_year - 70) * 365; - - /* Add in the extra days for the leap years prior to the current year. */ - - days += (tp->tm_year - 69) >> 2; - - /* Add in the days up to the beginning of this month. */ - - days += (time_t)clock_daysbeforemonth(tp->tm_mon, clock_isleapyear(tp->tm_year + 1900)); - - /* Add in the days since the beginning of this month (days are 1-based). */ - - days += tp->tm_mday - 1; - - /* Then convert the seconds and add in hours, minutes, and seconds */ - - return ((days * 24 + tp->tm_hour) * 60 + tp->tm_min) * 60 + tp->tm_sec; -} -#endif /* CONFIG_GREGORIAN_TIME */ - diff --git a/nuttx/libc/time/lib_strftime.c b/nuttx/libc/time/lib_strftime.c deleted file mode 100644 index 3b0c8dd8f..000000000 --- a/nuttx/libc/time/lib_strftime.c +++ /dev/null @@ -1,398 +0,0 @@ -/**************************************************************************** - * libc/time/lib_strftime.c - * - * Copyright (C) 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> -#include <sys/types.h> - -#include <stdio.h> -#include <time.h> -#include <debug.h> - -#include <nuttx/time.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Public Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -static const char * const g_abbrevmonthname[12] = -{ - "Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" -}; - -static const char * const g_monthname[12] = -{ - "January", "February", "March", "April", "May", "June", - "July", "August", "September", "October", "November", "December" -}; - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: strftime - * - * Description: - * The strftime() function formats the broken-down time tm according to - * the format specification format and places the result in the character - * array s of size max. - * - * Ordinary characters placed in the format string are copied to s without - * conversion. Conversion specifications are introduced by a '%' charac- - * ter, and terminated by a conversion specifier character, and are - * replaced in s as follows: - * - * %b The abbreviated month name according to the current locale. - * %B The full month name according to the current locale. - * %C The century number (year/100) as a 2-digit integer. (SU) - * %d The day of the month as a decimal number (range 01 to 31). - * %e Like %d, the day of the month as a decimal number, but a leading - * zero is replaced by a space. - * %h Equivalent to %b. (SU) - * %H The hour as a decimal number using a 24-hour clock (range 00 to 23). - * %I The hour as a decimal number using a 12-hour clock (range 01 to 12). - * %j The day of the year as a decimal number (range 001 to 366). - * %k The hour (24-hour clock) as a decimal number (range 0 to 23); - * single digits are preceded by a blank. (See also %H.) (TZ) - * %l The hour (12-hour clock) as a decimal number (range 1 to 12); - * single digits are preceded by a blank. (See also %I.) (TZ) - * %m The month as a decimal number (range 01 to 12). - * %M The minute as a decimal number (range 00 to 59). - * %n A newline character. (SU) - * %p Either "AM" or "PM" according to the given time value, or the - * corresponding strings for the current locale. Noon is treated - * as "PM" and midnight as "AM". - * %P Like %p but in lowercase: "am" or "pm" or a corresponding string - * for the current locale. (GNU) - * %s The number of seconds since the Epoch, that is, since 1970-01-01 - * 00:00:00 UTC. (TZ) - * %S The second as a decimal number (range 00 to 60). (The range is - * up to 60 to allow for occasional leap seconds.) - * %t A tab character. (SU) - * %y The year as a decimal number without a century (range 00 to 99). - * %Y The year as a decimal number including the century. - * %% A literal '%' character. - * - * Returned Value: - * The strftime() function returns the number of characters placed in the - * array s, not including the terminating null byte, provided the string, - * including the terminating null byte, fits. Otherwise, it returns 0, - * and the contents of the array is undefined. - * - ****************************************************************************/ - -size_t strftime(char *s, size_t max, const char *format, const struct tm *tm) -{ - const char *str; - char *dest = s; - int chleft = max; - int value; - int len; - - while (*format && chleft > 0) - { - /* Just copy regular characters */ - - if (*format != '%') - { - *dest++ = *format++; - chleft--; - continue; - } - - /* Handle the format character */ - - format++; - len = 0; - - switch (*format++) - { - /* %a: A three-letter abbreviation for the day of the week. */ - /* %A: The full name for the day of the week. */ - - case 'a': - case 'A': - { - len = snprintf(dest, chleft, "Day"); /* Not supported */ - } - break; - - /* %h: Equivalent to %b */ - - case 'h': - - /* %b: The abbreviated month name according to the current locale. */ - - case 'b': - { - if (tm->tm_mon < 12) - { - str = g_abbrevmonthname[tm->tm_mon]; - len = snprintf(dest, chleft, "%s", str); - } - } - break; - - /* %B: The full month name according to the current locale. */ - - case 'B': - { - if (tm->tm_mon < 12) - { - str = g_monthname[tm->tm_mon]; - len = snprintf(dest, chleft, "%s", str); - } - } - break; - - /* %y: The year as a decimal number without a century (range 00 to 99). */ - - case 'y': - - /* %C: The century number (year/100) as a 2-digit integer. */ - - case 'C': - { - len = snprintf(dest, chleft, "%02d", tm->tm_year % 100); - } - break; - - /* %d: The day of the month as a decimal number (range 01 to 31). */ - - case 'd': - { - len = snprintf(dest, chleft, "%02d", tm->tm_mday); - } - break; - - /* %e: Like %d, the day of the month as a decimal number, but a leading - * zero is replaced by a space. - */ - - case 'e': - { - len = snprintf(dest, chleft, "%2d", tm->tm_mday); - } - break; - - /* %H: The hour as a decimal number using a 24-hour clock (range 00 to 23). */ - - case 'H': - { - len = snprintf(dest, chleft, "%02d", tm->tm_hour); - } - break; - - /* %I: The hour as a decimal number using a 12-hour clock (range 01 to 12). */ - - case 'I': - { - len = snprintf(dest, chleft, "%02d", tm->tm_hour % 12); - } - break; - - /* %j: The day of the year as a decimal number (range 001 to 366). */ - - case 'j': - { - if (tm->tm_mon < 12) - { - value = clock_daysbeforemonth(tm->tm_mon, clock_isleapyear(tm->tm_year)) + tm->tm_mday; - len = snprintf(dest, chleft, "%03d", value); - } - } - break; - - /* %k: The hour (24-hour clock) as a decimal number (range 0 to 23); - * single digits are preceded by a blank. - */ - - case 'k': - { - len = snprintf(dest, chleft, "%2d", tm->tm_hour); - } - break; - - /* %l: The hour (12-hour clock) as a decimal number (range 1 to 12); - * single digits are preceded by a blank. - */ - - case 'l': - { - len = snprintf(dest, chleft, "%2d", tm->tm_hour % 12); - } - break; - - /* %m: The month as a decimal number (range 01 to 12). */ - - case 'm': - { - len = snprintf(dest, chleft, "%02d", tm->tm_mon + 1); - } - break; - - /* %M: The minute as a decimal number (range 00 to 59). */ - - case 'M': - { - len = snprintf(dest, chleft, "%02d", tm->tm_min); - } - break; - - /* %n: A newline character. */ - - case 'n': - { - *dest = '\n'; - len = 1; - } - break; - - /* %p: Either "AM" or "PM" according to the given time value. */ - - case 'p': - { - if (tm->tm_hour >= 12) - { - str = "PM"; - } - else - { - str = "AM"; - } - len = snprintf(dest, chleft, "%s", str); - } - break; - - /* %P: Like %p but in lowercase: "am" or "pm" */ - - case 'P': - { - if (tm->tm_hour >= 12) - { - str = "pm"; - } - else - { - str = "am"; - } - len = snprintf(dest, chleft, "%s", str); - } - break; - - /* %s: The number of seconds since the Epoch, that is, since 1970-01-01 - * 00:00:00 UTC. - */ - - case 's': - { - len = snprintf(dest, chleft, "%d", mktime(tm)); - } - break; - - /* %S: The second as a decimal number (range 00 to 60). (The range is - * up to 60 to allow for occasional leap seconds.) - */ - - case 'S': - { - len = snprintf(dest, chleft, "%02d", tm->tm_sec); - } - break; - - /* %t: A tab character. */ - - case 't': - { - *dest = '\t'; - len = 1; - } - break; - - /* %Y: The year as a decimal number including the century. */ - - case 'Y': - { - len = snprintf(dest, chleft, "%04d", tm->tm_year + 1900); - } - break; - - /* %%: A literal '%' character. */ - - case '%': - { - *dest = '%'; - len = 1; - } - break; - } - - /* Update counts and pointers */ - - dest += len; - chleft -= len; - } - - return max - chleft; -} diff --git a/nuttx/libc/time/lib_time.c b/nuttx/libc/time/lib_time.c deleted file mode 100644 index 673f6fdcd..000000000 --- a/nuttx/libc/time/lib_time.c +++ /dev/null @@ -1,110 +0,0 @@ -/**************************************************************************** - * libc/time/lib_time.c - * - * Copyright (C) 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/time.h> -#include <time.h> - -#ifndef CONFIG_DISABLE_CLOCK - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Function: time - * - * Description: - * Get the current calendar time as a time_t object. The function returns - * this value, and if the argument is not a null pointer, the value is also - * set to the object pointed by tloc. - * - * Note that this function is just a thin wrapper around gettimeofday() - * and is provided for compatibility. gettimeofday() is the preffered way - * to obtain system time. - * - * Parameters: - * Pointer to an object of type time_t, where the time value is stored. - * Alternativelly, this parameter can be a null pointer, in which case the - * parameter is not used, but a time_t object is still returned by the - * function. - * - * Return Value: - * The current calendar time as a time_t object. If the argument is not - * a null pointer, the return value is the same as the one stored in the - * location pointed by the argument. - * - * If the function could not retrieve the calendar time, it returns a -1 - * value. - * - ****************************************************************************/ - -time_t time(time_t *tloc) -{ - struct timeval tp; - int ret; - - /* Get the current time from the system */ - - ret = gettimeofday(&tp, NULL); - if (ret == OK) - { - /* Return the seconds since the epoch */ - - if (tloc) - { - *tloc = tp.tv_sec; - } - - return tp.tv_sec; - } - - return (time_t)ERROR; -} - -#endif /* !CONFIG_DISABLE_CLOCK */ diff --git a/nuttx/libc/unistd/Make.defs b/nuttx/libc/unistd/Make.defs deleted file mode 100644 index ee3ac0fc9..000000000 --- a/nuttx/libc/unistd/Make.defs +++ /dev/null @@ -1,53 +0,0 @@ -############################################################################ -# libc/unistd/Make.defs -# -# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# 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 NuttX 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. -# -############################################################################ - -# Add the unistd C files to the build - -CSRCS += lib_getopt.c lib_getoptargp.c lib_getoptindp.c lib_getoptoptp.c - -ifneq ($(CONFIG_NFILE_DESCRIPTORS),0) -ifneq ($(CONFIG_DISABLE_ENVIRON),y) -CSRCS += lib_chdir.c lib_getcwd.c -endif - -ifeq ($(CONFIG_LIBC_EXECFUNCS),y) -CSRCS += lib_execl.c lib_execv.c lib_execsymtab.c -endif -endif - -# Add the unistd directory to the build - -DEPPATH += --dep-path unistd -VPATH += :unistd diff --git a/nuttx/libc/unistd/lib_chdir.c b/nuttx/libc/unistd/lib_chdir.c deleted file mode 100644 index 8953fb19b..000000000 --- a/nuttx/libc/unistd/lib_chdir.c +++ /dev/null @@ -1,179 +0,0 @@ -/**************************************************************************** - * libc/unistd/lib_chdir.c - * - * Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/stat.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <errno.h> - -#include "lib_internal.h" - -#if CONFIG_NFILE_DESCRIPTORS > 0 && !defined(CONFIG_DISABLE_ENVIRON) - -/**************************************************************************** - * Public Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: _trimdir - ****************************************************************************/ - -#if 0 -static inline void _trimdir(char *path) -{ - /* Skip any trailing '/' characters (unless it is also the leading '/') */ - - int len = strlen(path) - 1; - while (len > 0 && path[len] == '/') - { - path[len] = '\0'; - len--; - } -} -#else -# define _trimdir(p) -#endif - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: chdir - * - * Description: - * The chdir() function causes the directory named by the pathname pointed - * to by the 'path' argument to become the current working directory; that - * is, the starting point for path searches for pathnames not beginning - * with '/'. - * - * Input Parmeters: - * path - A pointer to a directory to use as the new current working - * directory - * - * Returned Value: - * 0(OK) on success; -1(ERROR) on failure with errno set appropriately: - * - * EACCES - * Search permission is denied for any component of the pathname. - * ELOOP - * A loop exists in symbolic links encountered during resolution of the - * 'path' argument OR more that SYMLOOP_MAX symbolic links in the - * resolution of the 'path' argument. - * ENAMETOOLONG - * The length of the path argument exceeds PATH_MAX or a pathname component - * is longer than NAME_MAX. - * ENOENT - * A component of 'path' does not name an existing directory or path is - * an empty string. - * ENOTDIR - * A component of the pathname is not a directory. - * - ****************************************************************************/ - -int chdir(FAR const char *path) -{ - struct stat buf; - char *oldpwd; - char *alloc; - int err; - int ret; - - /* Verify the input parameters */ - - if (!path) - { - err = ENOENT; - goto errout; - } - - /* Verify that 'path' refers to a directory */ - - ret = stat(path, &buf); - if (ret != 0) - { - err = ENOENT; - goto errout; - } - - /* Something exists here... is it a directory? */ - - if (!S_ISDIR(buf.st_mode)) - { - err = ENOTDIR; - goto errout; - } - - /* Yes, it is a directory. Remove any trailing '/' characters from the path */ - - _trimdir(path); - - /* Replace any preceding OLDPWD with the current PWD (this is to - * support 'cd -' in NSH) - */ - - sched_lock(); - oldpwd = getenv("PWD"); - if (!oldpwd) - { - oldpwd = CONFIG_LIB_HOMEDIR; - } - - alloc = strdup(oldpwd); /* kludge needed because environment is realloc'ed */ - setenv("OLDPWD", alloc, TRUE); - lib_free(alloc); - - /* Set the cwd to the input 'path' */ - - setenv("PWD", path, TRUE); - sched_unlock(); - return OK; - -errout: - set_errno(err); - return ERROR; -} -#endif /* CONFIG_NFILE_DESCRIPTORS && !CONFIG_DISABLE_ENVIRON */ diff --git a/nuttx/libc/unistd/lib_execl.c b/nuttx/libc/unistd/lib_execl.c deleted file mode 100644 index fa50c1429..000000000 --- a/nuttx/libc/unistd/lib_execl.c +++ /dev/null @@ -1,146 +0,0 @@ -/**************************************************************************** - * libc/unistd/lib_execl.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdarg.h> -#include <unistd.h> - -#ifdef CONFIG_LIBC_EXECFUNCS - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: execl - * - * Description: - * The standard 'exec' family of functions will replace the current process - * image with a new process image. The new image will be constructed from a - * regular, executable file called the new process image file. There will - * be no return from a successful exec, because the calling process image - * is overlaid by the new process image. - * - * Simplified 'execl()' and 'execv()' functions are provided by NuttX for - * compatibility. NuttX is a tiny embedded RTOS that does not support - * processes and hence the concept of overlaying a tasks process image with - * a new process image does not make any sense. In NuttX, these functions - * are wrapper functions that: - * - * 1. Call the non-standard binfmt function 'exec', and then - * 2. exit(0). - * - * Note the inefficiency when 'exec[l|v]()' is called in the normal, two- - * step process: (1) first call vfork() to create a new thread, then (2) - * call 'exec[l|v]()' to replace the new thread with a program from the - * file system. Since the new thread will be terminated by the - * 'exec[l|v]()' call, it really served no purpose other than to support - * Unix compatility. - * - * The non-standard binfmt function 'exec()' needs to have (1) a symbol - * table that provides the list of symbols exported by the base code, and - * (2) the number of symbols in that table. This information is currently - * provided to 'exec()' from 'exec[l|v]()' via NuttX configuration settings: - * - * CONFIG_LIBC_EXECFUNCS : Enable exec[l|v] support - * CONFIG_EXECFUNCS_SYMTAB : Symbol table used by exec[l|v] - * CONFIG_EXECFUNCS_NSYMBOLS : Number of symbols in the table - * - * As a result of the above, the current implementations of 'execl()' and - * 'execv()' suffer from some incompatibilities that may or may not be - * addressed in a future version of NuttX. Other than just being an - * inefficient use of MCU resource, the most serious of these is that - * the exec'ed task will not have the same task ID as the vfork'ed - * function. So the parent function cannot know the ID of the exec'ed - * task. - * - * Input Parameters: - * path - The path to the program to be executed. If CONFIG_BINFMT_EXEPATH - * is defined in the configuration, then this may be a relative path - * from the current working directory. Otherwise, path must be the - * absolute path to the program. - * ... - A list of the string arguments to be recevied by the - * program. Zero indicates the end of the list. - * - * Returned Value: - * This function does not return on success. On failure, it will return - * -1 (ERROR) and will set the 'errno' value appropriately. - * - ****************************************************************************/ - -int execl(FAR const char *path, ...) -{ - FAR char *argv[CONFIG_MAX_TASK_ARGS+1]; - va_list ap; - int argc; - - /* Collect the arguments into the argv[] array */ - - va_start(ap, path); - for (argc = 0; argc < CONFIG_MAX_TASK_ARGS; argc++) - { - argv[argc] = va_arg(ap, FAR char *); - if (argv[argc] == NULL) - { - break; - } - } - - argv[CONFIG_MAX_TASK_ARGS] = NULL; - va_end(ap); - - /* Then let execv() do the real work */ - - return execv(path, (char * const *)&argv); -} - -#endif /* CONFIG_LIBC_EXECFUNCS */
\ No newline at end of file diff --git a/nuttx/libc/unistd/lib_execsymtab.c b/nuttx/libc/unistd/lib_execsymtab.c deleted file mode 100644 index 34b798bb4..000000000 --- a/nuttx/libc/unistd/lib_execsymtab.c +++ /dev/null @@ -1,147 +0,0 @@ -/**************************************************************************** - * libc/unistd/lib_execsymtab.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <assert.h> - -#include <nuttx/arch.h> -#include <nuttx/binfmt/symtab.h> - -#ifdef CONFIG_LIBC_EXECFUNCS - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ -/* If CONFIG_LIBC_EXECFUNCS is defined in the configuration, then the - * following must also be defined: - */ - -/* Symbol table used by exec[l|v] */ - -#ifndef CONFIG_EXECFUNCS_SYMTAB -# error "CONFIG_EXECFUNCS_SYMTAB must be defined" -#endif - -/* Number of Symbols in the Table */ - -#ifndef CONFIG_EXECFUNCS_NSYMBOLS -# error "CONFIG_EXECFUNCS_NSYMBOLS must be defined" -#endif - -/**************************************************************************** - * Public Variables - ****************************************************************************/ - -extern const struct symtab_s CONFIG_EXECFUNCS_SYMTAB; - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -static FAR const struct symtab_s *g_exec_symtab = &CONFIG_EXECFUNCS_SYMTAB; -static int g_exec_nsymbols = CONFIG_EXECFUNCS_NSYMBOLS; - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: exec_getsymtab - * - * Description: - * Get the current symbol table selection as an atomic operation. - * - * Input Parameters: - * symtab - The location to store the symbol table. - * nsymbols - The location to store the number of symbols in the symbol table. - * - * Returned Value: - * None - * - ****************************************************************************/ - -void exec_getsymtab(FAR const struct symtab_s **symtab, FAR int *nsymbols) -{ - irqstate_t flags; - - DEBUGASSERT(symtab && nsymbols); - - /* Disable interrupts very briefly so that both the symbol table and its - * size are returned as a single atomic operation. - */ - - flags = irqsave(); - *symtab = g_exec_symtab; - *nsymbols = g_exec_nsymbols; - irqrestore(flags); -} - -/**************************************************************************** - * Name: exec_setsymtab - * - * Description: - * Select a new symbol table selection as an atomic operation. - * - * Input Parameters: - * symtab - The new symbol table. - * nsymbols - The number of symbols in the symbol table. - * - * Returned Value: - * None - * - ****************************************************************************/ - -void exec_setsymtab(FAR const struct symtab_s *symtab, int nsymbols) -{ - irqstate_t flags; - - DEBUGASSERT(symtab); - - /* Disable interrupts very briefly so that both the symbol table and its - * size are set as a single atomic operation. - */ - - flags = irqsave(); - g_exec_symtab = symtab; - g_exec_nsymbols = nsymbols; - irqrestore(flags); -} - -#endif /* CONFIG_LIBC_EXECFUNCS */
\ No newline at end of file diff --git a/nuttx/libc/unistd/lib_execv.c b/nuttx/libc/unistd/lib_execv.c deleted file mode 100644 index 48b089913..000000000 --- a/nuttx/libc/unistd/lib_execv.c +++ /dev/null @@ -1,151 +0,0 @@ -/**************************************************************************** - * libc/unistd/lib_execv.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdlib.h> -#include <unistd.h> -#include <errno.h> -#include <debug.h> - -#include <nuttx/binfmt/binfmt.h> - -#ifdef CONFIG_LIBC_EXECFUNCS - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: execv - * - * Description: - * The standard 'exec' family of functions will replace the current process - * image with a new process image. The new image will be constructed from a - * regular, executable file called the new process image file. There will - * be no return from a successful exec, because the calling process image - * is overlaid by the new process image. - * - * Simplified 'execl()' and 'execv()' functions are provided by NuttX for - * compatibility. NuttX is a tiny embedded RTOS that does not support - * processes and hence the concept of overlaying a tasks process image with - * a new process image does not make any sense. In NuttX, these functions - * are wrapper functions that: - * - * 1. Call the non-standard binfmt function 'exec', and then - * 2. exit(0). - * - * Note the inefficiency when 'exec[l|v]()' is called in the normal, two- - * step process: (1) first call vfork() to create a new thread, then (2) - * call 'exec[l|v]()' to replace the new thread with a program from the - * file system. Since the new thread will be terminated by the - * 'exec[l|v]()' call, it really served no purpose other than to support - * Unix compatility. - * - * The non-standard binfmt function 'exec()' needs to have (1) a symbol - * table that provides the list of symbols exported by the base code, and - * (2) the number of symbols in that table. This information is currently - * provided to 'exec()' from 'exec[l|v]()' via NuttX configuration settings: - * - * CONFIG_LIBC_EXECFUNCS : Enable exec[l|v] support - * CONFIG_EXECFUNCS_SYMTAB : Symbol table used by exec[l|v] - * CONFIG_EXECFUNCS_NSYMBOLS : Number of symbols in the table - * - * As a result of the above, the current implementations of 'execl()' and - * 'execv()' suffer from some incompatibilities that may or may not be - * addressed in a future version of NuttX. Other than just being an - * inefficient use of MCU resource, the most serious of these is that - * the exec'ed task will not have the same task ID as the vfork'ed - * function. So the parent function cannot know the ID of the exec'ed - * task. - * - * Input Parameters: - * path - The path to the program to be executed. If CONFIG_BINFMT_EXEPATH - * is defined in the configuration, then this may be a relative path - * from the current working directory. Otherwise, path must be the - * absolute path to the program. - * argv - A pointer to an array of string arguments. The end of the - * array is indicated with a NULL entry. - * - * Returned Value: - * This function does not return on success. On failure, it will return - * -1 (ERROR) and will set the 'errno' value appropriately. - * - ****************************************************************************/ - -int execv(FAR const char *path, FAR char *const argv[]) -{ - FAR const struct symtab_s *symtab; - int nsymbols; - int ret; - - /* Get the current symbol table selection */ - - exec_getsymtab(&symtab, &nsymbols); - - /* Start the task */ - - ret = exec(path, (FAR const char **)argv, symtab, nsymbols); - if (ret < 0) - { - sdbg("exec failed: %d\n", errno); - return ERROR; - } - - /* Then exit */ - - exit(0); - - /* We should not get here, but might be needed by some compilers. Other, - * smarter compilers might complain that this code is unreachable. You just - * can't win. - */ - - return ERROR; -} - -#endif /* CONFIG_LIBC_EXECFUNCS */ diff --git a/nuttx/libc/unistd/lib_getcwd.c b/nuttx/libc/unistd/lib_getcwd.c deleted file mode 100644 index 717ef2971..000000000 --- a/nuttx/libc/unistd/lib_getcwd.c +++ /dev/null @@ -1,132 +0,0 @@ -/**************************************************************************** - * libc/unistd/lib_getcwd.c - * - * Copyright (C) 2008, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/types.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <errno.h> - -#include "lib_internal.h" - -#if CONFIG_NFILE_DESCRIPTORS > 0 && !defined(CONFIG_DISABLE_ENVIRON) - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Public Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: getwcd - * - * Description: - * getcwd() function places the absolute pathname of the current working - * directory in the array pointed to by 'buf', and returns 'buf.' The - * pathname copied to the array shall contain no components that are - * symbolic links. The 'size' argument is the size in bytes of the - * character array pointed to by the 'buf' argument. - * - * Input Parmeters: - * buf - a pointer to the location in which the current working directory - * pathaname is returned. - * size - The size in bytes avaiable at 'buf' - * - * Returned Value: - * Upon successful completion, getcwd() returns the 'buf' argument. - * Otherwise, getcwd() returns a null pointer and sets errno to indicate - * the error: - * - * EINVAL - * The 'size' argument is 0 or the 'buf' argument is NULL. - * ERANGE - * The size argument is greater than 0, but is smaller than the length - * of the currrent working directory pathname +1. - * EACCES - * Read or search permission was denied for a component of the pathname. - * ENOMEM - * Insufficient storage space is available. - * - ****************************************************************************/ - -FAR char *getcwd(FAR char *buf, size_t size) -{ - char *pwd; - - /* Verify input parameters */ - -#ifdef CONFIG_DEBUG - if (!buf || !size) - { - set_errno(EINVAL); - return NULL; - } -#endif - - /* If no working directory is defined, then default to the home directory */ - - pwd = getenv("PWD"); - if (!pwd) - { - pwd = CONFIG_LIB_HOMEDIR; - } - - /* Verify that the cwd will fit into the user-provided buffer */ - - if (strlen(pwd) + 1 > size) - { - set_errno(ERANGE); - return NULL; - } - - /* Copy the cwd to the user buffer */ - - strcpy(buf, pwd); - sched_unlock(); - return buf; -} -#endif /* CONFIG_NFILE_DESCRIPTORS && !CONFIG_DISABLE_ENVIRON */ diff --git a/nuttx/libc/unistd/lib_getopt.c b/nuttx/libc/unistd/lib_getopt.c deleted file mode 100644 index 1a9190976..000000000 --- a/nuttx/libc/unistd/lib_getopt.c +++ /dev/null @@ -1,269 +0,0 @@ -/**************************************************************************** - * libc/unistd/lib_getopt.c - * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdbool.h> -#include <unistd.h> -#include <string.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -FAR char *optarg; /* Optional argument following option */ -int optind = 1; /* Index into argv */ -int optopt = '?'; /* unrecognized option character */ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -static FAR char *g_optptr = NULL; -static bool g_binitialized = false; - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: getopt - * - * Description: getopt() parses command-line arguments. Its arguments argc - * and argv are the argument count and array as passed to the main() - * function on program invocation. An element of argv that starts with - * '-' is an option element. The characters of this element (aside from - * the initial '-') are option characters. If getopt() is called repeatedly, - * it returns successively each of the option characters from each of the - * option elements. - * - * If getopt() finds another option character, it returns that character, - * updating the external variable optind and a static variable nextchar so - * that the next call to getopt() can resume the scan with the following - * option character or argv-element. - * - * If there are no more option characters, getopt() returns -1. Then optind - * is the index in argv of the first argv-element that is not an option. - * - * The 'optstring' argument is a string containing the legitimate option - * characters. If such a character is followed by a colon, this indicates - * that the option requires an argument. If an argument is required for an - * option so getopt() places a pointer to the following text in the same - * argv-element, or the text of the following argv-element, in optarg. - * - * NOTES: - * 1. opterr is not supported and this implementation of getopt() never - * printfs error messages. - * 2. getopt is NOT threadsafe! - * 3. This version of getopt() does not reset global variables until - * -1 is returned. As a result, your command line parsing loops - * must call getopt() repeatedly and continue to parse if other - * errors are returned ('?' or ':') until getopt() finally returns -1. - * (You can also set optind to -1 to force a reset). - * - * Return: If an option was successfully found, then getopt() returns the - * option character. If all command-line options have been parsed, then - * getopt() returns -1. If getopt() encounters an option character that - * was not in optstring, then '?' is returned. If getopt() encounters an - * option with a missing argument, then the return value depends on the - * first character in optstring: if it is ':', then ':' is returned; - * otherwise '?' is returned. - * - ****************************************************************************/ - -int getopt(int argc, FAR char *const argv[], FAR const char *optstring) -{ - if (argv && optstring && argc > 1) - { - int noarg_ret = '?'; - char *optchar; - - /* The inital value of optind is 1. If getopt() is called again in the - * program, optind must be reset to some value <= 1. - */ - - if (optind < 1 || !g_binitialized) - { - optind = 1; /* Skip over the program name */ - g_optptr = NULL; /* Start at the beginning of the first argument */ - g_binitialized = true; /* Now we are initialized */ - } - - /* If the first character of opstring s ':', then ':' is in the event of - * a missing argument. Otherwise '?' is returned. - */ - - if (*optstring == ':') - { - noarg_ret = ':'; - optstring++; - } - - /* Are we resuming in the middle, or at the end of a string of arguments? - * g_optptr == NULL means that we are started at the beginning of argv[optind]; - * *g_optptr == \0 means that we are starting at the beginning of optind+1 - */ - - while (!g_optptr || !*g_optptr) - { - /* We need to start at the beginning of the next argv. Check if we need - * to increment optind - */ - - if (g_optptr) - { - /* Yes.. Increment it and check for the case where where we have - * processed everything in the argv[] array. - */ - - optind++; - } - - /* Check for the end of the argument list */ - - g_optptr = argv[optind]; - if (!g_optptr) - { - /* There are no more arguments, we are finished */ - - g_binitialized = false; - return ERROR; - } - - /* We are starting at the beginning of argv[optind]. In this case, the - * first character must be '-' - */ - - if (*g_optptr != '-') - { - /* The argument does not start with '-', we are finished */ - - g_binitialized = false; - return ERROR; - } - - /* Skip over the '-' */ - - g_optptr++; - } - - /* Special case handling of "-" and "-:" */ - - if (!*g_optptr) - { - optopt = '\0'; /* We'll fix up g_optptr the next time we are called */ - return '?'; - } - - /* Handle the case of "-:" */ - - if (*g_optptr == ':') - { - optopt = ':'; - g_optptr++; - return '?'; - } - - /* g_optptr now points at the next option and it is not something crazy. - * check if the option is in the list of valid options. - */ - - optchar = strchr(optstring, *g_optptr); - if (!optchar) - { - /* No this character is not in the list of valid options */ - - optopt = *g_optptr; - g_optptr++; - return '?'; - } - - /* Yes, the character is in the list of valid options. Does it have an - * required argument? - */ - - if (optchar[1] != ':') - { - /* No, no arguments. Just return the character that we found */ - - g_optptr++; - return *optchar; - } - - /* Yes, it has a required argument. Is the required argument - * immediately after the command in this same argument? - */ - - if (g_optptr[1] != '\0') - { - /* Yes, return a pointer into the current argument */ - - optarg = &g_optptr[1]; - optind++; - g_optptr = NULL; - return *optchar; - } - - /* No.. is the optional argument the next argument in argv[] ? */ - - if (argv[optind+1] && *argv[optind+1] != '-') - { - /* Yes.. return that */ - - optarg = argv[optind+1]; - optind += 2; - g_optptr = NULL; - return *optchar; - } - - /* No argument was supplied */ - - optarg = NULL; - optopt = *optchar; - optind++; - return noarg_ret; - } - - g_binitialized = false; - return ERROR; -} diff --git a/nuttx/libc/unistd/lib_getoptargp.c b/nuttx/libc/unistd/lib_getoptargp.c deleted file mode 100644 index 5610342ca..000000000 --- a/nuttx/libc/unistd/lib_getoptargp.c +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** - * libc/unistd/lib_getoptargp.c - * - * Copyright (C) 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <unistd.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: getoptargp - * - * Description: - * Returns a pointer to optarg. This function is only used for external - * modules that need to access the base, global variable, optarg. - * - ****************************************************************************/ - -FAR char **getoptargp(void) -{ - return &optarg; -} - diff --git a/nuttx/libc/unistd/lib_getoptindp.c b/nuttx/libc/unistd/lib_getoptindp.c deleted file mode 100644 index 94ea4d3fc..000000000 --- a/nuttx/libc/unistd/lib_getoptindp.c +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** - * libc/unistd/lib_getoptindp.c - * - * Copyright (C) 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <unistd.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: getoptindp - * - * Description: - * Returns a pointer to optind. This function is only used for external - * modules that need to access the base, global variable, optind. - * - ****************************************************************************/ - -int *getoptindp(void) -{ - return &optind; -} - diff --git a/nuttx/libc/unistd/lib_getoptoptp.c b/nuttx/libc/unistd/lib_getoptoptp.c deleted file mode 100644 index cd99b172f..000000000 --- a/nuttx/libc/unistd/lib_getoptoptp.c +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** - * libc/unistd/lib_getoptoptp.c - * - * Copyright (C) 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * 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 NuttX 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <unistd.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Global Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: getoptoptp - * - * Description: - * Returns a pointer to optopt. This function is only used for external - * modules that need to access the base, global variable, optopt. - * - ****************************************************************************/ - -int *getoptoptp(void) -{ - return &optopt; -} - |