cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

compat.h (2558B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef _ASM_POWERPC_COMPAT_H
      3#define _ASM_POWERPC_COMPAT_H
      4#ifdef __KERNEL__
      5/*
      6 * Architecture specific compatibility types
      7 */
      8#include <linux/types.h>
      9#include <linux/sched.h>
     10
     11#define compat_ipc_pid_t compat_ipc_pid_t
     12typedef u16		compat_ipc_pid_t;
     13
     14#define compat_ipc64_perm compat_ipc64_perm
     15
     16#include <asm-generic/compat.h>
     17
     18#ifdef __BIG_ENDIAN__
     19#define COMPAT_UTS_MACHINE	"ppc\0\0"
     20#else
     21#define COMPAT_UTS_MACHINE	"ppcle\0\0"
     22#endif
     23
     24typedef s16		compat_nlink_t;
     25
     26struct compat_stat {
     27	compat_dev_t	st_dev;
     28	compat_ino_t	st_ino;
     29	compat_mode_t	st_mode;
     30	compat_nlink_t	st_nlink;
     31	__compat_uid32_t	st_uid;
     32	__compat_gid32_t	st_gid;
     33	compat_dev_t	st_rdev;
     34	compat_off_t	st_size;
     35	compat_off_t	st_blksize;
     36	compat_off_t	st_blocks;
     37	old_time32_t	st_atime;
     38	u32		st_atime_nsec;
     39	old_time32_t	st_mtime;
     40	u32		st_mtime_nsec;
     41	old_time32_t	st_ctime;
     42	u32		st_ctime_nsec;
     43	u32		__unused4[2];
     44};
     45
     46/*
     47 * ipc64_perm is actually 32/64bit clean but since the compat layer refers to
     48 * it we may as well define it.
     49 */
     50struct compat_ipc64_perm {
     51	compat_key_t key;
     52	__compat_uid_t uid;
     53	__compat_gid_t gid;
     54	__compat_uid_t cuid;
     55	__compat_gid_t cgid;
     56	compat_mode_t mode;
     57	unsigned int seq;
     58	unsigned int __pad2;
     59	unsigned long __unused1;	/* yes they really are 64bit pads */
     60	unsigned long __unused2;
     61};
     62
     63struct compat_semid64_ds {
     64	struct compat_ipc64_perm sem_perm;
     65	unsigned int sem_otime_high;
     66	unsigned int sem_otime;
     67	unsigned int sem_ctime_high;
     68	unsigned int sem_ctime;
     69	compat_ulong_t sem_nsems;
     70	compat_ulong_t __unused3;
     71	compat_ulong_t __unused4;
     72};
     73
     74struct compat_msqid64_ds {
     75	struct compat_ipc64_perm msg_perm;
     76	unsigned int msg_stime_high;
     77	unsigned int msg_stime;
     78	unsigned int msg_rtime_high;
     79	unsigned int msg_rtime;
     80	unsigned int msg_ctime_high;
     81	unsigned int msg_ctime;
     82	compat_ulong_t msg_cbytes;
     83	compat_ulong_t msg_qnum;
     84	compat_ulong_t msg_qbytes;
     85	compat_pid_t msg_lspid;
     86	compat_pid_t msg_lrpid;
     87	compat_ulong_t __unused4;
     88	compat_ulong_t __unused5;
     89};
     90
     91struct compat_shmid64_ds {
     92	struct compat_ipc64_perm shm_perm;
     93	unsigned int shm_atime_high;
     94	unsigned int shm_atime;
     95	unsigned int shm_dtime_high;
     96	unsigned int shm_dtime;
     97	unsigned int shm_ctime_high;
     98	unsigned int shm_ctime;
     99	unsigned int __unused4;
    100	compat_size_t shm_segsz;
    101	compat_pid_t shm_cpid;
    102	compat_pid_t shm_lpid;
    103	compat_ulong_t shm_nattch;
    104	compat_ulong_t __unused5;
    105	compat_ulong_t __unused6;
    106};
    107
    108static inline int is_compat_task(void)
    109{
    110	return is_32bit_task();
    111}
    112
    113#endif /* __KERNEL__ */
    114#endif /* _ASM_POWERPC_COMPAT_H */