diff options
| author | forsyth <forsyth@lavoro.terzarima.net> | 2013-06-03 21:01:14 +0000 |
|---|---|---|
| committer | forsyth <forsyth@lavoro.terzarima.net> | 2013-06-03 21:01:14 +0000 |
| commit | 45a20ab721a513710138340faff3d59a31c3e01e (patch) | |
| tree | eea29d2684c51cc73725b8992a2125bede48e118 /utils/ld/Posix.c | |
| parent | cd8e99851af33e52bcdf8faf34f9d4e62fa0cbaf (diff) | |
sync compilers with Plan 9
remove 1[acl] 2[acl]
Diffstat (limited to 'utils/ld/Posix.c')
| -rw-r--r-- | utils/ld/Posix.c | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/utils/ld/Posix.c b/utils/ld/Posix.c new file mode 100644 index 00000000..a1a2a8c9 --- /dev/null +++ b/utils/ld/Posix.c @@ -0,0 +1,89 @@ +#include "l.h" +#include <sys/types.h> +#include <sys/stat.h> +#include <sys/times.h> +#undef getwd +#include <unistd.h> /* For sysconf() and _SC_CLK_TCK */ + +/* + * fake malloc + */ +void* +malloc(size_t n) +{ + void *p; + + while(n & 7) + n++; + while(nhunk < n) + gethunk(); + p = hunk; + nhunk -= n; + hunk += n; + return p; +} + +void +free(void *p) +{ + USED(p); +} + +void* +calloc(size_t m, size_t n) +{ + void *p; + + n *= m; + p = malloc(n); + memset(p, 0, n); + return p; +} + +void* +realloc(void *p, size_t n) +{ + fprint(2, "realloc called\n", p, n); + abort(); + return 0; +} + +void* +mysbrk(ulong size) +{ + return (void*)sbrk(size); +} + +double +cputime(void) +{ + + struct tms tmbuf; + double ret_val; + + /* + * times() only fails if &tmbuf is invalid. + */ + (void)times(&tmbuf); + /* + * Return the total time (in system clock ticks) + * spent in user code and system + * calls by both the calling process and its children. + */ + ret_val = (double)(tmbuf.tms_utime + tmbuf.tms_stime + + tmbuf.tms_cutime + tmbuf.tms_cstime); + /* + * Convert to seconds. + */ + ret_val *= sysconf(_SC_CLK_TCK); + return ret_val; + +} + +int +fileexists(char *name) +{ + struct stat sb; + + return stat(name, &sb) >= 0; +} |
