first commit
This commit is contained in:
commit
551ed00a32
11 changed files with 705 additions and 0 deletions
8
.gitignore
vendored
Normal file
8
.gitignore
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
# Xmake cache
|
||||
.xmake/
|
||||
build/
|
||||
|
||||
# MacOS Cache
|
||||
.DS_Store
|
||||
|
||||
|
5
examples/helloworld/main.c
Normal file
5
examples/helloworld/main.c
Normal file
|
@ -0,0 +1,5 @@
|
|||
#include <stdlib.h>
|
||||
|
||||
int main() {
|
||||
exit(10);
|
||||
}
|
333
include/platforms/linux-amd64/syscall.h
Normal file
333
include/platforms/linux-amd64/syscall.h
Normal file
|
@ -0,0 +1,333 @@
|
|||
#define sys_read 0
|
||||
#define sys_write 1
|
||||
#define sys_open 2
|
||||
#define sys_close 3
|
||||
#define sys_stat 4
|
||||
#define sys_fstat 5
|
||||
#define sys_lstat 6
|
||||
#define sys_poll 7
|
||||
#define sys_lseek 8
|
||||
#define sys_mmap 9
|
||||
#define sys_mprotect 10
|
||||
#define sys_munmap 11
|
||||
#define sys_brk 12
|
||||
#define sys_rt_sigaction 13
|
||||
#define sys_rt_sigprocmask 14
|
||||
#define sys_rt_sigreturn 15
|
||||
#define sys_ioctl 16
|
||||
#define sys_pread64 17
|
||||
#define sys_pwrite64 18
|
||||
#define sys_readv 19
|
||||
#define sys_writev 20
|
||||
#define sys_access 21
|
||||
#define sys_pipe 22
|
||||
#define sys_select 23
|
||||
#define sys_sched_yield 24
|
||||
#define sys_mremap 25
|
||||
#define sys_msync 26
|
||||
#define sys_mincore 27
|
||||
#define sys_madvise 28
|
||||
#define sys_shmget 29
|
||||
#define sys_shmat 30
|
||||
#define sys_shmctl 31
|
||||
#define sys_dup 32
|
||||
#define sys_dup2 33
|
||||
#define sys_pause 34
|
||||
#define sys_nanosleep 35
|
||||
#define sys_getitimer 36
|
||||
#define sys_alarm 37
|
||||
#define sys_setitimer 38
|
||||
#define sys_getpid 39
|
||||
#define sys_sendfile 40
|
||||
#define sys_socket 41
|
||||
#define sys_connect 42
|
||||
#define sys_accept 43
|
||||
#define sys_sendto 44
|
||||
#define sys_recvfrom 45
|
||||
#define sys_sendmsg 46
|
||||
#define sys_recvmsg 47
|
||||
#define sys_shutdown 48
|
||||
#define sys_bind 49
|
||||
#define sys_listen 50
|
||||
#define sys_getsockname 51
|
||||
#define sys_getpeername 52
|
||||
#define sys_socketpair 53
|
||||
#define sys_setsockopt 54
|
||||
#define sys_getsockopt 55
|
||||
#define sys_clone 56
|
||||
#define sys_fork 57
|
||||
#define sys_vfork 58
|
||||
#define sys_execve 59
|
||||
#define sys_exit 60
|
||||
#define sys_wait4 61
|
||||
#define sys_kill 62
|
||||
#define sys_uname 63
|
||||
#define sys_semget 64
|
||||
#define sys_semop 65
|
||||
#define sys_semctl 66
|
||||
#define sys_shmdt 67
|
||||
#define sys_msgget 68
|
||||
#define sys_msgsnd 69
|
||||
#define sys_msgrcv 70
|
||||
#define sys_msgctl 71
|
||||
#define sys_fcntl 72
|
||||
#define sys_flock 73
|
||||
#define sys_fsync 74
|
||||
#define sys_fdatasync 75
|
||||
#define sys_truncate 76
|
||||
#define sys_ftruncate 77
|
||||
#define sys_getdents 78
|
||||
#define sys_getcwd 79
|
||||
#define sys_chdir 80
|
||||
#define sys_fchdir 81
|
||||
#define sys_rename 82
|
||||
#define sys_mkdir 83
|
||||
#define sys_rmdir 84
|
||||
#define sys_creat 85
|
||||
#define sys_link 86
|
||||
#define sys_unlink 87
|
||||
#define sys_symlink 88
|
||||
#define sys_readlink 89
|
||||
#define sys_chmod 90
|
||||
#define sys_fchmod 91
|
||||
#define sys_chown 92
|
||||
#define sys_fchown 93
|
||||
#define sys_lchown 94
|
||||
#define sys_umask 95
|
||||
#define sys_gettimeofday 96
|
||||
#define sys_getrlimit 97
|
||||
#define sys_getrusage 98
|
||||
#define sys_sysinfo 99
|
||||
#define sys_times 100
|
||||
#define sys_ptrace 101
|
||||
#define sys_getuid 102
|
||||
#define sys_syslog 103
|
||||
#define sys_getgid 104
|
||||
#define sys_setuid 105
|
||||
#define sys_setgid 106
|
||||
#define sys_geteuid 107
|
||||
#define sys_getegid 108
|
||||
#define sys_setpgid 109
|
||||
#define sys_getppid 110
|
||||
#define sys_getpgrp 111
|
||||
#define sys_setsid 112
|
||||
#define sys_setreuid 113
|
||||
#define sys_setregid 114
|
||||
#define sys_getgroups 115
|
||||
#define sys_setgroups 116
|
||||
#define sys_setresuid 117
|
||||
#define sys_getresuid 118
|
||||
#define sys_setresgid 119
|
||||
#define sys_getresgid 120
|
||||
#define sys_getpgid 121
|
||||
#define sys_setfsuid 122
|
||||
#define sys_setfsgid 123
|
||||
#define sys_getsid 124
|
||||
#define sys_capget 125
|
||||
#define sys_capset 126
|
||||
#define sys_rt_sigpending 127
|
||||
#define sys_rt_sigtimedwait 128
|
||||
#define sys_rt_sigqueueinfo 129
|
||||
#define sys_rt_sigsuspend 130
|
||||
#define sys_sigaltstack 131
|
||||
#define sys_utime 132
|
||||
#define sys_mknod 133
|
||||
#define sys_uselib 134
|
||||
#define sys_personality 135
|
||||
#define sys_ustat 136
|
||||
#define sys_statfs 137
|
||||
#define sys_fstatfs 138
|
||||
#define sys_sysfs 139
|
||||
#define sys_getpriority 140
|
||||
#define sys_setpriority 141
|
||||
#define sys_sched_setparam 142
|
||||
#define sys_sched_getparam 143
|
||||
#define sys_sched_setscheduler 144
|
||||
#define sys_sched_getscheduler 145
|
||||
#define sys_sched_get_priority_max 146
|
||||
#define sys_sched_get_priority_min 147
|
||||
#define sys_sched_rr_get_interval 148
|
||||
#define sys_mlock 149
|
||||
#define sys_munlock 150
|
||||
#define sys_mlockall 151
|
||||
#define sys_munlockall 152
|
||||
#define sys_vhangup 153
|
||||
#define sys_modify_ldt 154
|
||||
#define sys_pivot_root 155
|
||||
#define sys__sysctl 156
|
||||
#define sys_prctl 157
|
||||
#define sys_arch_prctl 158
|
||||
#define sys_adjtimex 159
|
||||
#define sys_setrlimit 160
|
||||
#define sys_chroot 161
|
||||
#define sys_sync 162
|
||||
#define sys_acct 163
|
||||
#define sys_settimeofday 164
|
||||
#define sys_mount 165
|
||||
#define sys_umount2 166
|
||||
#define sys_swapon 167
|
||||
#define sys_swapoff 168
|
||||
#define sys_reboot 169
|
||||
#define sys_sethostname 170
|
||||
#define sys_setdomainname 171
|
||||
#define sys_iopl 172
|
||||
#define sys_ioperm 173
|
||||
#define sys_create_module 174
|
||||
#define sys_init_module 175
|
||||
#define sys_delete_module 176
|
||||
#define sys_get_kernel_syms 177
|
||||
#define sys_query_module 178
|
||||
#define sys_quotactl 179
|
||||
#define sys_nfsservctl 180
|
||||
#define sys_getpmsg 181
|
||||
#define sys_putpmsg 182
|
||||
#define sys_afs_syscall 183
|
||||
#define sys_tuxcall 184
|
||||
#define sys_security 185
|
||||
#define sys_gettid 186
|
||||
#define sys_readahead 187
|
||||
#define sys_setxattr 188
|
||||
#define sys_lsetxattr 189
|
||||
#define sys_fsetxattr 190
|
||||
#define sys_getxattr 191
|
||||
#define sys_lgetxattr 192
|
||||
#define sys_fgetxattr 193
|
||||
#define sys_listxattr 194
|
||||
#define sys_llistxattr 195
|
||||
#define sys_flistxattr 196
|
||||
#define sys_removexattr 197
|
||||
#define sys_lremovexattr 198
|
||||
#define sys_fremovexattr 199
|
||||
#define sys_tkill 200
|
||||
#define sys_time 201
|
||||
#define sys_futex 202
|
||||
#define sys_sched_setaffinity 203
|
||||
#define sys_sched_getaffinity 204
|
||||
#define sys_set_thread_area 205
|
||||
#define sys_io_setup 206
|
||||
#define sys_io_destroy 207
|
||||
#define sys_io_getevents 208
|
||||
#define sys_io_submit 209
|
||||
#define sys_io_cancel 210
|
||||
#define sys_get_thread_area 211
|
||||
#define sys_lookup_dcookie 212
|
||||
#define sys_epoll_create 213
|
||||
#define sys_epoll_ctl_old 214
|
||||
#define sys_epoll_wait_old 215
|
||||
#define sys_remap_file_pages 216
|
||||
#define sys_getdents64 217
|
||||
#define sys_set_tid_address 218
|
||||
#define sys_restart_syscall 219
|
||||
#define sys_semtimedop 220
|
||||
#define sys_fadvise64 221
|
||||
#define sys_timer_create 222
|
||||
#define sys_timer_settime 223
|
||||
#define sys_timer_gettime 224
|
||||
#define sys_timer_getoverrun 225
|
||||
#define sys_timer_delete 226
|
||||
#define sys_clock_settime 227
|
||||
#define sys_clock_gettime 228
|
||||
#define sys_clock_getres 229
|
||||
#define sys_clock_nanosleep 230
|
||||
#define sys_exit_group 231
|
||||
#define sys_epoll_wait 232
|
||||
#define sys_epoll_ctl 233
|
||||
#define sys_tgkill 234
|
||||
#define sys_utimes 235
|
||||
#define sys_vserver 236
|
||||
#define sys_mbind 237
|
||||
#define sys_set_mempolicy 238
|
||||
#define sys_get_mempolicy 239
|
||||
#define sys_mq_open 240
|
||||
#define sys_mq_unlink 241
|
||||
#define sys_mq_timedsend 242
|
||||
#define sys_mq_timedreceive 243
|
||||
#define sys_mq_notify 244
|
||||
#define sys_mq_getsetattr 245
|
||||
#define sys_kexec_load 246
|
||||
#define sys_waitid 247
|
||||
#define sys_add_key 248
|
||||
#define sys_request_key 249
|
||||
#define sys_keyctl 250
|
||||
#define sys_ioprio_set 251
|
||||
#define sys_ioprio_get 252
|
||||
#define sys_inotify_init 253
|
||||
#define sys_inotify_add_watch 254
|
||||
#define sys_inotify_rm_watch 255
|
||||
#define sys_migrate_pages 256
|
||||
#define sys_openat 257
|
||||
#define sys_mkdirat 258
|
||||
#define sys_mknodat 259
|
||||
#define sys_fchownat 260
|
||||
#define sys_futimesat 261
|
||||
#define sys_newfstatat 262
|
||||
#define sys_unlinkat 263
|
||||
#define sys_renameat 264
|
||||
#define sys_linkat 265
|
||||
#define sys_symlinkat 266
|
||||
#define sys_readlinkat 267
|
||||
#define sys_fchmodat 268
|
||||
#define sys_faccessat 269
|
||||
#define sys_pselect6 270
|
||||
#define sys_ppoll 271
|
||||
#define sys_unshare 272
|
||||
#define sys_set_robust_list 273
|
||||
#define sys_get_robust_list 274
|
||||
#define sys_splice 275
|
||||
#define sys_tee 276
|
||||
#define sys_sync_file_range 277
|
||||
#define sys_vmsplice 278
|
||||
#define sys_move_pages 279
|
||||
#define sys_utimensat 280
|
||||
#define sys_epoll_pwait 281
|
||||
#define sys_signalfd 282
|
||||
#define sys_timerfd_create 283
|
||||
#define sys_eventfd 284
|
||||
#define sys_fallocate 285
|
||||
#define sys_timerfd_settime 286
|
||||
#define sys_timerfd_gettime 287
|
||||
#define sys_accept4 288
|
||||
#define sys_signalfd4 289
|
||||
#define sys_eventfd2 290
|
||||
#define sys_epoll_create1 291
|
||||
#define sys_dup3 292
|
||||
#define sys_pipe2 293
|
||||
#define sys_inotify_init1 294
|
||||
#define sys_preadv 295
|
||||
#define sys_pwritev 296
|
||||
#define sys_rt_tgsigqueueinfo 297
|
||||
#define sys_perf_event_open 298
|
||||
#define sys_recvmmsg 299
|
||||
#define sys_fanotify_init 300
|
||||
#define sys_fanotify_mark 301
|
||||
#define sys_prlimit64 302
|
||||
#define sys_name_to_handle_at 303
|
||||
#define sys_open_by_handle_at 304
|
||||
#define sys_clock_adjtime 305
|
||||
#define sys_syncfs 306
|
||||
#define sys_sendmmsg 307
|
||||
#define sys_setns 308
|
||||
#define sys_getcpu 309
|
||||
#define sys_process_vm_readv 310
|
||||
#define sys_process_vm_writev 311
|
||||
#define sys_kcmp 312
|
||||
#define sys_finit_module 313
|
||||
#define sys_sched_setattr 314
|
||||
#define sys_sched_getattr 315
|
||||
#define sys_renameat2 316
|
||||
#define sys_seccomp 317
|
||||
#define sys_getrandom 318
|
||||
#define sys_memfd_create 319
|
||||
#define sys_kexec_file_load 320
|
||||
#define sys_bpf 321
|
||||
#define sys_execveat 322
|
||||
#define sys_userfaultfd 323
|
||||
#define sys_membarrier 324
|
||||
#define sys_mlock2 325
|
||||
#define sys_copy_file_range 326
|
||||
#define sys_preadv2 327
|
||||
#define sys_pwritev2 328
|
||||
#define sys_pkey_mprotect 329
|
||||
#define sys_pkey_alloc 330
|
||||
#define sys_pkey_free 331
|
||||
#define sys_statx 332
|
276
include/platforms/linux-arm64/syscall.h
Normal file
276
include/platforms/linux-arm64/syscall.h
Normal file
|
@ -0,0 +1,276 @@
|
|||
#define sys_io_setup 0
|
||||
#define sys_io_destroy 1
|
||||
#define sys_io_submit 2
|
||||
#define sys_io_cancel 3
|
||||
#define sys_io_getevents 4
|
||||
#define sys_setxattr 5
|
||||
#define sys_lsetxattr 6
|
||||
#define sys_fsetxattr 7
|
||||
#define sys_getxattr 8
|
||||
#define sys_lgetxattr 9
|
||||
#define sys_fgetxattr 10
|
||||
#define sys_listxattr 11
|
||||
#define sys_llistxattr 12
|
||||
#define sys_flistxattr 13
|
||||
#define sys_removexattr 14
|
||||
#define sys_lremovexattr 15
|
||||
#define sys_fremovexattr 16
|
||||
#define sys_getcwd 17
|
||||
#define sys_lookup_dcookie 18
|
||||
#define sys_eventfd2 19
|
||||
#define sys_epoll_create1 20
|
||||
#define sys_epoll_ctl 21
|
||||
#define sys_epoll_pwait 22
|
||||
#define sys_dup 23
|
||||
#define sys_dup3 24
|
||||
#define sys_fcntl 25
|
||||
#define sys_inotify_init1 26
|
||||
#define sys_inotify_add_watch 27
|
||||
#define sys_inotify_rm_watch 28
|
||||
#define sys_ioctl 29
|
||||
#define sys_ioprio_set 30
|
||||
#define sys_ioprio_get 31
|
||||
#define sys_flock 32
|
||||
#define sys_mknodat 33
|
||||
#define sys_mkdirat 34
|
||||
#define sys_unlinkat 35
|
||||
#define sys_symlinkat 36
|
||||
#define sys_linkat 37
|
||||
#define sys_renameat 38
|
||||
#define sys_umount2 39
|
||||
#define sys_mount 40
|
||||
#define sys_pivot_root 41
|
||||
#define sys_nfsservctl 42
|
||||
#define sys_statfs 43
|
||||
#define sys_fstatfs 44
|
||||
#define sys_truncate 45
|
||||
#define sys_ftruncate 46
|
||||
#define sys_fallocate 47
|
||||
#define sys_faccessat 48
|
||||
#define sys_chdir 49
|
||||
#define sys_fchdir 50
|
||||
#define sys_chroot 51
|
||||
#define sys_fchmod 52
|
||||
#define sys_fchmodat 53
|
||||
#define sys_fchownat 54
|
||||
#define sys_fchown 55
|
||||
#define sys_openat 56
|
||||
#define sys_close 57
|
||||
#define sys_vhangup 58
|
||||
#define sys_pipe2 59
|
||||
#define sys_quotactl 60
|
||||
#define sys_getdents64 61
|
||||
#define sys_lseek 62
|
||||
#define sys_read 63
|
||||
#define sys_write 64
|
||||
#define sys_readv 65
|
||||
#define sys_writev 66
|
||||
#define sys_pread64 67
|
||||
#define sys_pwrite64 68
|
||||
#define sys_preadv 69
|
||||
#define sys_pwritev 70
|
||||
#define sys_sendfile 71
|
||||
#define sys_pselect6 72
|
||||
#define sys_ppoll 73
|
||||
#define sys_signalfd4 74
|
||||
#define sys_vmsplice 75
|
||||
#define sys_splice 76
|
||||
#define sys_tee 77
|
||||
#define sys_readlinkat 78
|
||||
#define sys_newfstatat 79
|
||||
#define sys_fstat 80
|
||||
#define sys_sync 81
|
||||
#define sys_fsync 82
|
||||
#define sys_fdatasync 83
|
||||
#define sys_sync_file_range 84
|
||||
#define sys_timerfd_create 85
|
||||
#define sys_timerfd_settime 86
|
||||
#define sys_timerfd_gettime 87
|
||||
#define sys_utimensat 88
|
||||
#define sys_acct 89
|
||||
#define sys_capget 90
|
||||
#define sys_capset 91
|
||||
#define sys_personality 92
|
||||
#define sys_exit 93
|
||||
#define sys_exit_group 94
|
||||
#define sys_waitid 95
|
||||
#define sys_set_tid_address 96
|
||||
#define sys_unshare 97
|
||||
#define sys_futex 98
|
||||
#define sys_set_robust_list 99
|
||||
#define sys_get_robust_list 100
|
||||
#define sys_nanosleep 101
|
||||
#define sys_getitimer 102
|
||||
#define sys_setitimer 103
|
||||
#define sys_kexec_load 104
|
||||
#define sys_init_module 105
|
||||
#define sys_delete_module 106
|
||||
#define sys_timer_create 107
|
||||
#define sys_timer_gettime 108
|
||||
#define sys_timer_getoverrun 109
|
||||
#define sys_timer_settime 110
|
||||
#define sys_timer_delete 111
|
||||
#define sys_clock_settime 112
|
||||
#define sys_clock_gettime 113
|
||||
#define sys_clock_getres 114
|
||||
#define sys_clock_nanosleep 115
|
||||
#define sys_syslog 116
|
||||
#define sys_ptrace 117
|
||||
#define sys_sched_setparam 118
|
||||
#define sys_sched_setscheduler 119
|
||||
#define sys_sched_getscheduler 120
|
||||
#define sys_sched_getparam 121
|
||||
#define sys_sched_setaffinity 122
|
||||
#define sys_sched_getaffinity 123
|
||||
#define sys_sched_yield 124
|
||||
#define sys_sched_get_priority_max 125
|
||||
#define sys_sched_get_priority_min 126
|
||||
#define sys_sched_rr_get_interval 127
|
||||
#define sys_restart_syscall 128
|
||||
#define sys_kill 129
|
||||
#define sys_tkill 130
|
||||
#define sys_tgkill 131
|
||||
#define sys_sigaltstack 132
|
||||
#define sys_rt_sigsuspend 133
|
||||
#define sys_rt_sigaction 134
|
||||
#define sys_rt_sigprocmask 135
|
||||
#define sys_rt_sigpending 136
|
||||
#define sys_rt_sigtimedwait 137
|
||||
#define sys_rt_sigqueueinfo 138
|
||||
#define sys_rt_sigreturn 139
|
||||
#define sys_setpriority 140
|
||||
#define sys_getpriority 141
|
||||
#define sys_reboot 142
|
||||
#define sys_setregid 143
|
||||
#define sys_setgid 144
|
||||
#define sys_setreuid 145
|
||||
#define sys_setuid 146
|
||||
#define sys_setresuid 147
|
||||
#define sys_getresuid 148
|
||||
#define sys_setresgid 149
|
||||
#define sys_getresgid 150
|
||||
#define sys_setfsuid 151
|
||||
#define sys_setfsgid 152
|
||||
#define sys_times 153
|
||||
#define sys_setpgid 154
|
||||
#define sys_getpgid 155
|
||||
#define sys_getsid 156
|
||||
#define sys_setsid 157
|
||||
#define sys_getgroups 158
|
||||
#define sys_setgroups 159
|
||||
#define sys_uname 160
|
||||
#define sys_sethostname 161
|
||||
#define sys_setdomainname 162
|
||||
#define sys_getrlimit 163
|
||||
#define sys_setrlimit 164
|
||||
#define sys_getrusage 165
|
||||
#define sys_umask 166
|
||||
#define sys_prctl 167
|
||||
#define sys_getcpu 168
|
||||
#define sys_gettimeofday 169
|
||||
#define sys_settimeofday 170
|
||||
#define sys_adjtimex 171
|
||||
#define sys_getpid 172
|
||||
#define sys_getppid 173
|
||||
#define sys_getuid 174
|
||||
#define sys_geteuid 175
|
||||
#define sys_getgid 176
|
||||
#define sys_getegid 177
|
||||
#define sys_gettid 178
|
||||
#define sys_sysinfo 179
|
||||
#define sys_mq_open 180
|
||||
#define sys_mq_unlink 181
|
||||
#define sys_mq_timedsend 182
|
||||
#define sys_mq_timedreceive 183
|
||||
#define sys_mq_notify 184
|
||||
#define sys_mq_getsetattr 185
|
||||
#define sys_msgget 186
|
||||
#define sys_msgctl 187
|
||||
#define sys_msgrcv 188
|
||||
#define sys_msgsnd 189
|
||||
#define sys_semget 190
|
||||
#define sys_semctl 191
|
||||
#define sys_semtimedop 192
|
||||
#define sys_semop 193
|
||||
#define sys_shmget 194
|
||||
#define sys_shmctl 195
|
||||
#define sys_shmat 196
|
||||
#define sys_shmdt 197
|
||||
#define sys_socket 198
|
||||
#define sys_socketpair 199
|
||||
#define sys_bind 200
|
||||
#define sys_listen 201
|
||||
#define sys_accept 202
|
||||
#define sys_connect 203
|
||||
#define sys_getsockname 204
|
||||
#define sys_getpeername 205
|
||||
#define sys_sendto 206
|
||||
#define sys_recvfrom 207
|
||||
#define sys_setsockopt 208
|
||||
#define sys_getsockopt 209
|
||||
#define sys_shutdown 210
|
||||
#define sys_sendmsg 211
|
||||
#define sys_recvmsg 212
|
||||
#define sys_readahead 213
|
||||
#define sys_brk 214
|
||||
#define sys_munmap 215
|
||||
#define sys_mremap 216
|
||||
#define sys_add_key 217
|
||||
#define sys_request_key 218
|
||||
#define sys_keyctl 219
|
||||
#define sys_clone 220
|
||||
#define sys_execve 221
|
||||
#define sys_mmap 222
|
||||
#define sys_fadvise64 223
|
||||
#define sys_swapon 224
|
||||
#define sys_swapoff 225
|
||||
#define sys_mprotect 226
|
||||
#define sys_msync 227
|
||||
#define sys_mlock 228
|
||||
#define sys_munlock 229
|
||||
#define sys_mlockall 230
|
||||
#define sys_munlockall 231
|
||||
#define sys_mincore 232
|
||||
#define sys_madvise 233
|
||||
#define sys_remap_file_pages 234
|
||||
#define sys_mbind 235
|
||||
#define sys_get_mempolicy 236
|
||||
#define sys_set_mempolicy 237
|
||||
#define sys_migrate_pages 238
|
||||
#define sys_move_pages 239
|
||||
#define sys_rt_tgsigqueueinfo 240
|
||||
#define sys_perf_event_open 241
|
||||
#define sys_accept4 242
|
||||
#define sys_recvmmsg 243
|
||||
#define sys_wait4 260
|
||||
#define sys_prlimit64 261
|
||||
#define sys_fanotify_init 262
|
||||
#define sys_fanotify_mark 263
|
||||
#define sys_name_to_handle_at 264
|
||||
#define sys_open_by_handle_at 265
|
||||
#define sys_clock_adjtime 266
|
||||
#define sys_syncfs 267
|
||||
#define sys_setns 268
|
||||
#define sys_sendmmsg 269
|
||||
#define sys_process_vm_readv 270
|
||||
#define sys_process_vm_writev 271
|
||||
#define sys_kcmp 272
|
||||
#define sys_finit_module 273
|
||||
#define sys_sched_setattr 274
|
||||
#define sys_sched_getattr 275
|
||||
#define sys_renameat2 276
|
||||
#define sys_seccomp 277
|
||||
#define sys_getrandom 278
|
||||
#define sys_memfd_create 279
|
||||
#define sys_bpf 280
|
||||
#define sys_execveat 281
|
||||
#define sys_userfaultfd 282
|
||||
#define sys_membarrier 283
|
||||
#define sys_mlock2 284
|
||||
#define sys_copy_file_range 285
|
||||
#define sys_preadv2 286
|
||||
#define sys_pwritev2 287
|
||||
#define sys_pkey_mprotect 288
|
||||
#define sys_pkey_alloc 289
|
||||
#define sys_pkey_free 290
|
||||
#define sys_statx 291
|
12
include/syscall.h
Normal file
12
include/syscall.h
Normal file
|
@ -0,0 +1,12 @@
|
|||
#ifndef __SYSCALL_H__
|
||||
#define __SYSCALL_H__
|
||||
|
||||
#if defined(__linux__) && defined(__aarch64__)
|
||||
#include "platforms/linux-arm64/syscall.h"
|
||||
#elif defined(__linux__) && defined(__amd64__)
|
||||
#include "platforms/linux-amd64/syscall.h"
|
||||
#endif
|
||||
|
||||
extern int syscall(int nr, ...);
|
||||
|
||||
#endif
|
4
src/platforms/linux-amd64/entry.s
Normal file
4
src/platforms/linux-amd64/entry.s
Normal file
|
@ -0,0 +1,4 @@
|
|||
.globl _start
|
||||
|
||||
_start:
|
||||
jmp main
|
12
src/platforms/linux-amd64/syscall.s
Normal file
12
src/platforms/linux-amd64/syscall.s
Normal file
|
@ -0,0 +1,12 @@
|
|||
.globl syscall
|
||||
|
||||
syscall:
|
||||
mov rax, rdi
|
||||
mov rdi, rsi
|
||||
mov rsi, rdx
|
||||
mov rdx, rcx
|
||||
mov r10, r8
|
||||
mov r8, r9
|
||||
mov r9, [rsp + 8]
|
||||
syscall
|
||||
ret
|
5
src/platforms/linux-arm64/entry.s
Normal file
5
src/platforms/linux-arm64/entry.s
Normal file
|
@ -0,0 +1,5 @@
|
|||
.globl _start
|
||||
|
||||
_start:
|
||||
ldp x0, x1, [sp], #16
|
||||
b main
|
12
src/platforms/linux-arm64/syscall.s
Normal file
12
src/platforms/linux-arm64/syscall.s
Normal file
|
@ -0,0 +1,12 @@
|
|||
.globl syscall
|
||||
|
||||
syscall:
|
||||
mov x8, x0
|
||||
mov x0, x1
|
||||
mov x1, x2
|
||||
mov x2, x3
|
||||
mov x3, x4
|
||||
mov x4, x5
|
||||
mov x5, x6
|
||||
svc #0
|
||||
ret
|
5
src/stdlib.c
Normal file
5
src/stdlib.c
Normal file
|
@ -0,0 +1,5 @@
|
|||
#include <syscall.h>
|
||||
|
||||
void exit(int status) {
|
||||
syscall(sys_exit, status);
|
||||
}
|
33
xmake.lua
Normal file
33
xmake.lua
Normal file
|
@ -0,0 +1,33 @@
|
|||
add_rules("mode.debug", "mode.release")
|
||||
|
||||
local cflags = { "-fno-builtin" }
|
||||
local ldflags = { "-nostdlib" }
|
||||
local includedirs = { "include" }
|
||||
|
||||
target("slibc")
|
||||
set_kind("static")
|
||||
add_files("src/*.c")
|
||||
add_includedirs(includedirs)
|
||||
add_cflags(cflags)
|
||||
|
||||
local plat_name
|
||||
if is_plat("linux") and is_arch("arm64") then
|
||||
plat_name = "linux-arm64"
|
||||
elseif is_plat("linux") and is_arch("amd64") then
|
||||
plat_name = "linux-amd64"
|
||||
end
|
||||
|
||||
if plat_name ~= nil then
|
||||
local plat_path = "src/platforms/" .. plat_name .. "/"
|
||||
add_files(plat_path .. "**.s")
|
||||
end
|
||||
|
||||
for _, dir in ipairs(os.dirs("examples/*")) do
|
||||
target(path.basename(dir))
|
||||
set_kind("binary")
|
||||
add_files(dir .. "/*.c")
|
||||
add_includedirs(includedirs)
|
||||
add_cflags(cflags)
|
||||
add_ldflags(ldflags)
|
||||
add_deps("slibc")
|
||||
end
|
Loading…
Add table
Reference in a new issue