Files
Custom-Operating-System/libs/libc/include/stdlib.h

65 lines
1.3 KiB
C

#ifndef _LIBC_STDLIB_H
#define _LIBC_STDLIB_H
#include <stddef.h>
#include <sys/cdefs.h>
#include <sys/environ.h>
#include <sys/types.h>
__BEGIN_DECLS
#define EXIT_FAILURE 1
#define EXIT_SUCCESS 0
#ifndef NOMINMAX
#ifndef max
#define max(a, b) \
({ __typeof__ (a) _a = (a); \
__typeof__ (b) _b = (b); \
_a > _b ? _a : _b; })
#endif /* max */
#ifndef min
#define min(a, b) \
({ __typeof__ (a) _a = (a); \
__typeof__ (b) _b = (b); \
_a < _b ? _a : _b; })
#endif /* min */
#endif /* NOMINMAX */
static inline int abs(int i)
{
return i < 0 ? -i : i;
}
/* malloc */
extern void* malloc(size_t);
extern void free(void*);
extern void* calloc(size_t, size_t);
extern void* realloc(void*, size_t);
/* tools */
int atoi(const char* s);
/* exit */
void abort() __attribute__((noreturn));
void exit(int status) __attribute__((noreturn));
/* pts */
int posix_openpt(int flags);
int ptsname_r(int fd, char* buf, size_t buflen);
char* ptsname(int fd);
/* env */
int putenv(char* string);
char* getenv(const char* name);
int setenv(const char* name, const char* value, int overwrite);
int unsetenv(const char* name);
long strtol(const char* nptr, char** endptr, int base);
void qsort(void* base, size_t nitems, size_t size, int (*compar)(const void*, const void*));
__END_DECLS
#endif // _LIBC_STDLIB_H