nuttx/include/cxx/cstdlib
2019-04-21 15:11:24 -06:00

164 lines
3.8 KiB
Plaintext

//***************************************************************************
// include/cxx/cstdlib
//
// Copyright (C) 2009, 2012, 2015-2017 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 __INCLUDE_CXX_CSTDLIB
#define __INCLUDE_CXX_CSTDLIB
//***************************************************************************
// Included Files
//***************************************************************************
#include <nuttx/config.h>
#include <stdlib.h>
//***************************************************************************
// Namespace
//***************************************************************************
namespace std
{
// Random number generation
using ::srand;
using ::rand;
using ::random;
#ifndef CONFIG_DISABLE_ENVIRON
// Environment variable support
using ::get_environ_ptr;
using ::getenv;
using ::putenv;
using ::clearenv;
using ::setenv;
using ::unsetenv;
#endif
// Process exit functions
using ::exit;
using ::abort;
#ifdef CONFIG_SCHED_ATEXIT
using ::atexit;
#endif
#ifdef CONFIG_SCHED_ONEXIT
using ::on_exit;
#endif
#ifndef __KERNEL__
// System command
using ::system;
#endif
// String to binary conversions
using ::strtol;
using ::strtoul;
#ifdef CONFIG_HAVE_LONG_LONG
using ::strtoll;
using ::strtoull;
#endif
using ::strtof;
#ifdef CONFIG_HAVE_DOUBLE
using ::strtod;
#endif
#ifdef CONFIG_HAVE_LONG_DOUBLE
using ::strtold;
#endif
// Binary to string conversions
using ::itoa;
// Wide character operations
#ifdef CONFIG_LIBC_WCHAR
using ::mbtowc;
using ::wctomb;
#endif
// Memory Management
using ::malloc;
using ::free;
using ::realloc;
using ::memalign;
using ::zalloc;
using ::calloc;
using ::mallinfo;
#ifdef CONFIG_PSEUDOTERM
// Pseudo-Terminals
#ifdef CONFIG_PSEUDOTERM_SUSV1
using ::ptsname;
using ::ptsname_r;
#endif
using ::unlockpt;
#endif
// Arithmetic
using ::abs;
using ::labs;
#ifdef CONFIG_HAVE_LONG_LONG
using ::llabs;
#endif
#ifdef CONFIG_CAN_PASS_STRUCTS
using ::div;
using ::ldiv;
#ifdef CONFIG_HAVE_LONG_LONG
using ::lldiv;
#endif
#endif
// Temporary files
using ::mktemp;
using ::mkstemp;
// Sorting
using ::qsort;
// Binary search
using ::bsearch;
}
#endif // __INCLUDE_CXX_CSTDLIB