Loading...
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2#ifndef _SPARC_SHMBUF_H
3#define _SPARC_SHMBUF_H
4
5/*
6 * The shmid64_ds structure for sparc architecture.
7 * Note extra padding because this structure is passed back and forth
8 * between kernel and user space.
9 *
10 * Pad space is left for:
11 * - 64-bit time_t to solve y2038 problem
12 * - 2 miscellaneous 32-bit values
13 */
14
15#if defined(__sparc__) && defined(__arch64__)
16# define PADDING(x)
17#else
18# define PADDING(x) unsigned int x;
19#endif
20
21struct shmid64_ds {
22 struct ipc64_perm shm_perm; /* operation perms */
23 PADDING(__pad1)
24 __kernel_time_t shm_atime; /* last attach time */
25 PADDING(__pad2)
26 __kernel_time_t shm_dtime; /* last detach time */
27 PADDING(__pad3)
28 __kernel_time_t shm_ctime; /* last change time */
29 size_t shm_segsz; /* size of segment (bytes) */
30 __kernel_pid_t shm_cpid; /* pid of creator */
31 __kernel_pid_t shm_lpid; /* pid of last operator */
32 unsigned long shm_nattch; /* no. of current attaches */
33 unsigned long __unused1;
34 unsigned long __unused2;
35};
36
37struct shminfo64 {
38 unsigned long shmmax;
39 unsigned long shmmin;
40 unsigned long shmmni;
41 unsigned long shmseg;
42 unsigned long shmall;
43 unsigned long __unused1;
44 unsigned long __unused2;
45 unsigned long __unused3;
46 unsigned long __unused4;
47};
48
49#undef PADDING
50
51#endif /* _SPARC_SHMBUF_H */
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2#ifndef _SPARC_SHMBUF_H
3#define _SPARC_SHMBUF_H
4
5/*
6 * The shmid64_ds structure for sparc architecture.
7 * Note extra padding because this structure is passed back and forth
8 * between kernel and user space.
9 *
10 * Pad space is left for:
11 * - 2 miscellaneous 32-bit values
12 */
13
14struct shmid64_ds {
15 struct ipc64_perm shm_perm; /* operation perms */
16#if defined(__sparc__) && defined(__arch64__)
17 __kernel_time_t shm_atime; /* last attach time */
18 __kernel_time_t shm_dtime; /* last detach time */
19 __kernel_time_t shm_ctime; /* last change time */
20#else
21 unsigned long shm_atime_high;
22 unsigned long shm_atime; /* last attach time */
23 unsigned long shm_dtime_high;
24 unsigned long shm_dtime; /* last detach time */
25 unsigned long shm_ctime_high;
26 unsigned long shm_ctime; /* last change time */
27#endif
28 size_t shm_segsz; /* size of segment (bytes) */
29 __kernel_pid_t shm_cpid; /* pid of creator */
30 __kernel_pid_t shm_lpid; /* pid of last operator */
31 unsigned long shm_nattch; /* no. of current attaches */
32 unsigned long __unused1;
33 unsigned long __unused2;
34};
35
36struct shminfo64 {
37 unsigned long shmmax;
38 unsigned long shmmin;
39 unsigned long shmmni;
40 unsigned long shmseg;
41 unsigned long shmall;
42 unsigned long __unused1;
43 unsigned long __unused2;
44 unsigned long __unused3;
45 unsigned long __unused4;
46};
47
48#endif /* _SPARC_SHMBUF_H */