x86/interrupts/handlers.rs
1// Licensed under the Apache License, Version 2.0 or the MIT License.
2// SPDX-License-Identifier: Apache-2.0 OR MIT
3// Copyright Tock Contributors 2024.
4
5//! Higher-level Rust interrupt handlers
6
7use crate::registers::irq::EXCEPTIONS;
8
9/// Handler for CPU exceptions generated by the kernel itself.
10#[no_mangle]
11extern "cdecl" fn handle_kernel_exception(num: u32, err: u32, eip: u32) -> ! {
12 panic!(
13 "{} (error code: {:#x}, eip: {:#x})",
14 EXCEPTIONS[num as usize], err, eip
15 )
16}