Subversion Repositories Kolibri OS

Rev

Rev 300 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1.  
  2.  
  3. #ifndef kolibc_h
  4. #define kolibc_h
  5.  
  6. #ifdef __cplusplus
  7. extern "C"
  8. {
  9. #endif
  10.  
  11. typedef unsigned char byte;
  12. typedef unsigned short int word;
  13. typedef unsigned int dword;
  14.  
  15. typedef unsigned int fpos_t;
  16. typedef unsigned int size_t;
  17.  
  18. #//define NULL (void*)0
  19.  
  20. #define SEEK_SET 0
  21. #define SEEK_CUR 1
  22. #define SEEK_END 2
  23.  
  24. #define FILE_OPEN_READ    0x01
  25. #define FILE_OPEN_WRITE   0x02
  26. #define FILE_OPEN_APPEND  0x04
  27. #define FILE_OPEN_TEXT    0x08
  28. #define FILE_OPEN_PLUS    0x10
  29. #define EOF -1
  30.  
  31. typedef struct
  32. {
  33.   char   *buffer;
  34.   char   *stream;
  35.   size_t    strpos;
  36.   size_t    remain;
  37.  
  38.   size_t filepos;
  39.  
  40.   size_t buffersize;
  41.   size_t filesize;
  42.   char*  filename;
  43.   int    mode;
  44. } FILE;
  45.  
  46. extern FILE* fopen(const char* filename, const char *mode);
  47. extern int fclose(FILE* file);
  48. extern int feof(FILE* file);
  49. extern int fflush(FILE* file);
  50. extern int fgetc(FILE* file);
  51. extern int fgetpos(FILE* file,fpos_t* pos);
  52. extern int fsetpos(FILE* file,const fpos_t* pos);
  53. extern int fputc(int c,FILE* file);
  54. extern int fread(void* buffer,size_t size,size_t count,FILE* file);
  55. extern int fwrite(const void* buffer,size_t size,size_t count,FILE* file);
  56. extern long ftell(FILE* file);
  57. extern int fseek(FILE* file,long offset,int origin);
  58. extern void rewind(FILE* file);
  59. extern int fprintf(FILE* file, const char* format, ...);
  60. extern int fscanf(FILE* file,const char* format, ...);
  61. extern int ungetc(int c,FILE* file);
  62.  
  63. extern int sprintf(char *dest, const char *format,...);
  64. extern int printf(const char *format,...);
  65.  
  66. typedef char *va_list;
  67. #define _roundsize(n)    ( (sizeof(n) + 3) & ~3 )
  68. #define va_start(ap,v) (ap = (va_list)&v+_roundsize(v))
  69. #define va_arg(ap,t)    ( *(t *)((ap += _roundsize(t)) - _roundsize(t)) )
  70. #define va_end(ap) (ap = (va_list)0)
  71.  
  72. /*
  73. ** All character classification functions except isascii().
  74. ** Integer argument (c) must be in ASCII range (0-127) for
  75. ** dependable answers.
  76. */
  77.  
  78. #define ALNUM     1
  79. #define ALPHA     2
  80. #define CNTRL     4
  81. #define DIGIT     8
  82. #define GRAPH    16
  83. #define LOWER    32
  84. #define PRINT    64
  85. #define PUNCT   128
  86. #define BLANK   256
  87. #define UPPER   512
  88. #define XDIGIT 1024
  89.  
  90. extern short int _is[128];
  91.  
  92. #define isalnum(c)(_is[c] & ALNUM ) /* 'a'-'z', 'A'-'Z', '0'-'9' */
  93. #define isalpha(c)(_is[c] & ALPHA ) /* 'a'-'z', 'A'-'Z' */
  94. #define iscntrl(c)(_is[c] & CNTRL ) /* 0-31, 127 */
  95. #define isdigit(c)(_is[c] & DIGIT ) /* '0'-'9' */
  96. #define isgraph(c)(_is[c] & GRAPH ) /* '!'-'~' */
  97. #define islower(c)(_is[c] & LOWER ) /* 'a'-'z' */
  98. #define isprint(c)(_is[c] & PRINT ) /* ' '-'~' */
  99. #define ispunct(c)(_is[c] & PUNCT ) /* !alnum && !cntrl && !space */
  100. #define isspace(c)(_is[c] & BLANK ) /* HT, LF, VT, FF, CR, ' ' */
  101. #define isupper(c)(_is[c] & UPPER ) /* 'A'-'Z' */
  102. #define isxdigit(c)(_is[c] & XDIGIT) /* '0'-'9', 'a'-'f', 'A'-'F' */
  103.  
  104.  
  105. #define _LOWER  0x80
  106. #define _UPPER  0x40
  107. #define _DIGIT  0x20
  108. #define _XDIGT  0x10
  109. #define _PRINT  0x08
  110. #define _PUNCT  0x04
  111. #define _SPACE  0x02
  112. #define _CNTRL  0x01
  113.  
  114. #define abs(i) (((i)<0)?(-(i)):(i))
  115.  
  116. #if 0
  117. extern int atoib(char *s,int b);
  118. extern int atoi(char *s);
  119. extern char tolower(char c);
  120. extern char toupper(char c);
  121. extern void itoab(int n,char* s,int  b);
  122. extern void itoa(int n,char* s);
  123.  
  124. extern char* strcat(char*,const char*);
  125. extern char* strchr(const char*,int);
  126. extern int strcmp(const char*,const char*);
  127. extern int strcoll(const char*,const char*);
  128. extern char* strcpy(char*,const char*);
  129. extern int strcspn(const char*,const char*);
  130. extern size_t strlen(const char*);
  131. extern char* strncat(char*,const char*,int);
  132. extern int strncmp(const char*,const char*,int);
  133. extern char* strncpy(char*,const char*,int);
  134. extern char* strpbrk(const char*,const char*);
  135. extern char* strrchr(const char*,int);
  136. extern int strspn(const char*,const char*);
  137. extern char* strstr(const char*,const char*);
  138. extern char* strtok(char*,const char*);
  139. extern int strxfrm(char*,const char*,int);
  140. extern char* strdup(const char*);
  141. extern char toupper(char c);
  142. #define isascii(char)   ( (unsigned)char < 0x80 )
  143.  
  144. extern void* memchr(const void*,int,int);
  145. extern extern void* memchr(const void*,int,int);
  146. extern int memcmp(const void*,const void*,int);
  147. extern void* memcpy(void*,const void*,size_t);
  148. void kmemset (void *dst, int val, size_t count);
  149.  
  150. extern void* memmove(void*,const void*,int);
  151. extern void* memset(void*,int,int);
  152. int memcmp(const void*,const void*,int);
  153. extern void* memcpy(void*,const void*,size_t);
  154. void kmemset (void *dst, int val, size_t count);
  155.  
  156. extern void* memmove(void*,const void*,int);
  157. extern void* memset(void*,int,int);
  158.  
  159. #endif
  160.  
  161. void debug_out_str(char* str);
  162.  
  163. void* _cdecl dlmalloc(size_t size);
  164. void* _cdecl dlrealloc(void* oldmem, size_t bytes);
  165. void  _cdecl dlfree(void *mem);
  166.  
  167. //double pow_test(x,y);
  168.  
  169.  
  170. #ifdef __cplusplus
  171. extern "C"
  172. }
  173. #endif
  174.  
  175. #endif  //kolibc_h
  176.  
  177.  
  178.