aboutsummaryrefslogtreecommitdiff
path: root/lib/mlibc/sysdeps/linux/riscv64
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2024-03-07 17:28:52 -0500
committerIan Moffett <ian@osmora.org>2024-03-07 18:24:51 -0500
commitf5e48e94a2f4d4bbd6e5628c7f2afafc6dbcc459 (patch)
tree93b156621dc0303816b37f60ba88051b702d92f6 /lib/mlibc/sysdeps/linux/riscv64
parentbd5969fc876a10b18613302db7087ef3c40f18e1 (diff)
build: Build mlibc + add distclean target
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'lib/mlibc/sysdeps/linux/riscv64')
-rw-r--r--lib/mlibc/sysdeps/linux/riscv64/arch-syscall.cpp117
-rw-r--r--lib/mlibc/sysdeps/linux/riscv64/cp_syscall.S30
-rw-r--r--lib/mlibc/sysdeps/linux/riscv64/crt-src/Scrt1.S18
-rw-r--r--lib/mlibc/sysdeps/linux/riscv64/crt-src/crt1.S15
-rw-r--r--lib/mlibc/sysdeps/linux/riscv64/crt-src/crti.S11
-rw-r--r--lib/mlibc/sysdeps/linux/riscv64/crt-src/crtn.S7
-rw-r--r--lib/mlibc/sysdeps/linux/riscv64/signals.S12
-rw-r--r--lib/mlibc/sysdeps/linux/riscv64/syscallnos.h314
-rw-r--r--lib/mlibc/sysdeps/linux/riscv64/thread_entry.S29
9 files changed, 0 insertions, 553 deletions
diff --git a/lib/mlibc/sysdeps/linux/riscv64/arch-syscall.cpp b/lib/mlibc/sysdeps/linux/riscv64/arch-syscall.cpp
deleted file mode 100644
index 18ac6b0..0000000
--- a/lib/mlibc/sysdeps/linux/riscv64/arch-syscall.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-#include <sys/syscall.h>
-#include <bits/syscall.h>
-
-using sc_word_t = __sc_word_t;
-
-sc_word_t __do_syscall0(long sc) {
- register int sc_reg asm("a7") = sc;
- register sc_word_t ret asm("a0");
- asm volatile ("ecall" : "=r"(ret) : "r"(sc_reg) : "memory", "a1");
- return ret;
-}
-
-sc_word_t __do_syscall1(long sc,
- sc_word_t arg1) {
- register int sc_reg asm("a7") = sc;
- register sc_word_t arg1_reg asm("a0") = arg1;
- register sc_word_t ret asm("a0");
- asm volatile ("ecall" : "=r"(ret) :
- "r"(sc_reg),
- "r"(arg1_reg)
- : "memory", "a1");
- return ret;
-}
-
-sc_word_t __do_syscall2(long sc,
- sc_word_t arg1, sc_word_t arg2) {
- register int sc_reg asm("a7") = sc;
- register sc_word_t arg1_reg asm("a0") = arg1;
- register sc_word_t arg2_reg asm("a1") = arg2;
- register sc_word_t ret asm("a0");
- asm volatile ("ecall" : "=r"(ret) :
- "r"(sc_reg),
- "r"(arg1_reg),
- "r"(arg2_reg)
- : "memory");
- return ret;
-}
-
-sc_word_t __do_syscall3(long sc,
- sc_word_t arg1, sc_word_t arg2, sc_word_t arg3) {
- register int sc_reg asm("a7") = sc;
- register sc_word_t arg1_reg asm("a0") = arg1;
- register sc_word_t arg2_reg asm("a1") = arg2;
- register sc_word_t arg3_reg asm("a2") = arg3;
- register sc_word_t ret asm("a0");
- asm volatile ("ecall" : "=r"(ret) :
- "r"(sc_reg),
- "r"(arg1_reg),
- "r"(arg2_reg),
- "r"(arg3_reg)
- : "memory");
- return ret;
-}
-
-sc_word_t __do_syscall4(long sc,
- sc_word_t arg1, sc_word_t arg2, sc_word_t arg3,
- sc_word_t arg4) {
- register int sc_reg asm("a7") = sc;
- register sc_word_t arg1_reg asm("a0") = arg1;
- register sc_word_t arg2_reg asm("a1") = arg2;
- register sc_word_t arg3_reg asm("a2") = arg3;
- register sc_word_t arg4_reg asm("a3") = arg4;
- register sc_word_t ret asm("a0");
- asm volatile ("ecall" : "=r"(ret) :
- "r"(sc_reg),
- "r"(arg1_reg),
- "r"(arg2_reg),
- "r"(arg3_reg),
- "r"(arg4_reg)
- : "memory");
- return ret;
-}
-
-sc_word_t __do_syscall5(long sc,
- sc_word_t arg1, sc_word_t arg2, sc_word_t arg3,
- sc_word_t arg4, sc_word_t arg5) {
- register int sc_reg asm("a7") = sc;
- register sc_word_t arg1_reg asm("a0") = arg1;
- register sc_word_t arg2_reg asm("a1") = arg2;
- register sc_word_t arg3_reg asm("a2") = arg3;
- register sc_word_t arg4_reg asm("a3") = arg4;
- register sc_word_t arg5_reg asm("a4") = arg5;
- register sc_word_t ret asm("a0");
- asm volatile ("ecall" : "=r"(ret) :
- "r"(sc_reg),
- "r"(arg1_reg),
- "r"(arg2_reg),
- "r"(arg3_reg),
- "r"(arg4_reg),
- "r"(arg5_reg)
- : "memory");
- return ret;
-}
-
-sc_word_t __do_syscall6(long sc,
- sc_word_t arg1, sc_word_t arg2, sc_word_t arg3,
- sc_word_t arg4, sc_word_t arg5, sc_word_t arg6) {
- register int sc_reg asm("a7") = sc;
- register sc_word_t arg1_reg asm("a0") = arg1;
- register sc_word_t arg2_reg asm("a1") = arg2;
- register sc_word_t arg3_reg asm("a2") = arg3;
- register sc_word_t arg4_reg asm("a3") = arg4;
- register sc_word_t arg5_reg asm("a4") = arg5;
- register sc_word_t arg6_reg asm("a5") = arg6;
- register sc_word_t ret asm("a0");
- asm volatile ("ecall" : "=r"(ret) :
- "r"(sc_reg),
- "r"(arg1_reg),
- "r"(arg2_reg),
- "r"(arg3_reg),
- "r"(arg4_reg),
- "r"(arg5_reg),
- "r"(arg6_reg)
- : "memory"
- );
- return ret;
-}
diff --git a/lib/mlibc/sysdeps/linux/riscv64/cp_syscall.S b/lib/mlibc/sysdeps/linux/riscv64/cp_syscall.S
deleted file mode 100644
index 8d3175d..0000000
--- a/lib/mlibc/sysdeps/linux/riscv64/cp_syscall.S
+++ /dev/null
@@ -1,30 +0,0 @@
-.section .text
-.global __mlibc_do_asm_cp_syscall
-.global __mlibc_syscall_begin
-.global __mlibc_syscall_end
-.type __mlibc_do_asm_cp_syscall, "function"
-__mlibc_do_asm_cp_syscall:
- sd a7, -8(sp)
- mv a7, a0
- mv a0, a1
- mv a1, a2
- mv a2, a3
- mv a3, a4
- mv a4, a5
- mv a5, a6
- ld a6, -8(sp) // a7
- lw t0, -96(tp) // Tcb::cancelBits. See asserts in tcb.hpp.
-__mlibc_syscall_begin:
- // tcbCancelEnableBit && tcbCancelTriggerBit
- li t1, (1 << 0) | (1 << 2)
- and t0, t0, t1
- beq t0, t1, cancel
- ecall
-__mlibc_syscall_end:
- ret
-
-cancel:
- call __mlibc_do_cancel
- unimp
-.section .note.GNU-stack,"",%progbits
-
diff --git a/lib/mlibc/sysdeps/linux/riscv64/crt-src/Scrt1.S b/lib/mlibc/sysdeps/linux/riscv64/crt-src/Scrt1.S
deleted file mode 100644
index 9ee8625..0000000
--- a/lib/mlibc/sysdeps/linux/riscv64/crt-src/Scrt1.S
+++ /dev/null
@@ -1,18 +0,0 @@
-.section .text
-.global _start
-_start:
- .weak __global_pointer$
- .hidden __global_pointer$
- .option push
- .option norelax
- lla gp, __global_pointer$
- .option pop
-
- mv a0, sp
- la a1, main
- call __mlibc_entry@plt
- unimp
-
-
-.section .note.GNU-stack,"",%progbits
-
diff --git a/lib/mlibc/sysdeps/linux/riscv64/crt-src/crt1.S b/lib/mlibc/sysdeps/linux/riscv64/crt-src/crt1.S
deleted file mode 100644
index 16c79d6..0000000
--- a/lib/mlibc/sysdeps/linux/riscv64/crt-src/crt1.S
+++ /dev/null
@@ -1,15 +0,0 @@
-.section .text
-.global _start
-_start:
- .weak __global_pointer$
- .hidden __global_pointer$
- .option push
- .option norelax
- lla gp, __global_pointer$
- .option pop
-
- mv a0, sp
- la a1, main
- call __mlibc_entry
-.section .note.GNU-stack,"",%progbits
-
diff --git a/lib/mlibc/sysdeps/linux/riscv64/crt-src/crti.S b/lib/mlibc/sysdeps/linux/riscv64/crt-src/crti.S
deleted file mode 100644
index 69f23ea..0000000
--- a/lib/mlibc/sysdeps/linux/riscv64/crt-src/crti.S
+++ /dev/null
@@ -1,11 +0,0 @@
-.section .init
-.global _init
-_init:
- unimp
-
-.section .fini
-.global _fini
-_fini:
- unimp
-.section .note.GNU-stack,"",%progbits
-
diff --git a/lib/mlibc/sysdeps/linux/riscv64/crt-src/crtn.S b/lib/mlibc/sysdeps/linux/riscv64/crt-src/crtn.S
deleted file mode 100644
index 525efd6..0000000
--- a/lib/mlibc/sysdeps/linux/riscv64/crt-src/crtn.S
+++ /dev/null
@@ -1,7 +0,0 @@
-.section .init
- unimp
-
-.section .fini
- unimp
-.section .note.GNU-stack,"",%progbits
-
diff --git a/lib/mlibc/sysdeps/linux/riscv64/signals.S b/lib/mlibc/sysdeps/linux/riscv64/signals.S
deleted file mode 100644
index 7769043..0000000
--- a/lib/mlibc/sysdeps/linux/riscv64/signals.S
+++ /dev/null
@@ -1,12 +0,0 @@
-.section .text
-
-.global __mlibc_signal_restore
-.type __mlibc_signal_restore, @function
-__mlibc_signal_restore:
-.global __mlibc_signal_restore_rt
-.type __mlibc_signal_restore_rt, @function
-__mlibc_signal_restore_rt:
- li a7, 139
- ecall
-.section .note.GNU-stack,"",%progbits
-
diff --git a/lib/mlibc/sysdeps/linux/riscv64/syscallnos.h b/lib/mlibc/sysdeps/linux/riscv64/syscallnos.h
deleted file mode 100644
index a5a11bb..0000000
--- a/lib/mlibc/sysdeps/linux/riscv64/syscallnos.h
+++ /dev/null
@@ -1,314 +0,0 @@
-#ifndef __MLIBC_SYSCALLNOS_h
-#define __MLIBC_SYSCALLNOS_h
-/* This file is autogenerated. Don't bother. */
-/* Generator script: sysdeps/linux/update-syscall-list.py. */
-#define __NR_io_setup 0
-#define __NR_io_destroy 1
-#define __NR_io_submit 2
-#define __NR_io_cancel 3
-#define __NR_io_getevents 4
-#define __NR_setxattr 5
-#define __NR_lsetxattr 6
-#define __NR_fsetxattr 7
-#define __NR_getxattr 8
-#define __NR_lgetxattr 9
-#define __NR_fgetxattr 10
-#define __NR_listxattr 11
-#define __NR_llistxattr 12
-#define __NR_flistxattr 13
-#define __NR_removexattr 14
-#define __NR_lremovexattr 15
-#define __NR_fremovexattr 16
-#define __NR_getcwd 17
-#define __NR_lookup_dcookie 18
-#define __NR_eventfd2 19
-#define __NR_epoll_create1 20
-#define __NR_epoll_ctl 21
-#define __NR_epoll_pwait 22
-#define __NR_dup 23
-#define __NR_dup3 24
-#define __NR_fcntl 25
-#define __NR_inotify_init1 26
-#define __NR_inotify_add_watch 27
-#define __NR_inotify_rm_watch 28
-#define __NR_ioctl 29
-#define __NR_ioprio_set 30
-#define __NR_ioprio_get 31
-#define __NR_flock 32
-#define __NR_mknodat 33
-#define __NR_mkdirat 34
-#define __NR_unlinkat 35
-#define __NR_symlinkat 36
-#define __NR_linkat 37
-#define __NR_umount2 39
-#define __NR_mount 40
-#define __NR_pivot_root 41
-#define __NR_nfsservctl 42
-#define __NR_statfs 43
-#define __NR_fstatfs 44
-#define __NR_truncate 45
-#define __NR_ftruncate 46
-#define __NR_fallocate 47
-#define __NR_faccessat 48
-#define __NR_chdir 49
-#define __NR_fchdir 50
-#define __NR_chroot 51
-#define __NR_fchmod 52
-#define __NR_fchmodat 53
-#define __NR_fchownat 54
-#define __NR_fchown 55
-#define __NR_openat 56
-#define __NR_close 57
-#define __NR_vhangup 58
-#define __NR_pipe2 59
-#define __NR_quotactl 60
-#define __NR_getdents64 61
-#define __NR_lseek 62
-#define __NR_read 63
-#define __NR_write 64
-#define __NR_readv 65
-#define __NR_writev 66
-#define __NR_pread64 67
-#define __NR_pwrite64 68
-#define __NR_preadv 69
-#define __NR_pwritev 70
-#define __NR_sendfile 71
-#define __NR_pselect6 72
-#define __NR_ppoll 73
-#define __NR_signalfd4 74
-#define __NR_vmsplice 75
-#define __NR_splice 76
-#define __NR_tee 77
-#define __NR_readlinkat 78
-#define __NR_newfstatat 79
-#define __NR_fstat 80
-#define __NR_sync 81
-#define __NR_fsync 82
-#define __NR_fdatasync 83
-#define __NR_sync_file_range 84
-#define __NR_timerfd_create 85
-#define __NR_timerfd_settime 86
-#define __NR_timerfd_gettime 87
-#define __NR_utimensat 88
-#define __NR_acct 89
-#define __NR_capget 90
-#define __NR_capset 91
-#define __NR_personality 92
-#define __NR_exit 93
-#define __NR_exit_group 94
-#define __NR_waitid 95
-#define __NR_set_tid_address 96
-#define __NR_unshare 97
-#define __NR_futex 98
-#define __NR_set_robust_list 99
-#define __NR_get_robust_list 100
-#define __NR_nanosleep 101
-#define __NR_getitimer 102
-#define __NR_setitimer 103
-#define __NR_kexec_load 104
-#define __NR_init_module 105
-#define __NR_delete_module 106
-#define __NR_timer_create 107
-#define __NR_timer_gettime 108
-#define __NR_timer_getoverrun 109
-#define __NR_timer_settime 110
-#define __NR_timer_delete 111
-#define __NR_clock_settime 112
-#define __NR_clock_gettime 113
-#define __NR_clock_getres 114
-#define __NR_clock_nanosleep 115
-#define __NR_syslog 116
-#define __NR_ptrace 117
-#define __NR_sched_setparam 118
-#define __NR_sched_setscheduler 119
-#define __NR_sched_getscheduler 120
-#define __NR_sched_getparam 121
-#define __NR_sched_setaffinity 122
-#define __NR_sched_getaffinity 123
-#define __NR_sched_yield 124
-#define __NR_sched_get_priority_max 125
-#define __NR_sched_get_priority_min 126
-#define __NR_sched_rr_get_interval 127
-#define __NR_restart_syscall 128
-#define __NR_kill 129
-#define __NR_tkill 130
-#define __NR_tgkill 131
-#define __NR_sigaltstack 132
-#define __NR_rt_sigsuspend 133
-#define __NR_rt_sigaction 134
-#define __NR_rt_sigprocmask 135
-#define __NR_rt_sigpending 136
-#define __NR_rt_sigtimedwait 137
-#define __NR_rt_sigqueueinfo 138
-#define __NR_rt_sigreturn 139
-#define __NR_setpriority 140
-#define __NR_getpriority 141
-#define __NR_reboot 142
-#define __NR_setregid 143
-#define __NR_setgid 144
-#define __NR_setreuid 145
-#define __NR_setuid 146
-#define __NR_setresuid 147
-#define __NR_getresuid 148
-#define __NR_setresgid 149
-#define __NR_getresgid 150
-#define __NR_setfsuid 151
-#define __NR_setfsgid 152
-#define __NR_times 153
-#define __NR_setpgid 154
-#define __NR_getpgid 155
-#define __NR_getsid 156
-#define __NR_setsid 157
-#define __NR_getgroups 158
-#define __NR_setgroups 159
-#define __NR_uname 160
-#define __NR_sethostname 161
-#define __NR_setdomainname 162
-#define __NR_getrlimit 163
-#define __NR_setrlimit 164
-#define __NR_getrusage 165
-#define __NR_umask 166
-#define __NR_prctl 167
-#define __NR_getcpu 168
-#define __NR_gettimeofday 169
-#define __NR_settimeofday 170
-#define __NR_adjtimex 171
-#define __NR_getpid 172
-#define __NR_getppid 173
-#define __NR_getuid 174
-#define __NR_geteuid 175
-#define __NR_getgid 176
-#define __NR_getegid 177
-#define __NR_gettid 178
-#define __NR_sysinfo 179
-#define __NR_mq_open 180
-#define __NR_mq_unlink 181
-#define __NR_mq_timedsend 182
-#define __NR_mq_timedreceive 183
-#define __NR_mq_notify 184
-#define __NR_mq_getsetattr 185
-#define __NR_msgget 186
-#define __NR_msgctl 187
-#define __NR_msgrcv 188
-#define __NR_msgsnd 189
-#define __NR_semget 190
-#define __NR_semctl 191
-#define __NR_semtimedop 192
-#define __NR_semop 193
-#define __NR_shmget 194
-#define __NR_shmctl 195
-#define __NR_shmat 196
-#define __NR_shmdt 197
-#define __NR_socket 198
-#define __NR_socketpair 199
-#define __NR_bind 200
-#define __NR_listen 201
-#define __NR_accept 202
-#define __NR_connect 203
-#define __NR_getsockname 204
-#define __NR_getpeername 205
-#define __NR_sendto 206
-#define __NR_recvfrom 207
-#define __NR_setsockopt 208
-#define __NR_getsockopt 209
-#define __NR_shutdown 210
-#define __NR_sendmsg 211
-#define __NR_recvmsg 212
-#define __NR_readahead 213
-#define __NR_brk 214
-#define __NR_munmap 215
-#define __NR_mremap 216
-#define __NR_add_key 217
-#define __NR_request_key 218
-#define __NR_keyctl 219
-#define __NR_clone 220
-#define __NR_execve 221
-#define __NR_mmap 222
-#define __NR_fadvise64 223
-#define __NR_swapon 224
-#define __NR_swapoff 225
-#define __NR_mprotect 226
-#define __NR_msync 227
-#define __NR_mlock 228
-#define __NR_munlock 229
-#define __NR_mlockall 230
-#define __NR_munlockall 231
-#define __NR_mincore 232
-#define __NR_madvise 233
-#define __NR_remap_file_pages 234
-#define __NR_mbind 235
-#define __NR_get_mempolicy 236
-#define __NR_set_mempolicy 237
-#define __NR_migrate_pages 238
-#define __NR_move_pages 239
-#define __NR_rt_tgsigqueueinfo 240
-#define __NR_perf_event_open 241
-#define __NR_accept4 242
-#define __NR_recvmmsg 243
-#define __NR_arch_specific_syscall 244
-#define __NR_riscv_hwprobe 258
-#define __NR_riscv_flush_icache 259
-#define __NR_wait4 260
-#define __NR_prlimit64 261
-#define __NR_fanotify_init 262
-#define __NR_fanotify_mark 263
-#define __NR_name_to_handle_at 264
-#define __NR_open_by_handle_at 265
-#define __NR_clock_adjtime 266
-#define __NR_syncfs 267
-#define __NR_setns 268
-#define __NR_sendmmsg 269
-#define __NR_process_vm_readv 270
-#define __NR_process_vm_writev 271
-#define __NR_kcmp 272
-#define __NR_finit_module 273
-#define __NR_sched_setattr 274
-#define __NR_sched_getattr 275
-#define __NR_renameat2 276
-#define __NR_seccomp 277
-#define __NR_getrandom 278
-#define __NR_memfd_create 279
-#define __NR_bpf 280
-#define __NR_execveat 281
-#define __NR_userfaultfd 282
-#define __NR_membarrier 283
-#define __NR_mlock2 284
-#define __NR_copy_file_range 285
-#define __NR_preadv2 286
-#define __NR_pwritev2 287
-#define __NR_pkey_mprotect 288
-#define __NR_pkey_alloc 289
-#define __NR_pkey_free 290
-#define __NR_statx 291
-#define __NR_io_pgetevents 292
-#define __NR_rseq 293
-#define __NR_kexec_file_load 294
-#define __NR_pidfd_send_signal 424
-#define __NR_io_uring_setup 425
-#define __NR_io_uring_enter 426
-#define __NR_io_uring_register 427
-#define __NR_open_tree 428
-#define __NR_move_mount 429
-#define __NR_fsopen 430
-#define __NR_fsconfig 431
-#define __NR_fsmount 432
-#define __NR_fspick 433
-#define __NR_pidfd_open 434
-#define __NR_clone3 435
-#define __NR_close_range 436
-#define __NR_openat2 437
-#define __NR_pidfd_getfd 438
-#define __NR_faccessat2 439
-#define __NR_process_madvise 440
-#define __NR_epoll_pwait2 441
-#define __NR_mount_setattr 442
-#define __NR_quotactl_fd 443
-#define __NR_landlock_create_ruleset 444
-#define __NR_landlock_add_rule 445
-#define __NR_landlock_restrict_self 446
-#define __NR_memfd_secret 447
-#define __NR_process_mrelease 448
-#define __NR_futex_waitv 449
-#define __NR_set_mempolicy_home_node 450
-#define __NR_syscalls 451
-#endif /* __MLIBC_SYSCALLNOS_h */
diff --git a/lib/mlibc/sysdeps/linux/riscv64/thread_entry.S b/lib/mlibc/sysdeps/linux/riscv64/thread_entry.S
deleted file mode 100644
index fe170fa..0000000
--- a/lib/mlibc/sysdeps/linux/riscv64/thread_entry.S
+++ /dev/null
@@ -1,29 +0,0 @@
-.section .text
-.global __mlibc_spawn_thread
-.type __mlibc_spawn_thread, "function"
-__mlibc_spawn_thread:
- // __mlibc_spawn_thread(flags, stack, pid_out, child_tid, tls)
- // a0, a1, a2, a3, a4
- // syscall(NR_clone, flags, stack, ptid, tls, ctid)
- // a7, a0, a1, a2, a3, a4
-
- // Swap a3 <-> a4
- mv a5, a4
- mv a4, a3
- mv a3, a5
-
- li a7, 220 // NR_clone
- ecall
- bnez a0, .parent
-
- ld a0, 0(sp)
- ld a1, 8(sp)
- addi sp, sp, 8
- andi sp, sp, -16
- call __mlibc_enter_thread
- unimp
-
-.parent:
- ret
-.section .note.GNU-stack,"",%progbits
-