Serenity Operating System
at master 106 lines 3.2 kB view raw
1/* 2 * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include <bits/wchar.h> 10#include <stddef.h> 11#include <sys/cdefs.h> 12#include <sys/types.h> 13 14__BEGIN_DECLS 15 16#define EXIT_SUCCESS 0 17#define EXIT_FAILURE 1 18 19__attribute__((noreturn)) void _abort(void); 20 21__attribute__((malloc)) __attribute__((alloc_size(1))) void* malloc(size_t); 22__attribute__((malloc)) __attribute__((alloc_size(1, 2))) void* calloc(size_t nmemb, size_t); 23size_t malloc_size(void const*); 24size_t malloc_good_size(size_t); 25void serenity_dump_malloc_stats(void); 26void free(void*); 27__attribute__((alloc_size(2))) void* realloc(void* ptr, size_t); 28char* getenv(char const* name); 29char* secure_getenv(char const* name); 30int putenv(char*); 31int serenity_putenv(char const* new_var, size_t length); 32int unsetenv(char const*); 33int clearenv(void); 34int setenv(char const* name, char const* value, int overwrite); 35char const* getprogname(void); 36void setprogname(char const*); 37int atoi(char const*); 38long atol(char const*); 39long long atoll(char const*); 40double strtod(char const*, char** endptr); 41long double strtold(char const*, char** endptr); 42float strtof(char const*, char** endptr); 43long strtol(char const*, char** endptr, int base); 44long long strtoll(char const*, char** endptr, int base); 45unsigned long long strtoull(char const*, char** endptr, int base); 46unsigned long strtoul(char const*, char** endptr, int base); 47void qsort(void* base, size_t nmemb, size_t size, int (*compar)(void const*, void const*)); 48void qsort_r(void* base, size_t nmemb, size_t size, int (*compar)(void const*, void const*, void*), void* arg); 49int atexit(void (*function)(void)); 50__attribute__((noreturn)) void exit(int status); 51__attribute__((noreturn)) void abort(void); 52char* ptsname(int fd); 53int ptsname_r(int fd, char* buffer, size_t); 54int abs(int); 55long labs(long); 56long long int llabs(long long int); 57double atof(char const*); 58int system(char const* command); 59char* mktemp(char*); 60int mkstemp(char*); 61int mkstemps(char*, int); 62char* mkdtemp(char*); 63void* bsearch(void const* key, void const* base, size_t nmemb, size_t size, int (*compar)(void const*, void const*)); 64int mblen(char const*, size_t); 65size_t mbstowcs(wchar_t*, char const*, size_t); 66int mbtowc(wchar_t*, char const*, size_t); 67int wctomb(char*, wchar_t); 68size_t wcstombs(char*, wchar_t const*, size_t); 69char* realpath(char const* pathname, char* buffer); 70__attribute__((noreturn)) void _Exit(int status); 71 72#define RAND_MAX 32767 73int rand(void); 74void srand(unsigned seed); 75 76long int random(void); 77void srandom(unsigned seed); 78 79uint32_t arc4random(void); 80void arc4random_buf(void*, size_t); 81uint32_t arc4random_uniform(uint32_t); 82 83typedef struct { 84 int quot; 85 int rem; 86} div_t; 87div_t div(int, int); 88typedef struct { 89 long quot; 90 long rem; 91} ldiv_t; 92ldiv_t ldiv(long, long); 93typedef struct { 94 long long quot; 95 long long rem; 96} lldiv_t; 97lldiv_t lldiv(long long, long long); 98 99int posix_openpt(int flags); 100int grantpt(int fd); 101int unlockpt(int fd); 102 103int posix_memalign(void**, size_t alignment, size_t size); 104__attribute__((malloc, alloc_size(2), alloc_align(1))) void* aligned_alloc(size_t alignment, size_t size); 105 106__END_DECLS