We use a fixed value of 32 as the way interrupts/exceptions are setup in x86_64's locore.S do not lend themselves to Kconfig configuration of the vector to use. HW-based kernel oops is now permanently on, there's no reason to make it optional that I can see. Default vectors for IPI and irq offload adjusted to not collide. Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
26 lines
512 B
C
26 lines
512 B
C
/*
|
|
* Copyright (c) 2019 Intel Corporation
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#include <kernel.h>
|
|
#include <ksched.h>
|
|
#include <kernel_structs.h>
|
|
#include <kernel_internal.h>
|
|
#include <logging/log.h>
|
|
LOG_MODULE_DECLARE(os);
|
|
|
|
void z_x86_exception(z_arch_esf_t *esf)
|
|
{
|
|
switch (esf->vector) {
|
|
case Z_X86_OOPS_VECTOR:
|
|
z_x86_do_kernel_oops(esf);
|
|
break;
|
|
case IV_PAGE_FAULT:
|
|
z_x86_page_fault_handler(esf);
|
|
break;
|
|
default:
|
|
z_x86_unhandled_cpu_exception(esf->vector, esf);
|
|
CODE_UNREACHABLE;
|
|
}
|
|
}
|