wok view linld/stuff/src/CRTL.H @ rev 19546

linld/tazboot: default conf in tazboot.cmd
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Dec 06 18:49:44 2016 +0100 (2016-12-06)
parents 7f92b23984dc
children e428345df29a
line source
1 // This file is distributed under GPL
2 //
3 // Bare bones of C runtime library
5 #define MK_FP(seg,ofs) ((void _seg *)(seg) + (void near *)(ofs))
6 #define FP_SEG(fp) ((unsigned) (void _seg*) (void far*)(fp))
7 #define FP_OFF(fp) ((unsigned) (fp))
9 const unsigned MIN_STACK = 0x400;
10 const unsigned MAX_MALLOC = 0xF000;
12 const A_RDONLY = 1; // for fileattr()
13 const A_HIDDEN = 2;
14 const A_SYSTEM = 4;
15 const A_LABEL = 8;
16 const A_DIRECTORY = 16;
17 const A_ARCHIVE = 32;
20 const O_RDONLY = 0; // for open()
21 const O_BINARY = 0;
23 const SEEK_SET = 0; // for lseek()
24 const SEEK_CUR = 1;
25 const SEEK_END = 2;
27 extern char text_start; extern char text_end;
28 extern char data_start; extern char data_end;
29 extern char bss_start; extern char bss_end;
30 extern char* heap_top;
32 extern int ximage_size, ximage_fd;
34 void parse_cmdline();
35 extern "C" char* strcpy(const char* a,const char* b);
36 extern "C" char* strcat(const char* a,const char* b);
37 extern "C" char* strcatb(const char* a,const char* b);
38 extern "C" int strhead(const char* a,const char* b);
39 extern "C" int fileattr(const char* name);
40 //extern "C" int open(const char* name, int flags);
41 extern "C" int open(const char* name);
42 extern "C" int close(int fd);
43 extern "C" void exit(int n);
44 extern "C" void abort();
45 extern "C" int read(int fd, void* data, int sz);
46 extern "C" int write(int fd, const void* data, int sz);
47 extern "C" long lseek(int fd, long sz, int dir);
48 extern "C" void* malloc(unsigned sz);
49 extern "C" void puts(const char* s);
50 extern "C" void putsz(const char* s);
51 extern "C" unsigned long strtol(const char *s);
53 // Extensions
54 //static void barrier() {}
55 //static void cli() { asm { cli } }
56 //static void sti() { asm { sti } }
57 #define barrier() do {} while(0)
58 #define cli() do { asm { cli } } while(0)
59 #define sti() do { asm { sti } } while(0)
60 #define int3() do { asm { db 0cch } } while(0)
61 #define nop() do { asm { db 90h } } while(0)
62 extern char no_exit;
63 extern "C" int die(const char* msg);
64 extern "C" char* malloc_or_die(unsigned size);
65 extern "C" unsigned long* malloc_bufv_or_die(struct image_himem *m);