This commit is contained in:
2024-03-23 03:58:42 +02:00
parent 2d374d5d9d
commit ca14802a21
74 changed files with 3745 additions and 6488 deletions

View File

@@ -1 +0,0 @@
// todo: add some sort of macrow

View File

@@ -1,18 +0,0 @@
const FS_O_APPEND 1024 end // append to existing file
const FS_O_ASYNC 8192 end // use signal-driven IO
const FS_O_CLOEXEC 524288 end // use close-on-exec (avoid race conditions and lock contentions)
const FS_O_CREAT 64 end // create file if it doesnt exist
const FS_O_DIRECT 16384 end // bypass cache (slower)
const FS_O_DIRECTORY 65536 end // fail if pathname isnt a directory
const FS_O_DSYNC 4096 end // ensure output is sent to hardware and metadata written before return
const FS_O_EXCL 128 end // ensure creation of file
const FS_O_LARGEFILE 0 end // allows use of file sizes represented by off64_t
const FS_O_NOATIME 262144 end // do not increment access time upon open
const FS_O_NOCTTY 256 end // if pathname is a terminal device, dont become controlling terminal
const FS_O_NOFOLLOW 131072 end // fail if pathname is symbolic link
const FS_O_NONBLOCK 2048 end // if possible, open file with non-blocking IO
const FS_O_NDELAY 2048 end // same as O_NONBLOCK
const FS_O_PATH 2097152 end // open descriptor for obtaining permissions and status of a file but does not allow read/write operations
const FS_O_SYNC 1052672 end // wait for IO to complete before returning
const FS_O_TMPFILE 4259840 end // create an unnamed, unreachable (via any other open call) temporary file
const FS_O_TRUNC 512 end // if file exists, ovewrite it (careful!)

View File

@@ -1,15 +0,0 @@
const NULL 0 end
const false 0 end
const true 1 end
inline fn div with int int returns int then divmod drop done
inline fn mod with int int returns int then divmod swap drop done
inline fn dup2 with any any returns any any any any then over over done
inline fn drop2 with any any returns void then drop drop done
const sizeof(u64) 8 end
const sizeof(u32) 4 end
const sizeof(u16) 2 end
const sizeof(u8) 1 end

View File

@@ -1,50 +0,0 @@
// Write to a file descriptor using the SYS_write syscall
// args: [buff_size, buff_ptr, fd]
// @arg buff_size: Int - number of bytes to write
// @arg buff_ptr: Ptr - pointer to the buffer to write
// @arg fd: Int - file descriptor
// @ret Int
inline fn write with int ptr int returns int then
SYS_write syscall3
done
// Write to a file descriptor using the SYS_write syscall
// args: [buff_size, buff_ptr, fd]
// @arg buff_size: Int - number of bytes to write
// @arg buff_ptr: Ptr - pointer to the buffer to write
// @arg fd: Int - file descriptor
// @ret Int
inline fn read with int ptr int returns int then
SYS_read syscall3
done
// Print a string to STDOUT
// args: [str_size, str_ptr]
// @arg buff_size: Int - number of bytes to write
// @arg buff_ptr: Ptr - pointer to the buffer to write
// @ret NULL
inline fn puts with int ptr returns void then
STDOUT write drop
done
// Print a string to STDERR
// args: [str_size, str_ptr]
// @arg buff_size: Int - number of bytes to write
// @arg buff_ptr: Ptr - pointer to the buffer to write
// @ret NULL
inline fn eputs with int ptr returns void then
STDOUT write drop
done
// TODO: make putc and eputc after we make local mem
// Exit the program with exit_code
// args: [exit_code]
// @arg exit_code: Int
// @ret NULL/NEVER
inline fn exit with int returns void then
SYS_exit syscall1 drop
done

View File

@@ -1,322 +0,0 @@
// file descriptors
const STDIN 0 end
const STDOUT 1 end
const STDERR 2 end
// syscalls
const SYS_read 0 end
const SYS_write 1 end
const SYS_open 2 end
const SYS_close 3 end
const SYS_stat 4 end
const SYS_fstat 5 end
const SYS_lstat 6 end
const SYS_poll 7 end
const SYS_lseek 8 end
const SYS_mmap 9 end
const SYS_mprotect 10 end
const SYS_munmap 11 end
const SYS_brk 12 end
const SYS_rt_sigaction 13 end
const SYS_rt_sigprocmask 14 end
const SYS_rt_sigreturn 15 end
const SYS_ioctl 16 end
const SYS_pread64 17 end
const SYS_pwrite64 18 end
const SYS_readv 19 end
const SYS_writev 20 end
const SYS_access 21 end
const SYS_pipe 22 end
const SYS_select 23 end
const SYS_sched_yield 24 end
const SYS_mremap 25 end
const SYS_msync 26 end
const SYS_mincore 27 end
const SYS_madvise 28 end
const SYS_shmget 29 end
const SYS_shmat 30 end
const SYS_shmctl 31 end
const SYS_dup 32 end
const SYS_dup2 33 end
const SYS_pause 34 end
const SYS_nanosleep 35 end
const SYS_getitimer 36 end
const SYS_alarm 37 end
const SYS_setitimer 38 end
const SYS_getpid 39 end
const SYS_sendfile 40 end
const SYS_socket 41 end
const SYS_connect 42 end
const SYS_accept 43 end
const SYS_sendto 44 end
const SYS_recvfrom 45 end
const SYS_sendmsg 46 end
const SYS_recvmsg 47 end
const SYS_shutdown 48 end
const SYS_bind 49 end
const SYS_listen 50 end
const SYS_getsockname 51 end
const SYS_getpeername 52 end
const SYS_socketpair 53 end
const SYS_setsockopt 54 end
const SYS_getsockopt 55 end
const SYS_clone 56 end
const SYS_fork 57 end
const SYS_vfork 58 end
const SYS_execve 59 end
const SYS_exit 60 end
const SYS_wait4 61 end
const SYS_kill 62 end
const SYS_uname 63 end
const SYS_semget 64 end
const SYS_semop 65 end
const SYS_semctl 66 end
const SYS_shmdt 67 end
const SYS_msgget 68 end
const SYS_msgsnd 69 end
const SYS_msgrcv 70 end
const SYS_msgctl 71 end
const SYS_fcntl 72 end
const SYS_flock 73 end
const SYS_fsync 74 end
const SYS_fdatasync 75 end
const SYS_truncate 76 end
const SYS_ftruncate 77 end
const SYS_getdents 78 end
const SYS_getcwd 79 end
const SYS_chdir 80 end
const SYS_fchdir 81 end
const SYS_rename 82 end
const SYS_mkdir 83 end
const SYS_rmdir 84 end
const SYS_creat 85 end
const SYS_link 86 end
const SYS_unlink 87 end
const SYS_symlink 88 end
const SYS_readlink 89 end
const SYS_chmod 90 end
const SYS_fchmod 91 end
const SYS_chown 92 end
const SYS_fchown 93 end
const SYS_lchown 94 end
const SYS_umask 95 end
const SYS_gettimeofday 96 end
const SYS_getrlimit 97 end
const SYS_getrusage 98 end
const SYS_sysinfo 99 end
const SYS_times 100 end
const SYS_ptrace 101 end
const SYS_getuid 102 end
const SYS_syslog 103 end
const SYS_getgid 104 end
const SYS_setuid 105 end
const SYS_setgid 106 end
const SYS_geteuid 107 end
const SYS_getegid 108 end
const SYS_setpgid 109 end
const SYS_getppid 110 end
const SYS_getpgrp 111 end
const SYS_setsid 112 end
const SYS_setreuid 113 end
const SYS_setregid 114 end
const SYS_getgroups 115 end
const SYS_setgroups 116 end
const SYS_setresuid 117 end
const SYS_getresuid 118 end
const SYS_setresgid 119 end
const SYS_getresgid 120 end
const SYS_getpgid 121 end
const SYS_setfsuid 122 end
const SYS_setfsgid 123 end
const SYS_getsid 124 end
const SYS_capget 125 end
const SYS_capset 126 end
const SYS_rt_sigpending 127 end
const SYS_rt_sigtimedwait 128 end
const SYS_rt_sigqueueinfo 129 end
const SYS_rt_sigsuspend 130 end
const SYS_sigaltstack 131 end
const SYS_utime 132 end
const SYS_mknod 133 end
const SYS_uselib 134 end
const SYS_personality 135 end
const SYS_ustat 136 end
const SYS_statfs 137 end
const SYS_fstatfs 138 end
const SYS_sysfs 139 end
const SYS_getpriority 140 end
const SYS_setpriority 141 end
const SYS_sched_setparam 142 end
const SYS_sched_getparam 143 end
const SYS_sched_setscheduler 144 end
const SYS_sched_getscheduler 145 end
const SYS_sched_get_priority_max 146 end
const SYS_sched_get_priority_min 147 end
const SYS_sched_rr_get_interval 148 end
const SYS_mlock 149 end
const SYS_munlock 150 end
const SYS_mlockall 151 end
const SYS_munlockall 152 end
const SYS_vhangup 153 end
const SYS_modify_ldt 154 end
const SYS_pivot_root 155 end
const SYS__sysctl 156 end
const SYS_prctl 157 end
const SYS_arch_prctl 158 end
const SYS_adjtimex 159 end
const SYS_setrlimit 160 end
const SYS_chroot 161 end
const SYS_sync 162 end
const SYS_acct 163 end
const SYS_settimeofday 164 end
const SYS_mount 165 end
const SYS_umount2 166 end
const SYS_swapon 167 end
const SYS_swapoff 168 end
const SYS_reboot 169 end
const SYS_sethostname 170 end
const SYS_setdomainname 171 end
const SYS_iopl 172 end
const SYS_ioperm 173 end
const SYS_create_module 174 end
const SYS_init_module 175 end
const SYS_delete_module 176 end
const SYS_get_kernel_syms 177 end
const SYS_query_module 178 end
const SYS_quotactl 179 end
const SYS_nfsservctl 180 end
const SYS_getpmsg 181 end
const SYS_putpmsg 182 end
const SYS_afs_syscall 183 end
const SYS_tuxcall 184 end
const SYS_security 185 end
const SYS_gettid 186 end
const SYS_readahead 187 end
const SYS_setxattr 188 end
const SYS_lsetxattr 189 end
const SYS_fsetxattr 190 end
const SYS_getxattr 191 end
const SYS_lgetxattr 192 end
const SYS_fgetxattr 193 end
const SYS_listxattr 194 end
const SYS_llistxattr 195 end
const SYS_flistxattr 196 end
const SYS_removexattr 197 end
const SYS_lremovexattr 198 end
const SYS_fremovexattr 199 end
const SYS_tkill 200 end
const SYS_time 201 end
const SYS_futex 202 end
const SYS_sched_setaffinity 203 end
const SYS_sched_getaffinity 204 end
const SYS_set_thread_area 205 end
const SYS_io_setup 206 end
const SYS_io_destroy 207 end
const SYS_io_getevents 208 end
const SYS_io_submit 209 end
const SYS_io_cancel 210 end
const SYS_get_thread_area 211 end
const SYS_lookup_dcookie 212 end
const SYS_epoll_create 213 end
const SYS_epoll_ctl_old 214 end
const SYS_epoll_wait_old 215 end
const SYS_remap_file_pages 216 end
const SYS_getdents64 217 end
const SYS_set_tid_address 218 end
const SYS_restart_syscall 219 end
const SYS_semtimedop 220 end
const SYS_fadvise64 221 end
const SYS_timer_create 222 end
const SYS_timer_settime 223 end
const SYS_timer_gettime 224 end
const SYS_timer_getoverrun 225 end
const SYS_timer_delete 226 end
const SYS_clock_settime 227 end
const SYS_clock_gettime 228 end
const SYS_clock_getres 229 end
const SYS_clock_nanosleep 230 end
const SYS_exit_group 231 end
const SYS_epoll_wait 232 end
const SYS_epoll_ctl 233 end
const SYS_tgkill 234 end
const SYS_utimes 235 end
const SYS_vserver 236 end
const SYS_mbind 237 end
const SYS_set_mempolicy 238 end
const SYS_get_mempolicy 239 end
const SYS_mq_open 240 end
const SYS_mq_unlink 241 end
const SYS_mq_timedsend 242 end
const SYS_mq_timedreceive 243 end
const SYS_mq_notify 244 end
const SYS_mq_getsetattr 245 end
const SYS_kexec_load 246 end
const SYS_waitid 247 end
const SYS_add_key 248 end
const SYS_request_key 249 end
const SYS_keyctl 250 end
const SYS_ioprio_set 251 end
const SYS_ioprio_get 252 end
const SYS_inotify_init 253 end
const SYS_inotify_add_watch 254 end
const SYS_inotify_rm_watch 255 end
const SYS_migrate_pages 256 end
const SYS_openat 257 end
const SYS_mkdirat 258 end
const SYS_mknodat 259 end
const SYS_fchownat 260 end
const SYS_futimesat 261 end
const SYS_newfstatat 262 end
const SYS_unlinkat 263 end
const SYS_renameat 264 end
const SYS_linkat 265 end
const SYS_symlinkat 266 end
const SYS_readlinkat 267 end
const SYS_fchmodat 268 end
const SYS_faccessat 269 end
const SYS_pselect6 270 end
const SYS_ppoll 271 end
const SYS_unshare 272 end
const SYS_set_robust_list 273 end
const SYS_get_robust_list 274 end
const SYS_splice 275 end
const SYS_tee 276 end
const SYS_sync_file_range 277 end
const SYS_vmsplice 278 end
const SYS_move_pages 279 end
const SYS_utimensat 280 end
const SYS_epoll_pwait 281 end
const SYS_signalfd 282 end
const SYS_timerfd_create 283 end
const SYS_eventfd 284 end
const SYS_fallocate 285 end
const SYS_timerfd_settime 286 end
const SYS_timerfd_gettime 287 end
const SYS_accept4 288 end
const SYS_signalfd4 289 end
const SYS_eventfd2 290 end
const SYS_epoll_create1 291 end
const SYS_dup3 292 end
const SYS_pipe2 293 end
const SYS_inotify_init1 294 end
const SYS_preadv 295 end
const SYS_pwritev 296 end
const SYS_rt_tgsigqueueinfo 297 end
const SYS_perf_event_open 298 end
const SYS_recvmmsg 299 end
const SYS_fanotify_init 300 end
const SYS_fanotify_mark 301 end
const SYS_prlimit64 302 end
const SYS_name_to_handle_at 303 end
const SYS_open_by_handle_at 304 end
const SYS_clock_adjtime 305 end
const SYS_syncfs 306 end
const SYS_sendmmsg 307 end
const SYS_setns 308 end
const SYS_getcpu 309 end
const SYS_process_vm_readv 310 end
const SYS_process_vm_writev 311 end
const SYS_kcmp 312 end
const SYS_finit_module 313 end

14
include/linux/io.mcl Normal file
View File

@@ -0,0 +1,14 @@
fn fwrite with u64 ptr u64 returns u64 then
SYS_write syscall3
done
fn puts with u64 ptr u64 returns u64 then
STDOUT fwrite drop
done
fn eputs with u64 ptr u64 returns u64 then
STDERR fwrite drop
done

2
include/linux/linux.mcl Normal file
View File

@@ -0,0 +1,2 @@
include "linux/syscalls.mcl"
include "linux/io.mcl"

322
include/linux/syscalls.mcl Normal file
View File

@@ -0,0 +1,322 @@
// file descriptors
const STDIN 0 end
const STDOUT 1 end
const STDERR 2 end
// syscalls
// const SYS_read 0 end
const SYS_write 1 end
// const SYS_open 2 end
// const SYS_close 3 end
// const SYS_stat 4 end
// const SYS_fstat 5 end
// const SYS_lstat 6 end
// const SYS_poll 7 end
// const SYS_lseek 8 end
// const SYS_mmap 9 end
// const SYS_mprotect 10 end
// const SYS_munmap 11 end
// const SYS_brk 12 end
// const SYS_rt_sigaction 13 end
// const SYS_rt_sigprocmask 14 end
// const SYS_rt_sigreturn 15 end
// const SYS_ioctl 16 end
// const SYS_pread64 17 end
// const SYS_pwrite64 18 end
// const SYS_readv 19 end
// const SYS_writev 20 end
// const SYS_access 21 end
// const SYS_pipe 22 end
// const SYS_select 23 end
// const SYS_sched_yield 24 end
// const SYS_mremap 25 end
// const SYS_msync 26 end
// const SYS_mincore 27 end
// const SYS_madvise 28 end
// const SYS_shmget 29 end
// const SYS_shmat 30 end
// const SYS_shmctl 31 end
// const SYS_dup 32 end
// const SYS_dup2 33 end
// const SYS_pause 34 end
// const SYS_nanosleep 35 end
// const SYS_getitimer 36 end
// const SYS_alarm 37 end
// const SYS_setitimer 38 end
// const SYS_getpid 39 end
// const SYS_sendfile 40 end
// const SYS_socket 41 end
// const SYS_connect 42 end
// const SYS_accept 43 end
// const SYS_sendto 44 end
// const SYS_recvfrom 45 end
// const SYS_sendmsg 46 end
// const SYS_recvmsg 47 end
// const SYS_shutdown 48 end
// const SYS_bind 49 end
// const SYS_listen 50 end
// const SYS_getsockname 51 end
// const SYS_getpeername 52 end
// const SYS_socketpair 53 end
// const SYS_setsockopt 54 end
// const SYS_getsockopt 55 end
// const SYS_clone 56 end
// const SYS_fork 57 end
// const SYS_vfork 58 end
// const SYS_execve 59 end
const SYS_exit 60 end
// const SYS_wait4 61 end
// const SYS_kill 62 end
// const SYS_uname 63 end
// const SYS_semget 64 end
// const SYS_semop 65 end
// const SYS_semctl 66 end
// const SYS_shmdt 67 end
// const SYS_msgget 68 end
// const SYS_msgsnd 69 end
// const SYS_msgrcv 70 end
// const SYS_msgctl 71 end
// const SYS_fcntl 72 end
// const SYS_flock 73 end
// const SYS_fsync 74 end
// const SYS_fdatasync 75 end
// const SYS_truncate 76 end
// const SYS_ftruncate 77 end
// const SYS_getdents 78 end
// const SYS_getcwd 79 end
// const SYS_chdir 80 end
// const SYS_fchdir 81 end
// const SYS_rename 82 end
// const SYS_mkdir 83 end
// const SYS_rmdir 84 end
// const SYS_creat 85 end
// const SYS_link 86 end
// const SYS_unlink 87 end
// const SYS_symlink 88 end
// const SYS_readlink 89 end
// const SYS_chmod 90 end
// const SYS_fchmod 91 end
// const SYS_chown 92 end
// const SYS_fchown 93 end
// const SYS_lchown 94 end
// const SYS_umask 95 end
// const SYS_gettimeofday 96 end
// const SYS_getrlimit 97 end
// const SYS_getrusage 98 end
// const SYS_sysinfo 99 end
// const SYS_times 100 end
// const SYS_ptrace 101 end
// const SYS_getuid 102 end
// const SYS_syslog 103 end
// const SYS_getgid 104 end
// const SYS_setuid 105 end
// const SYS_setgid 106 end
// const SYS_geteuid 107 end
// const SYS_getegid 108 end
// const SYS_setpgid 109 end
// const SYS_getppid 110 end
// const SYS_getpgrp 111 end
// const SYS_setsid 112 end
// const SYS_setreuid 113 end
// const SYS_setregid 114 end
// const SYS_getgroups 115 end
// const SYS_setgroups 116 end
// const SYS_setresuid 117 end
// const SYS_getresuid 118 end
// const SYS_setresgid 119 end
// const SYS_getresgid 120 end
// const SYS_getpgid 121 end
// const SYS_setfsuid 122 end
// const SYS_setfsgid 123 end
// const SYS_getsid 124 end
// const SYS_capget 125 end
// const SYS_capset 126 end
// const SYS_rt_sigpending 127 end
// const SYS_rt_sigtimedwait 128 end
// const SYS_rt_sigqueueinfo 129 end
// const SYS_rt_sigsuspend 130 end
// const SYS_sigaltstack 131 end
// const SYS_utime 132 end
// const SYS_mknod 133 end
// const SYS_uselib 134 end
// const SYS_personality 135 end
// const SYS_ustat 136 end
// const SYS_statfs 137 end
// const SYS_fstatfs 138 end
// const SYS_sysfs 139 end
// const SYS_getpriority 140 end
// const SYS_setpriority 141 end
// const SYS_sched_setparam 142 end
// const SYS_sched_getparam 143 end
// const SYS_sched_setscheduler 144 end
// const SYS_sched_getscheduler 145 end
// const SYS_sched_get_priority_max 146 end
// const SYS_sched_get_priority_min 147 end
// const SYS_sched_rr_get_interval 148 end
// const SYS_mlock 149 end
// const SYS_munlock 150 end
// const SYS_mlockall 151 end
// const SYS_munlockall 152 end
// const SYS_vhangup 153 end
// const SYS_modify_ldt 154 end
// const SYS_pivot_root 155 end
// const SYS__sysctl 156 end
// const SYS_prctl 157 end
// const SYS_arch_prctl 158 end
// const SYS_adjtimex 159 end
// const SYS_setrlimit 160 end
// const SYS_chroot 161 end
// const SYS_sync 162 end
// const SYS_acct 163 end
// const SYS_settimeofday 164 end
// const SYS_mount 165 end
// const SYS_umount2 166 end
// const SYS_swapon 167 end
// const SYS_swapoff 168 end
// const SYS_reboot 169 end
// const SYS_sethostname 170 end
// const SYS_setdomainname 171 end
// const SYS_iopl 172 end
// const SYS_ioperm 173 end
// const SYS_create_module 174 end
// const SYS_init_module 175 end
// const SYS_delete_module 176 end
// const SYS_get_kernel_syms 177 end
// const SYS_query_module 178 end
// const SYS_quotactl 179 end
// const SYS_nfsservctl 180 end
// const SYS_getpmsg 181 end
// const SYS_putpmsg 182 end
// const SYS_afs_syscall 183 end
// const SYS_tuxcall 184 end
// const SYS_security 185 end
// const SYS_gettid 186 end
// const SYS_readahead 187 end
// const SYS_setxattr 188 end
// const SYS_lsetxattr 189 end
// const SYS_fsetxattr 190 end
// const SYS_getxattr 191 end
// const SYS_lgetxattr 192 end
// const SYS_fgetxattr 193 end
// const SYS_listxattr 194 end
// const SYS_llistxattr 195 end
// const SYS_flistxattr 196 end
// const SYS_removexattr 197 end
// const SYS_lremovexattr 198 end
// const SYS_fremovexattr 199 end
// const SYS_tkill 200 end
// const SYS_time 201 end
// const SYS_futex 202 end
// const SYS_sched_setaffinity 203 end
// const SYS_sched_getaffinity 204 end
// const SYS_set_thread_area 205 end
// const SYS_io_setup 206 end
// const SYS_io_destroy 207 end
// const SYS_io_getevents 208 end
// const SYS_io_submit 209 end
// const SYS_io_cancel 210 end
// const SYS_get_thread_area 211 end
// const SYS_lookup_dcookie 212 end
// const SYS_epoll_create 213 end
// const SYS_epoll_ctl_old 214 end
// const SYS_epoll_wait_old 215 end
// const SYS_remap_file_pages 216 end
// const SYS_getdents64 217 end
// const SYS_set_tid_address 218 end
// const SYS_restart_syscall 219 end
// const SYS_semtimedop 220 end
// const SYS_fadvise64 221 end
// const SYS_timer_create 222 end
// const SYS_timer_settime 223 end
// const SYS_timer_gettime 224 end
// const SYS_timer_getoverrun 225 end
// const SYS_timer_delete 226 end
// const SYS_clock_settime 227 end
// const SYS_clock_gettime 228 end
// const SYS_clock_getres 229 end
// const SYS_clock_nanosleep 230 end
// const SYS_exit_group 231 end
// const SYS_epoll_wait 232 end
// const SYS_epoll_ctl 233 end
// const SYS_tgkill 234 end
// const SYS_utimes 235 end
// const SYS_vserver 236 end
// const SYS_mbind 237 end
// const SYS_set_mempolicy 238 end
// const SYS_get_mempolicy 239 end
// const SYS_mq_open 240 end
// const SYS_mq_unlink 241 end
// const SYS_mq_timedsend 242 end
// const SYS_mq_timedreceive 243 end
// const SYS_mq_notify 244 end
// const SYS_mq_getsetattr 245 end
// const SYS_kexec_load 246 end
// const SYS_waitid 247 end
// const SYS_add_key 248 end
// const SYS_request_key 249 end
// const SYS_keyctl 250 end
// const SYS_ioprio_set 251 end
// const SYS_ioprio_get 252 end
// const SYS_inotify_init 253 end
// const SYS_inotify_add_watch 254 end
// const SYS_inotify_rm_watch 255 end
// const SYS_migrate_pages 256 end
// const SYS_openat 257 end
// const SYS_mkdirat 258 end
// const SYS_mknodat 259 end
// const SYS_fchownat 260 end
// const SYS_futimesat 261 end
// const SYS_newfstatat 262 end
// const SYS_unlinkat 263 end
// const SYS_renameat 264 end
// const SYS_linkat 265 end
// const SYS_symlinkat 266 end
// const SYS_readlinkat 267 end
// const SYS_fchmodat 268 end
// const SYS_faccessat 269 end
// const SYS_pselect6 270 end
// const SYS_ppoll 271 end
// const SYS_unshare 272 end
// const SYS_set_robust_list 273 end
// const SYS_get_robust_list 274 end
// const SYS_splice 275 end
// const SYS_tee 276 end
// const SYS_sync_file_range 277 end
// const SYS_vmsplice 278 end
// const SYS_move_pages 279 end
// const SYS_utimensat 280 end
// const SYS_epoll_pwait 281 end
// const SYS_signalfd 282 end
// const SYS_timerfd_create 283 end
// const SYS_eventfd 284 end
// const SYS_fallocate 285 end
// const SYS_timerfd_settime 286 end
// const SYS_timerfd_gettime 287 end
// const SYS_accept4 288 end
// const SYS_signalfd4 289 end
// const SYS_eventfd2 290 end
// const SYS_epoll_create1 291 end
// const SYS_dup3 292 end
// const SYS_pipe2 293 end
// const SYS_inotify_init1 294 end
// const SYS_preadv 295 end
// const SYS_pwritev 296 end
// const SYS_rt_tgsigqueueinfo 297 end
// const SYS_perf_event_open 298 end
// const SYS_recvmmsg 299 end
// const SYS_fanotify_init 300 end
// const SYS_fanotify_mark 301 end
// const SYS_prlimit64 302 end
// const SYS_name_to_handle_at 303 end
// const SYS_open_by_handle_at 304 end
// const SYS_clock_adjtime 305 end
// const SYS_syncfs 306 end
// const SYS_sendmmsg 307 end
// const SYS_setns 308 end
// const SYS_getcpu 309 end
// const SYS_process_vm_readv 310 end
// const SYS_process_vm_writev 311 end
// const SYS_kcmp 312 end
// const SYS_finit_module 313 end

View File

View File

@@ -1,6 +1,2 @@
include "linux.mcl"
include "io.mcl"
include "util.mcl"
include "int.mcl"
include "fs.mcl"
include "compat.mcl"
include "linux/linux.mcl"
include "types.mcl"

4
include/types.mcl Normal file
View File

@@ -0,0 +1,4 @@
const sizeof(u8) 1 end
const sizeof(u16) 2 end
const sizeof(u32) 4 end
const sizeof(u64) 8 end

View File

@@ -1,15 +0,0 @@
// Assert implementation
// args: [condition, str_len, str_ptr]
// @arg condition: Bool
// @arg str_len: Int
// @arg str_ptr: Ptr
// @ret NULL/NEVER
fn assert with bool int ptr returns void then
rot
if else
"Assert failed: \"" eputs eputs
"\". Exiting!\n" eputs
1 exit
end
done