]> Git Repo - linux.git/blob - arch/x86/include/uapi/asm/setup_data.h
drm/xe/tests: Convert xe_mocs live tests
[linux.git] / arch / x86 / include / uapi / asm / setup_data.h
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 #ifndef _UAPI_ASM_X86_SETUP_DATA_H
3 #define _UAPI_ASM_X86_SETUP_DATA_H
4
5 /* setup_data/setup_indirect types */
6 #define SETUP_NONE                      0
7 #define SETUP_E820_EXT                  1
8 #define SETUP_DTB                       2
9 #define SETUP_PCI                       3
10 #define SETUP_EFI                       4
11 #define SETUP_APPLE_PROPERTIES          5
12 #define SETUP_JAILHOUSE                 6
13 #define SETUP_CC_BLOB                   7
14 #define SETUP_IMA                       8
15 #define SETUP_RNG_SEED                  9
16 #define SETUP_ENUM_MAX                  SETUP_RNG_SEED
17
18 #define SETUP_INDIRECT                  (1<<31)
19 #define SETUP_TYPE_MAX                  (SETUP_ENUM_MAX | SETUP_INDIRECT)
20
21 #ifndef __ASSEMBLY__
22
23 #include <linux/types.h>
24
25 /* extensible setup data list node */
26 struct setup_data {
27         __u64 next;
28         __u32 type;
29         __u32 len;
30         __u8 data[];
31 };
32
33 /* extensible setup indirect data node */
34 struct setup_indirect {
35         __u32 type;
36         __u32 reserved;  /* Reserved, must be set to zero. */
37         __u64 len;
38         __u64 addr;
39 };
40
41 /*
42  * The E820 memory region entry of the boot protocol ABI:
43  */
44 struct boot_e820_entry {
45         __u64 addr;
46         __u64 size;
47         __u32 type;
48 } __attribute__((packed));
49
50 /*
51  * The boot loader is passing platform information via this Jailhouse-specific
52  * setup data structure.
53  */
54 struct jailhouse_setup_data {
55         struct {
56                 __u16   version;
57                 __u16   compatible_version;
58         } __attribute__((packed)) hdr;
59         struct {
60                 __u16   pm_timer_address;
61                 __u16   num_cpus;
62                 __u64   pci_mmconfig_base;
63                 __u32   tsc_khz;
64                 __u32   apic_khz;
65                 __u8    standard_ioapic;
66                 __u8    cpu_ids[255];
67         } __attribute__((packed)) v1;
68         struct {
69                 __u32   flags;
70         } __attribute__((packed)) v2;
71 } __attribute__((packed));
72
73 /*
74  * IMA buffer setup data information from the previous kernel during kexec
75  */
76 struct ima_setup_data {
77         __u64 addr;
78         __u64 size;
79 } __attribute__((packed));
80
81 #endif /* __ASSEMBLY__ */
82
83 #endif /* _UAPI_ASM_X86_SETUP_DATA_H */
This page took 0.052482 seconds and 4 git commands to generate.