I think we want signed types to keep it closer to what we have today with 'timeval'. as long as linux/types.h is included first (it is).
Between __s64 or long long, I don't think it makes a difference, so let's just go with Willem's suggestion. We already rely on 'long long' being exactly 64 bit wide in 'struct __kernel_timespec' as well.
Sure, I will change this to __s64. I was also thinking we want signed types because it should be possible to set system time before 1970.
We could however debate whether 'sock_timeval' should be visible to user space in linux/tme.h like this, or if it should be put in a namespace like '__kernel_sock_timeval' to ensure it won't conflict with user space headers defining a type of the same name.
Good idea. I can rename it to __kernel_sock_timeval.
Thanks, Deepa