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


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Copyright (C) 2012 ARM Ltd.
      4 */
      5#ifndef __ASM_COMPAT_H
      6#define __ASM_COMPAT_H
      7
      8#define compat_mode_t compat_mode_t
      9typedef u16		compat_mode_t;
     10
     11#define __compat_uid_t	__compat_uid_t
     12typedef u16		__compat_uid_t;
     13typedef u16		__compat_gid_t;
     14
     15#define compat_ipc_pid_t compat_ipc_pid_t
     16typedef u16		compat_ipc_pid_t;
     17
     18#define compat_statfs	compat_statfs
     19
     20#include <asm-generic/compat.h>
     21
     22#ifdef CONFIG_COMPAT
     23
     24/*
     25 * Architecture specific compatibility types
     26 */
     27#include <linux/types.h>
     28#include <linux/sched.h>
     29#include <linux/sched/task_stack.h>
     30
     31#ifdef __AARCH64EB__
     32#define COMPAT_UTS_MACHINE	"armv8b\0\0"
     33#else
     34#define COMPAT_UTS_MACHINE	"armv8l\0\0"
     35#endif
     36
     37typedef u16		__compat_uid16_t;
     38typedef u16		__compat_gid16_t;
     39typedef s32		compat_nlink_t;
     40
     41struct compat_stat {
     42#ifdef __AARCH64EB__
     43	short		st_dev;
     44	short		__pad1;
     45#else
     46	compat_dev_t	st_dev;
     47#endif
     48	compat_ino_t	st_ino;
     49	compat_mode_t	st_mode;
     50	compat_ushort_t	st_nlink;
     51	__compat_uid16_t	st_uid;
     52	__compat_gid16_t	st_gid;
     53#ifdef __AARCH64EB__
     54	short		st_rdev;
     55	short		__pad2;
     56#else
     57	compat_dev_t	st_rdev;
     58#endif
     59	compat_off_t	st_size;
     60	compat_off_t	st_blksize;
     61	compat_off_t	st_blocks;
     62	old_time32_t	st_atime;
     63	compat_ulong_t	st_atime_nsec;
     64	old_time32_t	st_mtime;
     65	compat_ulong_t	st_mtime_nsec;
     66	old_time32_t	st_ctime;
     67	compat_ulong_t	st_ctime_nsec;
     68	compat_ulong_t	__unused4[2];
     69};
     70
     71struct compat_statfs {
     72	int		f_type;
     73	int		f_bsize;
     74	int		f_blocks;
     75	int		f_bfree;
     76	int		f_bavail;
     77	int		f_files;
     78	int		f_ffree;
     79	compat_fsid_t	f_fsid;
     80	int		f_namelen;	/* SunOS ignores this field. */
     81	int		f_frsize;
     82	int		f_flags;
     83	int		f_spare[4];
     84};
     85
     86#define COMPAT_RLIM_INFINITY		0xffffffff
     87
     88#define COMPAT_OFF_T_MAX	0x7fffffff
     89
     90#define compat_user_stack_pointer() (user_stack_pointer(task_pt_regs(current)))
     91#define COMPAT_MINSIGSTKSZ	2048
     92
     93static inline int is_compat_task(void)
     94{
     95	return test_thread_flag(TIF_32BIT);
     96}
     97
     98static inline int is_compat_thread(struct thread_info *thread)
     99{
    100	return test_ti_thread_flag(thread, TIF_32BIT);
    101}
    102
    103#else /* !CONFIG_COMPAT */
    104
    105static inline int is_compat_thread(struct thread_info *thread)
    106{
    107	return 0;
    108}
    109
    110#endif /* CONFIG_COMPAT */
    111#endif /* __ASM_COMPAT_H */