diff options
Diffstat (limited to 'chapter25/src/main/smp/sys/libc.smp')
| -rw-r--r-- | chapter25/src/main/smp/sys/libc.smp | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/chapter25/src/main/smp/sys/libc.smp b/chapter25/src/main/smp/sys/libc.smp deleted file mode 100644 index 17ee65cb..00000000 --- a/chapter25/src/main/smp/sys/libc.smp +++ /dev/null @@ -1,44 +0,0 @@ - -// libc bindings: -// https://www.man7.org/linux/man-pages/man2/<libc call>.2.html - -// The buffers are int-versions of zero-terminated strings. -// int buf = aryu8.str0("some_file"); -// buf mode perm-> fd -{ i64 i32 i32 -> i32 } open = "C"; -// buf perm -> fd -{ i64 i32 -> i32 } creat = "C"; - -// fd buf len -> len -{ i32 i64 u32 -> i32 } write = "C"; -// fd buf len -> len -{ i32 i64 u32 -> i32 } read = "C"; -// fd -> err -{ i32 -> i32 } close = "C"; -// path -> err -{ i64 -> i32 } unlink = "C"; - -i32 O_RDONLY = 0; -i32 O_WRONLY = 1; -i32 O_RDWR = 2; -i32 O_CREAT = 512; // 02000 on x86_64-pc-cygwin -i32 O_TRUNC = 1024; // 04000 on x86_64-pc-cygwin - -i32 STDIN = 0; -i32 STDOUT = 1; -i32 STDERR = 2; - -// status -{ i32 -> i32 } _exit = "C"; -// errno is not an ordinary C data symbol; read it through the native runtime. -{ i32 } simple_errno = "C"; -val errno = { -> simple_errno(); }; -// addr len prot flags fd off -> void* -{ i64 i64 i32 i32 i32 i32 -> i64 } mmap = "C"; -// mmap flags -i32 PROT_EXEC = 4; -i32 PROT_READ = 1; -i32 PROT_WRITE= 2; -i32 PROT_NONE = 0; -i32 MAP_PRIVATE = 2; -i32 MAP_ANON = 32; |
