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

ia32.h (1499B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef _ASM_X86_IA32_H
      3#define _ASM_X86_IA32_H
      4
      5
      6#ifdef CONFIG_IA32_EMULATION
      7
      8#include <linux/compat.h>
      9
     10/*
     11 * 32 bit structures for IA32 support.
     12 */
     13
     14#include <uapi/asm/sigcontext.h>
     15
     16/* signal.h */
     17
     18struct ucontext_ia32 {
     19	unsigned int	  uc_flags;
     20	unsigned int 	  uc_link;
     21	compat_stack_t	  uc_stack;
     22	struct sigcontext_32 uc_mcontext;
     23	compat_sigset_t	  uc_sigmask;	/* mask last for extensibility */
     24};
     25
     26/* This matches struct stat64 in glibc2.2, hence the absolutely
     27 * insane amounts of padding around dev_t's.
     28 */
     29struct stat64 {
     30	unsigned long long	st_dev;
     31	unsigned char		__pad0[4];
     32
     33#define STAT64_HAS_BROKEN_ST_INO	1
     34	unsigned int		__st_ino;
     35
     36	unsigned int		st_mode;
     37	unsigned int		st_nlink;
     38
     39	unsigned int		st_uid;
     40	unsigned int		st_gid;
     41
     42	unsigned long long	st_rdev;
     43	unsigned char		__pad3[4];
     44
     45	long long		st_size;
     46	unsigned int		st_blksize;
     47
     48	long long		st_blocks;/* Number 512-byte blocks allocated */
     49
     50	unsigned 		st_atime;
     51	unsigned 		st_atime_nsec;
     52	unsigned 		st_mtime;
     53	unsigned 		st_mtime_nsec;
     54	unsigned 		st_ctime;
     55	unsigned 		st_ctime_nsec;
     56
     57	unsigned long long	st_ino;
     58} __attribute__((packed));
     59
     60#define IA32_STACK_TOP IA32_PAGE_OFFSET
     61
     62#ifdef __KERNEL__
     63struct linux_binprm;
     64extern int ia32_setup_arg_pages(struct linux_binprm *bprm,
     65				unsigned long stack_top, int exec_stack);
     66struct mm_struct;
     67extern void ia32_pick_mmap_layout(struct mm_struct *mm);
     68
     69#endif
     70
     71#endif /* CONFIG_IA32_EMULATION */
     72
     73#endif /* _ASM_X86_IA32_H */