Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  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. #endif