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