nuttx/include/cxx/cstdlib
2020-06-18 10:23:47 +08:00

149 lines
3.0 KiB
Plaintext

//***************************************************************************
// include/cxx/cstdlib
//
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership. The
// ASF licenses this file to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance with the
// License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations
// under the License.
//
//***************************************************************************
#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 ::atof;
using ::atoi;
using ::atol;
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;
#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
using ::div;
using ::ldiv;
#ifdef CONFIG_HAVE_LONG_LONG
using ::lldiv;
#endif
// Temporary files
using ::mktemp;
using ::mkstemp;
// Sorting
using ::qsort;
// Binary search
using ::bsearch;
}
#endif // __INCLUDE_CXX_CSTDLIB