summaryrefslogtreecommitdiffstats
path: root/kernel/tests/include/lapi/shmbuf.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/tests/include/lapi/shmbuf.h')
-rw-r--r--kernel/tests/include/lapi/shmbuf.h273
1 files changed, 0 insertions, 273 deletions
diff --git a/kernel/tests/include/lapi/shmbuf.h b/kernel/tests/include/lapi/shmbuf.h
deleted file mode 100644
index 28ee336..0000000
--- a/kernel/tests/include/lapi/shmbuf.h
+++ /dev/null
@@ -1,273 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * Copyright (c) 2020 Linaro Limited. All rights reserved.
- * Author: Viresh Kumar <viresh.kumar@linaro.org>
- */
-
-#ifndef IPC_SHMBUF_H
-#define IPC_SHMBUF_H
-
-#include "lapi/posix_types.h"
-#include <sys/sem.h>
-#include "tst_timer.h"
-#include "ipcbuf.h"
-
-#ifndef HAVE_SHMID64_DS
-
-#if defined(__mips__)
-#define HAVE_SHMID64_DS
-/*
- * 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.
- */
-
-#if defined(__arch64__)
-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
-#define HAVE_SHMID64_DS_TIME_HIGH
-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
-
-#endif /* __mips__ */
-
-#if defined(__hppa__)
-#define HAVE_SHMID64_DS
-/*
- * The shmid64_ds structure for parisc architecture.
- * Note extra padding because this structure is passed back and forth
- * between kernel and user space.
- *
- * Pad space is left for:
- * - 2 miscellaneous 32-bit values
- */
-
-struct shmid64_ds {
- struct ipc64_perm shm_perm; /* operation perms */
-#if __BITS_PER_LONG == 64
- long shm_atime; /* last attach time */
- long shm_dtime; /* last detach time */
- long shm_ctime; /* last change time */
-#else
-#define HAVE_SHMID64_DS_TIME_HIGH
- unsigned long shm_atime_high;
- unsigned long shm_atime; /* last attach time */
- unsigned long shm_dtime_high;
- unsigned long shm_dtime; /* last detach time */
- unsigned long shm_ctime_high;
- unsigned long shm_ctime; /* last change time */
- unsigned int __pad4;
-#endif
- __kernel_size_t shm_segsz; /* size of segment (bytes) */
- __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;
-};
-#endif /* __hppa__ */
-
-#if defined(__powerpc__) || defined(__powerpc64__)
-#define HAVE_SHMID64_DS
-/*
- * The shmid64_ds structure for PPC architecture.
- *
- * Note extra padding because this structure is passed back and forth
- * between kernel and user space.
- *
- * Pad space is left for:
- * - 2 miscellaneous 32-bit values
- */
-
-struct shmid64_ds {
- struct ipc64_perm shm_perm; /* operation perms */
-#ifdef __powerpc64__
- long shm_atime; /* last attach time */
- long shm_dtime; /* last detach time */
- long shm_ctime; /* last change time */
-#else
-#define HAVE_SHMID64_DS_TIME_HIGH
- unsigned long shm_atime_high;
- unsigned long shm_atime; /* last attach time */
- unsigned long shm_dtime_high;
- unsigned long shm_dtime; /* last detach time */
- unsigned long shm_ctime_high;
- unsigned long shm_ctime; /* last change time */
- unsigned long __unused4;
-#endif
- size_t shm_segsz; /* size of segment (bytes) */
- __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 __unused5;
- unsigned long __unused6;
-};
-
-#endif /* defined(__powerpc__) || defined(__powerpc64__) */
-
-#if defined(__sparc__)
-#define HAVE_SHMID64_DS
-/*
- * The shmid64_ds structure for sparc architecture.
- * Note extra padding because this structure is passed back and forth
- * between kernel and user space.
- *
- * Pad space is left for:
- * - 2 miscellaneous 32-bit values
- */
-
-struct shmid64_ds {
- struct ipc64_perm shm_perm; /* operation perms */
-#if defined(__arch64__)
- long shm_atime; /* last attach time */
- long shm_dtime; /* last detach time */
- long shm_ctime; /* last change time */
-#else
-#define HAVE_SHMID64_DS_TIME_HIGH
- unsigned long shm_atime_high;
- unsigned long shm_atime; /* last attach time */
- unsigned long shm_dtime_high;
- unsigned long shm_dtime; /* last detach time */
- unsigned long shm_ctime_high;
- unsigned long shm_ctime; /* last change time */
-#endif
- size_t shm_segsz; /* size of segment (bytes) */
- __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;
-};
-
-#endif /* __sparc__ */
-
-#if defined(__x86_64__) && defined(__ILP32__)
-#define HAVE_SHMID64_DS
-/*
- * The shmid64_ds structure for x86 architecture with x32 ABI.
- *
- * On x86-32 and x86-64 we can just use the generic definition, but
- * x32 uses the same binary layout as x86_64, which is differnet
- * from other 32-bit architectures.
- */
-
-struct shmid64_ds {
- struct ipc64_perm shm_perm; /* operation perms */
- size_t shm_segsz; /* size of segment (bytes) */
- __kernel_long_t shm_atime; /* last attach time */
- __kernel_long_t shm_dtime; /* last detach time */
- __kernel_long_t shm_ctime; /* last change time */
- __kernel_pid_t shm_cpid; /* pid of creator */
- __kernel_pid_t shm_lpid; /* pid of last operator */
- __kernel_ulong_t shm_nattch; /* no. of current attaches */
- __kernel_ulong_t __unused4;
- __kernel_ulong_t __unused5;
-};
-#endif /* defined(__x86_64__) && defined(__ILP32__) */
-
-#if defined(__xtensa__)
-#define HAVE_SHMID64_DS
-#define HAVE_SHMID64_DS_TIME_HIGH
-/*
- * The shmid64_ds structure for Xtensa architecture.
- * Note extra padding because this structure is passed back and forth
- * between kernel and user space, but the padding is on the wrong
- * side for big-endian xtensa, for historic reasons.
- *
- * Pad space is left for:
- * - 2 miscellaneous 32-bit values
- */
-
-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_atime_high;
- unsigned long shm_dtime; /* last detach time */
- unsigned long shm_dtime_high;
- unsigned long shm_ctime; /* last change time */
- unsigned long shm_ctime_high;
- __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 __unused4;
- unsigned long __unused5;
-};
-
-#endif /* __xtensa__ */
-
-#ifndef HAVE_SHMID64_DS
-/*
- * The shmid64_ds structure for most architectures (though it came
- * from x86_32 originally). Note extra padding because this structure
- * is passed back and forth between kernel and user space.
- *
- * shmid64_ds was originally meant to be architecture specific, but
- * everyone just ended up making identical copies without specific
- * optimizations, so we may just as well all use the same one.
- *
- * 64 bit architectures use a 64-bit long time field here, while
- * 32 bit architectures have a pair of unsigned long values.
- * On big-endian systems, the lower half is in the wrong place.
- *
- *
- * Pad space is left for:
- * - 2 miscellaneous 32-bit values
- */
-
-struct shmid64_ds {
- struct ipc64_perm shm_perm; /* operation perms */
- size_t shm_segsz; /* size of segment (bytes) */
-#if __BITS_PER_LONG == 64
- long shm_atime; /* last attach time */
- long shm_dtime; /* last detach time */
- long shm_ctime; /* last change time */
-#else
-#define HAVE_SHMID64_DS_TIME_HIGH
- unsigned long shm_atime; /* last attach time */
- unsigned long shm_atime_high;
- unsigned long shm_dtime; /* last detach time */
- unsigned long shm_dtime_high;
- unsigned long shm_ctime; /* last change time */
- unsigned long shm_ctime_high;
-#endif
- __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 __unused4;
- unsigned long __unused5;
-};
-#endif /* shmid64_ds */
-
-#endif /* HAVE_SHMID64_DS */
-
-#endif /* IPC_SHMBUF_H */