From 74a4d8c26dd3c1e9febcb717cfd6cb6512991a7a Mon Sep 17 00:00:00 2001 From: "Charles.Forsyth" Date: Fri, 22 Dec 2006 21:39:35 +0000 Subject: 20060303 --- utils/c2l/Nt.c | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 utils/c2l/Nt.c (limited to 'utils/c2l/Nt.c') diff --git a/utils/c2l/Nt.c b/utils/c2l/Nt.c new file mode 100644 index 00000000..bf36e0dd --- /dev/null +++ b/utils/c2l/Nt.c @@ -0,0 +1,131 @@ +#include +#include + +#define Windows (1<<2) /* hack - can't include cc.h because of clashes */ +#define Chunk (1*1024*1024) + +void* +mysbrk(ulong size) +{ + void *v; + static int chunk; + static uchar *brk; + + if(chunk < size) { + chunk = Chunk; + if(chunk < size) + chunk = Chunk + size; + brk = VirtualAlloc(NULL, chunk, MEM_COMMIT, PAGE_EXECUTE_READWRITE); + if(brk == 0) + return (void*)-1; + } + v = brk; + chunk -= size; + brk += size; + return v; +} + +int +mycreat(char *n, int p) +{ + + return create(n, 1, p); +} + +int +mywait(int *s) +{ + fprint(2, "mywait called\n"); + abort(); + return 0; +} + +int +mydup(int f1, int f2) +{ + int ok; + + ok = _dup2(f1, f2); + if(ok < 0) + return -1; + return f2; +/* + fprint(2, "mydup called\n"); + abort(); + return 0; +*/ +} + +int +mypipe(int *fd) +{ + fprint(2, "mypipe called\n"); + abort(); + return 0; +} + +int +systemtype(int sys) +{ + + return sys&Windows; +} + +int +pathchar(void) +{ + return '/'; +} + +char* +mygetwd(char *path, int len) +{ + return getcwd(path, len); +} + +int +myexec(char *path, char *argv[]) +{ + fprint(2, "myexec called\n"); + abort(); + return 0; +} + +int +myfork(void) +{ + fprint(2, "myfork called\n"); + abort(); + return 0; +} + +/* + * fake mallocs + */ +void* +malloc(uint n) +{ + return mysbrk(n); +} + +void* +calloc(uint m, uint n) +{ + return mysbrk(m*n); +} + +void* +realloc(void *p, uint n) +{ + void *new; + + new = malloc(n); + if(new && p) + memmove(new, p, n); + return new; +} + +void +free(void *p) +{ +} -- cgit v1.2.3