[INFO] cloning repository https://github.com/nathantodd-devel/basicos
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nathantodd-devel/basicos" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnathantodd-devel%2Fbasicos", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnathantodd-devel%2Fbasicos'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7b4d295d7c36ff064941a25755e8ffd78ab69ba2
[INFO] checking nathantodd-devel/basicos against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6 for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnathantodd-devel%2Fbasicos" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-6-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/nathantodd-devel/basicos
[INFO] finished tweaking git repo https://github.com/nathantodd-devel/basicos
[INFO] tweaked toml for git repo https://github.com/nathantodd-devel/basicos written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/nathantodd-devel/basicos 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/nathantodd-devel/basicos 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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] ca1586eb99a8b8cd3c12ca835391c3fde2190b8a486f7c7da4609054d9a7c6d6
[INFO] running `Command { std: "docker" "start" "ca1586eb99a8b8cd3c12ca835391c3fde2190b8a486f7c7da4609054d9a7c6d6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ca1586eb99a8b8cd3c12ca835391c3fde2190b8a486f7c7da4609054d9a7c6d6", 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" "ca1586eb99a8b8cd3c12ca835391c3fde2190b8a486f7c7da4609054d9a7c6d6" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ca1586eb99a8b8cd3c12ca835391c3fde2190b8a486f7c7da4609054d9a7c6d6", 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" "ca1586eb99a8b8cd3c12ca835391c3fde2190b8a486f7c7da4609054d9a7c6d6" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking basicos-fs v0.1.0 (/opt/rustwide/workdir/fs)
[INFO] [stderr]     Checking basicos v0.1.0 (/opt/rustwide/workdir/kernel)
[INFO] [stdout] warning: unused imports: `BlockDevice` and `BlockError`
[INFO] [stdout]   --> kernel/src/fs/mod.rs:22:22
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use basicos_fs::{BlockDevice, BlockError, DirEntry, Fat32Error, Fat32Fs, MemDisk, RamDisk, BLOCK_SIZE};
[INFO] [stdout]    |                      ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0152]: found duplicate lang item `panic_impl`
[INFO] [stdout]    --> kernel/src/panic.rs:151:1
[INFO] [stdout]     |
[INFO] [stdout] 151 | / fn panic(info: &PanicInfo) -> ! {
[INFO] [stdout] 152 | |     unsafe { core::arch::asm!("cli") };
[INFO] [stdout] 153 | |
[INFO] [stdout] 154 | |     let mut writer = PanicWriter { col: 0, row: 0 };
[INFO] [stdout] ...   |
[INFO] [stdout] 178 | | }
[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 (`basicos`)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0152`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `basicos` (lib test) due to 1 previous error; 1 warning emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused imports: `BlockDevice` and `BlockError`
[INFO] [stdout]   --> kernel/src/fs/mod.rs:22:22
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use basicos_fs::{BlockDevice, BlockError, DirEntry, Fat32Error, Fat32Fs, MemDisk, RamDisk, BLOCK_SIZE};
[INFO] [stdout]    |                      ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USER_STACK_SIZE` is never used
[INFO] [stdout]    --> kernel/src/lib.rs:216:7
[INFO] [stdout]     |
[INFO] [stdout] 216 | const USER_STACK_SIZE: usize = 4 * 1024; // 4 KiB user stack
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UserStack` is never constructed
[INFO] [stdout]    --> kernel/src/lib.rs:220:8
[INFO] [stdout]     |
[INFO] [stdout] 220 | struct UserStack([u8; USER_STACK_SIZE]);
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `USER_STACK` is never used
[INFO] [stdout]    --> kernel/src/lib.rs:223:12
[INFO] [stdout]     |
[INFO] [stdout] 223 | static mut USER_STACK: UserStack = UserStack([0; USER_STACK_SIZE]);
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IA32_APIC_BASE_MSR` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const IA32_APIC_BASE_MSR: u32 = 0x1B;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APIC_ID` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const APIC_ID: u32 = 0x020;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APIC_VERSION` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const APIC_VERSION: u32 = 0x030;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APIC_TPR` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const APIC_TPR: u32 = 0x080; // Task Priority Register
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APIC_EOI` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const APIC_EOI: u32 = 0x0B0; // End of Interrupt
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APIC_SVR` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const APIC_SVR: u32 = 0x0F0; // Spurious Interrupt Vector Register
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APIC_ESR` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:31:7
[INFO] [stdout]    |
[INFO] [stdout] 31 | const APIC_ESR: u32 = 0x280; // Error Status Register
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APIC_LVT_LINT0` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const APIC_LVT_LINT0: u32 = 0x350; // LVT LINT0 Register
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APIC_LVT_LINT1` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const APIC_LVT_LINT1: u32 = 0x360; // LVT LINT1 Register
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APIC_LVT_ERROR` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const APIC_LVT_ERROR: u32 = 0x370; // LVT Error Register
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APIC_TIMER_CURRENT` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | const APIC_TIMER_CURRENT: u32 = 0x390; // Timer Current Count
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APIC_TIMER_DIV` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:40:7
[INFO] [stdout]    |
[INFO] [stdout] 40 | const APIC_TIMER_DIV: u32 = 0x3E0; // Timer Divide Configuration
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SVR_ENABLE` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:43:7
[INFO] [stdout]    |
[INFO] [stdout] 43 | const SVR_ENABLE: u32 = 1 << 8;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SVR_VECTOR_MASK` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:44:7
[INFO] [stdout]    |
[INFO] [stdout] 44 | const SVR_VECTOR_MASK: u32 = 0xFF;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LVT_TIMER_PERIODIC` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:48:7
[INFO] [stdout]    |
[INFO] [stdout] 48 | const LVT_TIMER_PERIODIC: u32 = 1 << 17;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TIMER_DIV_1` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | const TIMER_DIV_1: u32 = 0b1011;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TIMER_DIV_2` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:52:7
[INFO] [stdout]    |
[INFO] [stdout] 52 | const TIMER_DIV_2: u32 = 0b0000;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TIMER_DIV_4` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:53:7
[INFO] [stdout]    |
[INFO] [stdout] 53 | const TIMER_DIV_4: u32 = 0b0001;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TIMER_DIV_8` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const TIMER_DIV_8: u32 = 0b0010;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TIMER_DIV_16` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:55:7
[INFO] [stdout]    |
[INFO] [stdout] 55 | const TIMER_DIV_16: u32 = 0b0011;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TIMER_DIV_32` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:56:7
[INFO] [stdout]    |
[INFO] [stdout] 56 | const TIMER_DIV_32: u32 = 0b1000;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TIMER_DIV_64` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:57:7
[INFO] [stdout]    |
[INFO] [stdout] 57 | const TIMER_DIV_64: u32 = 0b1001;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TIMER_DIV_128` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:58:7
[INFO] [stdout]    |
[INFO] [stdout] 58 | const TIMER_DIV_128: u32 = 0b1010;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APIC_TIMER_VECTOR` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:61:11
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub const APIC_TIMER_VECTOR: u8 = 48;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APIC_ERROR_VECTOR` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:62:11
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub const APIC_ERROR_VECTOR: u8 = 49;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APIC_SPURIOUS_VECTOR` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:63:11
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub const APIC_SPURIOUS_VECTOR: u8 = 0xFF;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `APIC_INITIALIZED` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | static APIC_INITIALIZED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdmsr` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/apic.rs:87:11
[INFO] [stdout]    |
[INFO] [stdout] 87 | unsafe fn rdmsr(msr: u32) -> u64 {
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wrmsr` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/apic.rs:100:11
[INFO] [stdout]     |
[INFO] [stdout] 100 | unsafe fn wrmsr(msr: u32, value: u64) {
[INFO] [stdout]     |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_apic_available` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/apic.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn is_apic_available() -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_apic_id` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/apic.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn get_apic_id() -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `disable_pic` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/apic.rs:140:11
[INFO] [stdout]     |
[INFO] [stdout] 140 | unsafe fn disable_pic() {
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/apic.rs:156:15
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub unsafe fn init() -> Result<(), &'static str> {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calibrate_timer` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/apic.rs:212:15
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub unsafe fn calibrate_timer() {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_timer` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/apic.rs:257:15
[INFO] [stdout]     |
[INFO] [stdout] 257 | pub unsafe fn start_timer(frequency: u32) {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_eoi` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/apic.rs:287:15
[INFO] [stdout]     |
[INFO] [stdout] 287 | pub unsafe fn send_eoi() {
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_initialized` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/apic.rs:325:8
[INFO] [stdout]     |
[INFO] [stdout] 325 | pub fn is_initialized() -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `jump_to_ring3` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/gdt.rs:181:15
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub unsafe fn jump_to_ring3(entry: extern "C" fn() -> !, user_stack_top: u64) -> ! {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VEC_CASCADE` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/interrupts.rs:455:7
[INFO] [stdout]     |
[INFO] [stdout] 455 | const VEC_CASCADE: u8 = 34; // IRQ2 (cascade, never fires)
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VEC_COM2` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/interrupts.rs:456:7
[INFO] [stdout]     |
[INFO] [stdout] 456 | const VEC_COM2: u8 = 35; // IRQ3
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VEC_LPT2` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/interrupts.rs:458:7
[INFO] [stdout]     |
[INFO] [stdout] 458 | const VEC_LPT2: u8 = 37; // IRQ5
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VEC_FLOPPY` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/interrupts.rs:459:7
[INFO] [stdout]     |
[INFO] [stdout] 459 | const VEC_FLOPPY: u8 = 38; // IRQ6
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VEC_RTC` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/interrupts.rs:461:7
[INFO] [stdout]     |
[INFO] [stdout] 461 | const VEC_RTC: u8 = 40; // IRQ8
[INFO] [stdout]     |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VEC_IRQ9` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/interrupts.rs:462:7
[INFO] [stdout]     |
[INFO] [stdout] 462 | const VEC_IRQ9: u8 = 41; // IRQ9
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VEC_IRQ10` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/interrupts.rs:463:7
[INFO] [stdout]     |
[INFO] [stdout] 463 | const VEC_IRQ10: u8 = 42; // IRQ10
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VEC_IRQ11` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/interrupts.rs:464:7
[INFO] [stdout]     |
[INFO] [stdout] 464 | const VEC_IRQ11: u8 = 43; // IRQ11
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VEC_PS2_MOUSE` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/interrupts.rs:465:7
[INFO] [stdout]     |
[INFO] [stdout] 465 | const VEC_PS2_MOUSE: u8 = 44; // IRQ12
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VEC_FPU` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/interrupts.rs:466:7
[INFO] [stdout]     |
[INFO] [stdout] 466 | const VEC_FPU: u8 = 45; // IRQ13
[INFO] [stdout]     |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VEC_ATA_PRIMARY` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/interrupts.rs:467:7
[INFO] [stdout]     |
[INFO] [stdout] 467 | const VEC_ATA_PRIMARY: u8 = 46; // IRQ14
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `are_enabled` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/interrupts.rs:602:8
[INFO] [stdout]     |
[INFO] [stdout] 602 | pub fn are_enabled() -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mask_irq` is never used
[INFO] [stdout]   --> kernel/src/arch/x86_64/pic.rs:96:15
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub unsafe fn mask_irq(irq: u8) {
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unmask_irq` is never used
[INFO] [stdout]    --> kernel/src/arch/x86_64/pic.rs:104:15
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub unsafe fn unmask_irq(irq: u8) {
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `capacity_bytes` is never used
[INFO] [stdout]   --> kernel/src/drivers/ata.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl DriveInfo {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 66 |     pub fn capacity_bytes(&self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `alt` is never used
[INFO] [stdout]   --> kernel/src/drivers/keyboard.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl Modifiers {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn alt(self) -> bool {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_read_byte` is never used
[INFO] [stdout]    --> kernel/src/drivers/keyboard.rs:318:8
[INFO] [stdout]     |
[INFO] [stdout] 318 | pub fn try_read_byte() -> Option<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_byte` is never used
[INFO] [stdout]    --> kernel/src/drivers/keyboard.rs:327:8
[INFO] [stdout]     |
[INFO] [stdout] 327 | pub fn read_byte() -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_data` is never used
[INFO] [stdout]    --> kernel/src/drivers/keyboard.rs:337:8
[INFO] [stdout]     |
[INFO] [stdout] 337 | pub fn has_data() -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_line` is never used
[INFO] [stdout]    --> kernel/src/drivers/keyboard.rs:345:8
[INFO] [stdout]     |
[INFO] [stdout] 345 | pub fn read_line(buf: &mut [u8]) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_data` is never used
[INFO] [stdout]    --> kernel/src/drivers/serial.rs:154:8
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub fn has_data() -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `poll_read_byte` is never used
[INFO] [stdout]    --> kernel/src/drivers/serial.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub fn poll_read_byte() -> Option<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> kernel/src/elf/mod.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 |     Fs(fs::Fat32Error),
[INFO] [stdout]    |     -- ^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RunError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 75 -     Fs(fs::Fat32Error),
[INFO] [stdout] 75 +     Fs(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> kernel/src/elf/mod.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |     Elf(ElfError),
[INFO] [stdout]    |     --- ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RunError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 76 -     Elf(ElfError),
[INFO] [stdout] 76 +     Elf(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `end_address` is never used
[INFO] [stdout]   --> kernel/src/mem/frame.rs:54:18
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Frame {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub const fn end_address(&self) -> usize {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_with_kernel_bounds` is never used
[INFO] [stdout]    --> kernel/src/mem/frame.rs:276:8
[INFO] [stdout]     |
[INFO] [stdout] 276 | pub fn init_with_kernel_bounds(memory_map: &MemoryMap, kernel_start: usize, kernel_end: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_initialized` is never used
[INFO] [stdout]    --> kernel/src/mem/frame.rs:333:8
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub fn is_initialized() -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]    --> kernel/src/mem/multiboot2.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl Module {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]    --> kernel/src/mem/multiboot2.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl MemoryMap {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROC_ZONE_SIZE` is never used
[INFO] [stdout]   --> kernel/src/mem/paging.rs:60:11
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub const PROC_ZONE_SIZE: usize = PROC_ZONE_END - PROC_ZONE_START;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `set_flags` are never used
[INFO] [stdout]    --> kernel/src/mem/paging.rs:103:18
[INFO] [stdout]     |
[INFO] [stdout]  96 | impl PageTableEntry {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub const fn new(frame: Frame, flags: u64) -> Self {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn set_flags(&mut self, flags: u64) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `map_range` and `identity_map` are never used
[INFO] [stdout]    --> kernel/src/mem/paging.rs:417:19
[INFO] [stdout]     |
[INFO] [stdout] 284 | impl PageMapper {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 417 |     pub unsafe fn map_range(
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 436 |     pub unsafe fn identity_map(&mut self, frame: Frame, flags: u64) -> Result<(), MapError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map` is never used
[INFO] [stdout]    --> kernel/src/mem/paging.rs:739:15
[INFO] [stdout]     |
[INFO] [stdout] 739 | pub unsafe fn map(virt: u64, frame: Frame, flags: u64) -> Result<(), MapError> {
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unmap` is never used
[INFO] [stdout]    --> kernel/src/mem/paging.rs:751:15
[INFO] [stdout]     |
[INFO] [stdout] 751 | pub unsafe fn unmap(virt: u64) -> Result<Frame, MapError> {
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translate` is never used
[INFO] [stdout]    --> kernel/src/mem/paging.rs:760:8
[INFO] [stdout]     |
[INFO] [stdout] 760 | pub fn translate(virt: u64) -> Option<u64> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alloc_and_map` is never used
[INFO] [stdout]    --> kernel/src/mem/paging.rs:774:15
[INFO] [stdout]     |
[INFO] [stdout] 774 | pub unsafe fn alloc_and_map(virt: u64, flags: u64) -> Result<Frame, MapError> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unmap_and_free` is never used
[INFO] [stdout]    --> kernel/src/mem/paging.rs:789:15
[INFO] [stdout]     |
[INFO] [stdout] 789 | pub unsafe fn unmap_and_free(virt: u64) -> Result<(), MapError> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WRITE_THROUGH` is never used
[INFO] [stdout]   --> kernel/src/mem/paging.rs:70:15
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub const WRITE_THROUGH: u64 = 1 << 3;
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NO_CACHE` is never used
[INFO] [stdout]   --> kernel/src/mem/paging.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub const NO_CACHE: u64 = 1 << 4;
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ACCESSED` is never used
[INFO] [stdout]   --> kernel/src/mem/paging.rs:72:15
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub const ACCESSED: u64 = 1 << 5;
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIRTY` is never used
[INFO] [stdout]   --> kernel/src/mem/paging.rs:73:15
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub const DIRTY: u64 = 1 << 6;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GLOBAL` is never used
[INFO] [stdout]   --> kernel/src/mem/paging.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub const GLOBAL: u64 = 1 << 8;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NO_EXECUTE` is never used
[INFO] [stdout]   --> kernel/src/mem/paging.rs:76:15
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub const NO_EXECUTE: u64 = 1 << 63;
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KERNEL_PAGE` is never used
[INFO] [stdout]   --> kernel/src/mem/paging.rs:79:15
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub const KERNEL_PAGE: u64 = PRESENT | WRITABLE;
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KERNEL_READONLY` is never used
[INFO] [stdout]   --> kernel/src/mem/paging.rs:85:15
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub const KERNEL_READONLY: u64 = PRESENT;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `syscall0` is never used
[INFO] [stdout]    --> kernel/src/syscall/mod.rs:767:8
[INFO] [stdout]     |
[INFO] [stdout] 767 | pub fn syscall0(number: u64) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `syscall1` is never used
[INFO] [stdout]    --> kernel/src/syscall/mod.rs:782:8
[INFO] [stdout]     |
[INFO] [stdout] 782 | pub fn syscall1(number: u64, arg1: u64) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `syscall2` is never used
[INFO] [stdout]    --> kernel/src/syscall/mod.rs:798:8
[INFO] [stdout]     |
[INFO] [stdout] 798 | pub fn syscall2(number: u64, arg1: u64, arg2: u64) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `syscall3` is never used
[INFO] [stdout]    --> kernel/src/syscall/mod.rs:815:8
[INFO] [stdout]     |
[INFO] [stdout] 815 | pub fn syscall3(number: u64, arg1: u64, arg2: u64, arg3: u64) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `O_RDONLY` is never used
[INFO] [stdout]   --> kernel/src/syscall/mod.rs:79:15
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub const O_RDONLY: u64 = 0o0;
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `O_WRONLY` is never used
[INFO] [stdout]   --> kernel/src/syscall/mod.rs:80:15
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub const O_WRONLY: u64 = 0o1;
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `O_DIRECTORY` is never used
[INFO] [stdout]   --> kernel/src/syscall/mod.rs:89:15
[INFO] [stdout]    |
[INFO] [stdout] 89 |     pub const O_DIRECTORY: u64 = 0o200000;
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_BUF_LEN` is never used
[INFO] [stdout]   --> kernel/src/usermode/mod.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const FILE_BUF_LEN: usize = 256;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIRENT_BUF_LEN` is never used
[INFO] [stdout]   --> kernel/src/usermode/mod.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const DIRENT_BUF_LEN: usize = 512;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `FILE_BUF` is never used
[INFO] [stdout]   --> kernel/src/usermode/mod.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | static mut FILE_BUF: [u8; FILE_BUF_LEN] = [0; FILE_BUF_LEN];
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DIRENT_BUF` is never used
[INFO] [stdout]   --> kernel/src/usermode/mod.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | static mut DIRENT_BUF: [u8; DIRENT_BUF_LEN] = [0; DIRENT_BUF_LEN];
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_bytes` is never used
[INFO] [stdout]   --> kernel/src/usermode/mod.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn write_bytes(bytes: &[u8]) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demo_read_file` is never used
[INFO] [stdout]   --> kernel/src/usermode/mod.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn demo_read_file(path: &[u8]) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demo_seek_read` is never used
[INFO] [stdout]   --> kernel/src/usermode/mod.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn demo_seek_read(path: &[u8], offset: i64, whence: u64) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demo_list_dir` is never used
[INFO] [stdout]   --> kernel/src/usermode/mod.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn demo_list_dir(path: &[u8]) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demo_write_file` is never used
[INFO] [stdout]    --> kernel/src/usermode/mod.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn demo_write_file(path: &[u8], contents: &[u8]) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `user_mode_stub` is never used
[INFO] [stdout]    --> kernel/src/usermode/mod.rs:146:19
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub extern "C" fn user_mode_stub() -> ! {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "ca1586eb99a8b8cd3c12ca835391c3fde2190b8a486f7c7da4609054d9a7c6d6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ca1586eb99a8b8cd3c12ca835391c3fde2190b8a486f7c7da4609054d9a7c6d6", kill_on_drop: false }`
[INFO] [stdout] ca1586eb99a8b8cd3c12ca835391c3fde2190b8a486f7c7da4609054d9a7c6d6
