diff options
| author | Cliff Click <cliffc@acm.org> | 2026-08-10 11:11:18 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2026-08-10 15:21:17 -0700 |
| commit | 28209703c72fb7e9955961dbdb84e24a0f871acd (patch) | |
| tree | 8e4df2c1a5e6811696b454bbc4d7cd1cc30e42e7 /src/main/smp/sys/libc.smp | |
| parent | e57bdd315a7918a0d130e1c95648ca4a1b4f08ed (diff) | |
| download | Simple-linear-chapter25.tar.gz Simple-linear-chapter25.zip | |
Chapter 25: Moduleslinear-chapter25
Diffstat (limited to 'src/main/smp/sys/libc.smp')
| -rw-r--r-- | src/main/smp/sys/libc.smp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/main/smp/sys/libc.smp b/src/main/smp/sys/libc.smp new file mode 100644 index 00000000..42fc7313 --- /dev/null +++ b/src/main/smp/sys/libc.smp @@ -0,0 +1,20 @@ +// -*- mode: java; -*- + +// libc bindings: +// https://www.man7.org/linux/man-pages/man2/<libc call>.2.html + +// fd buf len -> len +{ i32 i64 u32 -> u32 } write = "C"; +// fd buf len -> len +{ i32 i64 u32 -> u32 } read = "C"; +// status +{ i32 -> i32 } _exit = "C"; +// 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; |
