1 /*
2  * Copyright (c) 2019 Intel Corporation
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 
6 #ifndef ZEPHYR_ARCH_X86_INCLUDE_INTEL64_KERNEL_ARCH_FUNC_H_
7 #define ZEPHYR_ARCH_X86_INCLUDE_INTEL64_KERNEL_ARCH_FUNC_H_
8 
9 #include <kernel_structs.h>
10 
11 #ifndef _ASMLANGUAGE
12 
13 extern void z_x86_switch(void *switch_to, void **switched_from);
14 
arch_switch(void * switch_to,void ** switched_from)15 static inline void arch_switch(void *switch_to, void **switched_from)
16 {
17 	z_x86_switch(switch_to, switched_from);
18 }
19 
20 /**
21  * @brief Initialize scheduler IPI vector.
22  *
23  * Called in early BSP boot to set up scheduler IPI handling.
24  */
25 
26 extern void z_x86_ipi_setup(void);
27 
arch_kernel_init(void)28 static inline void arch_kernel_init(void)
29 {
30 	/* nothing */;
31 }
32 
33 FUNC_NORETURN void z_x86_cpu_init(struct x86_cpuboot *cpuboot);
34 
35 void x86_sse_init(struct k_thread *thread);
36 
37 void z_x86_syscall_entry_stub(void);
38 
39 bool z_x86_do_kernel_nmi(const z_arch_esf_t *esf);
40 
41 #endif /* _ASMLANGUAGE */
42 
43 #endif /* ZEPHYR_ARCH_X86_INCLUDE_INTEL64_KERNEL_ARCH_FUNC_H_ */
44