From 30aeb614762e8b17bd72c30c783c5d6b582c4594 Mon Sep 17 00:00:00 2001 From: Aleksandar Markovic Date: Thu, 13 Feb 2020 13:29:06 +0100 Subject: [PATCH 1/9] linux-user: alpha: Update syscall numbers to kernel 5.5 level Update alpha syscall numbers based on Linux kernel v5.5. CC: Richard Henderson Signed-off-by: Aleksandar Markovic Reviewed-by: Laurent Vivier Message-Id: <1581596954-2305-2-git-send-email-aleksandar.markovic@rt-rk.com> Signed-off-by: Laurent Vivier --- linux-user/alpha/syscall_nr.h | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/linux-user/alpha/syscall_nr.h b/linux-user/alpha/syscall_nr.h index 2e5541bbf9..c29fc17722 100644 --- a/linux-user/alpha/syscall_nr.h +++ b/linux-user/alpha/syscall_nr.h @@ -453,5 +453,40 @@ #define TARGET_NR_getrandom 511 #define TARGET_NR_memfd_create 512 #define TARGET_NR_execveat 513 +#define TARGET_NR_seccomp 514 +#define TARGET_NR_bpf 515 +#define TARGET_NR_userfaultfd 516 +#define TARGET_NR_membarrier 517 +#define TARGET_NR_mlock2 518 +#define TARGET_NR_copy_file_range 519 +#define TARGET_NR_preadv2 520 +#define TARGET_NR_pwritev2 521 +#define TARGET_NR_statx 522 +#define TARGET_NR_io_pgetevents 523 +#define TARGET_NR_pkey_mprotect 524 +#define TARGET_NR_pkey_alloc 525 +#define TARGET_NR_pkey_free 526 +#define TARGET_NR_rseq 527 +#define TARGET_NR_statfs64 528 +#define TARGET_NR_fstatfs64 529 +#define TARGET_NR_getegid 530 +#define TARGET_NR_geteuid 531 +#define TARGET_NR_getppid 532 +/* + * all other architectures have common numbers for new syscall, alpha + * is the exception. + */ +#define TARGET_NR_pidfd_send_signal 534 +#define TARGET_NR_io_uring_setup 535 +#define TARGET_NR_io_uring_enter 536 +#define TARGET_NR_io_uring_register 537 +#define TARGET_NR_open_tree 538 +#define TARGET_NR_move_mount 539 +#define TARGET_NR_fsopen 540 +#define TARGET_NR_fsconfig 541 +#define TARGET_NR_fsmount 542 +#define TARGET_NR_fspick 543 +#define TARGET_NR_pidfd_open 544 +/* 545 reserved for clone3 */ #endif From 73209e1f15c6fac08c72d04986a6f0d8627fd60e Mon Sep 17 00:00:00 2001 From: Aleksandar Markovic Date: Thu, 13 Feb 2020 13:29:07 +0100 Subject: [PATCH 2/9] linux-user: arm: Update syscall numbers to kernel 5.5 level Update arm syscall numbers based on Linux kernel v5.5. CC: Peter Maydell Signed-off-by: Aleksandar Markovic Reviewed-by: Laurent Vivier Message-Id: <1581596954-2305-3-git-send-email-aleksandar.markovic@rt-rk.com> Signed-off-by: Laurent Vivier --- linux-user/arm/syscall_nr.h | 44 +++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/linux-user/arm/syscall_nr.h b/linux-user/arm/syscall_nr.h index e7eda0d766..6db9235f2b 100644 --- a/linux-user/arm/syscall_nr.h +++ b/linux-user/arm/syscall_nr.h @@ -399,5 +399,49 @@ #define TARGET_NR_userfaultfd (388) #define TARGET_NR_membarrier (389) #define TARGET_NR_mlock2 (390) +#define TARGET_NR_copy_file_range (391) +#define TARGET_NR_preadv2 (392) +#define TARGET_NR_pwritev2 (393) +#define TARGET_NR_pkey_mprotect (394) +#define TARGET_NR_pkey_alloc (395) +#define TARGET_NR_pkey_free (396) +#define TARGET_NR_statx (397) +#define TARGET_NR_rseq (398) +#define TARGET_NR_io_pgetevents (399) +#define TARGET_NR_migrate_pages (400) +#define TARGET_NR_kexec_file_load (401) +/* 402 is unused */ +#define TARGET_NR_clock_gettime64 (403) +#define TARGET_NR_clock_settime64 (404) +#define TARGET_NR_clock_adjtime64 (405) +#define TARGET_NR_clock_getres_time64 (406) +#define TARGET_NR_clock_nanosleep_time64 (407) +#define TARGET_NR_timer_gettime64 (408) +#define TARGET_NR_timer_settime64 (409) +#define TARGET_NR_timerfd_gettime64 (410) +#define TARGET_NR_timerfd_settime64 (411) +#define TARGET_NR_utimensat_time64 (412) +#define TARGET_NR_pselect6_time64 (413) +#define TARGET_NR_ppoll_time64 (414) +#define TARGET_NR_io_pgetevents_time64 (416) +#define TARGET_NR_recvmmsg_time64 (417) +#define TARGET_NR_mq_timedsend_time64 (418) +#define TARGET_NR_mq_timedreceive_time64 (419) +#define TARGET_NR_semtimedop_time64 (420) +#define TARGET_NR_rt_sigtimedwait_time64 (421) +#define TARGET_NR_futex_time64 (422) +#define TARGET_NR_sched_rr_get_interval_time64 (423) +#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) #endif From 3a08aa23b7066bf4b669be8bab29b743e80d6d17 Mon Sep 17 00:00:00 2001 From: Aleksandar Markovic Date: Thu, 13 Feb 2020 13:29:08 +0100 Subject: [PATCH 3/9] linux-user: m68k: Update syscall numbers to kernel 5.5 level Update m68k syscall numbers based on Linux kernel v5.5. CC: Laurent Vivier Signed-off-by: Aleksandar Markovic Reviewed-by: Laurent Vivier Message-Id: <1581596954-2305-4-git-send-email-aleksandar.markovic@rt-rk.com> Signed-off-by: Laurent Vivier --- linux-user/m68k/syscall_nr.h | 50 +++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/linux-user/m68k/syscall_nr.h b/linux-user/m68k/syscall_nr.h index d33d8e98a7..01aee343a9 100644 --- a/linux-user/m68k/syscall_nr.h +++ b/linux-user/m68k/syscall_nr.h @@ -382,5 +382,53 @@ #define TARGET_NR_copy_file_range 376 #define TARGET_NR_preadv2 377 #define TARGET_NR_pwritev2 378 - +#define TARGET_NR_statx 379 +#define TARGET_NR_seccomp 380 +#define TARGET_NR_pkey_mprotect 381 +#define TARGET_NR_pkey_alloc 382 +#define TARGET_NR_pkey_free 383 +#define TARGET_NR_rseq 384 +/* room for arch specific calls */ +#define TARGET_NR_semget 393 +#define TARGET_NR_semctl 394 +#define TARGET_NR_shmget 395 +#define TARGET_NR_shmctl 396 +#define TARGET_NR_shmat 397 +#define TARGET_NR_shmdt 398 +#define TARGET_NR_msgget 399 +#define TARGET_NR_msgsnd 400 +#define TARGET_NR_msgrcv 401 +#define TARGET_NR_msgctl 402 +#define TARGET_NR_clock_gettime64 403 +#define TARGET_NR_clock_settime64 404 +#define TARGET_NR_clock_adjtime64 405 +#define TARGET_NR_clock_getres_time64 406 +#define TARGET_NR_clock_nanosleep_time64 407 +#define TARGET_NR_timer_gettime64 408 +#define TARGET_NR_timer_settime64 409 +#define TARGET_NR_timerfd_gettime64 410 +#define TARGET_NR_timerfd_settime64 411 +#define TARGET_NR_utimensat_time64 412 +#define TARGET_NR_pselect6_time64 413 +#define TARGET_NR_ppoll_time64 414 +#define TARGET_NR_io_pgetevents_time64 416 +#define TARGET_NR_recvmmsg_time64 417 +#define TARGET_NR_mq_timedsend_time64 418 +#define TARGET_NR_mq_timedreceive_time64 419 +#define TARGET_NR_semtimedop_time64 420 +#define TARGET_NR_rt_sigtimedwait_time64 421 +#define TARGET_NR_futex_time64 422 +#define TARGET_NR_sched_rr_get_interval_time64 423 +#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 +/* 435 reserved for clone3 */ #endif From 381063d778a5aa9dcf84a2284a192d84746b2e0f Mon Sep 17 00:00:00 2001 From: Aleksandar Markovic Date: Thu, 13 Feb 2020 13:29:09 +0100 Subject: [PATCH 4/9] linux-user: microblaze: Update syscall numbers to kernel 5.5 level Update microblaze syscall numbers based on Linux kernel v5.5. CC: Edgar E. Iglesias Signed-off-by: Aleksandar Markovic Reviewed-by: Laurent Vivier Message-Id: <1581596954-2305-5-git-send-email-aleksandar.markovic@rt-rk.com> Signed-off-by: Laurent Vivier --- linux-user/microblaze/syscall_nr.h | 45 ++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/linux-user/microblaze/syscall_nr.h b/linux-user/microblaze/syscall_nr.h index aa2eb93881..ec1758e374 100644 --- a/linux-user/microblaze/syscall_nr.h +++ b/linux-user/microblaze/syscall_nr.h @@ -393,5 +393,50 @@ #define TARGET_NR_memfd_create 386 #define TARGET_NR_bpf 387 #define TARGET_NR_execveat 388 +#define TARGET_NR_userfaultfd 389 +#define TARGET_NR_membarrier 390 +#define TARGET_NR_mlock2 391 +#define TARGET_NR_copy_file_range 392 +#define TARGET_NR_preadv2 393 +#define TARGET_NR_pwritev2 394 +#define TARGET_NR_pkey_mprotect 395 +#define TARGET_NR_pkey_alloc 396 +#define TARGET_NR_pkey_free 397 +#define TARGET_NR_statx 398 +#define TARGET_NR_io_pgetevents 399 +#define TARGET_NR_rseq 400 +/* 401 and 402 are unused */ +#define TARGET_NR_clock_gettime64 403 +#define TARGET_NR_clock_settime64 404 +#define TARGET_NR_clock_adjtime64 405 +#define TARGET_NR_clock_getres_time64 406 +#define TARGET_NR_clock_nanosleep_time64 407 +#define TARGET_NR_timer_gettime64 408 +#define TARGET_NR_timer_settime64 409 +#define TARGET_NR_timerfd_gettime64 410 +#define TARGET_NR_timerfd_settime64 411 +#define TARGET_NR_utimensat_time64 412 +#define TARGET_NR_pselect6_time64 413 +#define TARGET_NR_ppoll_time64 414 +#define TARGET_NR_io_pgetevents_time64 416 +#define TARGET_NR_recvmmsg_time64 417 +#define TARGET_NR_mq_timedsend_time64 418 +#define TARGET_NR_mq_timedreceive_time64 419 +#define TARGET_NR_semtimedop_time64 420 +#define TARGET_NR_rt_sigtimedwait_time64 421 +#define TARGET_NR_futex_time64 422 +#define TARGET_NR_sched_rr_get_interval_time64 423 +#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 #endif From 8d6d4c1b1b1a205b6be74960584d378c4ebc989f Mon Sep 17 00:00:00 2001 From: Aleksandar Markovic Date: Thu, 13 Feb 2020 13:29:10 +0100 Subject: [PATCH 5/9] linux-user: mips: Update syscall numbers to kernel 5.5 level Update mips syscall numbers based on Linux kernel tag v5.5. CC: Aurelien Jarno CC: Aleksandar Rikalo Signed-off-by: Aleksandar Markovic Reviewed-by: Laurent Vivier Message-Id: <1581596954-2305-6-git-send-email-aleksandar.markovic@rt-rk.com> Signed-off-by: Laurent Vivier --- linux-user/mips/cpu_loop.c | 83 +++++++++++++++++++++++++++++++++- linux-user/mips/syscall_nr.h | 45 ++++++++++++++++++ linux-user/mips64/syscall_nr.h | 50 +++++++++++++++++++- 3 files changed, 175 insertions(+), 3 deletions(-) diff --git a/linux-user/mips/cpu_loop.c b/linux-user/mips/cpu_loop.c index 39915b3fde..396367d81d 100644 --- a/linux-user/mips/cpu_loop.c +++ b/linux-user/mips/cpu_loop.c @@ -25,8 +25,9 @@ #include "internal.h" # ifdef TARGET_ABI_MIPSO32 +# define MIPS_SYSCALL_NUMBER_UNUSED -1 # define MIPS_SYS(name, args) args, -static const uint8_t mips_syscall_args[] = { +static const int8_t mips_syscall_args[] = { MIPS_SYS(sys_syscall , 8) /* 4000 */ MIPS_SYS(sys_exit , 1) MIPS_SYS(sys_fork , 0) @@ -390,6 +391,80 @@ static const uint8_t mips_syscall_args[] = { MIPS_SYS(sys_copy_file_range, 6) /* 360 */ MIPS_SYS(sys_preadv2, 6) MIPS_SYS(sys_pwritev2, 6) + MIPS_SYS(sys_pkey_mprotect, 4) + MIPS_SYS(sys_pkey_alloc, 2) + MIPS_SYS(sys_pkey_free, 1) /* 365 */ + MIPS_SYS(sys_statx, 5) + MIPS_SYS(sys_rseq, 4) + MIPS_SYS(sys_io_pgetevents, 6) + MIPS_SYSCALL_NUMBER_UNUSED, + MIPS_SYSCALL_NUMBER_UNUSED, /* 370 */ + MIPS_SYSCALL_NUMBER_UNUSED, + MIPS_SYSCALL_NUMBER_UNUSED, + MIPS_SYSCALL_NUMBER_UNUSED, + MIPS_SYSCALL_NUMBER_UNUSED, + MIPS_SYSCALL_NUMBER_UNUSED, /* 375 */ + MIPS_SYSCALL_NUMBER_UNUSED, + MIPS_SYSCALL_NUMBER_UNUSED, + MIPS_SYSCALL_NUMBER_UNUSED, + MIPS_SYSCALL_NUMBER_UNUSED, + MIPS_SYSCALL_NUMBER_UNUSED, /* 380 */ + MIPS_SYSCALL_NUMBER_UNUSED, + MIPS_SYSCALL_NUMBER_UNUSED, + MIPS_SYSCALL_NUMBER_UNUSED, + MIPS_SYSCALL_NUMBER_UNUSED, + MIPS_SYSCALL_NUMBER_UNUSED, /* 385 */ + MIPS_SYSCALL_NUMBER_UNUSED, + MIPS_SYSCALL_NUMBER_UNUSED, + MIPS_SYSCALL_NUMBER_UNUSED, + MIPS_SYSCALL_NUMBER_UNUSED, + MIPS_SYSCALL_NUMBER_UNUSED, /* 390 */ + MIPS_SYSCALL_NUMBER_UNUSED, + MIPS_SYSCALL_NUMBER_UNUSED, + MIPS_SYS(sys_semget, 3) + MIPS_SYS(sys_semctl, 4) + MIPS_SYS(sys_shmget, 3) /* 395 */ + MIPS_SYS(sys_shmctl, 3) + MIPS_SYS(sys_shmat, 3) + MIPS_SYS(sys_shmdt, 1) + MIPS_SYS(sys_msgget, 2) + MIPS_SYS(sys_msgsnd, 4) /* 400 */ + MIPS_SYS(sys_msgrcv, 5) + MIPS_SYS(sys_msgctl, 3) + MIPS_SYS(sys_clock_gettime64, 2) + MIPS_SYS(sys_clock_settime64, 2) + MIPS_SYS(sys_clock_adjtime64, 2) /* 405 */ + MIPS_SYS(sys_clock_getres_time64, 2) + MIPS_SYS(sys_clock_nanosleep_time64, 4) + MIPS_SYS(sys_timer_gettime64, 2) + MIPS_SYS(sys_timer_settime64, 4) + MIPS_SYS(sys_timerfd_gettime64, 2) /* 410 */ + MIPS_SYS(sys_timerfd_settime64, 4) + MIPS_SYS(sys_utimensat_time64, 4) + MIPS_SYS(sys_pselect6_time64, 6) + MIPS_SYS(sys_ppoll_time64, 5) + MIPS_SYSCALL_NUMBER_UNUSED, /* 415 */ + MIPS_SYS(sys_io_pgetevents_time64, 6) + MIPS_SYS(sys_recvmmsg_time64, 5) + MIPS_SYS(sys_mq_timedsend_time64, 5) + MIPS_SYS(sys_mq_timedreceive_time64, 5) + MIPS_SYS(sys_semtimedop_time64, 4) /* 420 */ + MIPS_SYS(sys_rt_sigtimedwait_time64, 4) + MIPS_SYS(sys_futex_time64, 6) + MIPS_SYS(sys_sched_rr_get_interval_time64, 2) + MIPS_SYS(sys_pidfd_send_signal, 4) + MIPS_SYS(sys_io_uring_setup, 2) /* 425 */ + MIPS_SYS(sys_io_uring_enter, 6) + MIPS_SYS(sys_io_uring_register, 4) + MIPS_SYS(sys_open_tree, 3) + MIPS_SYS(sys_move_mount, 5) + MIPS_SYS(sys_fsopen, 2) /* 430 */ + MIPS_SYS(sys_fsconfig, 5) + MIPS_SYS(sys_fsmount, 3) + MIPS_SYS(sys_fspick, 3) + MIPS_SYS(sys_pidfd_open, 2) + MIPS_SYS(sys_clone3, 2) /* 435 */ + }; # undef MIPS_SYS # endif /* O32 */ @@ -447,8 +522,14 @@ void cpu_loop(CPUMIPSState *env) # ifdef TARGET_ABI_MIPSO32 syscall_num = env->active_tc.gpr[2] - 4000; if (syscall_num >= sizeof(mips_syscall_args)) { + /* syscall_num is larger that any defined for MIPS O32 */ + ret = -TARGET_ENOSYS; + } else if (mips_syscall_args[syscall_num] == + MIPS_SYSCALL_NUMBER_UNUSED) { + /* syscall_num belongs to the range not defined for MIPS O32 */ ret = -TARGET_ENOSYS; } else { + /* syscall_num is valid */ int nb_args; abi_ulong sp_reg; abi_ulong arg5 = 0, arg6 = 0, arg7 = 0, arg8 = 0; diff --git a/linux-user/mips/syscall_nr.h b/linux-user/mips/syscall_nr.h index 7fa7fa5a86..0be3af1c84 100644 --- a/linux-user/mips/syscall_nr.h +++ b/linux-user/mips/syscall_nr.h @@ -376,5 +376,50 @@ #define TARGET_NR_statx (TARGET_NR_Linux + 366) #define TARGET_NR_rseq (TARGET_NR_Linux + 367) #define TARGET_NR_io_pgetevents (TARGET_NR_Linux + 368) +/* room for arch specific calls */ +#define TARGET_NR_semget (TARGET_NR_Linux + 393) +#define TARGET_NR_semctl (TARGET_NR_Linux + 394) +#define TARGET_NR_shmget (TARGET_NR_Linux + 395) +#define TARGET_NR_shmctl (TARGET_NR_Linux + 396) +#define TARGET_NR_shmat (TARGET_NR_Linux + 397) +#define TARGET_NR_shmdt (TARGET_NR_Linux + 398) +#define TARGET_NR_msgget (TARGET_NR_Linux + 399) +#define TARGET_NR_msgsnd (TARGET_NR_Linux + 400) +#define TARGET_NR_msgrcv (TARGET_NR_Linux + 401) +#define TARGET_NR_msgctl (TARGET_NR_Linux + 402) +/* 403-423 common for 32-bit archs */ +#define TARGET_NR_clock_gettime64 (TARGET_NR_Linux + 403) +#define TARGET_NR_clock_settime64 (TARGET_NR_Linux + 404) +#define TARGET_NR_clock_adjtime64 (TARGET_NR_Linux + 405) +#define TARGET_NR_clock_getres_time64 (TARGET_NR_Linux + 406) +#define TARGET_NR_clock_nanosleep_time64 (TARGET_NR_Linux + 407) +#define TARGET_NR_timer_gettime64 (TARGET_NR_Linux + 408) +#define TARGET_NR_timer_settime64 (TARGET_NR_Linux + 409) +#define TARGET_NR_timerfd_gettime64 (TARGET_NR_Linux + 410) +#define TARGET_NR_timerfd_settime64 (TARGET_NR_Linux + 411) +#define TARGET_NR_utimensat_time64 (TARGET_NR_Linux + 412) +#define TARGET_NR_pselect6_time64 (TARGET_NR_Linux + 413) +#define TARGET_NR_ppoll_time64 (TARGET_NR_Linux + 414) +#define TARGET_NR_io_pgetevents_time64 (TARGET_NR_Linux + 416) +#define TARGET_NR_recvmmsg_time64 (TARGET_NR_Linux + 417) +#define TARGET_NR_mq_timedsend_time64 (TARGET_NR_Linux + 418) +#define TARGET_NR_mq_timedreceive_time64 (TARGET_NR_Linux + 419) +#define TARGET_NR_semtimedop_time64 (TARGET_NR_Linux + 420) +#define TARGET_NR_rt_sigtimedwait_time64 (TARGET_NR_Linux + 421) +#define TARGET_NR_futex_time64 (TARGET_NR_Linux + 422) +#define TARGET_NR_sched_rr_get_interval_time64 (TARGET_NR_Linux + 423) +/* 424 onwards common for all archs */ +#define TARGET_NR_pidfd_send_signal (TARGET_NR_Linux + 424) +#define TARGET_NR_io_uring_setup (TARGET_NR_Linux + 425) +#define TARGET_NR_io_uring_enter (TARGET_NR_Linux + 426) +#define TARGET_NR_io_uring_register (TARGET_NR_Linux + 427) +#define TARGET_NR_open_tree (TARGET_NR_Linux + 428) +#define TARGET_NR_move_mount (TARGET_NR_Linux + 429) +#define TARGET_NR_fsopen (TARGET_NR_Linux + 430) +#define TARGET_NR_fsconfig (TARGET_NR_Linux + 431) +#define TARGET_NR_fsmount (TARGET_NR_Linux + 432) +#define TARGET_NR_fspick (TARGET_NR_Linux + 433) +#define TARGET_NR_pidfd_open (TARGET_NR_Linux + 434) +#define TARGET_NR_clone3 (TARGET_NR_Linux + 435) #endif diff --git a/linux-user/mips64/syscall_nr.h b/linux-user/mips64/syscall_nr.h index db40f69ca2..6e23e9fcdb 100644 --- a/linux-user/mips64/syscall_nr.h +++ b/linux-user/mips64/syscall_nr.h @@ -339,6 +339,39 @@ #define TARGET_NR_statx (TARGET_NR_Linux + 330) #define TARGET_NR_rseq (TARGET_NR_Linux + 331) #define TARGET_NR_io_pgetevents (TARGET_NR_Linux + 332) +/* 333 through 402 are unassigned to sync up with generic numbers */ +#define TARGET_NR_clock_gettime64 (TARGET_NR_Linux + 403) +#define TARGET_NR_clock_settime64 (TARGET_NR_Linux + 404) +#define TARGET_NR_clock_adjtime64 (TARGET_NR_Linux + 405) +#define TARGET_NR_clock_getres_time64 (TARGET_NR_Linux + 406) +#define TARGET_NR_clock_nanosleep_time64 (TARGET_NR_Linux + 407) +#define TARGET_NR_timer_gettime64 (TARGET_NR_Linux + 408) +#define TARGET_NR_timer_settime64 (TARGET_NR_Linux + 409) +#define TARGET_NR_timerfd_gettime64 (TARGET_NR_Linux + 410) +#define TARGET_NR_timerfd_settime64 (TARGET_NR_Linux + 411) +#define TARGET_NR_utimensat_time64 (TARGET_NR_Linux + 412) +#define TARGET_NR_pselect6_time64 (TARGET_NR_Linux + 413) +#define TARGET_NR_ppoll_time64 (TARGET_NR_Linux + 414) +#define TARGET_NR_io_pgetevents_time64 (TARGET_NR_Linux + 416) +#define TARGET_NR_recvmmsg_time64 (TARGET_NR_Linux + 417) +#define TARGET_NR_mq_timedsend_time64 (TARGET_NR_Linux + 418) +#define TARGET_NR_mq_timedreceive_time64 (TARGET_NR_Linux + 419) +#define TARGET_NR_semtimedop_time64 (TARGET_NR_Linux + 420) +#define TARGET_NR_rt_sigtimedwait_time64 (TARGET_NR_Linux + 421) +#define TARGET_NR_futex_time64 (TARGET_NR_Linux + 422) +#define TARGET_NR_sched_rr_get_interval_time64 (TARGET_NR_Linux + 423) +#define TARGET_NR_pidfd_send_signal (TARGET_NR_Linux + 424) +#define TARGET_NR_io_uring_setup (TARGET_NR_Linux + 425) +#define TARGET_NR_io_uring_enter (TARGET_NR_Linux + 426) +#define TARGET_NR_io_uring_register (TARGET_NR_Linux + 427) +#define TARGET_NR_open_tree (TARGET_NR_Linux + 428) +#define TARGET_NR_move_mount (TARGET_NR_Linux + 429) +#define TARGET_NR_fsopen (TARGET_NR_Linux + 430) +#define TARGET_NR_fsconfig (TARGET_NR_Linux + 431) +#define TARGET_NR_fsmount (TARGET_NR_Linux + 432) +#define TARGET_NR_fspick (TARGET_NR_Linux + 433) +#define TARGET_NR_pidfd_open (TARGET_NR_Linux + 434) +#define TARGET_NR_clone3 (TARGET_NR_Linux + 435) #else /* @@ -488,8 +521,8 @@ #define TARGET_NR_sched_getparam (TARGET_NR_Linux + 140) #define TARGET_NR_sched_setscheduler (TARGET_NR_Linux + 141) #define TARGET_NR_sched_getscheduler (TARGET_NR_Linux + 142) -#define TARGET_NR_sched_get_priority_max (TARGET_NR_Linux + 143) -#define TARGET_NR_sched_get_priority_min (TARGET_NR_Linux + 144) +#define TARGET_NR_sched_get_priority_max (TARGET_NR_Linux + 143) +#define TARGET_NR_sched_get_priority_min (TARGET_NR_Linux + 144) #define TARGET_NR_sched_rr_get_interval (TARGET_NR_Linux + 145) #define TARGET_NR_mlock (TARGET_NR_Linux + 146) #define TARGET_NR_munlock (TARGET_NR_Linux + 147) @@ -674,6 +707,19 @@ #define TARGET_NR_statx (TARGET_NR_Linux + 326) #define TARGET_NR_rseq (TARGET_NR_Linux + 327) #define TARGET_NR_io_pgetevents (TARGET_NR_Linux + 328) +/* 329 through 423 are reserved to sync up with other architectures */ +#define TARGET_NR_pidfd_send_signal (TARGET_NR_Linux + 424) +#define TARGET_NR_io_uring_setup (TARGET_NR_Linux + 425) +#define TARGET_NR_io_uring_enter (TARGET_NR_Linux + 426) +#define TARGET_NR_io_uring_register (TARGET_NR_Linux + 427) +#define TARGET_NR_open_tree (TARGET_NR_Linux + 428) +#define TARGET_NR_move_mount (TARGET_NR_Linux + 429) +#define TARGET_NR_fsopen (TARGET_NR_Linux + 430) +#define TARGET_NR_fsconfig (TARGET_NR_Linux + 431) +#define TARGET_NR_fsmount (TARGET_NR_Linux + 432) +#define TARGET_NR_fspick (TARGET_NR_Linux + 433) +#define TARGET_NR_pidfd_open (TARGET_NR_Linux + 434) +#define TARGET_NR_clone3 (TARGET_NR_Linux + 435) #endif #endif From dbf65e873b2b4876fff5d94a906c2dfa2317d462 Mon Sep 17 00:00:00 2001 From: Aleksandar Markovic Date: Thu, 13 Feb 2020 13:29:11 +0100 Subject: [PATCH 6/9] linux-user: sh4: Update syscall numbers to kernel 5.5 level Update sh4 syscall numbers based on Linux kernel v5.5. CC: Aurelien Jarno Signed-off-by: Aleksandar Markovic Reviewed-by: Laurent Vivier Message-Id: <1581596954-2305-7-git-send-email-aleksandar.markovic@rt-rk.com> Signed-off-by: Laurent Vivier --- linux-user/sh4/syscall_nr.h | 48 +++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/linux-user/sh4/syscall_nr.h b/linux-user/sh4/syscall_nr.h index d53a2a07dd..8c21fcf812 100644 --- a/linux-user/sh4/syscall_nr.h +++ b/linux-user/sh4/syscall_nr.h @@ -389,5 +389,53 @@ #define TARGET_NR_copy_file_range 380 #define TARGET_NR_preadv2 381 #define TARGET_NR_pwritev2 382 +#define TARGET_NR_statx 383 +#define TARGET_NR_pkey_mprotect 384 +#define TARGET_NR_pkey_alloc 385 +#define TARGET_NR_pkey_free 386 +#define TARGET_NR_rseq 387 +/* room for arch specific syscalls */ +#define TARGET_NR_semget 393 +#define TARGET_NR_semctl 394 +#define TARGET_NR_shmget 395 +#define TARGET_NR_shmctl 396 +#define TARGET_NR_shmat 397 +#define TARGET_NR_shmdt 398 +#define TARGET_NR_msgget 399 +#define TARGET_NR_msgsnd 400 +#define TARGET_NR_msgrcv 401 +#define TARGET_NR_msgctl 402 +#define TARGET_NR_clock_gettime64 403 +#define TARGET_NR_clock_settime64 404 +#define TARGET_NR_clock_adjtime64 405 +#define TARGET_NR_clock_getres_time64 406 +#define TARGET_NR_clock_nanosleep_time64 407 +#define TARGET_NR_timer_gettime64 408 +#define TARGET_NR_timer_settime64 409 +#define TARGET_NR_timerfd_gettime64 410 +#define TARGET_NR_timerfd_settime64 411 +#define TARGET_NR_utimensat_time64 412 +#define TARGET_NR_pselect6_time64 413 +#define TARGET_NR_ppoll_time64 414 +#define TARGET_NR_io_pgetevents_time64 416 +#define TARGET_NR_recvmmsg_time64 417 +#define TARGET_NR_mq_timedsend_time64 418 +#define TARGET_NR_mq_timedreceive_time64 419 +#define TARGET_NR_semtimedop_time64 420 +#define TARGET_NR_rt_sigtimedwait_time64 421 +#define TARGET_NR_futex_time64 422 +#define TARGET_NR_sched_rr_get_interval_time64 423 +#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 +/* 435 reserved for clone3 */ #endif From 6edf82e18c8d60db99db0b47e867891fd6d16126 Mon Sep 17 00:00:00 2001 From: Aleksandar Markovic Date: Thu, 13 Feb 2020 13:29:12 +0100 Subject: [PATCH 7/9] linux-user: x86_64: Update syscall numbers to kernel 5.5 level Update x86_64 syscall numbers based on Linux kernel v5.5. CC: Paolo Bonzini CC: Richard Henderson CC: Eduardo Habkost Signed-off-by: Aleksandar Markovic Reviewed-by: Laurent Vivier Message-Id: <1581596954-2305-8-git-send-email-aleksandar.markovic@rt-rk.com> Signed-off-by: Laurent Vivier --- linux-user/x86_64/syscall_nr.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/linux-user/x86_64/syscall_nr.h b/linux-user/x86_64/syscall_nr.h index 9b6981e74c..e5d14eca22 100644 --- a/linux-user/x86_64/syscall_nr.h +++ b/linux-user/x86_64/syscall_nr.h @@ -328,5 +328,29 @@ #define TARGET_NR_membarrier 324 #define TARGET_NR_mlock2 325 #define TARGET_NR_copy_file_range 326 +#define TARGET_NR_preadv2 327 +#define TARGET_NR_pwritev2 328 +#define TARGET_NR_pkey_mprotect 329 +#define TARGET_NR_pkey_alloc 330 +#define TARGET_NR_pkey_free 331 +#define TARGET_NR_statx 332 +#define TARGET_NR_io_pgetevents 333 +#define TARGET_NR_rseq 334 +/* + * don't use numbers 387 through 423, add new calls after the last + * 'common' entry + */ +#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 #endif From 0f0eeed05c2e3055c1cc55f2090c9d1916fb73d8 Mon Sep 17 00:00:00 2001 From: Aleksandar Markovic Date: Thu, 13 Feb 2020 13:29:13 +0100 Subject: [PATCH 8/9] linux-user: xtensa: Update syscall numbers to kernel 5.5 level Update xtensa syscall numbers based on Linux kernel v5.5. CC: Max Filippov Acked-by: Max Filippov Signed-off-by: Aleksandar Markovic Reviewed-by: Laurent Vivier Message-Id: <1581596954-2305-9-git-send-email-aleksandar.markovic@rt-rk.com> Signed-off-by: Laurent Vivier --- linux-user/xtensa/syscall_nr.h | 36 +++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/linux-user/xtensa/syscall_nr.h b/linux-user/xtensa/syscall_nr.h index 27645bea47..3d19d0cb70 100644 --- a/linux-user/xtensa/syscall_nr.h +++ b/linux-user/xtensa/syscall_nr.h @@ -431,7 +431,41 @@ #define TARGET_NR_pkey_free 350 #define TARGET_NR_statx 351 +#define TARGET_NR_rseq 352 +/* 353 through 402 are unassigned to sync up with generic numbers */ +#define TARGET_NR_clock_gettime64 403 +#define TARGET_NR_clock_settime64 404 +#define TARGET_NR_clock_adjtime64 405 +#define TARGET_NR_clock_getres_time64 406 +#define TARGET_NR_clock_nanosleep_time64 407 +#define TARGET_NR_timer_gettime64 408 +#define TARGET_NR_timer_settime64 409 +#define TARGET_NR_timerfd_gettime64 410 +#define TARGET_NR_timerfd_settime64 411 +#define TARGET_NR_utimensat_time64 412 +#define TARGET_NR_pselect6_time64 413 +#define TARGET_NR_ppoll_time64 414 +#define TARGET_NR_io_pgetevents_time64 416 +#define TARGET_NR_recvmmsg_time64 417 +#define TARGET_NR_mq_timedsend_time64 418 +#define TARGET_NR_mq_timedreceive_time64 419 +#define TARGET_NR_semtimedop_time64 420 +#define TARGET_NR_rt_sigtimedwait_time64 421 +#define TARGET_NR_futex_time64 422 +#define TARGET_NR_sched_rr_get_interval_time64 423 +#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_syscall_count 352 +#define TARGET_NR_syscall_count 436 #endif /* XTENSA_SYSCALL_NR_H */ From 0a80aa55f4485d102567e1db7ab0532ef96d1b96 Mon Sep 17 00:00:00 2001 From: Aleksandar Markovic Date: Thu, 13 Feb 2020 13:29:14 +0100 Subject: [PATCH 9/9] linux-user: xtensa: Remove unused constant TARGET_NR_syscall_count Currently, there is no usage of TARGET_NR_syscall_count for target xtensa, and there is no obvious indication if there is some planned usage in future. CC: Max Filippov Acked-by: Max Filippov Signed-off-by: Aleksandar Markovic Reviewed-by: Laurent Vivier Message-Id: <1581596954-2305-10-git-send-email-aleksandar.markovic@rt-rk.com> Signed-off-by: Laurent Vivier --- linux-user/xtensa/syscall_nr.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/linux-user/xtensa/syscall_nr.h b/linux-user/xtensa/syscall_nr.h index 3d19d0cb70..39bff65dca 100644 --- a/linux-user/xtensa/syscall_nr.h +++ b/linux-user/xtensa/syscall_nr.h @@ -466,6 +466,4 @@ #define TARGET_NR_pidfd_open 434 #define TARGET_NR_clone3 435 -#define TARGET_NR_syscall_count 436 - #endif /* XTENSA_SYSCALL_NR_H */