| //*************************************************************************** |
| // include/cxx/cstdlib |
| // |
| // SPDX-License-Identifier: Apache-2.0 |
| // |
| // 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; |
| |
| // Environment variable support |
| |
| using ::getenv; |
| using ::putenv; |
| using ::clearenv; |
| using ::setenv; |
| using ::unsetenv; |
| |
| // Process exit functions |
| |
| using ::exit; |
| using ::quick_exit; |
| using ::abort; |
| using ::atexit; |
| using ::at_quick_exit; |
| using ::on_exit; |
| |
| #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 |
| |
| using ::mbtowc; |
| using ::wctomb; |
| |
| // Memory Management |
| |
| using ::malloc; |
| using ::free; |
| using ::realloc; |
| using ::memalign; |
| using ::zalloc; |
| using ::calloc; |
| |
| #ifdef CONFIG_PSEUDOTERM |
| // Pseudo-Terminals |
| |
| using ::ptsname; |
| using ::ptsname_r; |
| 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 |