Subversion Repositories Kolibri OS

Rev

Rev 9811 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
8687 turbocat 1
#ifndef _STDLIB_H_
2
#define _STDLIB_H_
3
 
4
#include 
5
 
9766 turbocat 6
#define RAND_MAX 65535
8687 turbocat 7
#ifndef NULL
9766 turbocat 8
#define NULL ((void*)0)
8687 turbocat 9
#endif
10
 
9766 turbocat 11
#define min(a, b) ((a) < (b) ? (a) : (b))
12
#define max(a, b) ((a) > (b) ? (a) : (b))
8687 turbocat 13
 
9766 turbocat 14
typedef struct {
9233 turbocat 15
    int quot;
9766 turbocat 16
    int rem;
9233 turbocat 17
} div_t;
8687 turbocat 18
 
9766 turbocat 19
typedef struct {
20
    long quot;
9233 turbocat 21
    long rem;
22
} ldiv_t;
8687 turbocat 23
 
9766 turbocat 24
typedef struct {
25
    long long quot;
26
    long long rem;
9233 turbocat 27
} lldiv_t;
28
 
9766 turbocat 29
static inline div_t div(int num, int den)
30
{
31
    return (div_t) { num / den, num % den };
9233 turbocat 32
}
33
 
9766 turbocat 34
static inline ldiv_t ldiv(long num, long den)
35
{
36
    return (ldiv_t) { num / den, num % den };
9233 turbocat 37
}
38
 
9766 turbocat 39
static inline lldiv_t lldiv(long long num, long long den)
40
{
41
    return (lldiv_t) { num / den, num % den };
9233 turbocat 42
}
43
 
9812 Coldy 44
DLLAPI void* malloc(size_t size);
45
DLLAPI void* calloc(size_t num, size_t size);
46
DLLAPI void* realloc(void* ptr, size_t newsize);
47
DLLAPI void free(void* ptr);
8687 turbocat 48
 
9812 Coldy 49
DLLAPI long int strtol(const char* str, char** endptr, int base);
8687 turbocat 50
 
9812 Coldy 51
DLLAPI void exit(int status);
8687 turbocat 52
 
9812 Coldy 53
DLLAPI void srand(unsigned s);
54
DLLAPI int rand(void);
8743 turbocat 55
 
9812 Coldy 56
DLLAPI void __assert_fail(const char* expr, const char* file, int line, const char* func);
57
DLLAPI void qsort(void* base0, size_t n, size_t size, int (*compar)(const void*, const void*));
9013 turbocat 58
 
9812 Coldy 59
DLLAPI double strtod(const char* s, char** sret);
60
DLLAPI double atof(const char* ascii);
9137 turbocat 61
 
9812 Coldy 62
DLLAPI int atoi(const char* s);
63
DLLAPI long atol(const char*);
64
DLLAPI long long atoll(const char*);
65
DLLAPI void itoa(int n, char* s);
9766 turbocat 66
 
9812 Coldy 67
DLLAPI int abs(int);
68
DLLAPI long labs(long);
69
DLLAPI long long llabs(long long);
9766 turbocat 70
 
8743 turbocat 71
#endif