About RISC-V syscalls and the __ARCH_WANT_TIME32_SYSCALLS macro

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'm tweaking RISC-V 32-bit kernel and toolchains, and seems by default
some syscalls are not enabled -- for example, adjtimex. In kernel headers
(usr/include/asm-generic/unistd.h)it is guarded by the macro:

#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32
...
#define __NR_adjtimex 171
__SC_3264(__NR_adjtimex, sys_adjtimex_time32, sys_adjtimex)

which is not enabled on 32-bit because __ARCH_WANT_TIME32_SYSCALLS is not
defined for RISC-V, and there's no 32-bit counterparts in the unistd.h file
,unlike, for example, ppoll:

#if __BITS_PER_LONG == 32
...
#define __NR_ppoll_time64 414
__SC_COMP(__NR_ppoll_time64, sys_ppoll, compat_sys_ppoll_time64)

In other architectures like ARM 32-bit, I find adjtimex listed in the
syscalls.tbl file, which doesn't exist for RISC-V.

So is syscalls like adjtimex just shouldn't exist for RISC-V 32-bit?
If not, is it good to manually define __ARCH_WANT_TIME32_SYSCALLS? I got
uclibc compiled and run after defining this macro in kernel, but I'm not
sure if this is good.

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]

  Powered by Linux