On 11:48 Fri 12 Mar 2021, Masahiro Yamada wrote:
Hi. I think I am missing something, but is there any particular reason to use a different bit size between a syscall and its userspace wrapper? For example, for the unshare syscall, unshare(2) says the parameter is int. SYNOPSIS #define _GNU_SOURCE #include <sched.h> int unshare(int flags); In the kernel, it is unsigned long. SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags) { return ksys_unshare(unshare_flags); } I guess the upper 32-bit will be zeroed out in the c library when sizeof(int) != sizeof(unsigned long) (i.e. 64-bit system), but I'd like to know why we do it this way.
Small nit! never mind ...but eye catching, Masahiro :) ...are you typing this on narrowed device, which allow only this much line length?? It's bloody narrow...don't you think so? Sorry, for the deviation. ~Bhaskar
-- Best Regards Masahiro Yamada
Attachment:
signature.asc
Description: PGP signature