source: trunk/sys/dietlibc/include/stdlib.h @ 204

Last change on this file since 204 was 1, checked in by alain, 8 years ago

First import

File size: 2.8 KB
Line 
1#ifndef _STDLIB_H
2#define _STDLIB_H
3
4
5#include <sys/types.h>
6#include <wchar.h>
7//#include <alloca.h>
8
9#define alloca(x) __builtin_alloca(x)
10
11void *calloc(size_t nmemb, size_t size);
12void *malloc(size_t size);
13void* realloc(void *ptr, size_t size);
14void* valloc(size_t size);
15void free(void *ptr);
16
17int atexit(void (*function)(void));
18long int strtol(const char *nptr, char **endptr, int base);
19unsigned long int strtoul(const char *nptr, char **endptr, int base);
20double strtod(const char* s, char** endptr);
21
22extern int __ltostr(char *s, unsigned int size, unsigned long i, unsigned int base, int UpCase);
23extern int __dtostr(double d,char *buf,unsigned int maxlen,unsigned int prec,unsigned int prec2,int g);
24
25#if !defined(__STRICT_ANSI__) || __STDC_VERSION__ + 0 >= 199900L
26long long int strtoll(const char *nptr, char **endptr, int base);
27unsigned long long int strtoull(const char *nptr, char **endptr, int base);
28int __lltostr(char *s, unsigned int size, unsigned long long i, unsigned int base, int UpCase);
29#endif
30
31int atoi(const char *nptr);
32long int atol(const char *nptr);
33long long int atoll(const char *nptr);
34#define atof(_x) strtod((_x), NULL)
35
36void exit(int status);
37void abort(void);
38
39extern int rand(void);
40extern int rand_r(unsigned int *seed);
41extern void srand(unsigned int seed);
42
43extern char **environ;
44char *getenv(const char *name);
45int setenv(const char *name, const char *value, int overwrite);
46int unsetenv(const char *name);
47int putenv(const char *string);
48
49typedef unsigned short randbuf[3];
50long lrand48(void);
51long mrand48(void);
52double drand48(void);
53void srand48(long seed);
54unsigned short *seed48(randbuf buf);
55void lcong48(unsigned short param[7]);
56long jrand48(randbuf buf);
57long nrand48(randbuf buf);
58double frand48(randbuf buf);
59
60void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
61void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
62
63int mkstemp(char *_template);
64
65int abs(int i) __attribute__((__const__));
66long int labs(long int i) __attribute__((__const__));
67long long int llabs(long long int i) __attribute__((__const__));
68
69
70#define EXIT_FAILURE 1
71#define EXIT_SUCCESS 0
72
73#define RAND_MAX        0x7ffffffe
74
75#define MB_CUR_MAX 1
76
77/* now these functions are the greatest bullshit I have ever seen.
78 * The ISO people must be out of their minds. */
79
80typedef struct { int quot,rem; } div_t;
81typedef struct { long quot,rem; } ldiv_t;
82
83div_t div(int numerator, int denominator);
84ldiv_t ldiv(long numerator, long denominator);
85
86#ifdef _GNU_SOURCE
87typedef struct { long long quot,rem; } lldiv_t;
88lldiv_t lldiv(long long numerator, long long denominator);
89
90int clearenv(void);
91#endif
92
93int mbtowc(wchar_t *pwc, const char *s, size_t n);
94int wctomb(char *s, wchar_t wc);
95size_t mbstowcs(wchar_t *dest, const char *src, size_t n);
96int mblen(const char* s,size_t n);
97
98#endif
Note: See TracBrowser for help on using the repository browser.