codekingpro/portable-devtools
114k
1// -*- C++ -*-2//===--------------------------- stdlib.h ---------------------------------===//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9 10#if defined(__need_malloc_and_calloc) || defined(_LIBCUDACXX_STDLIB_INCLUDE_NEXT)11 12#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)13# pragma GCC system_header14#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)15# pragma clang system_header16#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)17# pragma system_header18#endif // no system header19 20#if defined(_LIBCUDACXX_STDLIB_INCLUDE_NEXT)21#undef _LIBCUDACXX_STDLIB_INCLUDE_NEXT22#endif23 24#include_next <stdlib.h>25 26#elif !defined(_LIBCUDACXX_STDLIB_H)27#define _LIBCUDACXX_STDLIB_H28 29/*30 stdlib.h synopsis31 32Macros:33 34 EXIT_FAILURE35 EXIT_SUCCESS36 MB_CUR_MAX37 NULL38 RAND_MAX39 40Types:41 42 size_t43 div_t44 ldiv_t45 lldiv_t // C9946 47double atof (const char* nptr);48int atoi (const char* nptr);49long atol (const char* nptr);50long long atoll(const char* nptr); // C9951double strtod (const char* restrict nptr, char** restrict endptr);52float strtof (const char* restrict nptr, char** restrict endptr); // C9953long double strtold (const char* restrict nptr, char** restrict endptr); // C9954long strtol (const char* restrict nptr, char** restrict endptr, int base);55long long strtoll (const char* restrict nptr, char** restrict endptr, int base); // C9956unsigned long strtoul (const char* restrict nptr, char** restrict endptr, int base);57unsigned long long strtoull(const char* restrict nptr, char** restrict endptr, int base); // C9958int rand(void);59void srand(unsigned int seed);60void* calloc(size_t nmemb, size_t size);61void free(void* ptr);62void* malloc(size_t size);63void* realloc(void* ptr, size_t size);64void abort(void);65int atexit(void (*func)(void));66void exit(int status);67void _Exit(int status);68char* getenv(const char* name);69int system(const char* string);70void* bsearch(const void* key, const void* base, size_t nmemb, size_t size,71 int (*compar)(const void *, const void *));72void qsort(void* base, size_t nmemb, size_t size,73 int (*compar)(const void *, const void *));74int abs( int j);75long abs( long j);76long long abs(long long j); // C++0X77long labs( long j);78long long llabs(long long j); // C9979div_t div( int numer, int denom);80ldiv_t div( long numer, long denom);81lldiv_t div(long long numer, long long denom); // C++0X82ldiv_t ldiv( long numer, long denom);83lldiv_t lldiv(long long numer, long long denom); // C9984int mblen(const char* s, size_t n);85int mbtowc(wchar_t* restrict pwc, const char* restrict s, size_t n);86int wctomb(char* s, wchar_t wchar);87size_t mbstowcs(wchar_t* restrict pwcs, const char* restrict s, size_t n);88size_t wcstombs(char* restrict s, const wchar_t* restrict pwcs, size_t n);89int at_quick_exit(void (*func)(void)) // C++1190void quick_exit(int status); // C++1191void *aligned_alloc(size_t alignment, size_t size); // C1192 93*/94 95#include <__config>96 97#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)98# pragma GCC system_header99#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)100# pragma clang system_header101#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)102# pragma system_header103#endif // no system header104 105#include_next <stdlib.h>106 107#ifdef __cplusplus108#include <math.h>109#endif // __cplusplus110 111#endif // _LIBCUDACXX_STDLIB_H112 