Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5936 | pavelyakov | 1 | #ifndef STDLIB_C_INCLUDE |
2 | #define STDLIB_C_INCLUDE |
||
3 | |||
4 | #define RAND_MAX 0x7FFFU |
||
5 | |||
6 | #define isspace(c) ((c)==' ') |
||
7 | #define abs(i) (((i)<0)?(-(i)):(i)) |
||
8 | |||
9 | #define random(num) ((rand()*(num))/((RAND_MAX+1))) |
||
10 | |||
11 | static unsigned int seed_o = 0x45168297; |
||
12 | |||
13 | |||
14 | static inline void srand (unsigned seed) |
||
15 | { |
||
16 | seed_o = seed; |
||
17 | } |
||
18 | |||
19 | |||
20 | static inline int rand (void) |
||
21 | { |
||
22 | seed_o = seed_o * 0x15a4e35 + 1; |
||
23 | return(seed_o >> 16); |
||
24 | } |
||
25 | |||
26 | |||
27 | static inline void* malloc(unsigned s) |
||
28 | { |
||
29 | asm ("int $0x40"::"a"(68), "b"(12), "c"(s) ); |
||
30 | } |
||
31 | |||
32 | |||
33 | static inline void free(void *p) |
||
34 | { |
||
35 | asm ("int $0x40"::"a"(68), "b"(13), "c"(p) ); |
||
36 | } |
||
37 | |||
38 | static inline void *realloc(void *data, long size) |
||
39 | { |
||
40 | void *r = malloc(size); |
||
41 | byte *p = (byte *)r; |
||
42 | byte *pd = (byte *)data; |
||
43 | while(size--) *p++=*pd++; |
||
44 | free(data); |
||
45 | return r; |
||
46 | } |
||
47 | |||
48 | |||
49 | #endif0)?(-(i)):(i)) |