[INFO] cloning repository https://github.com/techjiang/lian-kernel
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/techjiang/lian-kernel" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftechjiang%2Flian-kernel", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftechjiang%2Flian-kernel'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 92c785ed34fa541b39a25ddd13617863096910ce
[INFO] checking techjiang/lian-kernel against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6 for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftechjiang%2Flian-kernel" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-0-tc2/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/techjiang/lian-kernel
[INFO] finished tweaking git repo https://github.com/techjiang/lian-kernel
[INFO] tweaked toml for git repo https://github.com/techjiang/lian-kernel written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/techjiang/lian-kernel on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/techjiang/lian-kernel already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 12da3807a6054312a172f604b9778b8a796ba86f278d3c04a7edc2e5a289b33d
[INFO] running `Command { std: "docker" "start" "12da3807a6054312a172f604b9778b8a796ba86f278d3c04a7edc2e5a289b33d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "12da3807a6054312a172f604b9778b8a796ba86f278d3c04a7edc2e5a289b33d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "12da3807a6054312a172f604b9778b8a796ba86f278d3c04a7edc2e5a289b33d" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "12da3807a6054312a172f604b9778b8a796ba86f278d3c04a7edc2e5a289b33d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "12da3807a6054312a172f604b9778b8a796ba86f278d3c04a7edc2e5a289b33d" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking lian-kernel v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/arch/x86_64/interrupts.rs:8:32
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::arch::x86_64::idt::{self, InterruptFrame};
[INFO] [stdout]   |                                ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `isr_addr`
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:250:14
[INFO] [stdout]     |
[INFO] [stdout] 250 | macro_rules! isr_addr {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `inb`
[INFO] [stdout]  --> src/arch/x86_64/timer.rs:5:39
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::arch::x86_64::port::{outb, inb, io_wait};
[INFO] [stdout]   |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `outb`
[INFO] [stdout]  --> src/arch/x86_64/keyboard.rs:5:38
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::arch::x86_64::port::{inb, outb};
[INFO] [stdout]   |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::ptr::NonNull`
[INFO] [stdout]  --> src/vga.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use core::ptr::NonNull;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::boxed::Box`
[INFO] [stdout]  --> src/process/task.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use alloc::boxed::Box;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::vec::Vec`
[INFO] [stdout]  --> src/process/task.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use alloc::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::arch::x86_64::context`
[INFO] [stdout]  --> src/process/scheduler.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::arch::x86_64::context;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::boxed::Box`
[INFO] [stdout]  --> src/fs.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use alloc::boxed::Box;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::boxed::Box`
[INFO] [stdout]  --> src/ipc.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use alloc::boxed::Box;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/arch/x86_64/interrupts.rs:8:32
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::arch::x86_64::idt::{self, InterruptFrame};
[INFO] [stdout]   |                                ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `isr_addr`
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:250:14
[INFO] [stdout]     |
[INFO] [stdout] 250 | macro_rules! isr_addr {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `inb`
[INFO] [stdout]  --> src/arch/x86_64/timer.rs:5:39
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::arch::x86_64::port::{outb, inb, io_wait};
[INFO] [stdout]   |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `outb`
[INFO] [stdout]  --> src/arch/x86_64/keyboard.rs:5:38
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::arch::x86_64::port::{inb, outb};
[INFO] [stdout]   |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::ptr::NonNull`
[INFO] [stdout]  --> src/vga.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use core::ptr::NonNull;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::boxed::Box`
[INFO] [stdout]  --> src/process/task.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use alloc::boxed::Box;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::vec::Vec`
[INFO] [stdout]  --> src/process/task.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use alloc::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::arch::x86_64::context`
[INFO] [stdout]  --> src/process/scheduler.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::arch::x86_64::context;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::boxed::Box`
[INFO] [stdout]  --> src/fs.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use alloc::boxed::Box;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::boxed::Box`
[INFO] [stdout]  --> src/ipc.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use alloc::boxed::Box;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/arch/x86_64/interrupts.rs:8:32
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::arch::x86_64::idt::{self, InterruptFrame};
[INFO] [stdout]   |                                ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `isr_addr`
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:250:14
[INFO] [stdout]     |
[INFO] [stdout] 250 | macro_rules! isr_addr {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `inb`
[INFO] [stdout]  --> src/arch/x86_64/timer.rs:5:39
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::arch::x86_64::port::{outb, inb, io_wait};
[INFO] [stdout]   |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `outb`
[INFO] [stdout]  --> src/arch/x86_64/keyboard.rs:5:38
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::arch::x86_64::port::{inb, outb};
[INFO] [stdout]   |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::ptr::NonNull`
[INFO] [stdout]  --> src/vga.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use core::ptr::NonNull;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::boxed::Box`
[INFO] [stdout]  --> src/process/task.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use alloc::boxed::Box;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::vec::Vec`
[INFO] [stdout]  --> src/process/task.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use alloc::vec::Vec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::arch::x86_64::context`
[INFO] [stdout]  --> src/process/scheduler.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::arch::x86_64::context;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::boxed::Box`
[INFO] [stdout]  --> src/fs.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use alloc::boxed::Box;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `alloc::boxed::Box`
[INFO] [stdout]  --> src/ipc.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use alloc::boxed::Box;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0152]: found duplicate lang item `panic_impl`
[INFO] [stdout]   --> src/panic.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / pub fn panic(info: &PanicInfo) -> ! {
[INFO] [stdout]  8 | |     let msg = info.message();
[INFO] [stdout]  9 | |     let loc = info.location();
[INFO] [stdout] ...  |
[INFO] [stdout] 30 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the lang item is first defined in crate `std` (which `test` depends on)
[INFO] [stdout]    = note: first definition in `std` loaded from /opt/rustwide/rustup-home/toolchains/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-6ee2a0f0126c8a50.rmeta
[INFO] [stdout]    = note: second definition in the local crate (`lian`)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0152`.
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::read_volatile` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/volatile.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |         ptr::read_volatile(self.ptr.add(index))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/volatile.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 | /     pub unsafe fn read_at(&self, index: usize) -> T
[INFO] [stdout] 77 | |     where
[INFO] [stdout] 78 | |         T: Copy,
[INFO] [stdout]    | |________________^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/volatile.rs:80:28
[INFO] [stdout]    |
[INFO] [stdout] 80 |         ptr::read_volatile(self.ptr.add(index))
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::write_volatile` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/volatile.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         ptr::write_volatile(self.ptr.add(index), value);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/volatile.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 | /     pub unsafe fn write_at(&self, index: usize, value: T)
[INFO] [stdout] 86 | |     where
[INFO] [stdout] 87 | |         T: Copy,
[INFO] [stdout]    | |________________^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/volatile.rs:89:29
[INFO] [stdout]    |
[INFO] [stdout] 89 |         ptr::write_volatile(self.ptr.add(index), value);
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         (*node).next = ptr::null_mut();
[INFO] [stdout]    |         ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/linked_list.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub unsafe fn push_back(&mut self, node: *mut Link) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |         (*node).prev = self.tail;
[INFO] [stdout]    |         ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |             (*self.tail).next = node;
[INFO] [stdout]    |             ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |         (*node).prev = ptr::null_mut();
[INFO] [stdout]    |         ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/linked_list.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub unsafe fn push_front(&mut self, node: *mut Link) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         (*node).next = self.head;
[INFO] [stdout]    |         ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |             (*self.head).prev = node;
[INFO] [stdout]    |             ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:81:21
[INFO] [stdout]    |
[INFO] [stdout] 81 |         self.head = (*node).next;
[INFO] [stdout]    |                     ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/linked_list.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub unsafe fn pop_front(&mut self) -> *mut Link {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |             (*self.head).prev = ptr::null_mut();
[INFO] [stdout]    |             ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:93:20
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let prev = (*node).prev;
[INFO] [stdout]    |                    ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/linked_list.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub unsafe fn remove(&mut self, node: *mut Link) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:94:20
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let next = (*node).next;
[INFO] [stdout]    |                    ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |             (*prev).next = next;
[INFO] [stdout]    |             ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/util/linked_list.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |             (*next).prev = prev;
[INFO] [stdout]     |             ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/util/linked_list.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |         (*node).prev = ptr::null_mut();
[INFO] [stdout]     |         ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/util/linked_list.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |         (*node).next = ptr::null_mut();
[INFO] [stdout]     |         ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `lian-kernel` (lib test) due to 1 previous error; 10 warnings emitted
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sync/spinlock.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 | /     core::arch::asm!(
[INFO] [stdout] 104 | |         "pushfq",
[INFO] [stdout] 105 | |         "pop {0}",
[INFO] [stdout] 106 | |         "cli",
[INFO] [stdout] 107 | |         out(reg) flags,
[INFO] [stdout] 108 | |         options(nostack, preserves_flags),
[INFO] [stdout] 109 | |     );
[INFO] [stdout]     | |_____^ use of inline assembly
[INFO] [stdout]     |
[INFO] [stdout]     = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sync/spinlock.rs:101:1
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub unsafe fn irq_save() -> bool {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sync/spinlock.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 120 |         core::arch::asm!("sti", options(nostack, preserves_flags));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]     |
[INFO] [stdout]     = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sync/spinlock.rs:118:1
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub unsafe fn irq_restore(was_enabled: bool) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/port.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | /     asm!(
[INFO] [stdout] 11 | |         "out dx, al",
[INFO] [stdout] 12 | |         in("dx") port,
[INFO] [stdout] 13 | |         in("al") val,
[INFO] [stdout] 14 | |         options(nostack, preserves_flags),
[INFO] [stdout] 15 | |     );
[INFO] [stdout]    | |_____^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/port.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub unsafe fn outb(port: u16, val: u8) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/port.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | /     asm!(
[INFO] [stdout] 23 | |         "in al, dx",
[INFO] [stdout] 24 | |         out("al") ret,
[INFO] [stdout] 25 | |         in("dx") port,
[INFO] [stdout] 26 | |         options(nostack, preserves_flags),
[INFO] [stdout] 27 | |     );
[INFO] [stdout]    | |_____^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/port.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub unsafe fn inb(port: u16) -> u8 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/port.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | /     asm!(
[INFO] [stdout] 35 | |         "out dx, ax",
[INFO] [stdout] 36 | |         in("dx") port,
[INFO] [stdout] 37 | |         in("ax") val,
[INFO] [stdout] 38 | |         options(nostack, preserves_flags),
[INFO] [stdout] 39 | |     );
[INFO] [stdout]    | |_____^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/port.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub unsafe fn outw(port: u16, val: u16) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/port.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | /     asm!(
[INFO] [stdout] 47 | |         "in ax, dx",
[INFO] [stdout] 48 | |         out("ax") ret,
[INFO] [stdout] 49 | |         in("dx") port,
[INFO] [stdout] 50 | |         options(nostack, preserves_flags),
[INFO] [stdout] 51 | |     );
[INFO] [stdout]    | |_____^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/port.rs:44:1
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub unsafe fn inw(port: u16) -> u16 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/port.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | /     asm!(
[INFO] [stdout] 59 | |         "out dx, eax",
[INFO] [stdout] 60 | |         in("dx") port,
[INFO] [stdout] 61 | |         in("eax") val,
[INFO] [stdout] 62 | |         options(nostack, preserves_flags),
[INFO] [stdout] 63 | |     );
[INFO] [stdout]    | |_____^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/port.rs:57:1
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub unsafe fn outl(port: u16, val: u32) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/port.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 | /     asm!(
[INFO] [stdout] 71 | |         "in eax, dx",
[INFO] [stdout] 72 | |         out("eax") ret,
[INFO] [stdout] 73 | |         in("dx") port,
[INFO] [stdout] 74 | |         options(nostack, preserves_flags),
[INFO] [stdout] 75 | |     );
[INFO] [stdout]    | |_____^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/port.rs:68:1
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub unsafe fn inl(port: u16) -> u32 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/idt.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     asm!("lidt [{}]", in(reg) &idtr, options(nostack, preserves_flags));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/idt.rs:67:1
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub unsafe fn load() {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/arch/x86_64/idt.rs:68:16
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let idtr = unsafe {
[INFO] [stdout]    |                ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:266:5
[INFO] [stdout]     |
[INFO] [stdout] 266 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     outb(PIC1_CMD, ICW1_ICW4);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:30:1
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub unsafe fn init() {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     outb(PIC2_CMD, ICW1_ICW4);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     outb(PIC1_DATA, PIC1_OFFSET);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     outb(PIC2_DATA, PIC2_OFFSET);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     outb(PIC1_DATA, 0x04); // bit 2 = slave on IRQ2
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     outb(PIC2_DATA, 0x02); // slave cascade identity = 2
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     outb(PIC1_DATA, ICW4_8086);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     outb(PIC2_DATA, ICW4_8086);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     outb(PIC1_DATA, 0xFF);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     outb(PIC2_DATA, 0xFF);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         outb(PIC2_CMD, EOI);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:64:1
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub unsafe fn end_of_interrupt(irq: u8) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     outb(PIC1_CMD, EOI);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::inb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:78:17
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let value = inb(port) | (1 << bit);
[INFO] [stdout]    |                 ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:72:1
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub unsafe fn mask(irq: u8) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 79 |     outb(port, value);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::inb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:89:17
[INFO] [stdout]    |
[INFO] [stdout] 89 |     let value = inb(port) & !(1 << bit);
[INFO] [stdout]    |                 ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:83:1
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub unsafe fn unmask(irq: u8) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     outb(port, value);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/context.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 | /         core::arch::asm!(
[INFO] [stdout] 81 | |             "mov cr3, {}",
[INFO] [stdout] 82 | |             in(reg) new_ctx.cr3,
[INFO] [stdout] 83 | |             options(nostack, preserves_flags),
[INFO] [stdout] 84 | |         );
[INFO] [stdout]    | |_________^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/context.rs:77:1
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub unsafe fn switch(old_ctx: &mut CpuContext, new_ctx: &CpuContext) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::context::context_switch` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/context.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     context_switch(&mut old_ctx.rsp as *mut u64, new_ctx.rsp);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/arch/x86_64/context.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 119 |     *(sp as *mut u64) = entry as usize as u64;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/arch/x86_64/context.rs:97:1
[INFO] [stdout]     |
[INFO] [stdout]  97 | pub unsafe fn init_stack(stack_top: *mut u8, entry: extern "C" fn() -> !) -> u64 {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/arch/x86_64/context.rs:122:14
[INFO] [stdout]     |
[INFO] [stdout] 122 |     sp -= 8; *(sp as *mut u64) = 0; // rbp
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/arch/x86_64/context.rs:123:14
[INFO] [stdout]     |
[INFO] [stdout] 123 |     sp -= 8; *(sp as *mut u64) = 0; // rbx
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/arch/x86_64/context.rs:124:14
[INFO] [stdout]     |
[INFO] [stdout] 124 |     sp -= 8; *(sp as *mut u64) = 0; // r12
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/arch/x86_64/context.rs:125:14
[INFO] [stdout]     |
[INFO] [stdout] 125 |     sp -= 8; *(sp as *mut u64) = 0; // r13
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/arch/x86_64/context.rs:126:14
[INFO] [stdout]     |
[INFO] [stdout] 126 |     sp -= 8; *(sp as *mut u64) = 0; // r14
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/arch/x86_64/context.rs:127:14
[INFO] [stdout]     |
[INFO] [stdout] 127 |     sp -= 8; *(sp as *mut u64) = 0; // r15
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     core::arch::asm!("mov {0}, cr3", out(reg) val, options(nostack, preserves_flags));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub unsafe fn read_cr3() -> u64 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     core::arch::asm!("mov cr3, {0}", in(reg) val, options(nostack, preserves_flags));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub unsafe fn write_cr3(val: u64) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     core::arch::asm!("mov {0}, cr2", out(reg) val, options(nostack, preserves_flags));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub unsafe fn read_cr2() -> u64 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     core::arch::asm!("sti", options(nostack, preserves_flags));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub unsafe fn enable_interrupts() {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     core::arch::asm!("cli", options(nostack, preserves_flags));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub unsafe fn disable_interrupts() {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     core::arch::asm!("hlt", options(nostack, preserves_flags));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:48:1
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub unsafe fn halt() {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `sync::spinlock::irq_save` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hal.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |         crate::sync::spinlock::irq_save()
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/hal.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     unsafe fn irq_save() -> bool {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `sync::spinlock::irq_restore` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hal.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         crate::sync::spinlock::irq_restore(was_enabled)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/hal.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     unsafe fn irq_restore(was_enabled: bool) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::enable_interrupts` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hal.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |         x86_64::enable_interrupts();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/hal.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     unsafe fn enable_interrupts() {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::disable_interrupts` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hal.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |         x86_64::disable_interrupts();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/hal.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     unsafe fn disable_interrupts() {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::halt` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hal.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |         x86_64::halt();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/hal.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     unsafe fn halt() {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::write_cr3` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hal.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |         x86_64::write_cr3(val);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/hal.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 |     unsafe fn write_cr3(val: u64) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::page::invlpg` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hal.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         crate::memory::page::invlpg(vaddr);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/hal.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     unsafe fn invalidate_tlb(vaddr: usize) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/serial.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | /     core::arch::asm!(
[INFO] [stdout] 23 | |         "out dx, al",
[INFO] [stdout] 24 | |         in("dx") port,
[INFO] [stdout] 25 | |         in("al") val,
[INFO] [stdout] 26 | |         options(nostack, preserves_flags),
[INFO] [stdout] 27 | |     );
[INFO] [stdout]    | |_____^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/serial.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | unsafe fn outb(port: u16, val: u8) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/serial.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | /     core::arch::asm!(
[INFO] [stdout] 34 | |         "in al, dx",
[INFO] [stdout] 35 | |         out("al") ret,
[INFO] [stdout] 36 | |         in("dx") port,
[INFO] [stdout] 37 | |         options(nostack, preserves_flags),
[INFO] [stdout] 38 | |     );
[INFO] [stdout]    | |_____^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/serial.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | unsafe fn inb(port: u16) -> u8 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::slice::from_raw_parts_mut` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/memory/frame.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |         core::slice::from_raw_parts_mut(storage.words.as_mut_ptr(), words)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/memory/frame.rs:48:1
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub unsafe fn init(regions: &[MemoryRegion]) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `util::bitmap::Bitmap::new` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/memory/frame.rs:84:22
[INFO] [stdout]    |
[INFO] [stdout] 84 |     let mut bitmap = Bitmap::new(bitmap_ref, actual_total);
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::page::alloc_table` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/page.rs:148:25
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let new_table = alloc_table()?;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/memory/page.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub unsafe fn map_page(vaddr: VirtAddr, paddr: PhysAddr, flags: u64) -> Result<(), &'static str> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::page::alloc_table` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/page.rs:162:25
[INFO] [stdout]     |
[INFO] [stdout] 162 |         let new_table = alloc_table()?;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::page::alloc_table` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/page.rs:176:25
[INFO] [stdout]     |
[INFO] [stdout] 176 |         let new_table = alloc_table()?;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::page::invlpg` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/page.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |     invlpg(vaddr);
[INFO] [stdout]     |     ^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::write_bytes` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/page.rs:196:13
[INFO] [stdout]     |
[INFO] [stdout] 196 |             ptr::write_bytes(table as *mut u8, 0, PAGE_SIZE);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/memory/page.rs:192:1
[INFO] [stdout]     |
[INFO] [stdout] 192 | unsafe fn alloc_table() -> Result<*mut PageTable, &'static str> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/page.rs:206:5
[INFO] [stdout]     |
[INFO] [stdout] 206 |     core::arch::asm!("invlpg [{}]", in(reg) vaddr, options(nostack, preserves_flags));
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]     |
[INFO] [stdout]     = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/memory/page.rs:205:1
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub unsafe fn invlpg(vaddr: VirtAddr) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/memory/page.rs:245:5
[INFO] [stdout]     |
[INFO] [stdout] 245 |     unsafe { core::ptr::addr_of!(KERNEL_PML4) as PhysAddr }
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::page::map_page` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/memory/heap.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | /         crate::memory::page::map_page(
[INFO] [stdout] 65 | |             heap.heap_end,
[INFO] [stdout] 66 | |             frame,
[INFO] [stdout] 67 | |             crate::memory::page::PRESENT | crate::memory::page::WRITABLE,
[INFO] [stdout] 68 | |         )?;
[INFO] [stdout]    | |_________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/memory/heap.rs:55:1
[INFO] [stdout]    |
[INFO] [stdout] 55 | unsafe fn extend_heap(size: usize) -> Result<*mut u8, &'static str> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:114:16
[INFO] [stdout]     |
[INFO] [stdout] 114 |             if (*cur).size >= alloc_size + BlockHeader::SIZE {
[INFO] [stdout]     |                ^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/memory/heap.rs:97:5
[INFO] [stdout]     |
[INFO] [stdout]  97 |     unsafe fn alloc(&self, layout: Layout) -> *mut u8 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:116:33
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 let remaining = (*cur).size - alloc_size - BlockHeader::SIZE;
[INFO] [stdout]     |                                 ^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:119:37
[INFO] [stdout]     |
[INFO] [stdout] 119 |                     let new_block = (cur as *mut u8).add(alloc_size + BlockHeader::SIZE) as *mut BlockHeader;
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:120:21
[INFO] [stdout]     |
[INFO] [stdout] 120 |                     (*new_block).size = remaining;
[INFO] [stdout]     |                     ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:121:21
[INFO] [stdout]     |
[INFO] [stdout] 121 |                     (*new_block).next = (*cur).next;
[INFO] [stdout]     |                     ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:121:41
[INFO] [stdout]     |
[INFO] [stdout] 121 |                     (*new_block).next = (*cur).next;
[INFO] [stdout]     |                                         ^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:123:21
[INFO] [stdout]     |
[INFO] [stdout] 123 |                     (*cur).size = alloc_size;
[INFO] [stdout]     |                     ^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:124:21
[INFO] [stdout]     |
[INFO] [stdout] 124 |                     (*cur).next = ptr::null_mut(); // mark as allocated
[INFO] [stdout]     |                     ^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:130:25
[INFO] [stdout]     |
[INFO] [stdout] 130 |                         (*prev).next = new_block;
[INFO] [stdout]     |                         ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:135:42
[INFO] [stdout]     |
[INFO] [stdout] 135 |                         heap.free_head = (*cur).next;
[INFO] [stdout]     |                                          ^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:137:25
[INFO] [stdout]     |
[INFO] [stdout] 137 |                         (*prev).next = (*cur).next;
[INFO] [stdout]     |                         ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:137:40
[INFO] [stdout]     |
[INFO] [stdout] 137 |                         (*prev).next = (*cur).next;
[INFO] [stdout]     |                                        ^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:139:21
[INFO] [stdout]     |
[INFO] [stdout] 139 |                     (*cur).next = ptr::null_mut();
[INFO] [stdout]     |                     ^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:143:24
[INFO] [stdout]     |
[INFO] [stdout] 143 |                 return (cur as *mut u8).add(BlockHeader::SIZE);
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:146:19
[INFO] [stdout]     |
[INFO] [stdout] 146 |             cur = (*cur).next;
[INFO] [stdout]     |                   ^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::heap::extend_heap` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:151:15
[INFO] [stdout]     |
[INFO] [stdout] 151 |         match extend_heap(alloc_size + BlockHeader::SIZE) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:154:17
[INFO] [stdout]     |
[INFO] [stdout] 154 |                 (*header).size = alloc_size;
[INFO] [stdout]     |                 ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 (*header).next = ptr::null_mut();
[INFO] [stdout]     |                 ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:157:17
[INFO] [stdout]     |
[INFO] [stdout] 157 |                 ptr.add(BlockHeader::SIZE)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::mut_ptr::<impl *mut T>::sub` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:167:21
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let block = ptr.sub(BlockHeader::SIZE) as *mut BlockHeader;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/memory/heap.rs:166:5
[INFO] [stdout]     |
[INFO] [stdout] 166 |     unsafe fn dealloc(&self, ptr: *mut u8, _layout: Layout) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 169 |         (*block).next = heap.free_head;
[INFO] [stdout]     |         ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::heap::extend_heap` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:182:11
[INFO] [stdout]     |
[INFO] [stdout] 182 |     match extend_heap(total) {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/memory/heap.rs:179:1
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub unsafe fn init() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:186:13
[INFO] [stdout]     |
[INFO] [stdout] 186 |             (*header).size = total - BlockHeader::SIZE;
[INFO] [stdout]     |             ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:187:13
[INFO] [stdout]     |
[INFO] [stdout] 187 |             (*header).next = ptr::null_mut();
[INFO] [stdout]     |             ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:268:24
[INFO] [stdout]     |
[INFO] [stdout] 268 |             0 => isr_0 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 268 |             0 => isr_0 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:269:24
[INFO] [stdout]     |
[INFO] [stdout] 269 |             1 => isr_1 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 269 |             1 => isr_1 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:270:24
[INFO] [stdout]     |
[INFO] [stdout] 270 |             2 => isr_2 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 270 |             2 => isr_2 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:271:24
[INFO] [stdout]     |
[INFO] [stdout] 271 |             3 => isr_3 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 271 |             3 => isr_3 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:272:24
[INFO] [stdout]     |
[INFO] [stdout] 272 |             4 => isr_4 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 272 |             4 => isr_4 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:273:24
[INFO] [stdout]     |
[INFO] [stdout] 273 |             5 => isr_5 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 273 |             5 => isr_5 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:274:24
[INFO] [stdout]     |
[INFO] [stdout] 274 |             6 => isr_6 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 274 |             6 => isr_6 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:275:24
[INFO] [stdout]     |
[INFO] [stdout] 275 |             7 => isr_7 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 275 |             7 => isr_7 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:276:24
[INFO] [stdout]     |
[INFO] [stdout] 276 |             8 => isr_8 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 276 |             8 => isr_8 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:277:24
[INFO] [stdout]     |
[INFO] [stdout] 277 |             9 => isr_9 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 277 |             9 => isr_9 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:278:26
[INFO] [stdout]     |
[INFO] [stdout] 278 |             10 => isr_10 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 278 |             10 => isr_10 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:279:26
[INFO] [stdout]     |
[INFO] [stdout] 279 |             11 => isr_11 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 279 |             11 => isr_11 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:280:26
[INFO] [stdout]     |
[INFO] [stdout] 280 |             12 => isr_12 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 280 |             12 => isr_12 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:281:26
[INFO] [stdout]     |
[INFO] [stdout] 281 |             13 => isr_13 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 281 |             13 => isr_13 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:282:26
[INFO] [stdout]     |
[INFO] [stdout] 282 |             14 => isr_14 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 282 |             14 => isr_14 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:283:26
[INFO] [stdout]     |
[INFO] [stdout] 283 |             15 => isr_15 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 283 |             15 => isr_15 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:284:26
[INFO] [stdout]     |
[INFO] [stdout] 284 |             16 => isr_16 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 284 |             16 => isr_16 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:285:26
[INFO] [stdout]     |
[INFO] [stdout] 285 |             17 => isr_17 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 285 |             17 => isr_17 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:286:26
[INFO] [stdout]     |
[INFO] [stdout] 286 |             18 => isr_18 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 286 |             18 => isr_18 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:287:26
[INFO] [stdout]     |
[INFO] [stdout] 287 |             19 => isr_19 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 287 |             19 => isr_19 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:288:26
[INFO] [stdout]     |
[INFO] [stdout] 288 |             20 => isr_20 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 288 |             20 => isr_20 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:289:26
[INFO] [stdout]     |
[INFO] [stdout] 289 |             21 => isr_21 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 289 |             21 => isr_21 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:290:26
[INFO] [stdout]     |
[INFO] [stdout] 290 |             22 => isr_22 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 290 |             22 => isr_22 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:291:26
[INFO] [stdout]     |
[INFO] [stdout] 291 |             23 => isr_23 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 291 |             23 => isr_23 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:292:26
[INFO] [stdout]     |
[INFO] [stdout] 292 |             24 => isr_24 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 292 |             24 => isr_24 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:293:26
[INFO] [stdout]     |
[INFO] [stdout] 293 |             25 => isr_25 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 293 |             25 => isr_25 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:294:26
[INFO] [stdout]     |
[INFO] [stdout] 294 |             26 => isr_26 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 294 |             26 => isr_26 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:295:26
[INFO] [stdout]     |
[INFO] [stdout] 295 |             27 => isr_27 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 295 |             27 => isr_27 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:296:26
[INFO] [stdout]     |
[INFO] [stdout] 296 |             28 => isr_28 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 296 |             28 => isr_28 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:297:26
[INFO] [stdout]     |
[INFO] [stdout] 297 |             29 => isr_29 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 297 |             29 => isr_29 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:298:26
[INFO] [stdout]     |
[INFO] [stdout] 298 |             30 => isr_30 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 298 |             30 => isr_30 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:299:26
[INFO] [stdout]     |
[INFO] [stdout] 299 |             31 => isr_31 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 299 |             31 => isr_31 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:300:26
[INFO] [stdout]     |
[INFO] [stdout] 300 |             32 => isr_32 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 300 |             32 => isr_32 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:301:26
[INFO] [stdout]     |
[INFO] [stdout] 301 |             33 => isr_33 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 301 |             33 => isr_33 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:302:26
[INFO] [stdout]     |
[INFO] [stdout] 302 |             34 => isr_34 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 302 |             34 => isr_34 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:303:26
[INFO] [stdout]     |
[INFO] [stdout] 303 |             35 => isr_35 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 303 |             35 => isr_35 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:304:26
[INFO] [stdout]     |
[INFO] [stdout] 304 |             36 => isr_36 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 304 |             36 => isr_36 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:305:26
[INFO] [stdout]     |
[INFO] [stdout] 305 |             37 => isr_37 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 305 |             37 => isr_37 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:306:26
[INFO] [stdout]     |
[INFO] [stdout] 306 |             38 => isr_38 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 306 |             38 => isr_38 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:307:26
[INFO] [stdout]     |
[INFO] [stdout] 307 |             39 => isr_39 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 307 |             39 => isr_39 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:308:26
[INFO] [stdout]     |
[INFO] [stdout] 308 |             40 => isr_40 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 308 |             40 => isr_40 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:309:26
[INFO] [stdout]     |
[INFO] [stdout] 309 |             41 => isr_41 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 309 |             41 => isr_41 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:310:26
[INFO] [stdout]     |
[INFO] [stdout] 310 |             42 => isr_42 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 310 |             42 => isr_42 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:311:26
[INFO] [stdout]     |
[INFO] [stdout] 311 |             43 => isr_43 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 311 |             43 => isr_43 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:312:26
[INFO] [stdout]     |
[INFO] [stdout] 312 |             44 => isr_44 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 312 |             44 => isr_44 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:313:26
[INFO] [stdout]     |
[INFO] [stdout] 313 |             45 => isr_45 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 313 |             45 => isr_45 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:314:26
[INFO] [stdout]     |
[INFO] [stdout] 314 |             46 => isr_46 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 314 |             46 => isr_46 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:315:26
[INFO] [stdout]     |
[INFO] [stdout] 315 |             47 => isr_47 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 315 |             47 => isr_47 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:316:28
[INFO] [stdout]     |
[INFO] [stdout] 316 |             128 => isr_128 as usize as u64,
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 316 |             128 => isr_128 as *const () as usize as u64,
[INFO] [stdout]     |                            ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::read_volatile` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/volatile.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |         ptr::read_volatile(self.ptr.add(index))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/volatile.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 | /     pub unsafe fn read_at(&self, index: usize) -> T
[INFO] [stdout] 77 | |     where
[INFO] [stdout] 78 | |         T: Copy,
[INFO] [stdout]    | |________________^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/volatile.rs:80:28
[INFO] [stdout]    |
[INFO] [stdout] 80 |         ptr::read_volatile(self.ptr.add(index))
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::write_volatile` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/volatile.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         ptr::write_volatile(self.ptr.add(index), value);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/volatile.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 | /     pub unsafe fn write_at(&self, index: usize, value: T)
[INFO] [stdout] 86 | |     where
[INFO] [stdout] 87 | |         T: Copy,
[INFO] [stdout]    | |________________^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/volatile.rs:89:29
[INFO] [stdout]    |
[INFO] [stdout] 89 |         ptr::write_volatile(self.ptr.add(index), value);
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         (*node).next = ptr::null_mut();
[INFO] [stdout]    |         ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/linked_list.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub unsafe fn push_back(&mut self, node: *mut Link) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |         (*node).prev = self.tail;
[INFO] [stdout]    |         ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |             (*self.tail).next = node;
[INFO] [stdout]    |             ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |         (*node).prev = ptr::null_mut();
[INFO] [stdout]    |         ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/linked_list.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub unsafe fn push_front(&mut self, node: *mut Link) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         (*node).next = self.head;
[INFO] [stdout]    |         ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |             (*self.head).prev = node;
[INFO] [stdout]    |             ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:81:21
[INFO] [stdout]    |
[INFO] [stdout] 81 |         self.head = (*node).next;
[INFO] [stdout]    |                     ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/linked_list.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub unsafe fn pop_front(&mut self) -> *mut Link {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |             (*self.head).prev = ptr::null_mut();
[INFO] [stdout]    |             ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:93:20
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let prev = (*node).prev;
[INFO] [stdout]    |                    ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/linked_list.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub unsafe fn remove(&mut self, node: *mut Link) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:94:20
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let next = (*node).next;
[INFO] [stdout]    |                    ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/linked_list.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |             (*prev).next = next;
[INFO] [stdout]    |             ^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/util/linked_list.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |             (*next).prev = prev;
[INFO] [stdout]     |             ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/util/linked_list.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |         (*node).prev = ptr::null_mut();
[INFO] [stdout]     |         ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/util/linked_list.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |         (*node).next = ptr::null_mut();
[INFO] [stdout]     |         ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sync/spinlock.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 | /     core::arch::asm!(
[INFO] [stdout] 104 | |         "pushfq",
[INFO] [stdout] 105 | |         "pop {0}",
[INFO] [stdout] 106 | |         "cli",
[INFO] [stdout] 107 | |         out(reg) flags,
[INFO] [stdout] 108 | |         options(nostack, preserves_flags),
[INFO] [stdout] 109 | |     );
[INFO] [stdout]     | |_____^ use of inline assembly
[INFO] [stdout]     |
[INFO] [stdout]     = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sync/spinlock.rs:101:1
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub unsafe fn irq_save() -> bool {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]    --> src/sync/spinlock.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 120 |         core::arch::asm!("sti", options(nostack, preserves_flags));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]     |
[INFO] [stdout]     = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/sync/spinlock.rs:118:1
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub unsafe fn irq_restore(was_enabled: bool) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/port.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | /     asm!(
[INFO] [stdout] 11 | |         "out dx, al",
[INFO] [stdout] 12 | |         in("dx") port,
[INFO] [stdout] 13 | |         in("al") val,
[INFO] [stdout] 14 | |         options(nostack, preserves_flags),
[INFO] [stdout] 15 | |     );
[INFO] [stdout]    | |_____^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/port.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub unsafe fn outb(port: u16, val: u8) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/port.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | /     asm!(
[INFO] [stdout] 23 | |         "in al, dx",
[INFO] [stdout] 24 | |         out("al") ret,
[INFO] [stdout] 25 | |         in("dx") port,
[INFO] [stdout] 26 | |         options(nostack, preserves_flags),
[INFO] [stdout] 27 | |     );
[INFO] [stdout]    | |_____^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/port.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub unsafe fn inb(port: u16) -> u8 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/port.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | /     asm!(
[INFO] [stdout] 35 | |         "out dx, ax",
[INFO] [stdout] 36 | |         in("dx") port,
[INFO] [stdout] 37 | |         in("ax") val,
[INFO] [stdout] 38 | |         options(nostack, preserves_flags),
[INFO] [stdout] 39 | |     );
[INFO] [stdout]    | |_____^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/port.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub unsafe fn outw(port: u16, val: u16) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/port.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | /     asm!(
[INFO] [stdout] 47 | |         "in ax, dx",
[INFO] [stdout] 48 | |         out("ax") ret,
[INFO] [stdout] 49 | |         in("dx") port,
[INFO] [stdout] 50 | |         options(nostack, preserves_flags),
[INFO] [stdout] 51 | |     );
[INFO] [stdout]    | |_____^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/port.rs:44:1
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub unsafe fn inw(port: u16) -> u16 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/port.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | /     asm!(
[INFO] [stdout] 59 | |         "out dx, eax",
[INFO] [stdout] 60 | |         in("dx") port,
[INFO] [stdout] 61 | |         in("eax") val,
[INFO] [stdout] 62 | |         options(nostack, preserves_flags),
[INFO] [stdout] 63 | |     );
[INFO] [stdout]    | |_____^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/port.rs:57:1
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub unsafe fn outl(port: u16, val: u32) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/port.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 | /     asm!(
[INFO] [stdout] 71 | |         "in eax, dx",
[INFO] [stdout] 72 | |         out("eax") ret,
[INFO] [stdout] 73 | |         in("dx") port,
[INFO] [stdout] 74 | |         options(nostack, preserves_flags),
[INFO] [stdout] 75 | |     );
[INFO] [stdout]    | |_____^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/port.rs:68:1
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub unsafe fn inl(port: u16) -> u32 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/idt.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     asm!("lidt [{}]", in(reg) &idtr, options(nostack, preserves_flags));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/idt.rs:67:1
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub unsafe fn load() {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/arch/x86_64/idt.rs:68:16
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let idtr = unsafe {
[INFO] [stdout]    |                ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:266:5
[INFO] [stdout]     |
[INFO] [stdout] 266 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     outb(PIC1_CMD, ICW1_ICW4);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:30:1
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub unsafe fn init() {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     outb(PIC2_CMD, ICW1_ICW4);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     outb(PIC1_DATA, PIC1_OFFSET);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     outb(PIC2_DATA, PIC2_OFFSET);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     outb(PIC1_DATA, 0x04); // bit 2 = slave on IRQ2
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     outb(PIC2_DATA, 0x02); // slave cascade identity = 2
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     outb(PIC1_DATA, ICW4_8086);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     outb(PIC2_DATA, ICW4_8086);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     outb(PIC1_DATA, 0xFF);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     outb(PIC2_DATA, 0xFF);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         outb(PIC2_CMD, EOI);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:64:1
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub unsafe fn end_of_interrupt(irq: u8) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     outb(PIC1_CMD, EOI);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::inb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:78:17
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let value = inb(port) | (1 << bit);
[INFO] [stdout]    |                 ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:72:1
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub unsafe fn mask(irq: u8) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 79 |     outb(port, value);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::inb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:89:17
[INFO] [stdout]    |
[INFO] [stdout] 89 |     let value = inb(port) & !(1 << bit);
[INFO] [stdout]    |                 ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:83:1
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub unsafe fn unmask(irq: u8) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::port::outb` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/pic.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     outb(port, value);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/context.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 | /         core::arch::asm!(
[INFO] [stdout] 81 | |             "mov cr3, {}",
[INFO] [stdout] 82 | |             in(reg) new_ctx.cr3,
[INFO] [stdout] 83 | |             options(nostack, preserves_flags),
[INFO] [stdout] 84 | |         );
[INFO] [stdout]    | |_________^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/context.rs:77:1
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub unsafe fn switch(old_ctx: &mut CpuContext, new_ctx: &CpuContext) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::context::context_switch` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/context.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     context_switch(&mut old_ctx.rsp as *mut u64, new_ctx.rsp);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/arch/x86_64/context.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 119 |     *(sp as *mut u64) = entry as usize as u64;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/arch/x86_64/context.rs:97:1
[INFO] [stdout]     |
[INFO] [stdout]  97 | pub unsafe fn init_stack(stack_top: *mut u8, entry: extern "C" fn() -> !) -> u64 {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/arch/x86_64/context.rs:122:14
[INFO] [stdout]     |
[INFO] [stdout] 122 |     sp -= 8; *(sp as *mut u64) = 0; // rbp
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/arch/x86_64/context.rs:123:14
[INFO] [stdout]     |
[INFO] [stdout] 123 |     sp -= 8; *(sp as *mut u64) = 0; // rbx
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/arch/x86_64/context.rs:124:14
[INFO] [stdout]     |
[INFO] [stdout] 124 |     sp -= 8; *(sp as *mut u64) = 0; // r12
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/arch/x86_64/context.rs:125:14
[INFO] [stdout]     |
[INFO] [stdout] 125 |     sp -= 8; *(sp as *mut u64) = 0; // r13
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/arch/x86_64/context.rs:126:14
[INFO] [stdout]     |
[INFO] [stdout] 126 |     sp -= 8; *(sp as *mut u64) = 0; // r14
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/arch/x86_64/context.rs:127:14
[INFO] [stdout]     |
[INFO] [stdout] 127 |     sp -= 8; *(sp as *mut u64) = 0; // r15
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     core::arch::asm!("mov {0}, cr3", out(reg) val, options(nostack, preserves_flags));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub unsafe fn read_cr3() -> u64 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     core::arch::asm!("mov cr3, {0}", in(reg) val, options(nostack, preserves_flags));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub unsafe fn write_cr3(val: u64) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     core::arch::asm!("mov {0}, cr2", out(reg) val, options(nostack, preserves_flags));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub unsafe fn read_cr2() -> u64 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     core::arch::asm!("sti", options(nostack, preserves_flags));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub unsafe fn enable_interrupts() {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     core::arch::asm!("cli", options(nostack, preserves_flags));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub unsafe fn disable_interrupts() {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     core::arch::asm!("hlt", options(nostack, preserves_flags));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/arch/x86_64/mod.rs:48:1
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub unsafe fn halt() {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `sync::spinlock::irq_save` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hal.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |         crate::sync::spinlock::irq_save()
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/hal.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     unsafe fn irq_save() -> bool {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `sync::spinlock::irq_restore` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hal.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         crate::sync::spinlock::irq_restore(was_enabled)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/hal.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     unsafe fn irq_restore(was_enabled: bool) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::enable_interrupts` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hal.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |         x86_64::enable_interrupts();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/hal.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     unsafe fn enable_interrupts() {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::disable_interrupts` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hal.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |         x86_64::disable_interrupts();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/hal.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     unsafe fn disable_interrupts() {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::halt` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hal.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |         x86_64::halt();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/hal.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     unsafe fn halt() {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `arch::x86_64::write_cr3` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hal.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |         x86_64::write_cr3(val);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/hal.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 |     unsafe fn write_cr3(val: u64) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::page::invlpg` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/hal.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         crate::memory::page::invlpg(vaddr);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/hal.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     unsafe fn invalidate_tlb(vaddr: usize) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/serial.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | /     core::arch::asm!(
[INFO] [stdout] 23 | |         "out dx, al",
[INFO] [stdout] 24 | |         in("dx") port,
[INFO] [stdout] 25 | |         in("al") val,
[INFO] [stdout] 26 | |         options(nostack, preserves_flags),
[INFO] [stdout] 27 | |     );
[INFO] [stdout]    | |_____^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/serial.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | unsafe fn outb(port: u16, val: u8) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/serial.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | /     core::arch::asm!(
[INFO] [stdout] 34 | |         "in al, dx",
[INFO] [stdout] 35 | |         out("al") ret,
[INFO] [stdout] 36 | |         in("dx") port,
[INFO] [stdout] 37 | |         options(nostack, preserves_flags),
[INFO] [stdout] 38 | |     );
[INFO] [stdout]    | |_____^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/serial.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | unsafe fn inb(port: u16) -> u8 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::slice::from_raw_parts_mut` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/memory/frame.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |         core::slice::from_raw_parts_mut(storage.words.as_mut_ptr(), words)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/memory/frame.rs:48:1
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub unsafe fn init(regions: &[MemoryRegion]) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `util::bitmap::Bitmap::new` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/memory/frame.rs:84:22
[INFO] [stdout]    |
[INFO] [stdout] 84 |     let mut bitmap = Bitmap::new(bitmap_ref, actual_total);
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::page::alloc_table` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/page.rs:148:25
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let new_table = alloc_table()?;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/memory/page.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub unsafe fn map_page(vaddr: VirtAddr, paddr: PhysAddr, flags: u64) -> Result<(), &'static str> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::page::alloc_table` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/page.rs:162:25
[INFO] [stdout]     |
[INFO] [stdout] 162 |         let new_table = alloc_table()?;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::page::alloc_table` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/page.rs:176:25
[INFO] [stdout]     |
[INFO] [stdout] 176 |         let new_table = alloc_table()?;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::page::invlpg` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/page.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |     invlpg(vaddr);
[INFO] [stdout]     |     ^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::write_bytes` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/page.rs:196:13
[INFO] [stdout]     |
[INFO] [stdout] 196 |             ptr::write_bytes(table as *mut u8, 0, PAGE_SIZE);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/memory/page.rs:192:1
[INFO] [stdout]     |
[INFO] [stdout] 192 | unsafe fn alloc_table() -> Result<*mut PageTable, &'static str> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/page.rs:206:5
[INFO] [stdout]     |
[INFO] [stdout] 206 |     core::arch::asm!("invlpg [{}]", in(reg) vaddr, options(nostack, preserves_flags));
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]     |
[INFO] [stdout]     = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/memory/page.rs:205:1
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub unsafe fn invlpg(vaddr: VirtAddr) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/memory/page.rs:245:5
[INFO] [stdout]     |
[INFO] [stdout] 245 |     unsafe { core::ptr::addr_of!(KERNEL_PML4) as PhysAddr }
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::page::map_page` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/memory/heap.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | /         crate::memory::page::map_page(
[INFO] [stdout] 65 | |             heap.heap_end,
[INFO] [stdout] 66 | |             frame,
[INFO] [stdout] 67 | |             crate::memory::page::PRESENT | crate::memory::page::WRITABLE,
[INFO] [stdout] 68 | |         )?;
[INFO] [stdout]    | |_________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/memory/heap.rs:55:1
[INFO] [stdout]    |
[INFO] [stdout] 55 | unsafe fn extend_heap(size: usize) -> Result<*mut u8, &'static str> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:114:16
[INFO] [stdout]     |
[INFO] [stdout] 114 |             if (*cur).size >= alloc_size + BlockHeader::SIZE {
[INFO] [stdout]     |                ^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/memory/heap.rs:97:5
[INFO] [stdout]     |
[INFO] [stdout]  97 |     unsafe fn alloc(&self, layout: Layout) -> *mut u8 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:116:33
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 let remaining = (*cur).size - alloc_size - BlockHeader::SIZE;
[INFO] [stdout]     |                                 ^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:119:37
[INFO] [stdout]     |
[INFO] [stdout] 119 |                     let new_block = (cur as *mut u8).add(alloc_size + BlockHeader::SIZE) as *mut BlockHeader;
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:120:21
[INFO] [stdout]     |
[INFO] [stdout] 120 |                     (*new_block).size = remaining;
[INFO] [stdout]     |                     ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:121:21
[INFO] [stdout]     |
[INFO] [stdout] 121 |                     (*new_block).next = (*cur).next;
[INFO] [stdout]     |                     ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:121:41
[INFO] [stdout]     |
[INFO] [stdout] 121 |                     (*new_block).next = (*cur).next;
[INFO] [stdout]     |                                         ^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:123:21
[INFO] [stdout]     |
[INFO] [stdout] 123 |                     (*cur).size = alloc_size;
[INFO] [stdout]     |                     ^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:124:21
[INFO] [stdout]     |
[INFO] [stdout] 124 |                     (*cur).next = ptr::null_mut(); // mark as allocated
[INFO] [stdout]     |                     ^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:130:25
[INFO] [stdout]     |
[INFO] [stdout] 130 |                         (*prev).next = new_block;
[INFO] [stdout]     |                         ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:135:42
[INFO] [stdout]     |
[INFO] [stdout] 135 |                         heap.free_head = (*cur).next;
[INFO] [stdout]     |                                          ^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:137:25
[INFO] [stdout]     |
[INFO] [stdout] 137 |                         (*prev).next = (*cur).next;
[INFO] [stdout]     |                         ^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:137:40
[INFO] [stdout]     |
[INFO] [stdout] 137 |                         (*prev).next = (*cur).next;
[INFO] [stdout]     |                                        ^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:139:21
[INFO] [stdout]     |
[INFO] [stdout] 139 |                     (*cur).next = ptr::null_mut();
[INFO] [stdout]     |                     ^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:143:24
[INFO] [stdout]     |
[INFO] [stdout] 143 |                 return (cur as *mut u8).add(BlockHeader::SIZE);
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:146:19
[INFO] [stdout]     |
[INFO] [stdout] 146 |             cur = (*cur).next;
[INFO] [stdout]     |                   ^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::heap::extend_heap` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:151:15
[INFO] [stdout]     |
[INFO] [stdout] 151 |         match extend_heap(alloc_size + BlockHeader::SIZE) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:154:17
[INFO] [stdout]     |
[INFO] [stdout] 154 |                 (*header).size = alloc_size;
[INFO] [stdout]     |                 ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:155:17
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 (*header).next = ptr::null_mut();
[INFO] [stdout]     |                 ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:157:17
[INFO] [stdout]     |
[INFO] [stdout] 157 |                 ptr.add(BlockHeader::SIZE)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::ptr::mut_ptr::<impl *mut T>::sub` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:167:21
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let block = ptr.sub(BlockHeader::SIZE) as *mut BlockHeader;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/memory/heap.rs:166:5
[INFO] [stdout]     |
[INFO] [stdout] 166 |     unsafe fn dealloc(&self, ptr: *mut u8, _layout: Layout) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 169 |         (*block).next = heap.free_head;
[INFO] [stdout]     |         ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `memory::heap::extend_heap` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:182:11
[INFO] [stdout]     |
[INFO] [stdout] 182 |     match extend_heap(total) {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/memory/heap.rs:179:1
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub unsafe fn init() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:186:13
[INFO] [stdout]     |
[INFO] [stdout] 186 |             (*header).size = total - BlockHeader::SIZE;
[INFO] [stdout]     |             ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/memory/heap.rs:187:13
[INFO] [stdout]     |
[INFO] [stdout] 187 |             (*header).next = ptr::null_mut();
[INFO] [stdout]     |             ^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:268:24
[INFO] [stdout]     |
[INFO] [stdout] 268 |             0 => isr_0 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 268 |             0 => isr_0 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:269:24
[INFO] [stdout]     |
[INFO] [stdout] 269 |             1 => isr_1 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 269 |             1 => isr_1 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:270:24
[INFO] [stdout]     |
[INFO] [stdout] 270 |             2 => isr_2 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 270 |             2 => isr_2 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:271:24
[INFO] [stdout]     |
[INFO] [stdout] 271 |             3 => isr_3 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 271 |             3 => isr_3 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:272:24
[INFO] [stdout]     |
[INFO] [stdout] 272 |             4 => isr_4 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 272 |             4 => isr_4 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:273:24
[INFO] [stdout]     |
[INFO] [stdout] 273 |             5 => isr_5 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 273 |             5 => isr_5 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:274:24
[INFO] [stdout]     |
[INFO] [stdout] 274 |             6 => isr_6 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 274 |             6 => isr_6 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:275:24
[INFO] [stdout]     |
[INFO] [stdout] 275 |             7 => isr_7 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 275 |             7 => isr_7 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:276:24
[INFO] [stdout]     |
[INFO] [stdout] 276 |             8 => isr_8 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 276 |             8 => isr_8 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:277:24
[INFO] [stdout]     |
[INFO] [stdout] 277 |             9 => isr_9 as usize as u64,
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 277 |             9 => isr_9 as *const () as usize as u64,
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:278:26
[INFO] [stdout]     |
[INFO] [stdout] 278 |             10 => isr_10 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 278 |             10 => isr_10 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:279:26
[INFO] [stdout]     |
[INFO] [stdout] 279 |             11 => isr_11 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 279 |             11 => isr_11 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:280:26
[INFO] [stdout]     |
[INFO] [stdout] 280 |             12 => isr_12 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 280 |             12 => isr_12 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:281:26
[INFO] [stdout]     |
[INFO] [stdout] 281 |             13 => isr_13 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 281 |             13 => isr_13 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:282:26
[INFO] [stdout]     |
[INFO] [stdout] 282 |             14 => isr_14 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 282 |             14 => isr_14 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:283:26
[INFO] [stdout]     |
[INFO] [stdout] 283 |             15 => isr_15 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 283 |             15 => isr_15 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:284:26
[INFO] [stdout]     |
[INFO] [stdout] 284 |             16 => isr_16 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 284 |             16 => isr_16 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:285:26
[INFO] [stdout]     |
[INFO] [stdout] 285 |             17 => isr_17 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 285 |             17 => isr_17 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:286:26
[INFO] [stdout]     |
[INFO] [stdout] 286 |             18 => isr_18 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 286 |             18 => isr_18 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:287:26
[INFO] [stdout]     |
[INFO] [stdout] 287 |             19 => isr_19 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 287 |             19 => isr_19 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:288:26
[INFO] [stdout]     |
[INFO] [stdout] 288 |             20 => isr_20 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 288 |             20 => isr_20 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:289:26
[INFO] [stdout]     |
[INFO] [stdout] 289 |             21 => isr_21 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 289 |             21 => isr_21 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:290:26
[INFO] [stdout]     |
[INFO] [stdout] 290 |             22 => isr_22 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 290 |             22 => isr_22 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:291:26
[INFO] [stdout]     |
[INFO] [stdout] 291 |             23 => isr_23 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 291 |             23 => isr_23 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:292:26
[INFO] [stdout]     |
[INFO] [stdout] 292 |             24 => isr_24 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 292 |             24 => isr_24 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:293:26
[INFO] [stdout]     |
[INFO] [stdout] 293 |             25 => isr_25 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 293 |             25 => isr_25 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:294:26
[INFO] [stdout]     |
[INFO] [stdout] 294 |             26 => isr_26 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 294 |             26 => isr_26 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:295:26
[INFO] [stdout]     |
[INFO] [stdout] 295 |             27 => isr_27 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 295 |             27 => isr_27 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:296:26
[INFO] [stdout]     |
[INFO] [stdout] 296 |             28 => isr_28 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 296 |             28 => isr_28 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:297:26
[INFO] [stdout]     |
[INFO] [stdout] 297 |             29 => isr_29 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 297 |             29 => isr_29 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:298:26
[INFO] [stdout]     |
[INFO] [stdout] 298 |             30 => isr_30 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 298 |             30 => isr_30 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:299:26
[INFO] [stdout]     |
[INFO] [stdout] 299 |             31 => isr_31 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 299 |             31 => isr_31 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:300:26
[INFO] [stdout]     |
[INFO] [stdout] 300 |             32 => isr_32 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 300 |             32 => isr_32 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:301:26
[INFO] [stdout]     |
[INFO] [stdout] 301 |             33 => isr_33 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 301 |             33 => isr_33 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:302:26
[INFO] [stdout]     |
[INFO] [stdout] 302 |             34 => isr_34 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 302 |             34 => isr_34 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:303:26
[INFO] [stdout]     |
[INFO] [stdout] 303 |             35 => isr_35 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 303 |             35 => isr_35 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:304:26
[INFO] [stdout]     |
[INFO] [stdout] 304 |             36 => isr_36 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 304 |             36 => isr_36 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:305:26
[INFO] [stdout]     |
[INFO] [stdout] 305 |             37 => isr_37 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 305 |             37 => isr_37 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:306:26
[INFO] [stdout]     |
[INFO] [stdout] 306 |             38 => isr_38 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 306 |             38 => isr_38 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:307:26
[INFO] [stdout]     |
[INFO] [stdout] 307 |             39 => isr_39 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 307 |             39 => isr_39 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:308:26
[INFO] [stdout]     |
[INFO] [stdout] 308 |             40 => isr_40 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 308 |             40 => isr_40 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:309:26
[INFO] [stdout]     |
[INFO] [stdout] 309 |             41 => isr_41 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 309 |             41 => isr_41 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:310:26
[INFO] [stdout]     |
[INFO] [stdout] 310 |             42 => isr_42 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 310 |             42 => isr_42 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:311:26
[INFO] [stdout]     |
[INFO] [stdout] 311 |             43 => isr_43 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 311 |             43 => isr_43 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:312:26
[INFO] [stdout]     |
[INFO] [stdout] 312 |             44 => isr_44 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 312 |             44 => isr_44 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:313:26
[INFO] [stdout]     |
[INFO] [stdout] 313 |             45 => isr_45 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 313 |             45 => isr_45 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:314:26
[INFO] [stdout]     |
[INFO] [stdout] 314 |             46 => isr_46 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 314 |             46 => isr_46 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:315:26
[INFO] [stdout]     |
[INFO] [stdout] 315 |             47 => isr_47 as usize as u64,
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 315 |             47 => isr_47 as *const () as usize as u64,
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/arch/x86_64/interrupts.rs:316:28
[INFO] [stdout]     |
[INFO] [stdout] 316 |             128 => isr_128 as usize as u64,
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 316 |             128 => isr_128 as *const () as usize as u64,
[INFO] [stdout]     |                            ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "12da3807a6054312a172f604b9778b8a796ba86f278d3c04a7edc2e5a289b33d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "12da3807a6054312a172f604b9778b8a796ba86f278d3c04a7edc2e5a289b33d", kill_on_drop: false }`
[INFO] [stdout] 12da3807a6054312a172f604b9778b8a796ba86f278d3c04a7edc2e5a289b33d
