blob: 0ed9d513b74010fd760a5d7c2afbb2fecb0b6597 [file] [log] [blame]
/*
* Copyright (c) 2019 Intel Corporation
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_ARCH_X86_INCLUDE_INTEL64_KERNEL_ARCH_FUNC_H_
#define ZEPHYR_ARCH_X86_INCLUDE_INTEL64_KERNEL_ARCH_FUNC_H_
#include <kernel_structs.h>
#ifndef _ASMLANGUAGE
extern void z_x86_switch(void *switch_to, void **switched_from);
static inline void arch_switch(void *switch_to, void **switched_from)
{
z_x86_switch(switch_to, switched_from);
}
/**
* @brief Initialize scheduler IPI vector.
*
* Called in early BSP boot to set up scheduler IPI handling.
*/
extern void z_x86_ipi_setup(void);
static inline void arch_kernel_init(void)
{
/* nothing */;
}
FUNC_NORETURN void z_x86_cpu_init(struct x86_cpuboot *cpuboot);
void x86_sse_init(struct k_thread *thread);
void z_x86_syscall_entry_stub(void);
bool z_x86_do_kernel_nmi(const z_arch_esf_t *esf);
#endif /* _ASMLANGUAGE */
#endif /* ZEPHYR_ARCH_X86_INCLUDE_INTEL64_KERNEL_ARCH_FUNC_H_ */