xref: /kvm-unit-tests/lib/x86/asm/setup.h (revision e6f65fa4647a2a9fbaa6a256c32c8b0b2172d166)
1 #ifndef _X86_ASM_SETUP_H_
2 #define _X86_ASM_SETUP_H_
3 
4 unsigned long setup_tss(u8 *stacktop);
5 
6 #ifdef TARGET_EFI
7 #include "x86/acpi.h"
8 #include "x86/apic.h"
9 #include "x86/processor.h"
10 #include "x86/smp.h"
11 #include "asm/page.h"
12 #include "efi.h"
13 
14 /*
15  * efi_bootinfo_t: stores EFI-related machine info retrieved by
16  * setup_efi_pre_boot(), and is then used by setup_efi(). setup_efi() cannot
17  * retrieve this info as it is called after ExitBootServices and thus some EFI
18  * resources are not available.
19  */
20 typedef struct {
21 	phys_addr_t free_mem_start;
22 	phys_addr_t free_mem_size;
23 	struct rsdp_descriptor *rsdp;
24 } efi_bootinfo_t;
25 
26 void setup_efi_bootinfo(efi_bootinfo_t *efi_bootinfo);
27 void setup_efi(efi_bootinfo_t *efi_bootinfo);
28 efi_status_t setup_efi_pre_boot(unsigned long *mapkey, efi_bootinfo_t *efi_bootinfo);
29 void setup_5level_page_table(void);
30 #endif /* TARGET_EFI */
31 
32 #endif /* _X86_ASM_SETUP_H_ */
33