mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
caf5e32d4e
There are two structures based on time_t that conflict between libc and kernel: timeval and timespec. Both are now renamed to __kernel_old_timeval and __kernel_old_timespec. For time_t, the old typedef is still __kernel_time_t. There is nothing wrong with that name, but it would be nice to not use that going forward as this type is used almost only in deprecated interfaces because of the y2038 overflow. In the IPC headers (msgbuf.h, sembuf.h, shmbuf.h), __kernel_time_t is only used for the 64-bit variants, which are not deprecated. Change these to a plain 'long', which is the same type as __kernel_time_t on all 64-bit architectures anyway, to reduce the number of users of the old type. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
59 lines
1.8 KiB
C
59 lines
1.8 KiB
C
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
#ifndef _ASM_SHMBUF_H
|
|
#define _ASM_SHMBUF_H
|
|
|
|
/*
|
|
* The shmid64_ds structure for the MIPS architecture.
|
|
* Note extra padding because this structure is passed back and forth
|
|
* between kernel and user space.
|
|
*
|
|
* As MIPS was lacking proper padding after shm_?time, we use 48 bits
|
|
* of the padding at the end to store a few additional bits of the time.
|
|
* libc implementations need to take care to convert this into a proper
|
|
* data structure when moving to 64-bit time_t.
|
|
*/
|
|
|
|
#ifdef __mips64
|
|
struct shmid64_ds {
|
|
struct ipc64_perm shm_perm; /* operation perms */
|
|
size_t shm_segsz; /* size of segment (bytes) */
|
|
long shm_atime; /* last attach time */
|
|
long shm_dtime; /* last detach time */
|
|
long shm_ctime; /* last change time */
|
|
__kernel_pid_t shm_cpid; /* pid of creator */
|
|
__kernel_pid_t shm_lpid; /* pid of last operator */
|
|
unsigned long shm_nattch; /* no. of current attaches */
|
|
unsigned long __unused1;
|
|
unsigned long __unused2;
|
|
};
|
|
#else
|
|
struct shmid64_ds {
|
|
struct ipc64_perm shm_perm; /* operation perms */
|
|
size_t shm_segsz; /* size of segment (bytes) */
|
|
unsigned long shm_atime; /* last attach time */
|
|
unsigned long shm_dtime; /* last detach time */
|
|
unsigned long shm_ctime; /* last change time */
|
|
__kernel_pid_t shm_cpid; /* pid of creator */
|
|
__kernel_pid_t shm_lpid; /* pid of last operator */
|
|
unsigned long shm_nattch; /* no. of current attaches */
|
|
unsigned short shm_atime_high;
|
|
unsigned short shm_dtime_high;
|
|
unsigned short shm_ctime_high;
|
|
unsigned short __unused1;
|
|
};
|
|
#endif
|
|
|
|
struct shminfo64 {
|
|
unsigned long shmmax;
|
|
unsigned long shmmin;
|
|
unsigned long shmmni;
|
|
unsigned long shmseg;
|
|
unsigned long shmall;
|
|
unsigned long __unused1;
|
|
unsigned long __unused2;
|
|
unsigned long __unused3;
|
|
unsigned long __unused4;
|
|
};
|
|
|
|
#endif /* _ASM_SHMBUF_H */
|