Browse Source
Signed-off-by: Song Gao <gaosong@loongson.cn> Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20220624031049.1716097-5-gaosong@loongson.cn> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>pull/213/head
committed by
Richard Henderson
4 changed files with 367 additions and 1 deletions
@ -0,0 +1,312 @@ |
|||
/*
|
|||
* This file contains the system call numbers. |
|||
* Do not modify. |
|||
* This file is generated by scripts/gensyscalls.sh |
|||
*/ |
|||
#ifndef LINUX_USER_LOONGARCH_SYSCALL_NR_H |
|||
#define LINUX_USER_LOONGARCH_SYSCALL_NR_H |
|||
|
|||
#define TARGET_NR_io_setup 0 |
|||
#define TARGET_NR_io_destroy 1 |
|||
#define TARGET_NR_io_submit 2 |
|||
#define TARGET_NR_io_cancel 3 |
|||
#define TARGET_NR_io_getevents 4 |
|||
#define TARGET_NR_setxattr 5 |
|||
#define TARGET_NR_lsetxattr 6 |
|||
#define TARGET_NR_fsetxattr 7 |
|||
#define TARGET_NR_getxattr 8 |
|||
#define TARGET_NR_lgetxattr 9 |
|||
#define TARGET_NR_fgetxattr 10 |
|||
#define TARGET_NR_listxattr 11 |
|||
#define TARGET_NR_llistxattr 12 |
|||
#define TARGET_NR_flistxattr 13 |
|||
#define TARGET_NR_removexattr 14 |
|||
#define TARGET_NR_lremovexattr 15 |
|||
#define TARGET_NR_fremovexattr 16 |
|||
#define TARGET_NR_getcwd 17 |
|||
#define TARGET_NR_lookup_dcookie 18 |
|||
#define TARGET_NR_eventfd2 19 |
|||
#define TARGET_NR_epoll_create1 20 |
|||
#define TARGET_NR_epoll_ctl 21 |
|||
#define TARGET_NR_epoll_pwait 22 |
|||
#define TARGET_NR_dup 23 |
|||
#define TARGET_NR_dup3 24 |
|||
#define TARGET_NR_fcntl 25 |
|||
#define TARGET_NR_inotify_init1 26 |
|||
#define TARGET_NR_inotify_add_watch 27 |
|||
#define TARGET_NR_inotify_rm_watch 28 |
|||
#define TARGET_NR_ioctl 29 |
|||
#define TARGET_NR_ioprio_set 30 |
|||
#define TARGET_NR_ioprio_get 31 |
|||
#define TARGET_NR_flock 32 |
|||
#define TARGET_NR_mknodat 33 |
|||
#define TARGET_NR_mkdirat 34 |
|||
#define TARGET_NR_unlinkat 35 |
|||
#define TARGET_NR_symlinkat 36 |
|||
#define TARGET_NR_linkat 37 |
|||
#define TARGET_NR_umount2 39 |
|||
#define TARGET_NR_mount 40 |
|||
#define TARGET_NR_pivot_root 41 |
|||
#define TARGET_NR_nfsservctl 42 |
|||
#define TARGET_NR_statfs 43 |
|||
#define TARGET_NR_fstatfs 44 |
|||
#define TARGET_NR_truncate 45 |
|||
#define TARGET_NR_ftruncate 46 |
|||
#define TARGET_NR_fallocate 47 |
|||
#define TARGET_NR_faccessat 48 |
|||
#define TARGET_NR_chdir 49 |
|||
#define TARGET_NR_fchdir 50 |
|||
#define TARGET_NR_chroot 51 |
|||
#define TARGET_NR_fchmod 52 |
|||
#define TARGET_NR_fchmodat 53 |
|||
#define TARGET_NR_fchownat 54 |
|||
#define TARGET_NR_fchown 55 |
|||
#define TARGET_NR_openat 56 |
|||
#define TARGET_NR_close 57 |
|||
#define TARGET_NR_vhangup 58 |
|||
#define TARGET_NR_pipe2 59 |
|||
#define TARGET_NR_quotactl 60 |
|||
#define TARGET_NR_getdents64 61 |
|||
#define TARGET_NR_lseek 62 |
|||
#define TARGET_NR_read 63 |
|||
#define TARGET_NR_write 64 |
|||
#define TARGET_NR_readv 65 |
|||
#define TARGET_NR_writev 66 |
|||
#define TARGET_NR_pread64 67 |
|||
#define TARGET_NR_pwrite64 68 |
|||
#define TARGET_NR_preadv 69 |
|||
#define TARGET_NR_pwritev 70 |
|||
#define TARGET_NR_sendfile 71 |
|||
#define TARGET_NR_pselect6 72 |
|||
#define TARGET_NR_ppoll 73 |
|||
#define TARGET_NR_signalfd4 74 |
|||
#define TARGET_NR_vmsplice 75 |
|||
#define TARGET_NR_splice 76 |
|||
#define TARGET_NR_tee 77 |
|||
#define TARGET_NR_readlinkat 78 |
|||
#define TARGET_NR_sync 81 |
|||
#define TARGET_NR_fsync 82 |
|||
#define TARGET_NR_fdatasync 83 |
|||
#define TARGET_NR_sync_file_range 84 |
|||
#define TARGET_NR_timerfd_create 85 |
|||
#define TARGET_NR_timerfd_settime 86 |
|||
#define TARGET_NR_timerfd_gettime 87 |
|||
#define TARGET_NR_utimensat 88 |
|||
#define TARGET_NR_acct 89 |
|||
#define TARGET_NR_capget 90 |
|||
#define TARGET_NR_capset 91 |
|||
#define TARGET_NR_personality 92 |
|||
#define TARGET_NR_exit 93 |
|||
#define TARGET_NR_exit_group 94 |
|||
#define TARGET_NR_waitid 95 |
|||
#define TARGET_NR_set_tid_address 96 |
|||
#define TARGET_NR_unshare 97 |
|||
#define TARGET_NR_futex 98 |
|||
#define TARGET_NR_set_robust_list 99 |
|||
#define TARGET_NR_get_robust_list 100 |
|||
#define TARGET_NR_nanosleep 101 |
|||
#define TARGET_NR_getitimer 102 |
|||
#define TARGET_NR_setitimer 103 |
|||
#define TARGET_NR_kexec_load 104 |
|||
#define TARGET_NR_init_module 105 |
|||
#define TARGET_NR_delete_module 106 |
|||
#define TARGET_NR_timer_create 107 |
|||
#define TARGET_NR_timer_gettime 108 |
|||
#define TARGET_NR_timer_getoverrun 109 |
|||
#define TARGET_NR_timer_settime 110 |
|||
#define TARGET_NR_timer_delete 111 |
|||
#define TARGET_NR_clock_settime 112 |
|||
#define TARGET_NR_clock_gettime 113 |
|||
#define TARGET_NR_clock_getres 114 |
|||
#define TARGET_NR_clock_nanosleep 115 |
|||
#define TARGET_NR_syslog 116 |
|||
#define TARGET_NR_ptrace 117 |
|||
#define TARGET_NR_sched_setparam 118 |
|||
#define TARGET_NR_sched_setscheduler 119 |
|||
#define TARGET_NR_sched_getscheduler 120 |
|||
#define TARGET_NR_sched_getparam 121 |
|||
#define TARGET_NR_sched_setaffinity 122 |
|||
#define TARGET_NR_sched_getaffinity 123 |
|||
#define TARGET_NR_sched_yield 124 |
|||
#define TARGET_NR_sched_get_priority_max 125 |
|||
#define TARGET_NR_sched_get_priority_min 126 |
|||
#define TARGET_NR_sched_rr_get_interval 127 |
|||
#define TARGET_NR_restart_syscall 128 |
|||
#define TARGET_NR_kill 129 |
|||
#define TARGET_NR_tkill 130 |
|||
#define TARGET_NR_tgkill 131 |
|||
#define TARGET_NR_sigaltstack 132 |
|||
#define TARGET_NR_rt_sigsuspend 133 |
|||
#define TARGET_NR_rt_sigaction 134 |
|||
#define TARGET_NR_rt_sigprocmask 135 |
|||
#define TARGET_NR_rt_sigpending 136 |
|||
#define TARGET_NR_rt_sigtimedwait 137 |
|||
#define TARGET_NR_rt_sigqueueinfo 138 |
|||
#define TARGET_NR_rt_sigreturn 139 |
|||
#define TARGET_NR_setpriority 140 |
|||
#define TARGET_NR_getpriority 141 |
|||
#define TARGET_NR_reboot 142 |
|||
#define TARGET_NR_setregid 143 |
|||
#define TARGET_NR_setgid 144 |
|||
#define TARGET_NR_setreuid 145 |
|||
#define TARGET_NR_setuid 146 |
|||
#define TARGET_NR_setresuid 147 |
|||
#define TARGET_NR_getresuid 148 |
|||
#define TARGET_NR_setresgid 149 |
|||
#define TARGET_NR_getresgid 150 |
|||
#define TARGET_NR_setfsuid 151 |
|||
#define TARGET_NR_setfsgid 152 |
|||
#define TARGET_NR_times 153 |
|||
#define TARGET_NR_setpgid 154 |
|||
#define TARGET_NR_getpgid 155 |
|||
#define TARGET_NR_getsid 156 |
|||
#define TARGET_NR_setsid 157 |
|||
#define TARGET_NR_getgroups 158 |
|||
#define TARGET_NR_setgroups 159 |
|||
#define TARGET_NR_uname 160 |
|||
#define TARGET_NR_sethostname 161 |
|||
#define TARGET_NR_setdomainname 162 |
|||
#define TARGET_NR_getrusage 165 |
|||
#define TARGET_NR_umask 166 |
|||
#define TARGET_NR_prctl 167 |
|||
#define TARGET_NR_getcpu 168 |
|||
#define TARGET_NR_gettimeofday 169 |
|||
#define TARGET_NR_settimeofday 170 |
|||
#define TARGET_NR_adjtimex 171 |
|||
#define TARGET_NR_getpid 172 |
|||
#define TARGET_NR_getppid 173 |
|||
#define TARGET_NR_getuid 174 |
|||
#define TARGET_NR_geteuid 175 |
|||
#define TARGET_NR_getgid 176 |
|||
#define TARGET_NR_getegid 177 |
|||
#define TARGET_NR_gettid 178 |
|||
#define TARGET_NR_sysinfo 179 |
|||
#define TARGET_NR_mq_open 180 |
|||
#define TARGET_NR_mq_unlink 181 |
|||
#define TARGET_NR_mq_timedsend 182 |
|||
#define TARGET_NR_mq_timedreceive 183 |
|||
#define TARGET_NR_mq_notify 184 |
|||
#define TARGET_NR_mq_getsetattr 185 |
|||
#define TARGET_NR_msgget 186 |
|||
#define TARGET_NR_msgctl 187 |
|||
#define TARGET_NR_msgrcv 188 |
|||
#define TARGET_NR_msgsnd 189 |
|||
#define TARGET_NR_semget 190 |
|||
#define TARGET_NR_semctl 191 |
|||
#define TARGET_NR_semtimedop 192 |
|||
#define TARGET_NR_semop 193 |
|||
#define TARGET_NR_shmget 194 |
|||
#define TARGET_NR_shmctl 195 |
|||
#define TARGET_NR_shmat 196 |
|||
#define TARGET_NR_shmdt 197 |
|||
#define TARGET_NR_socket 198 |
|||
#define TARGET_NR_socketpair 199 |
|||
#define TARGET_NR_bind 200 |
|||
#define TARGET_NR_listen 201 |
|||
#define TARGET_NR_accept 202 |
|||
#define TARGET_NR_connect 203 |
|||
#define TARGET_NR_getsockname 204 |
|||
#define TARGET_NR_getpeername 205 |
|||
#define TARGET_NR_sendto 206 |
|||
#define TARGET_NR_recvfrom 207 |
|||
#define TARGET_NR_setsockopt 208 |
|||
#define TARGET_NR_getsockopt 209 |
|||
#define TARGET_NR_shutdown 210 |
|||
#define TARGET_NR_sendmsg 211 |
|||
#define TARGET_NR_recvmsg 212 |
|||
#define TARGET_NR_readahead 213 |
|||
#define TARGET_NR_brk 214 |
|||
#define TARGET_NR_munmap 215 |
|||
#define TARGET_NR_mremap 216 |
|||
#define TARGET_NR_add_key 217 |
|||
#define TARGET_NR_request_key 218 |
|||
#define TARGET_NR_keyctl 219 |
|||
#define TARGET_NR_clone 220 |
|||
#define TARGET_NR_execve 221 |
|||
#define TARGET_NR_mmap 222 |
|||
#define TARGET_NR_fadvise64 223 |
|||
#define TARGET_NR_swapon 224 |
|||
#define TARGET_NR_swapoff 225 |
|||
#define TARGET_NR_mprotect 226 |
|||
#define TARGET_NR_msync 227 |
|||
#define TARGET_NR_mlock 228 |
|||
#define TARGET_NR_munlock 229 |
|||
#define TARGET_NR_mlockall 230 |
|||
#define TARGET_NR_munlockall 231 |
|||
#define TARGET_NR_mincore 232 |
|||
#define TARGET_NR_madvise 233 |
|||
#define TARGET_NR_remap_file_pages 234 |
|||
#define TARGET_NR_mbind 235 |
|||
#define TARGET_NR_get_mempolicy 236 |
|||
#define TARGET_NR_set_mempolicy 237 |
|||
#define TARGET_NR_migrate_pages 238 |
|||
#define TARGET_NR_move_pages 239 |
|||
#define TARGET_NR_rt_tgsigqueueinfo 240 |
|||
#define TARGET_NR_perf_event_open 241 |
|||
#define TARGET_NR_accept4 242 |
|||
#define TARGET_NR_recvmmsg 243 |
|||
#define TARGET_NR_arch_specific_syscall 244 |
|||
#define TARGET_NR_wait4 260 |
|||
#define TARGET_NR_prlimit64 261 |
|||
#define TARGET_NR_fanotify_init 262 |
|||
#define TARGET_NR_fanotify_mark 263 |
|||
#define TARGET_NR_name_to_handle_at 264 |
|||
#define TARGET_NR_open_by_handle_at 265 |
|||
#define TARGET_NR_clock_adjtime 266 |
|||
#define TARGET_NR_syncfs 267 |
|||
#define TARGET_NR_setns 268 |
|||
#define TARGET_NR_sendmmsg 269 |
|||
#define TARGET_NR_process_vm_readv 270 |
|||
#define TARGET_NR_process_vm_writev 271 |
|||
#define TARGET_NR_kcmp 272 |
|||
#define TARGET_NR_finit_module 273 |
|||
#define TARGET_NR_sched_setattr 274 |
|||
#define TARGET_NR_sched_getattr 275 |
|||
#define TARGET_NR_renameat2 276 |
|||
#define TARGET_NR_seccomp 277 |
|||
#define TARGET_NR_getrandom 278 |
|||
#define TARGET_NR_memfd_create 279 |
|||
#define TARGET_NR_bpf 280 |
|||
#define TARGET_NR_execveat 281 |
|||
#define TARGET_NR_userfaultfd 282 |
|||
#define TARGET_NR_membarrier 283 |
|||
#define TARGET_NR_mlock2 284 |
|||
#define TARGET_NR_copy_file_range 285 |
|||
#define TARGET_NR_preadv2 286 |
|||
#define TARGET_NR_pwritev2 287 |
|||
#define TARGET_NR_pkey_mprotect 288 |
|||
#define TARGET_NR_pkey_alloc 289 |
|||
#define TARGET_NR_pkey_free 290 |
|||
#define TARGET_NR_statx 291 |
|||
#define TARGET_NR_io_pgetevents 292 |
|||
#define TARGET_NR_rseq 293 |
|||
#define TARGET_NR_kexec_file_load 294 |
|||
#define TARGET_NR_pidfd_send_signal 424 |
|||
#define TARGET_NR_io_uring_setup 425 |
|||
#define TARGET_NR_io_uring_enter 426 |
|||
#define TARGET_NR_io_uring_register 427 |
|||
#define TARGET_NR_open_tree 428 |
|||
#define TARGET_NR_move_mount 429 |
|||
#define TARGET_NR_fsopen 430 |
|||
#define TARGET_NR_fsconfig 431 |
|||
#define TARGET_NR_fsmount 432 |
|||
#define TARGET_NR_fspick 433 |
|||
#define TARGET_NR_pidfd_open 434 |
|||
#define TARGET_NR_clone3 435 |
|||
#define TARGET_NR_close_range 436 |
|||
#define TARGET_NR_openat2 437 |
|||
#define TARGET_NR_pidfd_getfd 438 |
|||
#define TARGET_NR_faccessat2 439 |
|||
#define TARGET_NR_process_madvise 440 |
|||
#define TARGET_NR_epoll_pwait2 441 |
|||
#define TARGET_NR_mount_setattr 442 |
|||
#define TARGET_NR_quotactl_fd 443 |
|||
#define TARGET_NR_landlock_create_ruleset 444 |
|||
#define TARGET_NR_landlock_add_rule 445 |
|||
#define TARGET_NR_landlock_restrict_self 446 |
|||
#define TARGET_NR_process_mrelease 448 |
|||
#define TARGET_NR_futex_waitv 449 |
|||
#define TARGET_NR_set_mempolicy_home_node 450 |
|||
#define TARGET_NR_syscalls 451 |
|||
|
|||
#endif /* LINUX_USER_LOONGARCH_SYSCALL_NR_H */ |
|||
@ -0,0 +1,48 @@ |
|||
/* SPDX-License-Identifier: GPL-2.0-or-later */ |
|||
/*
|
|||
* Copyright (c) 2021 Loongson Technology Corporation Limited |
|||
*/ |
|||
|
|||
#ifndef LOONGARCH_TARGET_SYSCALL_H |
|||
#define LOONGARCH_TARGET_SYSCALL_H |
|||
|
|||
#include "qemu/units.h" |
|||
|
|||
/*
|
|||
* this struct defines the way the registers are stored on the |
|||
* stack during a system call. |
|||
*/ |
|||
|
|||
struct target_pt_regs { |
|||
/* Saved main processor registers. */ |
|||
target_ulong regs[32]; |
|||
|
|||
/* Saved special registers. */ |
|||
struct { |
|||
target_ulong era; |
|||
target_ulong badv; |
|||
target_ulong crmd; |
|||
target_ulong prmd; |
|||
target_ulong euen; |
|||
target_ulong ecfg; |
|||
target_ulong estat; |
|||
} csr; |
|||
target_ulong orig_a0; |
|||
target_ulong __last[0]; |
|||
}; |
|||
|
|||
#define UNAME_MACHINE "loongarch64" |
|||
#define UNAME_MINIMUM_RELEASE "5.19.0" |
|||
|
|||
#define TARGET_MCL_CURRENT 1 |
|||
#define TARGET_MCL_FUTURE 2 |
|||
#define TARGET_MCL_ONFAULT 4 |
|||
|
|||
#define TARGET_FORCE_SHMLBA |
|||
|
|||
static inline abi_ulong target_shmlba(CPULoongArchState *env) |
|||
{ |
|||
return 64 * KiB; |
|||
} |
|||
|
|||
#endif |
|||
Loading…
Reference in new issue