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 (3528B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef _ASM_COMPAT_H
      3#define _ASM_COMPAT_H
      4/*
      5 * Architecture specific compatibility types
      6 */
      7#include <linux/thread_info.h>
      8#include <linux/types.h>
      9#include <asm/page.h>
     10#include <asm/ptrace.h>
     11
     12#define __compat_uid_t	__compat_uid_t
     13typedef s32		__compat_uid_t;
     14typedef s32		__compat_gid_t;
     15
     16typedef __compat_uid_t	__compat_uid32_t;
     17typedef __compat_gid_t	__compat_gid32_t;
     18#define __compat_uid32_t __compat_uid32_t
     19
     20#define compat_statfs		compat_statfs
     21#define compat_ipc64_perm	compat_ipc64_perm
     22
     23#define _COMPAT_NSIG		128		/* Don't ask !$@#% ...	*/
     24#define _COMPAT_NSIG_BPW	32
     25typedef u32		compat_sigset_word;
     26
     27#define COMPAT_RLIM_INFINITY	0x7fffffffUL
     28
     29#include <asm-generic/compat.h>
     30
     31#define COMPAT_UTS_MACHINE	"mips\0\0\0"
     32
     33typedef u32		compat_nlink_t;
     34
     35struct compat_stat {
     36	compat_dev_t	st_dev;
     37	s32		st_pad1[3];
     38	compat_ino_t	st_ino;
     39	compat_mode_t	st_mode;
     40	compat_nlink_t	st_nlink;
     41	__compat_uid_t	st_uid;
     42	__compat_gid_t	st_gid;
     43	compat_dev_t	st_rdev;
     44	s32		st_pad2[2];
     45	compat_off_t	st_size;
     46	s32		st_pad3;
     47	old_time32_t	st_atime;
     48	s32		st_atime_nsec;
     49	old_time32_t	st_mtime;
     50	s32		st_mtime_nsec;
     51	old_time32_t	st_ctime;
     52	s32		st_ctime_nsec;
     53	s32		st_blksize;
     54	s32		st_blocks;
     55	s32		st_pad4[14];
     56};
     57
     58#define __ARCH_COMPAT_FLOCK_EXTRA_SYSID		s32 l_sysid;
     59#define __ARCH_COMPAT_FLOCK_PAD			s32 pad[4];
     60
     61struct compat_statfs {
     62	int		f_type;
     63	int		f_bsize;
     64	int		f_frsize;
     65	int		f_blocks;
     66	int		f_bfree;
     67	int		f_files;
     68	int		f_ffree;
     69	int		f_bavail;
     70	compat_fsid_t	f_fsid;
     71	int		f_namelen;
     72	int		f_flags;
     73	int		f_spare[5];
     74};
     75
     76struct compat_ipc64_perm {
     77	compat_key_t key;
     78	__compat_uid32_t uid;
     79	__compat_gid32_t gid;
     80	__compat_uid32_t cuid;
     81	__compat_gid32_t cgid;
     82	compat_mode_t mode;
     83	unsigned short seq;
     84	unsigned short __pad2;
     85	compat_ulong_t __unused1;
     86	compat_ulong_t __unused2;
     87};
     88
     89struct compat_semid64_ds {
     90	struct compat_ipc64_perm sem_perm;
     91	compat_ulong_t	sem_otime;
     92	compat_ulong_t	sem_ctime;
     93	compat_ulong_t	sem_nsems;
     94	compat_ulong_t	sem_otime_high;
     95	compat_ulong_t	sem_ctime_high;
     96};
     97
     98struct compat_msqid64_ds {
     99	struct compat_ipc64_perm msg_perm;
    100#ifndef CONFIG_CPU_LITTLE_ENDIAN
    101	compat_ulong_t	msg_stime_high;
    102#endif
    103	compat_ulong_t	msg_stime;
    104#ifdef CONFIG_CPU_LITTLE_ENDIAN
    105	compat_ulong_t	msg_stime_high;
    106#endif
    107#ifndef CONFIG_CPU_LITTLE_ENDIAN
    108	compat_ulong_t	msg_rtime_high;
    109#endif
    110	compat_ulong_t	msg_rtime;
    111#ifdef CONFIG_CPU_LITTLE_ENDIAN
    112	compat_ulong_t	msg_rtime_high;
    113#endif
    114#ifndef CONFIG_CPU_LITTLE_ENDIAN
    115	compat_ulong_t	msg_ctime_high;
    116#endif
    117	compat_ulong_t	msg_ctime;
    118#ifdef CONFIG_CPU_LITTLE_ENDIAN
    119	compat_ulong_t	msg_ctime_high;
    120#endif
    121	compat_ulong_t	msg_cbytes;
    122	compat_ulong_t	msg_qnum;
    123	compat_ulong_t	msg_qbytes;
    124	compat_pid_t	msg_lspid;
    125	compat_pid_t	msg_lrpid;
    126	compat_ulong_t	__unused4;
    127	compat_ulong_t	__unused5;
    128};
    129
    130struct compat_shmid64_ds {
    131	struct compat_ipc64_perm shm_perm;
    132	compat_size_t	shm_segsz;
    133	compat_ulong_t	shm_atime;
    134	compat_ulong_t	shm_dtime;
    135	compat_ulong_t	shm_ctime;
    136	compat_pid_t	shm_cpid;
    137	compat_pid_t	shm_lpid;
    138	compat_ulong_t	shm_nattch;
    139	compat_ushort_t	shm_atime_high;
    140	compat_ushort_t	shm_dtime_high;
    141	compat_ushort_t	shm_ctime_high;
    142	compat_ushort_t	__unused2;
    143};
    144
    145/* MIPS has unusual order of fields in stack_t */
    146typedef struct compat_sigaltstack {
    147	compat_uptr_t			ss_sp;
    148	compat_size_t			ss_size;
    149	int				ss_flags;
    150} compat_stack_t;
    151#define compat_sigaltstack compat_sigaltstack
    152
    153static inline int is_compat_task(void)
    154{
    155	return test_thread_flag(TIF_32BIT_ADDR);
    156}
    157
    158#endif /* _ASM_COMPAT_H */