Re: [PATCH 6/8] socket: Add struct sock_timeval

From: Willem de Bruijn
Date: Sat Nov 24 2018 - 14:38:34 EST


On Sat, Nov 24, 2018 at 4:00 AM Deepa Dinamani <deepa.kernel@xxxxxxxxx> wrote:
>
> The new type is meant to be used as a y2038 safe structure
> to be used as part of cmsg data.
> Presently the SO_TIMESTAMP socket option uses struct timeval
> for timestamps. This is not y2038 safe.
> Subsequent patches in the series add new y2038 safe socket
> option to be used in the place of SO_TIMESTAMP_OLD.
> struct sock_timeval will be used as the timestamp format
> at that time.
>
> struct sock_timeval also maintains the same layout across
> 32 bit and 64 bit ABIs.
>
> Signed-off-by: Deepa Dinamani <deepa.kernel@xxxxxxxxx>
> ---
> include/uapi/linux/time.h | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/include/uapi/linux/time.h b/include/uapi/linux/time.h
> index 04d5587f30d3..106f9398c285 100644
> --- a/include/uapi/linux/time.h
> +++ b/include/uapi/linux/time.h
> @@ -70,6 +70,11 @@ struct __kernel_old_timeval {
> };
> #endif
>
> +struct sock_timeval {
> + long long tv_sec;
> + long long tv_usec;

should these use fixed-width type __u64?

even if all data models define long long as 64-bit, that might be more
descriptive.