Skip to content

Commit

Permalink
Merge branch 'uapi-Add-a-new-header-for-time-types'
Browse files Browse the repository at this point in the history
Deepa Dinamani says:

====================
uapi: Add a new header for time types

The series aims at adding a new time header: time_types.h.  This header
is what will eventually hold all the uapi time types that we plan to
leave across the interfaces after the y2038 cleanup.

The series was discussed with Arnd Bergmann.

The second patch fixes the errqueue.h header, which has a dependency on
these types.

Note that there may be a trivial merge conflict with linux-next
c70a772 ("y2038: remove struct definition redirects").
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
David S. Miller committed Feb 14, 2019
2 parents a08ef41 + 460a2db commit feb558c
Showing 3 changed files with 42 additions and 35 deletions.
1 change: 1 addition & 0 deletions include/uapi/linux/errqueue.h
Original file line number Diff line number Diff line change
@@ -3,6 +3,7 @@
#define _UAPI_LINUX_ERRQUEUE_H

#include <linux/types.h>
#include <linux/time_types.h>

struct sock_extended_err {
__u32 ee_errno;
36 changes: 1 addition & 35 deletions include/uapi/linux/time.h
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@
#define _UAPI_LINUX_TIME_H

#include <linux/types.h>

#include <linux/time_types.h>

#ifndef _STRUCT_TIMESPEC
#define _STRUCT_TIMESPEC
@@ -23,7 +23,6 @@ struct timezone {
int tz_dsttime; /* type of dst correction */
};


/*
* Names of the interval timers, and structure
* defining a timer setting:
@@ -42,39 +41,6 @@ struct itimerval {
struct timeval it_value; /* current value */
};

#ifndef __kernel_timespec
struct __kernel_timespec {
__kernel_time64_t tv_sec; /* seconds */
long long tv_nsec; /* nanoseconds */
};
#endif

#ifndef __kernel_itimerspec
struct __kernel_itimerspec {
struct __kernel_timespec it_interval; /* timer period */
struct __kernel_timespec it_value; /* timer expiration */
};
#endif

/*
* legacy timeval structure, only embedded in structures that
* traditionally used 'timeval' to pass time intervals (not absolute
* times). Do not add new users. If user space fails to compile
* here, this is probably because it is not y2038 safe and needs to
* be changed to use another interface.
*/
#ifndef __kernel_old_timeval
struct __kernel_old_timeval {
__kernel_long_t tv_sec;
__kernel_long_t tv_usec;
};
#endif

struct __kernel_sock_timeval {
__s64 tv_sec;
__s64 tv_usec;
};

/*
* The IDs of the various system clocks (for POSIX.1b interval timers):
*/
40 changes: 40 additions & 0 deletions include/uapi/linux/time_types.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _UAPI_LINUX_TIME_TYPES_H
#define _UAPI_LINUX_TIME_TYPES_H

#include <linux/types.h>

#ifndef __kernel_timespec
struct __kernel_timespec {
__kernel_time64_t tv_sec; /* seconds */
long long tv_nsec; /* nanoseconds */
};
#endif

#ifndef __kernel_itimerspec
struct __kernel_itimerspec {
struct __kernel_timespec it_interval; /* timer period */
struct __kernel_timespec it_value; /* timer expiration */
};
#endif

/*
* legacy timeval structure, only embedded in structures that
* traditionally used 'timeval' to pass time intervals (not absolute
* times). Do not add new users. If user space fails to compile
* here, this is probably because it is not y2038 safe and needs to
* be changed to use another interface.
*/
#ifndef __kernel_old_timeval
struct __kernel_old_timeval {
__kernel_long_t tv_sec;
__kernel_long_t tv_usec;
};
#endif

struct __kernel_sock_timeval {
__s64 tv_sec;
__s64 tv_usec;
};

#endif /* _UAPI_LINUX_TIME_TYPES_H */

0 comments on commit feb558c

Please sign in to comment.