[INFO] cloning repository https://github.com/tuttlem/substrate [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tuttlem/substrate" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftuttlem%2Fsubstrate", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftuttlem%2Fsubstrate'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f9f789816f2b971708d0a9f265ca8ede19aea0ca [INFO] checking tuttlem/substrate against try#3857be5045fe74bd0f296f6f4c23db10f8857f73 for pr-156807 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftuttlem%2Fsubstrate" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/tuttlem/substrate [INFO] finished tweaking git repo https://github.com/tuttlem/substrate [INFO] tweaked toml for git repo https://github.com/tuttlem/substrate written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/tuttlem/substrate on toolchain 3857be5045fe74bd0f296f6f4c23db10f8857f73 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3857be5045fe74bd0f296f6f4c23db10f8857f73" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/tuttlem/substrate 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" "+3857be5045fe74bd0f296f6f4c23db10f8857f73" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded bootloader_api v0.11.15 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+3857be5045fe74bd0f296f6f4c23db10f8857f73" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e02170dc20def49065457aa9f4c7135308aee52279f751cb2e22d2b66fc2d71a [INFO] running `Command { std: "docker" "start" "-a" "e02170dc20def49065457aa9f4c7135308aee52279f751cb2e22d2b66fc2d71a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e02170dc20def49065457aa9f4c7135308aee52279f751cb2e22d2b66fc2d71a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e02170dc20def49065457aa9f4c7135308aee52279f751cb2e22d2b66fc2d71a", kill_on_drop: false }` [INFO] [stdout] e02170dc20def49065457aa9f4c7135308aee52279f751cb2e22d2b66fc2d71a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+3857be5045fe74bd0f296f6f4c23db10f8857f73" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8a7f7106f51bdcdeb16b2bd03700e5831126acb8f2ab333d2ef5180b4ecbfc3c [INFO] running `Command { std: "docker" "start" "-a" "8a7f7106f51bdcdeb16b2bd03700e5831126acb8f2ab333d2ef5180b4ecbfc3c", kill_on_drop: false }` [INFO] [stderr] Compiling bootloader_api v0.11.15 [INFO] [stderr] Checking volatile v0.4.6 [INFO] [stderr] Checking bit_field v0.10.3 [INFO] [stderr] Checking x86_64 v0.15.4 [INFO] [stderr] Checking kernel_core v0.1.0 (/opt/rustwide/workdir/crates/kernel-core) [INFO] [stderr] Checking host_tests v0.1.0 (/opt/rustwide/workdir/crates/test-host) [INFO] [stderr] Checking arch_x86_64 v0.1.0 (/opt/rustwide/workdir/arch/x86_64) [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> arch/x86_64/src/cpu.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | let info = unsafe { core::arch::x86_64::__cpuid(1) }; [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] --> arch/x86_64/src/irq.rs:70:16 [INFO] [stdout] | [INFO] [stdout] 70 | let info = unsafe { core::arch::x86_64::__cpuid(1) }; [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> arch/x86_64/src/cpu.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | let info = unsafe { core::arch::x86_64::__cpuid(1) }; [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] --> arch/x86_64/src/irq.rs:70:16 [INFO] [stdout] | [INFO] [stdout] 70 | let info = unsafe { core::arch::x86_64::__cpuid(1) }; [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> arch/x86_64/src/gdt.rs:81:30 [INFO] [stdout] | [INFO] [stdout] 81 | let selectors = unsafe { SELECTORS.assume_init_ref() }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> arch/x86_64/src/gdt.rs:86:30 [INFO] [stdout] | [INFO] [stdout] 86 | let selectors = unsafe { SELECTORS.assume_init_ref() }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> arch/x86_64/src/gdt.rs:91:30 [INFO] [stdout] | [INFO] [stdout] 91 | let selectors = unsafe { SELECTORS.assume_init_ref() }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> arch/x86_64/src/gdt.rs:103:19 [INFO] [stdout] | [INFO] [stdout] 103 | let tss = TSS.assume_init_mut(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> arch/x86_64/src/mm.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | MEMORY.frame_alloc.init(regions); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> arch/x86_64/src/mm.rs:113:14 [INFO] [stdout] | [INFO] [stdout] 113 | unsafe { MEMORY.frame_alloc.alloc() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> arch/x86_64/src/mm.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | MEMORY.frame_alloc.free(pa & PAGE_MASK); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> arch/x86_64/src/mm.rs:792:9 [INFO] [stdout] | [INFO] [stdout] 792 | MEMORY.frame_alloc.regions() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> arch/x86_64/src/gdt.rs:81:30 [INFO] [stdout] | [INFO] [stdout] 81 | let selectors = unsafe { SELECTORS.assume_init_ref() }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> arch/x86_64/src/gdt.rs:86:30 [INFO] [stdout] | [INFO] [stdout] 86 | let selectors = unsafe { SELECTORS.assume_init_ref() }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> arch/x86_64/src/gdt.rs:91:30 [INFO] [stdout] | [INFO] [stdout] 91 | let selectors = unsafe { SELECTORS.assume_init_ref() }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> arch/x86_64/src/gdt.rs:103:19 [INFO] [stdout] | [INFO] [stdout] 103 | let tss = TSS.assume_init_mut(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> arch/x86_64/src/mm.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | MEMORY.frame_alloc.init(regions); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> arch/x86_64/src/mm.rs:113:14 [INFO] [stdout] | [INFO] [stdout] 113 | unsafe { MEMORY.frame_alloc.alloc() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> arch/x86_64/src/mm.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | MEMORY.frame_alloc.free(pa & PAGE_MASK); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> arch/x86_64/src/mm.rs:792:9 [INFO] [stdout] | [INFO] [stdout] 792 | MEMORY.frame_alloc.regions() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking hal v0.1.0 (/opt/rustwide/workdir/crates/hal) [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> arch/x86_64/src/cpu.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | let info = unsafe { core::arch::x86_64::__cpuid(1) }; [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] --> arch/x86_64/src/irq.rs:70:16 [INFO] [stdout] | [INFO] [stdout] 70 | let info = unsafe { core::arch::x86_64::__cpuid(1) }; [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> arch/x86_64/src/gdt.rs:81:30 [INFO] [stdout] | [INFO] [stdout] 81 | let selectors = unsafe { SELECTORS.assume_init_ref() }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> arch/x86_64/src/gdt.rs:86:30 [INFO] [stdout] | [INFO] [stdout] 86 | let selectors = unsafe { SELECTORS.assume_init_ref() }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> arch/x86_64/src/gdt.rs:91:30 [INFO] [stdout] | [INFO] [stdout] 91 | let selectors = unsafe { SELECTORS.assume_init_ref() }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> arch/x86_64/src/gdt.rs:103:19 [INFO] [stdout] | [INFO] [stdout] 103 | let tss = TSS.assume_init_mut(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> arch/x86_64/src/mm.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | MEMORY.frame_alloc.init(regions); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> arch/x86_64/src/mm.rs:113:14 [INFO] [stdout] | [INFO] [stdout] 113 | unsafe { MEMORY.frame_alloc.alloc() } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> arch/x86_64/src/mm.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | MEMORY.frame_alloc.free(pa & PAGE_MASK); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> arch/x86_64/src/mm.rs:792:9 [INFO] [stdout] | [INFO] [stdout] 792 | MEMORY.frame_alloc.regions() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking kernel v0.1.0 (/opt/rustwide/workdir/kernel) [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/proc_test.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | return fail(&mut serial, "init", reason); [INFO] [stdout] | ^^^^^^^--------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/proc_test.rs:14:24 [INFO] [stdout] | [INFO] [stdout] 14 | Err(reason) => return fail(&mut serial, "create p1", reason), [INFO] [stdout] | ^^^^^^^-------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/proc_test.rs:18:24 [INFO] [stdout] | [INFO] [stdout] 18 | Err(reason) => return fail(&mut serial, "create p2", reason), [INFO] [stdout] | ^^^^^^^-------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/proc_test.rs:23:24 [INFO] [stdout] | [INFO] [stdout] 23 | Err(reason) => return fail(&mut serial, "run p1", reason), [INFO] [stdout] | ^^^^^^^----------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/proc_test.rs:27:24 [INFO] [stdout] | [INFO] [stdout] 27 | Err(reason) => return fail(&mut serial, "run p2", reason), [INFO] [stdout] | ^^^^^^^----------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/proc_test.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | return fail(&mut serial, "exit", "status"); [INFO] [stdout] | ^^^^^^^----------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/irq_test.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | return fail(&mut serial, reason); [INFO] [stdout] | ^^^^^^^------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/irq_test.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | return fail(&mut serial, reason); [INFO] [stdout] | ^^^^^^^------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/irq_test.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | return fail(&mut serial, reason); [INFO] [stdout] | ^^^^^^^------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/irq_test.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | return fail(&mut serial, reason); [INFO] [stdout] | ^^^^^^^------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/irq_test.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | return fail(&mut serial, reason); [INFO] [stdout] | ^^^^^^^------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/keyboard_test.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | return fail(&mut serial, reason); [INFO] [stdout] | ^^^^^^^------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/keyboard_test.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | return fail(&mut serial, reason); [INFO] [stdout] | ^^^^^^^------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/keyboard_test.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | return fail(&mut serial, reason); [INFO] [stdout] | ^^^^^^^------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/keyboard_test.rs:34:13 [INFO] [stdout] | [INFO] [stdout] 34 | return fail(&mut serial, reason); [INFO] [stdout] | ^^^^^^^------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/keyboard_test.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | return fail(&mut serial, reason); [INFO] [stdout] | ^^^^^^^------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/keyboard_test.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | return fail(&mut serial, reason); [INFO] [stdout] | ^^^^^^^------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/blk_test.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | return fail(&mut serial, reason); [INFO] [stdout] | ^^^^^^^------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/blk_test.rs:20:24 [INFO] [stdout] | [INFO] [stdout] 20 | Err(reason) => return fail(&mut serial, reason), [INFO] [stdout] | ^^^^^^^------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/blk_test.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | return fail(&mut serial, "irq line"); [INFO] [stdout] | ^^^^^^^----------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/blk_test.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | return fail(&mut serial, reason); [INFO] [stdout] | ^^^^^^^------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/blk_test.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | return fail(&mut serial, reason); [INFO] [stdout] | ^^^^^^^------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/blk_test.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 38 | return fail(&mut serial, reason); [INFO] [stdout] | ^^^^^^^------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/blk_test.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | return fail(&mut serial, reason); [INFO] [stdout] | ^^^^^^^------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> kernel/src/blk_test.rs:49:24 [INFO] [stdout] | [INFO] [stdout] 49 | Err(reason) => return fail(&mut serial, reason), [INFO] [stdout] | ^^^^^^^------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `wake_pid` is never read [INFO] [stdout] --> kernel/src/net.rs:1302:24 [INFO] [stdout] | [INFO] [stdout] 1302 | let mut wake_pid = 0u64; [INFO] [stdout] | ^^^^ this value is reassigned later and never used [INFO] [stdout] ... [INFO] [stdout] 1372 | wake_pid = l.accept_waiter; [INFO] [stdout] | -------------------------- `wake_pid` is overwritten here before the previous value is read [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> kernel/src/virtio_net.rs:297:5 [INFO] [stdout] | [INFO] [stdout] 297 | 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: unused variable: `req_phys` [INFO] [stdout] --> kernel/src/virtio_blk.rs:128:10 [INFO] [stdout] | [INFO] [stdout] 128 | let (req_phys, req) = dma_page()?; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_req_phys` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data_phys` [INFO] [stdout] --> kernel/src/virtio_blk.rs:129:10 [INFO] [stdout] | [INFO] [stdout] 129 | let (data_phys, data) = dma_page()?; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_data_phys` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> kernel/src/virtio_blk.rs:327:5 [INFO] [stdout] | [INFO] [stdout] 327 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> kernel/src/virtio_console.rs:290:5 [INFO] [stdout] | [INFO] [stdout] 290 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> kernel/src/main.rs:186:9 [INFO] [stdout] | [INFO] [stdout] 186 | let mut proc = match process::proc_create(init_payload::INIT_PAYLOAD) { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Spec` is never constructed [INFO] [stdout] --> kernel/src/main.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 65 | enum BootMode { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] 66 | Interactive, [INFO] [stdout] 67 | Spec, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BootMode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Pci` and `Platform` are never constructed [INFO] [stdout] --> kernel/src/device_manager.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum BusType { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] 8 | Pci, [INFO] [stdout] | ^^^ [INFO] [stdout] 9 | Virtio, [INFO] [stdout] 10 | Platform, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BusType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VIRTIO_DEVICE_NET_MODERN` is never used [INFO] [stdout] --> kernel/src/device_manager_test.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const VIRTIO_DEVICE_NET_MODERN: u16 = 0x1041; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VIRTIO_DEVICE_BLK_MODERN` is never used [INFO] [stdout] --> kernel/src/device_manager_test.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const VIRTIO_DEVICE_BLK_MODERN: u16 = 0x1042; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VIRTIO_DEVICE_CONSOLE` is never used [INFO] [stdout] --> kernel/src/device_manager_test.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const VIRTIO_DEVICE_CONSOLE: u16 = 0x1043; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> kernel/src/device_manager_test.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn run() -> ! { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_u64` is never used [INFO] [stdout] --> kernel/src/device_manager_test.rs:50:4 [INFO] [stdout] | [INFO] [stdout] 50 | fn write_u64(mut value: u64) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fail` is never used [INFO] [stdout] --> kernel/src/device_manager_test.rs:70:4 [INFO] [stdout] | [INFO] [stdout] 70 | fn fail(reason: &'static str) -> ! { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_root_path` is never used [INFO] [stdout] --> kernel/src/sysfs.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn is_root_path(path: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_root_path` is never used [INFO] [stdout] --> kernel/src/procfs.rs:47:8 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn is_root_path(path: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TCP_RST` is never used [INFO] [stdout] --> kernel/src/net.rs:41:7 [INFO] [stdout] | [INFO] [stdout] 41 | const TCP_RST: u8 = 0x04; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DriverInstance` is never constructed [INFO] [stdout] --> kernel/src/driver_registry.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct DriverInstance { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Driver` is never used [INFO] [stdout] --> kernel/src/driver_registry.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | pub trait Driver: Sync { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Binding` is never constructed [INFO] [stdout] --> kernel/src/driver_registry.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Binding { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DriverRegistry` is never constructed [INFO] [stdout] --> kernel/src/driver_registry.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | struct DriverRegistry { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> kernel/src/driver_registry.rs:29:14 [INFO] [stdout] | [INFO] [stdout] 28 | impl DriverRegistry { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] 29 | const fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `REGISTRY` is never used [INFO] [stdout] --> kernel/src/driver_registry.rs:38:8 [INFO] [stdout] | [INFO] [stdout] 38 | static REGISTRY: IrqSafeSpinLock = IrqSafeSpinLock::new(DriverRegistry::new()); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init` is never used [INFO] [stdout] --> kernel/src/driver_registry.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 40 | pub fn init() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `register` is never used [INFO] [stdout] --> kernel/src/driver_registry.rs:50:8 [INFO] [stdout] | [INFO] [stdout] 50 | pub fn register(driver: &'static dyn Driver) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bind_all` is never used [INFO] [stdout] --> kernel/src/driver_registry.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn bind_all(devices: &[Device]) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BindingIterGuard` is never constructed [INFO] [stdout] --> kernel/src/driver_registry.rs:81:12 [INFO] [stdout] | [INFO] [stdout] 81 | pub struct BindingIterGuard<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bindings` is never used [INFO] [stdout] --> kernel/src/driver_registry.rs:93:8 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn bindings() -> BindingIterGuard<'static> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VIRTIO_DEVICE_NET_MODERN` is never used [INFO] [stdout] --> kernel/src/driver_registry_test.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const VIRTIO_DEVICE_NET_MODERN: u16 = 0x1041; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VIRTIO_DEVICE_BLK_MODERN` is never used [INFO] [stdout] --> kernel/src/driver_registry_test.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const VIRTIO_DEVICE_BLK_MODERN: u16 = 0x1042; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VIRTIO_DEVICE_CONSOLE` is never used [INFO] [stdout] --> kernel/src/driver_registry_test.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const VIRTIO_DEVICE_CONSOLE: u16 = 0x1043; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VirtioBlkStub` is never constructed [INFO] [stdout] --> kernel/src/driver_registry_test.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct VirtioBlkStub; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `VIRTIO_BLK_STUB` is never used [INFO] [stdout] --> kernel/src/driver_registry_test.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | static VIRTIO_BLK_STUB: VirtioBlkStub = VirtioBlkStub; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> kernel/src/driver_registry_test.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn run() -> ! { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fail` is never used [INFO] [stdout] --> kernel/src/driver_registry_test.rs:72:4 [INFO] [stdout] | [INFO] [stdout] 72 | fn fail(reason: &'static str) -> ! { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VIRTIO_DEVICE_NET_MODERN` is never used [INFO] [stdout] --> kernel/src/virtio_blk_driver_test.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const VIRTIO_DEVICE_NET_MODERN: u16 = 0x1041; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VIRTIO_DEVICE_BLK_MODERN` is never used [INFO] [stdout] --> kernel/src/virtio_blk_driver_test.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const VIRTIO_DEVICE_BLK_MODERN: u16 = 0x1042; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VIRTIO_DEVICE_CONSOLE` is never used [INFO] [stdout] --> kernel/src/virtio_blk_driver_test.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const VIRTIO_DEVICE_CONSOLE: u16 = 0x1043; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `CHECKSUM_READY` is never used [INFO] [stdout] --> kernel/src/virtio_blk_driver_test.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | static CHECKSUM_READY: AtomicBool = AtomicBool::new(false); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `CHECKSUM` is never used [INFO] [stdout] --> kernel/src/virtio_blk_driver_test.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | static CHECKSUM: AtomicU32 = AtomicU32::new(0); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VirtioBlkDriver` is never constructed [INFO] [stdout] --> kernel/src/virtio_blk_driver_test.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | struct VirtioBlkDriver; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `VIRTIO_BLK_DRIVER` is never used [INFO] [stdout] --> kernel/src/virtio_blk_driver_test.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | static VIRTIO_BLK_DRIVER: VirtioBlkDriver = VirtioBlkDriver; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> kernel/src/virtio_blk_driver_test.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn run() -> ! { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `xor32` is never used [INFO] [stdout] --> kernel/src/virtio_blk_driver_test.rs:89:4 [INFO] [stdout] | [INFO] [stdout] 89 | fn xor32(data: &[u8; 512]) -> u32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_hex_u32` is never used [INFO] [stdout] --> kernel/src/virtio_blk_driver_test.rs:100:4 [INFO] [stdout] | [INFO] [stdout] 100 | fn write_hex_u32(mut value: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fail` is never used [INFO] [stdout] --> kernel/src/virtio_blk_driver_test.rs:120:4 [INFO] [stdout] | [INFO] [stdout] 120 | fn fail(reason: &'static str) -> ! { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `common`, `rx_hdr_phys`, `rx_hdr_virt`, and `rx_data_phys` are never read [INFO] [stdout] --> kernel/src/virtio_net.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct VirtioNet { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 44 | common: *mut CommonCfg, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | rx_hdr_phys: [u64; QUEUE_MAX as usize], [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 51 | rx_hdr_virt: [*mut u8; QUEUE_MAX as usize], [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 52 | rx_data_phys: [u64; QUEUE_MAX as usize], [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VIRTIO_DEVICE_NET_MODERN` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const VIRTIO_DEVICE_NET_MODERN: u16 = 0x1041; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VIRTIO_DEVICE_BLK_MODERN` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const VIRTIO_DEVICE_BLK_MODERN: u16 = 0x1042; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VIRTIO_DEVICE_CONSOLE` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const VIRTIO_DEVICE_CONSOLE: u16 = 0x1043; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ETH_TYPE_IPV4` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | const ETH_TYPE_IPV4: u16 = 0x0800; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IP_PROTO_UDP` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const IP_PROTO_UDP: u8 = 17; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DHCP_CLIENT_PORT` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:15:7 [INFO] [stdout] | [INFO] [stdout] 15 | const DHCP_CLIENT_PORT: u16 = 68; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DHCP_SERVER_PORT` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | const DHCP_SERVER_PORT: u16 = 67; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DHCP_MAGIC` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const DHCP_MAGIC: u32 = 0x63825363; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DHCPDISCOVER` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:19:7 [INFO] [stdout] | [INFO] [stdout] 19 | const DHCPDISCOVER: u8 = 1; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DHCPOFFER` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:20:7 [INFO] [stdout] | [INFO] [stdout] 20 | const DHCPOFFER: u8 = 2; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DHCPREQUEST` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:21:7 [INFO] [stdout] | [INFO] [stdout] 21 | const DHCPREQUEST: u8 = 3; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DHCPACK` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:22:7 [INFO] [stdout] | [INFO] [stdout] 22 | const DHCPACK: u8 = 5; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `IP_READY` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | static IP_READY: AtomicBool = AtomicBool::new(false); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `IP_ADDR` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | static IP_ADDR: AtomicU32 = AtomicU32::new(0); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `NET_ERR` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | static NET_ERR: AtomicU32 = AtomicU32::new(0); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VirtioNetDriver` is never constructed [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | struct VirtioNetDriver; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `VIRTIO_NET_DRIVER` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | static VIRTIO_NET_DRIVER: VirtioNetDriver = VirtioNetDriver; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:68:8 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn run() -> ! { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dhcp_acquire` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:141:4 [INFO] [stdout] | [INFO] [stdout] 141 | fn dhcp_acquire(dev: &mut virtio_net::VirtioNet, mac: [u8; 6]) -> Result<[u8; 4], &'static str> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wait_offer` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:179:4 [INFO] [stdout] | [INFO] [stdout] 179 | fn wait_offer( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wait_ack` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:205:4 [INFO] [stdout] | [INFO] [stdout] 205 | fn wait_ack( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_dhcp_discover` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:230:4 [INFO] [stdout] | [INFO] [stdout] 230 | fn build_dhcp_discover(out: &mut [u8], mac: [u8; 6], xid: u32) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_dhcp_request` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:241:4 [INFO] [stdout] | [INFO] [stdout] 241 | fn build_dhcp_request( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_bootp` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:260:4 [INFO] [stdout] | [INFO] [stdout] 260 | fn build_bootp(buf: &mut [u8], mac: [u8; 6], xid: u32, flags: u16) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `push_opt` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:272:4 [INFO] [stdout] | [INFO] [stdout] 272 | fn push_opt(buf: &mut [u8], mut off: usize, code: u8, data: &[u8]) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_udp_ipv4` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:280:4 [INFO] [stdout] | [INFO] [stdout] 280 | fn build_udp_ipv4( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ipv4_checksum` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:330:4 [INFO] [stdout] | [INFO] [stdout] 330 | fn ipv4_checksum(header: &[u8]) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `udp_checksum` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:344:4 [INFO] [stdout] | [INFO] [stdout] 344 | fn udp_checksum(src_ip: [u8; 4], dst_ip: [u8; 4], udp: &[u8]) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_dhcp` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:369:4 [INFO] [stdout] | [INFO] [stdout] 369 | fn parse_dhcp( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_dec` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:466:4 [INFO] [stdout] | [INFO] [stdout] 466 | fn write_dec(mut value: u8) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fail` is never used [INFO] [stdout] --> kernel/src/virtio_net_dhcp_test.rs:484:4 [INFO] [stdout] | [INFO] [stdout] 484 | fn fail(reason: &'static str) -> ! { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lookup_file` is never used [INFO] [stdout] --> kernel/src/initramfs.rs:126:8 [INFO] [stdout] | [INFO] [stdout] 126 | pub fn lookup_file(path: &[u8]) -> Result<&'static [u8], &'static str> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ext2` is never constructed [INFO] [stdout] --> kernel/src/fs/ext2/mod.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Ext2; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> kernel/src/fs/ext2/mod.rs:4:18 [INFO] [stdout] | [INFO] [stdout] 3 | impl Ext2 { [INFO] [stdout] | --------- associated function in this implementation [INFO] [stdout] 4 | pub const fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `S_IRUSR` is never used [INFO] [stdout] --> kernel/src/vfs.rs:24:7 [INFO] [stdout] | [INFO] [stdout] 24 | const S_IRUSR: u16 = 0o400; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `S_IWUSR` is never used [INFO] [stdout] --> kernel/src/vfs.rs:25:7 [INFO] [stdout] | [INFO] [stdout] 25 | const S_IWUSR: u16 = 0o200; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `S_IXUSR` is never used [INFO] [stdout] --> kernel/src/vfs.rs:26:7 [INFO] [stdout] | [INFO] [stdout] 26 | const S_IXUSR: u16 = 0o100; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `S_IRGRP` is never used [INFO] [stdout] --> kernel/src/vfs.rs:27:7 [INFO] [stdout] | [INFO] [stdout] 27 | const S_IRGRP: u16 = 0o040; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `S_IWGRP` is never used [INFO] [stdout] --> kernel/src/vfs.rs:28:7 [INFO] [stdout] | [INFO] [stdout] 28 | const S_IWGRP: u16 = 0o020; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `S_IXGRP` is never used [INFO] [stdout] --> kernel/src/vfs.rs:29:7 [INFO] [stdout] | [INFO] [stdout] 29 | const S_IXGRP: u16 = 0o010; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `S_IROTH` is never used [INFO] [stdout] --> kernel/src/vfs.rs:30:7 [INFO] [stdout] | [INFO] [stdout] 30 | const S_IROTH: u16 = 0o004; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `S_IWOTH` is never used [INFO] [stdout] --> kernel/src/vfs.rs:31:7 [INFO] [stdout] | [INFO] [stdout] 31 | const S_IWOTH: u16 = 0o002; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `S_IXOTH` is never used [INFO] [stdout] --> kernel/src/vfs.rs:32:7 [INFO] [stdout] | [INFO] [stdout] 32 | const S_IXOTH: u16 = 0o001; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_u16_le` is never used [INFO] [stdout] --> kernel/src/vfs.rs:833:4 [INFO] [stdout] | [INFO] [stdout] 833 | fn write_u16_le(dst: &mut [u8], off: usize, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_u16_le` is never used [INFO] [stdout] --> kernel/src/vfs.rs:847:4 [INFO] [stdout] | [INFO] [stdout] 847 | fn read_u16_le(src: &[u8], off: usize) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fail` is never used [INFO] [stdout] --> kernel/src/keyboard.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn fail(reason: &'static str) -> ! { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `active_vt` is never used [INFO] [stdout] --> kernel/src/tty.rs:96:8 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn active_vt() -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> kernel/src/read_test.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn run() -> ! { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fail` is never used [INFO] [stdout] --> kernel/src/read_test.rs:42:4 [INFO] [stdout] | [INFO] [stdout] 42 | fn fail(reason: &'static str) -> ! { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `tid` and `stack_top` are never read [INFO] [stdout] --> kernel/src/kthread.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 18 | struct Thread { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 19 | used: bool, [INFO] [stdout] 20 | tid: ThreadId, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | stack_top: u64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Thread` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `preempt_disable` is never used [INFO] [stdout] --> kernel/src/kthread.rs:223:8 [INFO] [stdout] | [INFO] [stdout] 223 | pub fn preempt_disable() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `preempt_enable` is never used [INFO] [stdout] --> kernel/src/kthread.rs:227:8 [INFO] [stdout] | [INFO] [stdout] 227 | pub fn preempt_enable() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `yield_now` is never used [INFO] [stdout] --> kernel/src/kthread.rs:231:8 [INFO] [stdout] | [INFO] [stdout] 231 | pub fn yield_now() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `stack_top_of` is never used [INFO] [stdout] --> kernel/src/kthread.rs:257:8 [INFO] [stdout] | [INFO] [stdout] 257 | pub fn stack_top_of(tid: ThreadId) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ScheduleReason` is never used [INFO] [stdout] --> kernel/src/sched.rs:22:10 [INFO] [stdout] | [INFO] [stdout] 22 | pub enum ScheduleReason { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `remove_pid` is never used [INFO] [stdout] --> kernel/src/sched.rs:139:8 [INFO] [stdout] | [INFO] [stdout] 106 | impl Scheduler { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 139 | fn remove_pid(&mut self, pid: u64) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `preempt_disable` is never used [INFO] [stdout] --> kernel/src/sched.rs:438:8 [INFO] [stdout] | [INFO] [stdout] 438 | pub fn preempt_disable() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `preempt_enable` is never used [INFO] [stdout] --> kernel/src/sched.rs:442:8 [INFO] [stdout] | [INFO] [stdout] 442 | pub fn preempt_enable() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `block_current` is never used [INFO] [stdout] --> kernel/src/sched.rs:474:8 [INFO] [stdout] | [INFO] [stdout] 474 | pub fn block_current() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `stop_pid` is never used [INFO] [stdout] --> kernel/src/sched.rs:511:8 [INFO] [stdout] | [INFO] [stdout] 511 | pub fn stop_pid(pid: u64) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `schedule` is never used [INFO] [stdout] --> kernel/src/sched.rs:531:8 [INFO] [stdout] | [INFO] [stdout] 531 | pub fn schedule(_reason: ScheduleReason) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ENOSYS` is never used [INFO] [stdout] --> kernel/src/syscall.rs:90:7 [INFO] [stdout] | [INFO] [stdout] 90 | const ENOSYS: i64 = 38; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `O_WRONLY` is never used [INFO] [stdout] --> kernel/src/syscall.rs:110:7 [INFO] [stdout] | [INFO] [stdout] 110 | const O_WRONLY: u64 = 0x1; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `reset_exit_status` is never used [INFO] [stdout] --> kernel/src/syscall.rs:302:8 [INFO] [stdout] | [INFO] [stdout] 302 | pub fn reset_exit_status() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `path_is_dir` is never used [INFO] [stdout] --> kernel/src/syscall.rs:1703:4 [INFO] [stdout] | [INFO] [stdout] 1703 | fn path_is_dir(path: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `path_is_file` is never used [INFO] [stdout] --> kernel/src/syscall.rs:1716:4 [INFO] [stdout] | [INFO] [stdout] 1716 | fn path_is_file(path: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `counts_snapshot` is never used [INFO] [stdout] --> kernel/src/irq.rs:83:8 [INFO] [stdout] | [INFO] [stdout] 83 | pub fn counts_snapshot() -> Result, &'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `exit_status` is never read [INFO] [stdout] --> kernel/src/process.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 160 | pub struct Process { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 165 | pub exit_status: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `offset` is never read [INFO] [stdout] --> kernel/src/process.rs:278:9 [INFO] [stdout] | [INFO] [stdout] 276 | pub struct FileDescSnapshot { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] 277 | pub kind: FileDescKind, [INFO] [stdout] 278 | pub offset: usize, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FileDescSnapshot` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `proc_run` is never used [INFO] [stdout] --> kernel/src/process.rs:324:8 [INFO] [stdout] | [INFO] [stdout] 324 | pub fn proc_run(proc: &mut Process) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `proc_wait` is never used [INFO] [stdout] --> kernel/src/process.rs:339:8 [INFO] [stdout] | [INFO] [stdout] 339 | pub fn proc_wait(proc: &Process) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `foreground_pgid` is never used [INFO] [stdout] --> kernel/src/process.rs:357:8 [INFO] [stdout] | [INFO] [stdout] 357 | pub fn foreground_pgid() -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `controlling_tty_sid` is never used [INFO] [stdout] --> kernel/src/process.rs:390:8 [INFO] [stdout] | [INFO] [stdout] 390 | pub fn controlling_tty_sid() -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_foreground_pid` is never used [INFO] [stdout] --> kernel/src/process.rs:455:8 [INFO] [stdout] | [INFO] [stdout] 455 | pub fn set_foreground_pid(pid: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `foreground_pid` is never used [INFO] [stdout] --> kernel/src/process.rs:460:8 [INFO] [stdout] | [INFO] [stdout] 460 | pub fn foreground_pid() -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `current_ruid` is never used [INFO] [stdout] --> kernel/src/process.rs:990:8 [INFO] [stdout] | [INFO] [stdout] 990 | pub fn current_ruid() -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `first_stopped_in_group` is never used [INFO] [stdout] --> kernel/src/process.rs:1524:8 [INFO] [stdout] | [INFO] [stdout] 1524 | pub fn first_stopped_in_group(pgid: u64) -> Option<(u64, u64, u64, u64)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fd_alloc_ref` is never used [INFO] [stdout] --> kernel/src/process.rs:1766:8 [INFO] [stdout] | [INFO] [stdout] 1766 | pub fn fd_alloc_ref(pid: u64, start: usize, desc: FileDescRef) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `session_mesg_for_pid` is never used [INFO] [stdout] --> kernel/src/process.rs:2145:8 [INFO] [stdout] | [INFO] [stdout] 2145 | pub fn session_mesg_for_pid(pid: u64) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `bar`, `offset`, and `length` are never read [INFO] [stdout] --> kernel/src/pci.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct VirtioPciRegion { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 17 | pub bar: u8, [INFO] [stdout] | ^^^ [INFO] [stdout] 18 | pub offset: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 19 | pub length: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VirtioPciRegion` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `common`, `notify`, `isr`, `device`, and `notify_mult` are never read [INFO] [stdout] --> kernel/src/pci.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct VirtioPciDeviceInfo { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | pub common: VirtioPciRegion, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 28 | pub notify: VirtioPciRegion, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 29 | pub isr: VirtioPciRegion, [INFO] [stdout] | ^^^ [INFO] [stdout] 30 | pub device: VirtioPciRegion, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 31 | pub notify_mult: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VirtioPciDeviceInfo` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PCI_INTERRUPT_LINE` is never used [INFO] [stdout] --> kernel/src/pci.rs:42:7 [INFO] [stdout] | [INFO] [stdout] 42 | const PCI_INTERRUPT_LINE: u8 = 0x3c; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `interrupt_line` is never used [INFO] [stdout] --> kernel/src/pci.rs:169:8 [INFO] [stdout] | [INFO] [stdout] 169 | pub fn interrupt_line(dev: &PciDevice) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_lspci` is never used [INFO] [stdout] --> kernel/src/pci.rs:267:8 [INFO] [stdout] | [INFO] [stdout] 267 | pub fn write_lspci(out: &mut [u8]) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `append_byte` is never used [INFO] [stdout] --> kernel/src/pci.rs:350:4 [INFO] [stdout] | [INFO] [stdout] 350 | fn append_byte(out: &mut [u8], idx: &mut usize, byte: u8) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `append_bytes` is never used [INFO] [stdout] --> kernel/src/pci.rs:359:4 [INFO] [stdout] | [INFO] [stdout] 359 | fn append_bytes(out: &mut [u8], idx: &mut usize, bytes: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `append_hex_nibble` is never used [INFO] [stdout] --> kernel/src/pci.rs:368:4 [INFO] [stdout] | [INFO] [stdout] 368 | fn append_hex_nibble(out: &mut [u8], idx: &mut usize, value: u8) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `append_hex_u8` is never used [INFO] [stdout] --> kernel/src/pci.rs:374:4 [INFO] [stdout] | [INFO] [stdout] 374 | fn append_hex_u8(out: &mut [u8], idx: &mut usize, value: u8) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `append_hex_u16` is never used [INFO] [stdout] --> kernel/src/pci.rs:378:4 [INFO] [stdout] | [INFO] [stdout] 378 | fn append_hex_u16(out: &mut [u8], idx: &mut usize, value: u16) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ELF_PAYLOAD` is never used [INFO] [stdout] --> kernel/src/elf_payload.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | pub const ELF_PAYLOAD: &[u8] = &[ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fail` is never used [INFO] [stdout] --> kernel/src/elf_loader.rs:162:8 [INFO] [stdout] | [INFO] [stdout] 162 | pub fn fail(reason: &'static str) -> ! { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> kernel/src/proc_test.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn run() -> ! { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fail` is never used [INFO] [stdout] --> kernel/src/proc_test.rs:38:4 [INFO] [stdout] | [INFO] [stdout] 38 | fn fail(serial: &mut hal::Serial, step: &'static str, reason: &'static str) -> ! { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IRQ_LINE` is never used [INFO] [stdout] --> kernel/src/irq_test.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const IRQ_LINE: u8 = 4; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IRQ_VECTOR_BASE` is never used [INFO] [stdout] --> kernel/src/irq_test.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const IRQ_VECTOR_BASE: u8 = 0x50; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IRQ_VECTOR` is never used [INFO] [stdout] --> kernel/src/irq_test.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const IRQ_VECTOR: u8 = IRQ_VECTOR_BASE + IRQ_LINE; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IRQ_LINES` is never used [INFO] [stdout] --> kernel/src/irq_test.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const IRQ_LINES: u8 = 24; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `IRQ_FIRED` is never used [INFO] [stdout] --> kernel/src/irq_test.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | static IRQ_FIRED: AtomicBool = AtomicBool::new(false); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPIN_LIMIT` is never used [INFO] [stdout] --> kernel/src/irq_test.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const SPIN_LIMIT: u64 = 50_000_000; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> kernel/src/irq_test.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn run() -> ! { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `irq_handler` is never used [INFO] [stdout] --> kernel/src/irq_test.rs:54:4 [INFO] [stdout] | [INFO] [stdout] 54 | fn irq_handler(_line: u8, ctx: *mut u8) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `irq_flag_ptr` is never used [INFO] [stdout] --> kernel/src/irq_test.rs:61:4 [INFO] [stdout] | [INFO] [stdout] 61 | fn irq_flag_ptr() -> *mut u8 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fail` is never used [INFO] [stdout] --> kernel/src/irq_test.rs:65:4 [INFO] [stdout] | [INFO] [stdout] 65 | fn fail(serial: &mut hal::Serial, reason: &'static str) -> ! { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IRQ_LINE` is never used [INFO] [stdout] --> kernel/src/keyboard_test.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const IRQ_LINE: u8 = 1; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IRQ_VECTOR_BASE` is never used [INFO] [stdout] --> kernel/src/keyboard_test.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const IRQ_VECTOR_BASE: u8 = 0x50; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IRQ_LINES` is never used [INFO] [stdout] --> kernel/src/keyboard_test.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const IRQ_LINES: u8 = 24; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `KEY_READY` is never used [INFO] [stdout] --> kernel/src/keyboard_test.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | static KEY_READY: AtomicBool = AtomicBool::new(false); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `LAST_CHAR` is never used [INFO] [stdout] --> kernel/src/keyboard_test.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | static LAST_CHAR: AtomicU8 = AtomicU8::new(0); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPIN_LIMIT` is never used [INFO] [stdout] --> kernel/src/keyboard_test.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const SPIN_LIMIT: u64 = 100_000_000; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> kernel/src/keyboard_test.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn run() -> ! { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `irq_handler` is never used [INFO] [stdout] --> kernel/src/keyboard_test.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 66 | fn irq_handler(_line: u8, _ctx: *mut u8) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fail` is never used [INFO] [stdout] --> kernel/src/keyboard_test.rs:80:4 [INFO] [stdout] | [INFO] [stdout] 80 | fn fail(serial: &mut hal::Serial, reason: &'static str) -> ! { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `pci_dev` is never read [INFO] [stdout] --> kernel/src/virtio_blk.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct VirtioBlk { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 78 | pci_dev: PciDevice, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `register_irq` is never used [INFO] [stdout] --> kernel/src/virtio_blk.rs:174:8 [INFO] [stdout] | [INFO] [stdout] 174 | pub fn register_irq(irq_line: u8) -> Result<(), &'static str> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_sector0` is never used [INFO] [stdout] --> kernel/src/virtio_blk.rs:179:8 [INFO] [stdout] | [INFO] [stdout] 179 | pub fn read_sector0(dev: &mut VirtioBlk) -> Result<[u8; 512], &'static str> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `irq_line` is never used [INFO] [stdout] --> kernel/src/virtio_blk.rs:288:8 [INFO] [stdout] | [INFO] [stdout] 288 | pub fn irq_line(dev: &VirtioBlk) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `irq_handler` is never used [INFO] [stdout] --> kernel/src/virtio_blk.rs:292:4 [INFO] [stdout] | [INFO] [stdout] 292 | fn irq_handler(_line: u8, _ctx: *mut u8) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dev_isr` is never used [INFO] [stdout] --> kernel/src/virtio_blk.rs:332:4 [INFO] [stdout] | [INFO] [stdout] 332 | fn dev_isr() -> *mut u8 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IRQ_VECTOR_BASE` is never used [INFO] [stdout] --> kernel/src/blk_test.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const IRQ_VECTOR_BASE: u8 = 0x50; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IRQ_LINES` is never used [INFO] [stdout] --> kernel/src/blk_test.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const IRQ_LINES: u8 = 24; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> kernel/src/blk_test.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn run() -> ! { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fnv1a32` is never used [INFO] [stdout] --> kernel/src/blk_test.rs:59:4 [INFO] [stdout] | [INFO] [stdout] 59 | fn fnv1a32(data: &[u8]) -> u32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_hex_u32` is never used [INFO] [stdout] --> kernel/src/blk_test.rs:68:4 [INFO] [stdout] | [INFO] [stdout] 68 | fn write_hex_u32(_serial: &mut hal::Serial, value: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fail` is never used [INFO] [stdout] --> kernel/src/blk_test.rs:79:4 [INFO] [stdout] | [INFO] [stdout] 79 | fn fail(serial: &mut hal::Serial, reason: &'static str) -> ! { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> kernel/src/virtio_pci_test.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn run() -> ! { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_u64` is never used [INFO] [stdout] --> kernel/src/virtio_pci_test.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn write_u64(mut value: u64) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fail` is never used [INFO] [stdout] --> kernel/src/virtio_pci_test.rs:36:4 [INFO] [stdout] | [INFO] [stdout] 36 | fn fail(reason: &'static str) -> ! { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `inject_used_for_test` and `free_count` are never used [INFO] [stdout] --> kernel/src/virtqueue.rs:166:12 [INFO] [stdout] | [INFO] [stdout] 37 | impl VirtQueueSplit { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn inject_used_for_test(&mut self, id: u16, len: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | pub fn free_count(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> kernel/src/virtq_test.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn run() -> ! { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fail` is never used [INFO] [stdout] --> kernel/src/virtq_test.rs:55:4 [INFO] [stdout] | [INFO] [stdout] 55 | fn fail(reason: &'static str) -> ! { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STATUS_ACKNOWLEDGE` is never used [INFO] [stdout] --> kernel/src/virtio_negotiate_test.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const STATUS_ACKNOWLEDGE: u8 = 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STATUS_DRIVER` is never used [INFO] [stdout] --> kernel/src/virtio_negotiate_test.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const STATUS_DRIVER: u8 = 2; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STATUS_DRIVER_OK` is never used [INFO] [stdout] --> kernel/src/virtio_negotiate_test.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const STATUS_DRIVER_OK: u8 = 4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STATUS_FEATURES_OK` is never used [INFO] [stdout] --> kernel/src/virtio_negotiate_test.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const STATUS_FEATURES_OK: u8 = 8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VIRTIO_F_VERSION_1` is never used [INFO] [stdout] --> kernel/src/virtio_negotiate_test.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const VIRTIO_F_VERSION_1: u64 = 1 << 32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CommonCfg` is never constructed [INFO] [stdout] --> kernel/src/virtio_negotiate_test.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | struct CommonCfg { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> kernel/src/virtio_negotiate_test.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn run() -> ! { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_features` is never used [INFO] [stdout] --> kernel/src/virtio_negotiate_test.rs:84:4 [INFO] [stdout] | [INFO] [stdout] 84 | fn read_features(common: *mut CommonCfg) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_features` is never used [INFO] [stdout] --> kernel/src/virtio_negotiate_test.rs:94:4 [INFO] [stdout] | [INFO] [stdout] 94 | fn write_features(common: *mut CommonCfg, features: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_volatile` is never used [INFO] [stdout] --> kernel/src/virtio_negotiate_test.rs:103:4 [INFO] [stdout] | [INFO] [stdout] 103 | fn write_volatile(ptr: *mut T, value: T) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_volatile` is never used [INFO] [stdout] --> kernel/src/virtio_negotiate_test.rs:109:4 [INFO] [stdout] | [INFO] [stdout] 109 | fn read_volatile(ptr: *const T) -> T { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fail` is never used [INFO] [stdout] --> kernel/src/virtio_negotiate_test.rs:113:4 [INFO] [stdout] | [INFO] [stdout] 113 | fn fail(reason: &'static str) -> ! { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> kernel/src/initramfs.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | STATE.write(Initramfs { payload, entries }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> kernel/src/initramfs.rs:278:21 [INFO] [stdout] | [INFO] [stdout] 278 | Ok(unsafe { STATE.assume_init_ref() }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> kernel/src/vfs.rs:934:11 [INFO] [stdout] | [INFO] [stdout] 934 | f(BLK_DEV.assume_init_mut()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> kernel/src/vfs.rs:945:13 [INFO] [stdout] | [INFO] [stdout] 945 | BLK_DEV.write(virtio_blk::init()?); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> kernel/src/sched.rs:379:49 [INFO] [stdout] | [INFO] [stdout] 379 | kernel_return_rip: task_exit_trampoline 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] 379 | kernel_return_rip: task_exit_trampoline as *const () as usize as u64, [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> kernel/src/irq.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | REGISTRY.write(entries); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> kernel/src/irq.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | COUNTS.write(counts); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable [INFO] [stdout] | [INFO] [stdout] 17 - static mut COUNTS: core::mem::MaybeUninit<[AtomicU64; IRQ_LINES]> = core::mem::MaybeUninit::uninit(); [INFO] [stdout] 17 + static COUNTS: core::mem::MaybeUninit<[AtomicU64; IRQ_LINES]> = core::mem::MaybeUninit::uninit(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> kernel/src/irq.rs:75:18 [INFO] [stdout] | [INFO] [stdout] 75 | Ok(&mut *REGISTRY.as_mut_ptr()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> kernel/src/irq.rs:105:14 [INFO] [stdout] | [INFO] [stdout] 105 | Ok(&*COUNTS.as_ptr()) [INFO] [stdout] | ^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable [INFO] [stdout] | [INFO] [stdout] 17 - static mut COUNTS: core::mem::MaybeUninit<[AtomicU64; IRQ_LINES]> = core::mem::MaybeUninit::uninit(); [INFO] [stdout] 17 + static COUNTS: core::mem::MaybeUninit<[AtomicU64; IRQ_LINES]> = core::mem::MaybeUninit::uninit(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.94s [INFO] running `Command { std: "docker" "inspect" "8a7f7106f51bdcdeb16b2bd03700e5831126acb8f2ab333d2ef5180b4ecbfc3c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8a7f7106f51bdcdeb16b2bd03700e5831126acb8f2ab333d2ef5180b4ecbfc3c", kill_on_drop: false }` [INFO] [stdout] 8a7f7106f51bdcdeb16b2bd03700e5831126acb8f2ab333d2ef5180b4ecbfc3c