shmbuf.h (498495dba268b20e8eadd7fe93c140c68b6cc9d2) shmbuf.h (b497ef570ecdeeaef4335ecc4f712cbaae0918a5)
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2/*
3 * include/asm-xtensa/shmbuf.h
4 *
5 * The shmid64_ds structure for Xtensa architecture.
6 * Note extra padding because this structure is passed back and forth
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2/*
3 * include/asm-xtensa/shmbuf.h
4 *
5 * The shmid64_ds structure for Xtensa architecture.
6 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
7 * between kernel and user space, but the padding is on the wrong
8 * side for big-endian xtensa, for historic reasons.
8 *
9 * Pad space is left for:
9 *
10 * Pad space is left for:
10 * - 64-bit time_t to solve y2038 problem
11 * - 2 miscellaneous 32-bit values
12 *
13 * This file is subject to the terms and conditions of the GNU General Public
14 * License. See the file "COPYING" in the main directory of this archive
15 * for more details.
16 *
17 * Copyright (C) 2001 - 2005 Tensilica Inc.
18 */
19
20#ifndef _XTENSA_SHMBUF_H
21#define _XTENSA_SHMBUF_H
22
11 * - 2 miscellaneous 32-bit values
12 *
13 * This file is subject to the terms and conditions of the GNU General Public
14 * License. See the file "COPYING" in the main directory of this archive
15 * for more details.
16 *
17 * Copyright (C) 2001 - 2005 Tensilica Inc.
18 */
19
20#ifndef _XTENSA_SHMBUF_H
21#define _XTENSA_SHMBUF_H
22
23#if defined (__XTENSA_EL__)
24struct shmid64_ds {
25 struct ipc64_perm shm_perm; /* operation perms */
26 size_t shm_segsz; /* size of segment (bytes) */
23struct shmid64_ds {
24 struct ipc64_perm shm_perm; /* operation perms */
25 size_t shm_segsz; /* size of segment (bytes) */
27 __kernel_time_t shm_atime; /* last attach time */
28 unsigned long __unused1;
29 __kernel_time_t shm_dtime; /* last detach time */
30 unsigned long __unused2;
31 __kernel_time_t shm_ctime; /* last change time */
32 unsigned long __unused3;
26 unsigned long shm_atime; /* last attach time */
27 unsigned long shm_atime_high;
28 unsigned long shm_dtime; /* last detach time */
29 unsigned long shm_dtime_high;
30 unsigned long shm_ctime; /* last change time */
31 unsigned long shm_ctime_high;
33 __kernel_pid_t shm_cpid; /* pid of creator */
34 __kernel_pid_t shm_lpid; /* pid of last operator */
35 unsigned long shm_nattch; /* no. of current attaches */
36 unsigned long __unused4;
37 unsigned long __unused5;
38};
32 __kernel_pid_t shm_cpid; /* pid of creator */
33 __kernel_pid_t shm_lpid; /* pid of last operator */
34 unsigned long shm_nattch; /* no. of current attaches */
35 unsigned long __unused4;
36 unsigned long __unused5;
37};
39#elif defined (__XTENSA_EB__)
40struct shmid64_ds {
41 struct ipc64_perm shm_perm; /* operation perms */
42 size_t shm_segsz; /* size of segment (bytes) */
43 __kernel_time_t shm_atime; /* last attach time */
44 unsigned long __unused1;
45 __kernel_time_t shm_dtime; /* last detach time */
46 unsigned long __unused2;
47 __kernel_time_t shm_ctime; /* last change time */
48 unsigned long __unused3;
49 __kernel_pid_t shm_cpid; /* pid of creator */
50 __kernel_pid_t shm_lpid; /* pid of last operator */
51 unsigned long shm_nattch; /* no. of current attaches */
52 unsigned long __unused4;
53 unsigned long __unused5;
54};
55#else
56# error endian order not defined
57#endif
58
38
59
60struct shminfo64 {
61 unsigned long shmmax;
62 unsigned long shmmin;
63 unsigned long shmmni;
64 unsigned long shmseg;
65 unsigned long shmall;
66 unsigned long __unused1;
67 unsigned long __unused2;
68 unsigned long __unused3;
69 unsigned long __unused4;
70};
71
72#endif /* _XTENSA_SHMBUF_H */
39struct shminfo64 {
40 unsigned long shmmax;
41 unsigned long shmmin;
42 unsigned long shmmni;
43 unsigned long shmseg;
44 unsigned long shmall;
45 unsigned long __unused1;
46 unsigned long __unused2;
47 unsigned long __unused3;
48 unsigned long __unused4;
49};
50
51#endif /* _XTENSA_SHMBUF_H */