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