Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

y2038: add 64-bit time_t syscalls to all 32-bit architectures

This adds 21 new system calls on each ABI that has 32-bit time_t
today. All of these have the exact same semantics as their existing
counterparts, and the new ones all have macro names that end in 'time64'
for clarification.

This gets us to the point of being able to safely use a C library
that has 64-bit time_t in user space. There are still a couple of
loose ends to tie up in various areas of the code, but this is the
big one, and should be entirely uncontroversial at this point.

In particular, there are four system calls (getitimer, setitimer,
waitid, and getrusage) that don't have a 64-bit counterpart yet,
but these can all be safely implemented in the C library by wrapping
around the existing system calls because the 32-bit time_t they
pass only counts elapsed time, not time since the epoch. They
will be dealt with later.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>

+374 -2
+2
arch/alpha/kernel/syscalls/syscall.tbl
··· 461 461 530 common getegid sys_getegid 462 462 531 common geteuid sys_geteuid 463 463 532 common getppid sys_getppid 464 + # all other architectures have common numbers for new syscall, alpha 465 + # is the exception.
+21
arch/arm/tools/syscall.tbl
··· 416 416 399 common io_pgetevents sys_io_pgetevents_time32 417 417 400 common migrate_pages sys_migrate_pages 418 418 401 common kexec_file_load sys_kexec_file_load 419 + # 402 is unused 420 + 403 common clock_gettime64 sys_clock_gettime 421 + 404 common clock_settime64 sys_clock_settime 422 + 405 common clock_adjtime64 sys_clock_adjtime 423 + 406 common clock_getres_time64 sys_clock_getres 424 + 407 common clock_nanosleep_time64 sys_clock_nanosleep 425 + 408 common timer_gettime64 sys_timer_gettime 426 + 409 common timer_settime64 sys_timer_settime 427 + 410 common timerfd_gettime64 sys_timerfd_gettime 428 + 411 common timerfd_settime64 sys_timerfd_settime 429 + 412 common utimensat_time64 sys_utimensat 430 + 413 common pselect6_time64 sys_pselect6 431 + 414 common ppoll_time64 sys_ppoll 432 + 416 common io_pgetevents_time64 sys_io_pgetevents 433 + 417 common recvmmsg_time64 sys_recvmmsg 434 + 418 common mq_timedsend_time64 sys_mq_timedsend 435 + 419 common mq_timedreceive_time64 sys_mq_timedreceive 436 + 420 common semtimedop_time64 sys_semtimedop 437 + 421 common rt_sigtimedwait_time64 sys_rt_sigtimedwait 438 + 422 common futex_time64 sys_futex 439 + 423 common sched_rr_get_interval_time64 sys_sched_rr_get_interval
+1 -1
arch/arm64/include/asm/unistd.h
··· 44 44 #define __ARM_NR_compat_set_tls (__ARM_NR_COMPAT_BASE + 5) 45 45 #define __ARM_NR_COMPAT_END (__ARM_NR_COMPAT_BASE + 0x800) 46 46 47 - #define __NR_compat_syscalls 402 47 + #define __NR_compat_syscalls 424 48 48 #endif 49 49 50 50 #define __ARCH_WANT_SYS_CLONE
+41
arch/arm64/include/asm/unistd32.h
··· 825 825 __SYSCALL(__NR_migrate_pages, compat_sys_migrate_pages) 826 826 #define __NR_kexec_file_load 401 827 827 __SYSCALL(__NR_kexec_file_load, sys_kexec_file_load) 828 + /* 402 is unused */ 829 + #define __NR_clock_gettime64 403 830 + __SYSCALL(__NR_clock_gettime64, sys_clock_gettime) 831 + #define __NR_clock_settime64 404 832 + __SYSCALL(__NR_clock_settime64, sys_clock_settime) 833 + #define __NR_clock_adjtime64 405 834 + __SYSCALL(__NR_clock_adjtime64, sys_clock_adjtime) 835 + #define __NR_clock_getres_time64 406 836 + __SYSCALL(__NR_clock_getres_time64, sys_clock_getres) 837 + #define __NR_clock_nanosleep_time64 407 838 + __SYSCALL(__NR_clock_nanosleep_time64, sys_clock_nanosleep) 839 + #define __NR_timer_gettime64 408 840 + __SYSCALL(__NR_timer_gettime64, sys_timer_gettime) 841 + #define __NR_timer_settime64 409 842 + __SYSCALL(__NR_timer_settime64, sys_timer_settime) 843 + #define __NR_timerfd_gettime64 410 844 + __SYSCALL(__NR_timerfd_gettime64, sys_timerfd_gettime) 845 + #define __NR_timerfd_settime64 411 846 + __SYSCALL(__NR_timerfd_settime64, sys_timerfd_settime) 847 + #define __NR_utimensat_time64 412 848 + __SYSCALL(__NR_utimensat_time64, sys_utimensat) 849 + #define __NR_pselect6_time64 413 850 + __SYSCALL(__NR_pselect6_time64, compat_sys_pselect6_time64) 851 + #define __NR_ppoll_time64 414 852 + __SYSCALL(__NR_ppoll_time64, compat_sys_ppoll_time64) 853 + #define __NR_io_pgetevents_time64 416 854 + __SYSCALL(__NR_io_pgetevents_time64, sys_io_pgetevents) 855 + #define __NR_recvmmsg_time64 417 856 + __SYSCALL(__NR_recvmmsg_time64, compat_sys_recvmmsg_time64) 857 + #define __NR_mq_timedsend_time64 418 858 + __SYSCALL(__NR_mq_timedsend_time64, sys_mq_timedsend) 859 + #define __NR_mq_timedreceive_time64 419 860 + __SYSCALL(__NR_mq_timedreceive_time64, sys_mq_timedreceive) 861 + #define __NR_semtimedop_time64 420 862 + __SYSCALL(__NR_semtimedop_time64, sys_semtimedop) 863 + #define __NR_rt_sigtimedwait_time64 421 864 + __SYSCALL(__NR_rt_sigtimedwait_time64, compat_sys_rt_sigtimedwait_time64) 865 + #define __NR_futex_time64 422 866 + __SYSCALL(__NR_futex_time64, sys_futex) 867 + #define __NR_sched_rr_get_interval_time64 423 868 + __SYSCALL(__NR_sched_rr_get_interval_time64, sys_sched_rr_get_interval) 828 869 829 870 /* 830 871 * Please add new compat syscalls above this comment and update
+1
arch/ia64/kernel/syscalls/syscall.tbl
··· 343 343 331 common pkey_alloc sys_pkey_alloc 344 344 332 common pkey_free sys_pkey_free 345 345 333 common rseq sys_rseq 346 + # 334 through 423 are reserved to sync up with other architectures
+20
arch/m68k/kernel/syscalls/syscall.tbl
··· 403 403 400 common msgsnd sys_msgsnd 404 404 401 common msgrcv sys_msgrcv 405 405 402 common msgctl sys_msgctl 406 + 403 common clock_gettime64 sys_clock_gettime 407 + 404 common clock_settime64 sys_clock_settime 408 + 405 common clock_adjtime64 sys_clock_adjtime 409 + 406 common clock_getres_time64 sys_clock_getres 410 + 407 common clock_nanosleep_time64 sys_clock_nanosleep 411 + 408 common timer_gettime64 sys_timer_gettime 412 + 409 common timer_settime64 sys_timer_settime 413 + 410 common timerfd_gettime64 sys_timerfd_gettime 414 + 411 common timerfd_settime64 sys_timerfd_settime 415 + 412 common utimensat_time64 sys_utimensat 416 + 413 common pselect6_time64 sys_pselect6 417 + 414 common ppoll_time64 sys_ppoll 418 + 416 common io_pgetevents_time64 sys_io_pgetevents 419 + 417 common recvmmsg_time64 sys_recvmmsg 420 + 418 common mq_timedsend_time64 sys_mq_timedsend 421 + 419 common mq_timedreceive_time64 sys_mq_timedreceive 422 + 420 common semtimedop_time64 sys_semtimedop 423 + 421 common rt_sigtimedwait_time64 sys_rt_sigtimedwait 424 + 422 common futex_time64 sys_futex 425 + 423 common sched_rr_get_interval_time64 sys_sched_rr_get_interval
+21
arch/microblaze/kernel/syscalls/syscall.tbl
··· 408 408 398 common statx sys_statx 409 409 399 common io_pgetevents sys_io_pgetevents_time32 410 410 400 common rseq sys_rseq 411 + # 401 and 402 are unused 412 + 403 common clock_gettime64 sys_clock_gettime 413 + 404 common clock_settime64 sys_clock_settime 414 + 405 common clock_adjtime64 sys_clock_adjtime 415 + 406 common clock_getres_time64 sys_clock_getres 416 + 407 common clock_nanosleep_time64 sys_clock_nanosleep 417 + 408 common timer_gettime64 sys_timer_gettime 418 + 409 common timer_settime64 sys_timer_settime 419 + 410 common timerfd_gettime64 sys_timerfd_gettime 420 + 411 common timerfd_settime64 sys_timerfd_settime 421 + 412 common utimensat_time64 sys_utimensat 422 + 413 common pselect6_time64 sys_pselect6 423 + 414 common ppoll_time64 sys_ppoll 424 + 416 common io_pgetevents_time64 sys_io_pgetevents 425 + 417 common recvmmsg_time64 sys_recvmmsg 426 + 418 common mq_timedsend_time64 sys_mq_timedsend 427 + 419 common mq_timedreceive_time64 sys_mq_timedreceive 428 + 420 common semtimedop_time64 sys_semtimedop 429 + 421 common rt_sigtimedwait_time64 sys_rt_sigtimedwait 430 + 422 common futex_time64 sys_futex 431 + 423 common sched_rr_get_interval_time64 sys_sched_rr_get_interval
+21
arch/mips/kernel/syscalls/syscall_n32.tbl
··· 341 341 330 n32 statx sys_statx 342 342 331 n32 rseq sys_rseq 343 343 332 n32 io_pgetevents compat_sys_io_pgetevents 344 + # 333 through 402 are unassigned to sync up with generic numbers 345 + 403 n32 clock_gettime64 sys_clock_gettime 346 + 404 n32 clock_settime64 sys_clock_settime 347 + 405 n32 clock_adjtime64 sys_clock_adjtime 348 + 406 n32 clock_getres_time64 sys_clock_getres 349 + 407 n32 clock_nanosleep_time64 sys_clock_nanosleep 350 + 408 n32 timer_gettime64 sys_timer_gettime 351 + 409 n32 timer_settime64 sys_timer_settime 352 + 410 n32 timerfd_gettime64 sys_timerfd_gettime 353 + 411 n32 timerfd_settime64 sys_timerfd_settime 354 + 412 n32 utimensat_time64 sys_utimensat 355 + 413 n32 pselect6_time64 compat_sys_pselect6_time64 356 + 414 n32 ppoll_time64 compat_sys_ppoll_time64 357 + 416 n32 io_pgetevents_time64 sys_io_pgetevents 358 + 417 n32 recvmmsg_time64 compat_sys_recvmmsg_time64 359 + 418 n32 mq_timedsend_time64 sys_mq_timedsend 360 + 419 n32 mq_timedreceive_time64 sys_mq_timedreceive 361 + 420 n32 semtimedop_time64 sys_semtimedop 362 + 421 n32 rt_sigtimedwait_time64 compat_sys_rt_sigtimedwait_time64 363 + 422 n32 futex_time64 sys_futex 364 + 423 n32 sched_rr_get_interval_time64 sys_sched_rr_get_interval
+1
arch/mips/kernel/syscalls/syscall_n64.tbl
··· 337 337 326 n64 statx sys_statx 338 338 327 n64 rseq sys_rseq 339 339 328 n64 io_pgetevents sys_io_pgetevents 340 + # 329 through 423 are reserved to sync up with other architectures
+20
arch/mips/kernel/syscalls/syscall_o32.tbl
··· 391 391 400 o32 msgsnd sys_msgsnd compat_sys_msgsnd 392 392 401 o32 msgrcv sys_msgrcv compat_sys_msgrcv 393 393 402 o32 msgctl sys_msgctl compat_sys_msgctl 394 + 403 o32 clock_gettime64 sys_clock_gettime sys_clock_gettime 395 + 404 o32 clock_settime64 sys_clock_settime sys_clock_settime 396 + 405 o32 clock_adjtime64 sys_clock_adjtime sys_clock_adjtime 397 + 406 o32 clock_getres_time64 sys_clock_getres sys_clock_getres 398 + 407 o32 clock_nanosleep_time64 sys_clock_nanosleep sys_clock_nanosleep 399 + 408 o32 timer_gettime64 sys_timer_gettime sys_timer_gettime 400 + 409 o32 timer_settime64 sys_timer_settime sys_timer_settime 401 + 410 o32 timerfd_gettime64 sys_timerfd_gettime sys_timerfd_gettime 402 + 411 o32 timerfd_settime64 sys_timerfd_settime sys_timerfd_settime 403 + 412 o32 utimensat_time64 sys_utimensat sys_utimensat 404 + 413 o32 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64 405 + 414 o32 ppoll_time64 sys_ppoll compat_sys_ppoll_time64 406 + 416 o32 io_pgetevents_time64 sys_io_pgetevents sys_io_pgetevents 407 + 417 o32 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64 408 + 418 o32 mq_timedsend_time64 sys_mq_timedsend sys_mq_timedsend 409 + 419 o32 mq_timedreceive_time64 sys_mq_timedreceive sys_mq_timedreceive 410 + 420 o32 semtimedop_time64 sys_semtimedop sys_semtimedop 411 + 421 o32 rt_sigtimedwait_time64 sys_rt_sigtimedwait compat_sys_rt_sigtimedwait_time64 412 + 422 o32 futex_time64 sys_futex sys_futex 413 + 423 o32 sched_rr_get_interval_time64 sys_sched_rr_get_interval sys_sched_rr_get_interval
+21
arch/parisc/kernel/syscalls/syscall.tbl
··· 399 399 352 common pkey_alloc sys_pkey_alloc 400 400 353 common pkey_free sys_pkey_free 401 401 354 common rseq sys_rseq 402 + # 355 through 402 are unassigned to sync up with generic numbers 403 + 403 32 clock_gettime64 sys_clock_gettime sys_clock_gettime 404 + 404 32 clock_settime64 sys_clock_settime sys_clock_settime 405 + 405 32 clock_adjtime64 sys_clock_adjtime sys_clock_adjtime 406 + 406 32 clock_getres_time64 sys_clock_getres sys_clock_getres 407 + 407 32 clock_nanosleep_time64 sys_clock_nanosleep sys_clock_nanosleep 408 + 408 32 timer_gettime64 sys_timer_gettime sys_timer_gettime 409 + 409 32 timer_settime64 sys_timer_settime sys_timer_settime 410 + 410 32 timerfd_gettime64 sys_timerfd_gettime sys_timerfd_gettime 411 + 411 32 timerfd_settime64 sys_timerfd_settime sys_timerfd_settime 412 + 412 32 utimensat_time64 sys_utimensat sys_utimensat 413 + 413 32 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64 414 + 414 32 ppoll_time64 sys_ppoll compat_sys_ppoll_time64 415 + 416 32 io_pgetevents_time64 sys_io_pgetevents sys_io_pgetevents 416 + 417 32 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64 417 + 418 32 mq_timedsend_time64 sys_mq_timedsend sys_mq_timedsend 418 + 419 32 mq_timedreceive_time64 sys_mq_timedreceive sys_mq_timedreceive 419 + 420 32 semtimedop_time64 sys_semtimedop sys_semtimedop 420 + 421 32 rt_sigtimedwait_time64 sys_rt_sigtimedwait compat_sys_rt_sigtimedwait_time64 421 + 422 32 futex_time64 sys_futex sys_futex 422 + 423 32 sched_rr_get_interval_time64 sys_sched_rr_get_interval sys_sched_rr_get_interval
+20
arch/powerpc/kernel/syscalls/syscall.tbl
··· 485 485 400 common msgsnd sys_msgsnd compat_sys_msgsnd 486 486 401 common msgrcv sys_msgrcv compat_sys_msgrcv 487 487 402 common msgctl sys_msgctl compat_sys_msgctl 488 + 403 32 clock_gettime64 sys_clock_gettime sys_clock_gettime 489 + 404 32 clock_settime64 sys_clock_settime sys_clock_settime 490 + 405 32 clock_adjtime64 sys_clock_adjtime sys_clock_adjtime 491 + 406 32 clock_getres_time64 sys_clock_getres sys_clock_getres 492 + 407 32 clock_nanosleep_time64 sys_clock_nanosleep sys_clock_nanosleep 493 + 408 32 timer_gettime64 sys_timer_gettime sys_timer_gettime 494 + 409 32 timer_settime64 sys_timer_settime sys_timer_settime 495 + 410 32 timerfd_gettime64 sys_timerfd_gettime sys_timerfd_gettime 496 + 411 32 timerfd_settime64 sys_timerfd_settime sys_timerfd_settime 497 + 412 32 utimensat_time64 sys_utimensat sys_utimensat 498 + 413 32 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64 499 + 414 32 ppoll_time64 sys_ppoll compat_sys_ppoll_time64 500 + 416 32 io_pgetevents_time64 sys_io_pgetevents sys_io_pgetevents 501 + 417 32 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64 502 + 418 32 mq_timedsend_time64 sys_mq_timedsend sys_mq_timedsend 503 + 419 32 mq_timedreceive_time64 sys_mq_timedreceive sys_mq_timedreceive 504 + 420 32 semtimedop_time64 sys_semtimedop sys_semtimedop 505 + 421 32 rt_sigtimedwait_time64 sys_rt_sigtimedwait compat_sys_rt_sigtimedwait_time64 506 + 422 32 futex_time64 sys_futex sys_futex 507 + 423 32 sched_rr_get_interval_time64 sys_sched_rr_get_interval sys_sched_rr_get_interval
+20
arch/s390/kernel/syscalls/syscall.tbl
··· 406 406 400 common msgsnd sys_msgsnd compat_sys_msgsnd 407 407 401 common msgrcv sys_msgrcv compat_sys_msgrcv 408 408 402 common msgctl sys_msgctl compat_sys_msgctl 409 + 403 32 clock_gettime64 - sys_clock_gettime 410 + 404 32 clock_settime64 - sys_clock_settime 411 + 405 32 clock_adjtime64 - sys_clock_adjtime 412 + 406 32 clock_getres_time64 - sys_clock_getres 413 + 407 32 clock_nanosleep_time64 - sys_clock_nanosleep 414 + 408 32 timer_gettime64 - sys_timer_gettime 415 + 409 32 timer_settime64 - sys_timer_settime 416 + 410 32 timerfd_gettime64 - sys_timerfd_gettime 417 + 411 32 timerfd_settime64 - sys_timerfd_settime 418 + 412 32 utimensat_time64 - sys_utimensat 419 + 413 32 pselect6_time64 - compat_sys_pselect6_time64 420 + 414 32 ppoll_time64 - compat_sys_ppoll_time64 421 + 416 32 io_pgetevents_time64 - sys_io_pgetevents 422 + 417 32 recvmmsg_time64 - compat_sys_recvmmsg_time64 423 + 418 32 mq_timedsend_time64 - sys_mq_timedsend 424 + 419 32 mq_timedreceive_time64 - sys_mq_timedreceive 425 + 420 32 semtimedop_time64 - sys_semtimedop 426 + 421 32 rt_sigtimedwait_time64 - compat_sys_rt_sigtimedwait_time64 427 + 422 32 futex_time64 - sys_futex 428 + 423 32 sched_rr_get_interval_time64 - sys_sched_rr_get_interval
+20
arch/sh/kernel/syscalls/syscall.tbl
··· 406 406 400 common msgsnd sys_msgsnd 407 407 401 common msgrcv sys_msgrcv 408 408 402 common msgctl sys_msgctl 409 + 403 common clock_gettime64 sys_clock_gettime 410 + 404 common clock_settime64 sys_clock_settime 411 + 405 common clock_adjtime64 sys_clock_adjtime 412 + 406 common clock_getres_time64 sys_clock_getres 413 + 407 common clock_nanosleep_time64 sys_clock_nanosleep 414 + 408 common timer_gettime64 sys_timer_gettime 415 + 409 common timer_settime64 sys_timer_settime 416 + 410 common timerfd_gettime64 sys_timerfd_gettime 417 + 411 common timerfd_settime64 sys_timerfd_settime 418 + 412 common utimensat_time64 sys_utimensat 419 + 413 common pselect6_time64 sys_pselect6 420 + 414 common ppoll_time64 sys_ppoll 421 + 416 common io_pgetevents_time64 sys_io_pgetevents 422 + 417 common recvmmsg_time64 sys_recvmmsg 423 + 418 common mq_timedsend_time64 sys_mq_timedsend 424 + 419 common mq_timedreceive_time64 sys_mq_timedreceive 425 + 420 common semtimedop_time64 sys_semtimedop 426 + 421 common rt_sigtimedwait_time64 sys_rt_sigtimedwait 427 + 422 common futex_time64 sys_futex 428 + 423 common sched_rr_get_interval_time64 sys_sched_rr_get_interval
+20
arch/sparc/kernel/syscalls/syscall.tbl
··· 449 449 400 common msgsnd sys_msgsnd compat_sys_msgsnd 450 450 401 common msgrcv sys_msgrcv compat_sys_msgrcv 451 451 402 common msgctl sys_msgctl compat_sys_msgctl 452 + 403 32 clock_gettime64 sys_clock_gettime sys_clock_gettime 453 + 404 32 clock_settime64 sys_clock_settime sys_clock_settime 454 + 405 32 clock_adjtime64 sys_clock_adjtime sys_clock_adjtime 455 + 406 32 clock_getres_time64 sys_clock_getres sys_clock_getres 456 + 407 32 clock_nanosleep_time64 sys_clock_nanosleep sys_clock_nanosleep 457 + 408 32 timer_gettime64 sys_timer_gettime sys_timer_gettime 458 + 409 32 timer_settime64 sys_timer_settime sys_timer_settime 459 + 410 32 timerfd_gettime64 sys_timerfd_gettime sys_timerfd_gettime 460 + 411 32 timerfd_settime64 sys_timerfd_settime sys_timerfd_settime 461 + 412 32 utimensat_time64 sys_utimensat sys_utimensat 462 + 413 32 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64 463 + 414 32 ppoll_time64 sys_ppoll compat_sys_ppoll_time64 464 + 416 32 io_pgetevents_time64 sys_io_pgetevents sys_io_pgetevents 465 + 417 32 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64 466 + 418 32 mq_timedsend_time64 sys_mq_timedsend sys_mq_timedsend 467 + 419 32 mq_timedreceive_time64 sys_mq_timedreceive sys_mq_timedreceive 468 + 420 32 semtimedop_time64 sys_semtimedop sys_semtimedop 469 + 421 32 rt_sigtimedwait_time64 sys_rt_sigtimedwait compat_sys_rt_sigtimedwait_time64 470 + 422 32 futex_time64 sys_futex sys_futex 471 + 423 32 sched_rr_get_interval_time64 sys_sched_rr_get_interval sys_sched_rr_get_interval
+20
arch/x86/entry/syscalls/syscall_32.tbl
··· 409 409 400 i386 msgsnd sys_msgsnd __ia32_compat_sys_msgsnd 410 410 401 i386 msgrcv sys_msgrcv __ia32_compat_sys_msgrcv 411 411 402 i386 msgctl sys_msgctl __ia32_compat_sys_msgctl 412 + 403 i386 clock_gettime64 sys_clock_gettime __ia32_sys_clock_gettime 413 + 404 i386 clock_settime64 sys_clock_settime __ia32_sys_clock_settime 414 + 405 i386 clock_adjtime64 sys_clock_adjtime __ia32_sys_clock_adjtime 415 + 406 i386 clock_getres_time64 sys_clock_getres __ia32_sys_clock_getres 416 + 407 i386 clock_nanosleep_time64 sys_clock_nanosleep __ia32_sys_clock_nanosleep 417 + 408 i386 timer_gettime64 sys_timer_gettime __ia32_sys_timer_gettime 418 + 409 i386 timer_settime64 sys_timer_settime __ia32_sys_timer_settime 419 + 410 i386 timerfd_gettime64 sys_timerfd_gettime __ia32_sys_timerfd_gettime 420 + 411 i386 timerfd_settime64 sys_timerfd_settime __ia32_sys_timerfd_settime 421 + 412 i386 utimensat_time64 sys_utimensat __ia32_sys_utimensat 422 + 413 i386 pselect6_time64 sys_pselect6 __ia32_compat_sys_pselect6_time64 423 + 414 i386 ppoll_time64 sys_ppoll __ia32_compat_sys_ppoll_time64 424 + 416 i386 io_pgetevents_time64 sys_io_pgetevents __ia32_sys_io_pgetevents 425 + 417 i386 recvmmsg_time64 sys_recvmmsg __ia32_compat_sys_recvmmsg_time64 426 + 418 i386 mq_timedsend_time64 sys_mq_timedsend __ia32_sys_mq_timedsend 427 + 419 i386 mq_timedreceive_time64 sys_mq_timedreceive __ia32_sys_mq_timedreceive 428 + 420 i386 semtimedop_time64 sys_semtimedop __ia32_sys_semtimedop 429 + 421 i386 rt_sigtimedwait_time64 sys_rt_sigtimedwait __ia32_compat_sys_rt_sigtimedwait_time64 430 + 422 i386 futex_time64 sys_futex __ia32_sys_futex 431 + 423 i386 sched_rr_get_interval_time64 sys_sched_rr_get_interval __ia32_sys_sched_rr_get_interval
+21
arch/xtensa/kernel/syscalls/syscall.tbl
··· 373 373 350 common pkey_free sys_pkey_free 374 374 351 common statx sys_statx 375 375 352 common rseq sys_rseq 376 + # 353 through 402 are unassigned to sync up with generic numbers 377 + 403 common clock_gettime64 sys_clock_gettime 378 + 404 common clock_settime64 sys_clock_settime 379 + 405 common clock_adjtime64 sys_clock_adjtime 380 + 406 common clock_getres_time64 sys_clock_getres 381 + 407 common clock_nanosleep_time64 sys_clock_nanosleep 382 + 408 common timer_gettime64 sys_timer_gettime 383 + 409 common timer_settime64 sys_timer_settime 384 + 410 common timerfd_gettime64 sys_timerfd_gettime 385 + 411 common timerfd_settime64 sys_timerfd_settime 386 + 412 common utimensat_time64 sys_utimensat 387 + 413 common pselect6_time64 sys_pselect6 388 + 414 common ppoll_time64 sys_ppoll 389 + 416 common io_pgetevents_time64 sys_io_pgetevents 390 + 417 common recvmmsg_time64 sys_recvmmsg 391 + 418 common mq_timedsend_time64 sys_mq_timedsend 392 + 419 common mq_timedreceive_time64 sys_mq_timedreceive 393 + 420 common semtimedop_time64 sys_semtimedop 394 + 421 common rt_sigtimedwait_time64 sys_rt_sigtimedwait 395 + 422 common futex_time64 sys_futex 396 + 423 common sched_rr_get_interval_time64 sys_sched_rr_get_interval
+43 -1
include/uapi/asm-generic/unistd.h
··· 741 741 #define __NR_kexec_file_load 294 742 742 __SYSCALL(__NR_kexec_file_load, sys_kexec_file_load) 743 743 /* 295 through 402 are unassigned to sync up with generic numbers, don't use */ 744 + #if __BITS_PER_LONG == 32 745 + #define __NR_clock_gettime64 403 746 + __SYSCALL(__NR_clock_gettime64, sys_clock_gettime) 747 + #define __NR_clock_settime64 404 748 + __SYSCALL(__NR_clock_settime64, sys_clock_settime) 749 + #define __NR_clock_adjtime64 405 750 + __SYSCALL(__NR_clock_adjtime64, sys_clock_adjtime) 751 + #define __NR_clock_getres_time64 406 752 + __SYSCALL(__NR_clock_getres_time64, sys_clock_getres) 753 + #define __NR_clock_nanosleep_time64 407 754 + __SYSCALL(__NR_clock_nanosleep_time64, sys_clock_nanosleep) 755 + #define __NR_timer_gettime64 408 756 + __SYSCALL(__NR_timer_gettime64, sys_timer_gettime) 757 + #define __NR_timer_settime64 409 758 + __SYSCALL(__NR_timer_settime64, sys_timer_settime) 759 + #define __NR_timerfd_gettime64 410 760 + __SYSCALL(__NR_timerfd_gettime64, sys_timerfd_gettime) 761 + #define __NR_timerfd_settime64 411 762 + __SYSCALL(__NR_timerfd_settime64, sys_timerfd_settime) 763 + #define __NR_utimensat_time64 412 764 + __SYSCALL(__NR_utimensat_time64, sys_utimensat) 765 + #define __NR_pselect6_time64 413 766 + __SC_COMP(__NR_pselect6_time64, sys_pselect6, compat_sys_pselect6_time64) 767 + #define __NR_ppoll_time64 414 768 + __SC_COMP(__NR_ppoll_time64, sys_ppoll, compat_sys_ppoll_time64) 769 + #define __NR_io_pgetevents_time64 416 770 + __SYSCALL(__NR_io_pgetevents_time64, sys_io_pgetevents) 771 + #define __NR_recvmmsg_time64 417 772 + __SC_COMP(__NR_recvmmsg_time64, sys_recvmmsg, compat_sys_recvmmsg_time64) 773 + #define __NR_mq_timedsend_time64 418 774 + __SYSCALL(__NR_mq_timedsend_time64, sys_mq_timedsend) 775 + #define __NR_mq_timedreceive_time64 419 776 + __SYSCALL(__NR_mq_timedreceive_time64, sys_mq_timedreceive) 777 + #define __NR_semtimedop_time64 420 778 + __SYSCALL(__NR_semtimedop_time64, sys_semtimedop) 779 + #define __NR_rt_sigtimedwait_time64 421 780 + __SC_COMP(__NR_rt_sigtimedwait_time64, sys_rt_sigtimedwait, compat_sys_rt_sigtimedwait_time64) 781 + #define __NR_futex_time64 422 782 + __SYSCALL(__NR_futex_time64, sys_futex) 783 + #define __NR_sched_rr_get_interval_time64 423 784 + __SYSCALL(__NR_sched_rr_get_interval_time64, sys_sched_rr_get_interval) 785 + #endif 744 786 745 787 #undef __NR_syscalls 746 - #define __NR_syscalls 295 788 + #define __NR_syscalls 424 747 789 748 790 /* 749 791 * 32 bit systems traditionally used different
+40
scripts/checksyscalls.sh
··· 84 84 #define __IGNORE_statfs64 85 85 #define __IGNORE_llseek 86 86 #define __IGNORE_mmap2 87 + #define __IGNORE_clock_gettime64 88 + #define __IGNORE_clock_settime64 89 + #define __IGNORE_clock_adjtime64 90 + #define __IGNORE_clock_getres_time64 91 + #define __IGNORE_clock_nanosleep_time64 92 + #define __IGNORE_timer_gettime64 93 + #define __IGNORE_timer_settime64 94 + #define __IGNORE_timerfd_gettime64 95 + #define __IGNORE_timerfd_settime64 96 + #define __IGNORE_utimensat_time64 97 + #define __IGNORE_pselect6_time64 98 + #define __IGNORE_ppoll_time64 99 + #define __IGNORE_io_pgetevents_time64 100 + #define __IGNORE_recvmmsg_time64 101 + #define __IGNORE_mq_timedsend_time64 102 + #define __IGNORE_mq_timedreceive_time64 103 + #define __IGNORE_semtimedop_time64 104 + #define __IGNORE_rt_sigtimedwait_time64 105 + #define __IGNORE_futex_time64 106 + #define __IGNORE_sched_rr_get_interval_time64 87 107 #else 88 108 #define __IGNORE_sendfile 89 109 #define __IGNORE_ftruncate ··· 118 98 #define __IGNORE_statfs 119 99 #define __IGNORE_lseek 120 100 #define __IGNORE_mmap 101 + #define __IGNORE_clock_gettime 102 + #define __IGNORE_clock_settime 103 + #define __IGNORE_clock_adjtime 104 + #define __IGNORE_clock_getres 105 + #define __IGNORE_clock_nanosleep 106 + #define __IGNORE_timer_gettime 107 + #define __IGNORE_timer_settime 108 + #define __IGNORE_timerfd_gettime 109 + #define __IGNORE_timerfd_settime 110 + #define __IGNORE_utimensat 111 + #define __IGNORE_pselect6 112 + #define __IGNORE_ppoll 113 + #define __IGNORE_io_pgetevents 114 + #define __IGNORE_recvmmsg 115 + #define __IGNORE_mq_timedsend 116 + #define __IGNORE_mq_timedreceiv 117 + #define __IGNORE_semtimedop 118 + #define __IGNORE_rt_sigtimedwait 119 + #define __IGNORE_futex 120 + #define __IGNORE_sched_rr_get_interval 121 121 #endif 122 122 123 123 /* i386-specific or historical system calls */