hc
2024-02-19 1c055e55a242a33e574e48be530e06770a210dcd
kernel/arch/x86/boot/compressed/misc.h
....@@ -9,8 +9,10 @@
99 * paravirt and debugging variants are added.)
1010 */
1111 #undef CONFIG_PARAVIRT
12
+#undef CONFIG_PARAVIRT_XXL
1213 #undef CONFIG_PARAVIRT_SPINLOCKS
1314 #undef CONFIG_KASAN
15
+#undef CONFIG_KASAN_GENERIC
1416
1517 /* cpu_feature_enabled() cannot be used this early */
1618 #define USE_EARLY_PGTABLE_L5
....@@ -22,6 +24,10 @@
2224 #include <asm/page.h>
2325 #include <asm/boot.h>
2426 #include <asm/bootparam.h>
27
+#include <asm/desc_defs.h>
28
+
29
+#define BOOT_CTYPE_H
30
+#include <linux/acpi.h>
2531
2632 #define BOOT_BOOT_H
2733 #include "../ctype.h"
....@@ -31,6 +37,9 @@
3137 #else
3238 #define memptr unsigned
3339 #endif
40
+
41
+/* boot/compressed/vmlinux start and end markers */
42
+extern char _head[], _end[];
3443
3544 /* misc.c */
3645 extern memptr free_mem_ptr;
....@@ -55,18 +64,20 @@
5564
5665 static inline void debug_putstr(const char *s)
5766 { }
58
-static inline void debug_puthex(const char *s)
67
+static inline void debug_puthex(unsigned long value)
5968 { }
6069 #define debug_putaddr(x) /* */
6170
6271 #endif
6372
64
-#if CONFIG_EARLY_PRINTK || CONFIG_RANDOMIZE_BASE
6573 /* cmdline.c */
6674 int cmdline_find_option(const char *option, char *buffer, int bufsize);
6775 int cmdline_find_option_bool(const char *option);
68
-#endif
6976
77
+struct mem_vector {
78
+ u64 start;
79
+ u64 size;
80
+};
7081
7182 #if CONFIG_RANDOMIZE_BASE
7283 /* kaslr.c */
....@@ -75,8 +86,6 @@
7586 unsigned long *output,
7687 unsigned long output_size,
7788 unsigned long *virt_addr);
78
-/* cpuflags.c */
79
-bool has_cpuflag(int flag);
8089 #else
8190 static inline void choose_random_location(unsigned long input,
8291 unsigned long input_size,
....@@ -87,18 +96,14 @@
8796 }
8897 #endif
8998
99
+/* cpuflags.c */
100
+bool has_cpuflag(int flag);
101
+
90102 #ifdef CONFIG_X86_64
91
-void initialize_identity_maps(void);
92
-void add_identity_map(unsigned long start, unsigned long size);
93
-void finalize_identity_maps(void);
103
+extern int set_page_decrypted(unsigned long address);
104
+extern int set_page_encrypted(unsigned long address);
105
+extern int set_page_non_present(unsigned long address);
94106 extern unsigned char _pgtable[];
95
-#else
96
-static inline void initialize_identity_maps(void)
97
-{ }
98
-static inline void add_identity_map(unsigned long start, unsigned long size)
99
-{ }
100
-static inline void finalize_identity_maps(void)
101
-{ }
102107 #endif
103108
104109 #ifdef CONFIG_EARLY_PRINTK
....@@ -113,4 +118,48 @@
113118
114119 void set_sev_encryption_mask(void);
115120
121
+#ifdef CONFIG_AMD_MEM_ENCRYPT
122
+void sev_es_shutdown_ghcb(void);
123
+extern bool sev_es_check_ghcb_fault(unsigned long address);
124
+#else
125
+static inline void sev_es_shutdown_ghcb(void) { }
126
+static inline bool sev_es_check_ghcb_fault(unsigned long address)
127
+{
128
+ return false;
129
+}
116130 #endif
131
+
132
+/* acpi.c */
133
+#ifdef CONFIG_ACPI
134
+acpi_physical_address get_rsdp_addr(void);
135
+#else
136
+static inline acpi_physical_address get_rsdp_addr(void) { return 0; }
137
+#endif
138
+
139
+#if defined(CONFIG_RANDOMIZE_BASE) && defined(CONFIG_MEMORY_HOTREMOVE) && defined(CONFIG_ACPI)
140
+extern struct mem_vector immovable_mem[MAX_NUMNODES*2];
141
+int count_immovable_mem_regions(void);
142
+#else
143
+static inline int count_immovable_mem_regions(void) { return 0; }
144
+#endif
145
+
146
+/* ident_map_64.c */
147
+#ifdef CONFIG_X86_5LEVEL
148
+extern unsigned int __pgtable_l5_enabled, pgdir_shift, ptrs_per_p4d;
149
+#endif
150
+
151
+/* Used by PAGE_KERN* macros: */
152
+extern pteval_t __default_kernel_pte_mask;
153
+
154
+/* idt_64.c */
155
+extern gate_desc boot_idt[BOOT_IDT_ENTRIES];
156
+extern struct desc_ptr boot_idt_desc;
157
+
158
+/* IDT Entry Points */
159
+void boot_page_fault(void);
160
+void boot_stage1_vc(void);
161
+void boot_stage2_vc(void);
162
+
163
+unsigned long sev_verify_cbit(unsigned long cr3);
164
+
165
+#endif /* BOOT_COMPRESSED_MISC_H */