1 /* 2 * Copyright (C) 2018-2022 Intel Corporation. 3 * SPDX-License-Identifier: BSD-3-Clause 4 */ 5 6 #ifndef TRAMPOLINE_H 7 #define TRAMPOLINE_H 8 9 extern uint64_t read_trampoline_sym(const void *sym); 10 extern void write_trampoline_sym(const void *sym, uint64_t val); 11 extern void write_trampoline_stack_sym(uint16_t pcpu_id); 12 extern uint64_t prepare_trampoline(void); 13 extern uint64_t get_trampoline_start16_paddr(void); 14 15 /* external symbols that are helpful for relocation */ 16 extern uint8_t trampoline_fixup_cs; 17 extern uint8_t trampoline_fixup_ip; 18 extern uint8_t trampoline_fixup_target; 19 extern uint8_t cpu_boot_page_tables_start; 20 extern uint8_t cpu_boot_page_tables_ptr; 21 extern uint8_t trampoline_pdpt_addr; 22 extern uint8_t trampoline_gdt_ptr; 23 extern uint8_t trampoline_start64_fixup; 24 #endif /* TRAMPOLINE_H */ 25