aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/socket.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-12-28 15:45:04 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2018-12-28 15:45:04 -0500
commitb12a9124eeb71d766a3e3eb594ebbb3fefc66902 (patch)
tree1803ac4abd3be73241e58b9da0c4fb71295137b4 /include/linux/socket.h
parent1a80dade010c7a7f4885a4c4c2a7ac22cc7b34df (diff)
parente4b92b108c6cd6b311e4b6e85d6a87a34599a6e3 (diff)
Merge tag 'y2038-for-4.21' of ssh://gitolite.kernel.org:/pub/scm/linux/kernel/git/arnd/playground
Pull y2038 updates from Arnd Bergmann: "More syscalls and cleanups This concludes the main part of the system call rework for 64-bit time_t, which has spread over most of year 2018, the last six system calls being - ppoll - pselect6 - io_pgetevents - recvmmsg - futex - rt_sigtimedwait As before, nothing changes for 64-bit architectures, while 32-bit architectures gain another entry point that differs only in the layout of the timespec structure. Hopefully in the next release we can wire up all 22 of those system calls on all 32-bit architectures, which gives us a baseline version for glibc to start using them. This does not include the clock_adjtime, getrusage/waitid, and getitimer/setitimer system calls. I still plan to have new versions of those as well, but they are not required for correct operation of the C library since they can be emulated using the old 32-bit time_t based system calls. Aside from the system calls, there are also a few cleanups here, removing old kernel internal interfaces that have become unused after all references got removed. The arch/sh cleanups are part of this, there were posted several times over the past year without a reaction from the maintainers, while the corresponding changes made it into all other architectures" * tag 'y2038-for-4.21' of ssh://gitolite.kernel.org:/pub/scm/linux/kernel/git/arnd/playground: timekeeping: remove obsolete time accessors vfs: replace current_kernel_time64 with ktime equivalent timekeeping: remove timespec_add/timespec_del timekeeping: remove unused {read,update}_persistent_clock sh: remove board_time_init() callback sh: remove unused rtc_sh_get/set_time infrastructure sh: sh03: rtc: push down rtc class ops into driver sh: dreamcast: rtc: push down rtc class ops into driver y2038: signal: Add compat_sys_rt_sigtimedwait_time64 y2038: signal: Add sys_rt_sigtimedwait_time32 y2038: socket: Add compat_sys_recvmmsg_time64 y2038: futex: Add support for __kernel_timespec y2038: futex: Move compat implementation into futex.c io_pgetevents: use __kernel_timespec pselect6: use __kernel_timespec ppoll: use __kernel_timespec signal: Add restore_user_sigmask() signal: Add set_user_sigmask()
Diffstat (limited to 'include/linux/socket.h')
-rw-r--r--include/linux/socket.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/include/linux/socket.h b/include/linux/socket.h
index 84c48a3c0227..ab2041a00e01 100644
--- a/include/linux/socket.h
+++ b/include/linux/socket.h
@@ -349,7 +349,8 @@ struct ucred {
349extern int move_addr_to_kernel(void __user *uaddr, int ulen, struct sockaddr_storage *kaddr); 349extern int move_addr_to_kernel(void __user *uaddr, int ulen, struct sockaddr_storage *kaddr);
350extern int put_cmsg(struct msghdr*, int level, int type, int len, void *data); 350extern int put_cmsg(struct msghdr*, int level, int type, int len, void *data);
351 351
352struct timespec64; 352struct __kernel_timespec;
353struct old_timespec32;
353 354
354/* The __sys_...msg variants allow MSG_CMSG_COMPAT iff 355/* The __sys_...msg variants allow MSG_CMSG_COMPAT iff
355 * forbid_cmsg_compat==false 356 * forbid_cmsg_compat==false
@@ -358,8 +359,10 @@ extern long __sys_recvmsg(int fd, struct user_msghdr __user *msg,
358 unsigned int flags, bool forbid_cmsg_compat); 359 unsigned int flags, bool forbid_cmsg_compat);
359extern long __sys_sendmsg(int fd, struct user_msghdr __user *msg, 360extern long __sys_sendmsg(int fd, struct user_msghdr __user *msg,
360 unsigned int flags, bool forbid_cmsg_compat); 361 unsigned int flags, bool forbid_cmsg_compat);
361extern int __sys_recvmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen, 362extern int __sys_recvmmsg(int fd, struct mmsghdr __user *mmsg,
362 unsigned int flags, struct timespec64 *timeout); 363 unsigned int vlen, unsigned int flags,
364 struct __kernel_timespec __user *timeout,
365 struct old_timespec32 __user *timeout32);
363extern int __sys_sendmmsg(int fd, struct mmsghdr __user *mmsg, 366extern int __sys_sendmmsg(int fd, struct mmsghdr __user *mmsg,
364 unsigned int vlen, unsigned int flags, 367 unsigned int vlen, unsigned int flags,
365 bool forbid_cmsg_compat); 368 bool forbid_cmsg_compat);