KVM: SVM: Add support for CR0 write traps for an SEV-ES guest
[linux-2.6-microblaze.git] / arch / x86 / include / asm / ia32.h
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
18 struct 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  */
29 struct 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__
63 struct linux_binprm;
64 extern int ia32_setup_arg_pages(struct linux_binprm *bprm,
65                                 unsigned long stack_top, int exec_stack);
66 struct mm_struct;
67 extern void ia32_pick_mmap_layout(struct mm_struct *mm);
68
69 #endif
70
71 #endif /* !CONFIG_IA32_SUPPORT */
72
73 #endif /* _ASM_X86_IA32_H */