[INFO] cloning repository https://github.com/Leonmmcoset/LeonOS
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Leonmmcoset/LeonOS" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLeonmmcoset%2FLeonOS", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLeonmmcoset%2FLeonOS'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 50f12ec80c29289bb3d3b64fc6a1f9c5db0b3340
[INFO] checking Leonmmcoset/LeonOS against e3d12f3322cb00126b2208c6b9df3ac4467951f5 for pr-159706
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLeonmmcoset%2FLeonOS" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:   4% (12/276)
Updating files:   5% (14/276)
Updating files:   6% (17/276)
Updating files:   7% (20/276)
Updating files:   8% (23/276)
Updating files:   9% (25/276)
Updating files:  10% (28/276)
Updating files:  11% (31/276)
Updating files:  12% (34/276)
Updating files:  13% (36/276)
Updating files:  14% (39/276)
Updating files:  15% (42/276)
Updating files:  16% (45/276)
Updating files:  17% (47/276)
Updating files:  18% (50/276)
Updating files:  19% (53/276)
Updating files:  20% (56/276)
Updating files:  21% (58/276)
Updating files:  22% (61/276)
Updating files:  23% (64/276)
Updating files:  24% (67/276)
Updating files:  25% (69/276)
Updating files:  26% (72/276)
Updating files:  27% (75/276)
Updating files:  28% (78/276)
Updating files:  29% (81/276)
Updating files:  30% (83/276)
Updating files:  31% (86/276)
Updating files:  32% (89/276)
Updating files:  33% (92/276)
Updating files:  34% (94/276)
Updating files:  35% (97/276)
Updating files:  36% (100/276)
Updating files:  37% (103/276)
Updating files:  38% (105/276)
Updating files:  39% (108/276)
Updating files:  40% (111/276)
Updating files:  41% (114/276)
Updating files:  42% (116/276)
Updating files:  43% (119/276)
Updating files:  44% (122/276)
Updating files:  45% (125/276)
Updating files:  46% (127/276)
Updating files:  47% (130/276)
Updating files:  48% (133/276)
Updating files:  49% (136/276)
Updating files:  50% (138/276)
Updating files:  51% (141/276)
Updating files:  52% (144/276)
Updating files:  53% (147/276)
Updating files:  54% (150/276)
Updating files:  55% (152/276)
Updating files:  56% (155/276)
Updating files:  57% (158/276)
Updating files:  58% (161/276)
Updating files:  59% (163/276)
Updating files:  60% (166/276)
Updating files:  61% (169/276)
Updating files:  62% (172/276)
Updating files:  63% (174/276)
Updating files:  64% (177/276)
Updating files:  65% (180/276)
Updating files:  66% (183/276)
Updating files:  67% (185/276)
Updating files:  68% (188/276)
Updating files:  69% (191/276)
Updating files:  70% (194/276)
Updating files:  71% (196/276)
Updating files:  72% (199/276)
Updating files:  73% (202/276)
Updating files:  74% (205/276)
Updating files:  75% (207/276)
Updating files:  76% (210/276)
Updating files:  77% (213/276)
Updating files:  78% (216/276)
Updating files:  79% (219/276)
Updating files:  80% (221/276)
Updating files:  81% (224/276)
Updating files:  82% (227/276)
Updating files:  83% (230/276)
Updating files:  84% (232/276)
Updating files:  85% (235/276)
Updating files:  86% (238/276)
Updating files:  87% (241/276)
Updating files:  88% (243/276)
Updating files:  89% (246/276)
Updating files:  90% (249/276)
Updating files:  91% (252/276)
Updating files:  92% (254/276)
Updating files:  93% (257/276)
Updating files:  94% (260/276)
Updating files:  95% (263/276)
Updating files:  96% (265/276)
Updating files:  97% (268/276)
Updating files:  98% (271/276)
Updating files:  99% (274/276)
Updating files: 100% (276/276)
Updating files: 100% (276/276), done.
[INFO] started tweaking git repo https://github.com/Leonmmcoset/LeonOS
[INFO] finished tweaking git repo https://github.com/Leonmmcoset/LeonOS
[INFO] tweaked toml for git repo https://github.com/Leonmmcoset/LeonOS written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Leonmmcoset/LeonOS on toolchain e3d12f3322cb00126b2208c6b9df3ac4467951f5
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Leonmmcoset/LeonOS 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" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /workspace/builds/worker-6-tc2/source/mbr/Cargo.toml
[INFO] [stderr] workspace: /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /workspace/builds/worker-6-tc2/source/common/Cargo.toml
[INFO] [stderr] workspace: /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /workspace/builds/worker-6-tc2/source/rrt/Cargo.toml
[INFO] [stderr] workspace: /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded volatile v0.2.7
[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:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] a2a04e9dab1e535587f4ce0bf30087a39d7c4b86570f2141183713cbc5bbbf13
[INFO] running `Command { std: "docker" "start" "a2a04e9dab1e535587f4ce0bf30087a39d7c4b86570f2141183713cbc5bbbf13", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a2a04e9dab1e535587f4ce0bf30087a39d7c4b86570f2141183713cbc5bbbf13", 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" "a2a04e9dab1e535587f4ce0bf30087a39d7c4b86570f2141183713cbc5bbbf13" "/opt/rustwide/cargo-home/bin/cargo" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a2a04e9dab1e535587f4ce0bf30087a39d7c4b86570f2141183713cbc5bbbf13", 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" "a2a04e9dab1e535587f4ce0bf30087a39d7c4b86570f2141183713cbc5bbbf13" "/opt/rustwide/cargo-home/bin/cargo" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /opt/rustwide/workdir/mbr/Cargo.toml
[INFO] [stderr] workspace: /opt/rustwide/workdir/Cargo.toml
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /opt/rustwide/workdir/common/Cargo.toml
[INFO] [stderr] workspace: /opt/rustwide/workdir/Cargo.toml
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /opt/rustwide/workdir/rrt/Cargo.toml
[INFO] [stderr] workspace: /opt/rustwide/workdir/Cargo.toml
[INFO] [stderr]    Compiling autocfg v1.2.0
[INFO] [stderr]     Checking volatile v0.2.7
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling kernel v0.1.0 (/opt/rustwide/workdir/kernel)
[INFO] [stderr]     Checking spin v0.5.2
[INFO] [stderr]    Compiling user v0.1.0 (/opt/rustwide/workdir/user)
[INFO] [stderr]    Compiling grep v0.1.0 (/opt/rustwide/workdir/grep)
[INFO] [stderr]    Compiling leonos v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling echo v0.1.0 (/opt/rustwide/workdir/echo)
[INFO] [stderr]    Compiling loader v0.1.0 (/opt/rustwide/workdir/loader)
[INFO] [stderr]    Compiling cat v0.1.0 (/opt/rustwide/workdir/cat)
[INFO] [stderr]    Compiling mbr v0.1.0 (/opt/rustwide/workdir/mbr)
[INFO] [stderr]    Compiling loader2 v0.1.0 (/opt/rustwide/workdir/loader2)
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking os_in_rust_common v0.1.0 (/opt/rustwide/workdir/common)
[INFO] [stderr]    Compiling const_format_proc_macros v0.2.34
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> common/src/dap.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `arch::asm`
[INFO] [stdout]  --> common/src/gdt.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::{arch::asm, mem::size_of, ptr::addr_of};
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> common/src/reg_cr0.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> common/src/reg_cr3.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `printkln`
[INFO] [stdout]  --> common/src/reg_cr3.rs:7:32
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::{paging::PageTable, printkln};
[INFO] [stdout]   |                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> common/src/selector.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> common/src/instruction.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `self`
[INFO] [stdout]  --> common/src/utils.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::fmt::{self, Error};
[INFO] [stdout]   |                 ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::fmt::Write`
[INFO] [stdout]  --> common/src/utils.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use core::fmt::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `Div`, and `Sub`
[INFO] [stdout]  --> common/src/utils.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::ops::{Add, Div, Sub};
[INFO] [stdout]   |                 ^^^  ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ASSERT`, `MY_PANIC`, and `printkln`
[INFO] [stdout]  --> common/src/utils.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{printkln, ASSERT, MY_PANIC};
[INFO] [stdout]   |             ^^^^^^^^  ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `arch::asm`
[INFO] [stdout]  --> common/src/idt.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::{arch::asm, mem::size_of};
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gdt::DescriptorType`
[INFO] [stdout]  --> common/src/idt.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{constants, gdt::DescriptorType, racy_cell::RacyCell, sd::SegmentDPL, selector::SegmentSelector, utils};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `arch::asm`
[INFO] [stdout]  --> common/src/port.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::{arch::asm, marker::PhantomData};
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::printk`
[INFO] [stdout]  --> common/src/port.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::printk;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `idt::InterruptTypeEnum` and `printkln`
[INFO] [stdout]  --> common/src/pic.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{constants, idt::InterruptTypeEnum, port::Port, printkln, utils};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^^^^^^^              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `arch::asm` and `mem::size_of`
[INFO] [stdout]  --> common/src/bios_mem.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::{arch::asm, mem::size_of};
[INFO] [stdout]   |            ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::racy_cell::RacyCell`
[INFO] [stdout]  --> common/src/bios_mem.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::racy_cell::RacyCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MY_PANIC`
[INFO] [stdout]  --> common/src/linked_list.rs:2:31
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{printkln, ASSERT, MY_PANIC, printk};
[INFO] [stdout]   |                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> common/src/reg_eflags.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `printkln`
[INFO] [stdout]  --> common/src/domain.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{printk, printkln};
[INFO] [stdout]   |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> common/src/dap.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `arch::asm`
[INFO] [stdout]  --> common/src/gdt.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::{arch::asm, mem::size_of, ptr::addr_of};
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> common/src/reg_cr0.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> common/src/reg_cr3.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `printkln`
[INFO] [stdout]  --> common/src/reg_cr3.rs:7:32
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::{paging::PageTable, printkln};
[INFO] [stdout]   |                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> common/src/selector.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> common/src/instruction.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `self`
[INFO] [stdout]  --> common/src/utils.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::fmt::{self, Error};
[INFO] [stdout]   |                 ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::fmt::Write`
[INFO] [stdout]  --> common/src/utils.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use core::fmt::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `Div`, and `Sub`
[INFO] [stdout]  --> common/src/utils.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::ops::{Add, Div, Sub};
[INFO] [stdout]   |                 ^^^  ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ASSERT`, `MY_PANIC`, and `printkln`
[INFO] [stdout]  --> common/src/utils.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{printkln, ASSERT, MY_PANIC};
[INFO] [stdout]   |             ^^^^^^^^  ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `arch::asm`
[INFO] [stdout]  --> common/src/idt.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::{arch::asm, mem::size_of};
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gdt::DescriptorType`
[INFO] [stdout]  --> common/src/idt.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{constants, gdt::DescriptorType, racy_cell::RacyCell, sd::SegmentDPL, selector::SegmentSelector, utils};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `arch::asm`
[INFO] [stdout]  --> common/src/port.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::{arch::asm, marker::PhantomData};
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::printk`
[INFO] [stdout]  --> common/src/port.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::printk;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `idt::InterruptTypeEnum` and `printkln`
[INFO] [stdout]  --> common/src/pic.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{constants, idt::InterruptTypeEnum, port::Port, printkln, utils};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^^^^^^^              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `arch::asm` and `mem::size_of`
[INFO] [stdout]  --> common/src/bios_mem.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::{arch::asm, mem::size_of};
[INFO] [stdout]   |            ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::racy_cell::RacyCell`
[INFO] [stdout]  --> common/src/bios_mem.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::racy_cell::RacyCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MY_PANIC`
[INFO] [stdout]  --> common/src/linked_list.rs:2:31
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{printkln, ASSERT, MY_PANIC, printk};
[INFO] [stdout]   |                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> common/src/reg_eflags.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `printkln`
[INFO] [stdout]  --> common/src/domain.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{printk, printkln};
[INFO] [stdout]   |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `const_mut_refs` has been stable since 1.83.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> common/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(const_mut_refs)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `const_mut_refs` has been stable since 1.83.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> common/src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(const_mut_refs)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lba`
[INFO] [stdout]    --> common/src/dap.rs:106:18
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn load_disk(lba: u64, num_sec: u16, mem_addr: u32) {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_lba`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_sec`
[INFO] [stdout]    --> common/src/dap.rs:106:28
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn load_disk(lba: u64, num_sec: u16, mem_addr: u32) {
[INFO] [stdout]     |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_sec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mem_addr`
[INFO] [stdout]    --> common/src/dap.rs:106:42
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn load_disk(lba: u64, num_sec: u16, mem_addr: u32) {
[INFO] [stdout]     |                                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mem_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> common/src/vga.rs:283:9
[INFO] [stdout]     |
[INFO] [stdout] 283 |         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: variable does not need to be mutable
[INFO] [stdout]    --> common/src/vga.rs:279:13
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let mut cursor_command_port = Port::<u8>::new(0x3D4);
[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: variable does not need to be mutable
[INFO] [stdout]    --> common/src/vga.rs:280:13
[INFO] [stdout]     |
[INFO] [stdout] 280 |         let mut cursor_data_port = Port::<u8>::new(0x3D5);
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> common/src/vga.rs:308:13
[INFO] [stdout]     |
[INFO] [stdout] 308 |             unsafe {
[INFO] [stdout]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> common/src/vga.rs:305:17
[INFO] [stdout]     |
[INFO] [stdout] 305 |             let mut cursor_command_port = Port::<u8>::new(0x3D4);
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> common/src/vga.rs:306:17
[INFO] [stdout]     |
[INFO] [stdout] 306 |             let mut cursor_data_port = Port::<u8>::new(0x3D5);
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> common/src/gdt.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     unsafe { addr_of!(GDT) }
[INFO] [stdout]    |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gdt_addr`
[INFO] [stdout]   --> common/src/gdt.rs:40:26
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn load_gdtr_by_addr(gdt_addr: *const GlobalDescriptorTable) {
[INFO] [stdout]    |                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gdt_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lba`
[INFO] [stdout]    --> common/src/dap.rs:106:18
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn load_disk(lba: u64, num_sec: u16, mem_addr: u32) {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_lba`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_sec`
[INFO] [stdout]    --> common/src/dap.rs:106:28
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn load_disk(lba: u64, num_sec: u16, mem_addr: u32) {
[INFO] [stdout]     |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_sec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mem_addr`
[INFO] [stdout]    --> common/src/dap.rs:106:42
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn load_disk(lba: u64, num_sec: u16, mem_addr: u32) {
[INFO] [stdout]     |                                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mem_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reg`
[INFO] [stdout]   --> common/src/reg_cr0.rs:70:15
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn set_on(reg: CR0) -> u32 {
[INFO] [stdout]    |               ^^^ help: if this is intentional, prefix it with an underscore: `_reg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reg`
[INFO] [stdout]   --> common/src/reg_cr0.rs:88:16
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn set_off(reg: CR0) -> u32{
[INFO] [stdout]    |                ^^^ help: if this is intentional, prefix it with an underscore: `_reg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]   --> common/src/reg_cr0.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn set_cr0(val: u32) {
[INFO] [stdout]    |            ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vaddr`
[INFO] [stdout]    --> common/src/instruction.rs:119:24
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn invalidate_page(vaddr: usize) {
[INFO] [stdout]     |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_vaddr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `esp`
[INFO] [stdout]    --> common/src/instruction.rs:137:16
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn set_esp(esp: u32) {
[INFO] [stdout]     |                ^^^ help: if this is intentional, prefix it with an underscore: `_esp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> common/src/vga.rs:283:9
[INFO] [stdout]     |
[INFO] [stdout] 283 |         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: variable does not need to be mutable
[INFO] [stdout]    --> common/src/vga.rs:279:13
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let mut cursor_command_port = Port::<u8>::new(0x3D4);
[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: variable does not need to be mutable
[INFO] [stdout]    --> common/src/vga.rs:280:13
[INFO] [stdout]     |
[INFO] [stdout] 280 |         let mut cursor_data_port = Port::<u8>::new(0x3D5);
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> common/src/vga.rs:308:13
[INFO] [stdout]     |
[INFO] [stdout] 308 |             unsafe {
[INFO] [stdout]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> common/src/vga.rs:305:17
[INFO] [stdout]     |
[INFO] [stdout] 305 |             let mut cursor_command_port = Port::<u8>::new(0x3D4);
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> common/src/vga.rs:306:17
[INFO] [stdout]     |
[INFO] [stdout] 306 |             let mut cursor_data_port = Port::<u8>::new(0x3D5);
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> common/src/port.rs:56:23
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn read_from_port(port: u16) -> Self {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> common/src/port.rs:70:23
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn read_from_port(port: u16) -> Self {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> common/src/port.rs:83:22
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn write_to_port(port: u16, value: Self) {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> common/src/port.rs:83:33
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn write_to_port(port: u16, value: Self) {
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> common/src/port.rs:95:22
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn write_to_port(port: u16, value: Self) {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> common/src/port.rs:95:33
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn write_to_port(port: u16, value: Self) {
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]    --> common/src/port.rs:127:19
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub fn read_words(port: u16, word_cnt: u32, buf_addr: u32) {
[INFO] [stdout]     |                   ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `word_cnt`
[INFO] [stdout]    --> common/src/port.rs:127:30
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub fn read_words(port: u16, word_cnt: u32, buf_addr: u32) {
[INFO] [stdout]     |                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_word_cnt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf_addr`
[INFO] [stdout]    --> common/src/port.rs:127:45
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub fn read_words(port: u16, word_cnt: u32, buf_addr: u32) {
[INFO] [stdout]     |                                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buf_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]    --> common/src/port.rs:147:20
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn write_words(port: u16, buf_addr: u32, word_cnt: u32) {
[INFO] [stdout]     |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf_addr`
[INFO] [stdout]    --> common/src/port.rs:147:31
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn write_words(port: u16, buf_addr: u32, word_cnt: u32) {
[INFO] [stdout]     |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buf_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `word_cnt`
[INFO] [stdout]    --> common/src/port.rs:147:46
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn write_words(port: u16, buf_addr: u32, word_cnt: u32) {
[INFO] [stdout]     |                                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_word_cnt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wait_port`
[INFO] [stdout]   --> common/src/pic.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let wait_port = Port::<u8>::new(0x80);
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wait_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `primary_mask`
[INFO] [stdout]   --> common/src/pic.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let primary_mask = self.primary.data_port.read();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_primary_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `secondary_mask`
[INFO] [stdout]   --> common/src/pic.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let secondary_mask = self.secondary.data_port.read();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_secondary_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> common/src/gdt.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     unsafe { addr_of!(GDT) }
[INFO] [stdout]    |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gdt_addr`
[INFO] [stdout]   --> common/src/gdt.rs:40:26
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn load_gdtr_by_addr(gdt_addr: *const GlobalDescriptorTable) {
[INFO] [stdout]    |                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gdt_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reg`
[INFO] [stdout]   --> common/src/reg_cr0.rs:70:15
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn set_on(reg: CR0) -> u32 {
[INFO] [stdout]    |               ^^^ help: if this is intentional, prefix it with an underscore: `_reg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reg`
[INFO] [stdout]   --> common/src/reg_cr0.rs:88:16
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn set_off(reg: CR0) -> u32{
[INFO] [stdout]    |                ^^^ help: if this is intentional, prefix it with an underscore: `_reg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]   --> common/src/reg_cr0.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn set_cr0(val: u32) {
[INFO] [stdout]    |            ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vaddr`
[INFO] [stdout]    --> common/src/instruction.rs:119:24
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn invalidate_page(vaddr: usize) {
[INFO] [stdout]     |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_vaddr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `esp`
[INFO] [stdout]    --> common/src/instruction.rs:137:16
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn set_esp(esp: u32) {
[INFO] [stdout]     |                ^^^ help: if this is intentional, prefix it with an underscore: `_esp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> common/src/bitmap.rs:153:19
[INFO] [stdout]     |
[INFO] [stdout] 153 |     fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
[INFO] [stdout]     |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> common/src/pool.rs:74:19
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> common/src/port.rs:56:23
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn read_from_port(port: u16) -> Self {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> common/src/port.rs:70:23
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn read_from_port(port: u16) -> Self {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> common/src/port.rs:83:22
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn write_to_port(port: u16, value: Self) {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> common/src/port.rs:83:33
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn write_to_port(port: u16, value: Self) {
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> common/src/port.rs:95:22
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn write_to_port(port: u16, value: Self) {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> common/src/port.rs:95:33
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn write_to_port(port: u16, value: Self) {
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]    --> common/src/port.rs:127:19
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub fn read_words(port: u16, word_cnt: u32, buf_addr: u32) {
[INFO] [stdout]     |                   ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `word_cnt`
[INFO] [stdout]    --> common/src/port.rs:127:30
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub fn read_words(port: u16, word_cnt: u32, buf_addr: u32) {
[INFO] [stdout]     |                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_word_cnt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf_addr`
[INFO] [stdout]    --> common/src/port.rs:127:45
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub fn read_words(port: u16, word_cnt: u32, buf_addr: u32) {
[INFO] [stdout]     |                                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buf_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]    --> common/src/port.rs:147:20
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn write_words(port: u16, buf_addr: u32, word_cnt: u32) {
[INFO] [stdout]     |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf_addr`
[INFO] [stdout]    --> common/src/port.rs:147:31
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn write_words(port: u16, buf_addr: u32, word_cnt: u32) {
[INFO] [stdout]     |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buf_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `word_cnt`
[INFO] [stdout]    --> common/src/port.rs:147:46
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn write_words(port: u16, buf_addr: u32, word_cnt: u32) {
[INFO] [stdout]     |                                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_word_cnt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wait_port`
[INFO] [stdout]   --> common/src/pic.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let wait_port = Port::<u8>::new(0x80);
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wait_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `primary_mask`
[INFO] [stdout]   --> common/src/pic.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let primary_mask = self.primary.data_port.read();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_primary_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `secondary_mask`
[INFO] [stdout]   --> common/src/pic.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let secondary_mask = self.secondary.data_port.read();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_secondary_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> common/src/bitmap.rs:153:19
[INFO] [stdout]     |
[INFO] [stdout] 153 |     fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
[INFO] [stdout]     |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> common/src/pool.rs:74:19
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> common/src/domain.rs:104:19
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
[INFO] [stdout]     |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> common/src/domain.rs:104:19
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
[INFO] [stdout]     |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PortRead` is more private than the item `Port<T>`
[INFO] [stdout]   --> common/src/port.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl <T:PortRead + PortWrite> Port<T> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation `Port<T>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `PortRead` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> common/src/port.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | trait PortRead {
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_bounds)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PortWrite` is more private than the item `Port<T>`
[INFO] [stdout]   --> common/src/port.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl <T:PortRead + PortWrite> Port<T> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation `Port<T>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `PortWrite` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> common/src/port.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | trait PortWrite {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PortRead` is more private than the item `Port<T>`
[INFO] [stdout]   --> common/src/port.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl <T:PortRead> Port<T> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^ implementation `Port<T>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `PortRead` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> common/src/port.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | trait PortRead {
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PortWrite` is more private than the item `Port<T>`
[INFO] [stdout]   --> common/src/port.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl <T:PortWrite> Port<T> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation `Port<T>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `PortWrite` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> common/src/port.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | trait PortWrite {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Pic` is more private than the item `ChainedPics::primary`
[INFO] [stdout]    --> common/src/pic.rs:47:5
[INFO] [stdout]     |
[INFO] [stdout]  47 |     pub primary: Pic,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^ field `ChainedPics::primary` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Pic` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> common/src/pic.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | struct Pic {
[INFO] [stdout]     | ^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Pic` is more private than the item `ChainedPics::secondary`
[INFO] [stdout]    --> common/src/pic.rs:51:5
[INFO] [stdout]     |
[INFO] [stdout]  51 |     pub secondary: Pic,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^ field `ChainedPics::secondary` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Pic` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> common/src/pic.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | struct Pic {
[INFO] [stdout]     | ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ListNodeTrait` is more private than the item `linked_list_deprecated::LinkedNode`
[INFO] [stdout]   --> common/src/linked_list_deprecated.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct LinkedNode<T: ListNodeTrait> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ struct `linked_list_deprecated::LinkedNode` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `ListNodeTrait` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> common/src/linked_list_deprecated.rs:3:1
[INFO] [stdout]    |
[INFO] [stdout]  3 | trait ListNodeTrait: Copy{}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ListNodeTrait` is more private than the item `linked_list_deprecated::LinkedNode<T>`
[INFO] [stdout]   --> common/src/linked_list_deprecated.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl<T: ListNodeTrait> LinkedNode<T> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation `linked_list_deprecated::LinkedNode<T>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `ListNodeTrait` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> common/src/linked_list_deprecated.rs:3:1
[INFO] [stdout]    |
[INFO] [stdout]  3 | trait ListNodeTrait: Copy{}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ListNodeTrait` is more private than the item `linked_list_deprecated::LinkedList`
[INFO] [stdout]   --> common/src/linked_list_deprecated.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct LinkedList<T: ListNodeTrait> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ struct `linked_list_deprecated::LinkedList` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `ListNodeTrait` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> common/src/linked_list_deprecated.rs:3:1
[INFO] [stdout]    |
[INFO] [stdout]  3 | trait ListNodeTrait: Copy{}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ListNodeTrait` is more private than the item `linked_list_deprecated::LinkedList<T>`
[INFO] [stdout]   --> common/src/linked_list_deprecated.rs:50:1
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl<T: ListNodeTrait> LinkedList<T> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation `linked_list_deprecated::LinkedList<T>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `ListNodeTrait` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> common/src/linked_list_deprecated.rs:3:1
[INFO] [stdout]    |
[INFO] [stdout]  3 | trait ListNodeTrait: Copy{}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ListNodeTrait` is more private than the item `linked_list_deprecated::LinkedNodeIterator`
[INFO] [stdout]    --> common/src/linked_list_deprecated.rs:134:1
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub struct LinkedNodeIterator<T: ListNodeTrait> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ struct `linked_list_deprecated::LinkedNodeIterator` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `ListNodeTrait` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> common/src/linked_list_deprecated.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | trait ListNodeTrait: Copy{}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CounterTrait` is more private than the item `set_frequency`
[INFO] [stdout]    --> common/src/pit.rs:52:1
[INFO] [stdout]     |
[INFO] [stdout]  52 | pub fn set_frequency(counter: &'static dyn CounterTrait, intr_frequency: u16) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `set_frequency` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `CounterTrait` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> common/src/pit.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | trait CounterTrait {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ErrorFeature` is never constructed
[INFO] [stdout]  --> common/src/disk.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | enum PrimaryCommandRegister {
[INFO] [stdout]   |      ---------------------- variant in this enum
[INFO] [stdout] 8 |     Data = 0x1F0,
[INFO] [stdout] 9 |     ErrorFeature = 0x1F1,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Identify` and `Write` are never constructed
[INFO] [stdout]   --> common/src/disk.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | enum CommandRegister {
[INFO] [stdout]    |      --------------- variants in this enum
[INFO] [stdout] 43 |     // 识别硬盘命令
[INFO] [stdout] 44 |     Identify = 0xEC,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     Write = 0x30,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `unit` is never read
[INFO] [stdout]   --> common/src/sd.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct Granularity {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 90 |     value: u8,
[INFO] [stdout] 91 |     unit: u32
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Granularity` 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 `set_cr0` is never used
[INFO] [stdout]   --> common/src/reg_cr0.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn set_cr0(val: u32) {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> common/src/idt.rs:273:8
[INFO] [stdout]     |
[INFO] [stdout] 272 | impl IDTR {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 273 |     fn new(idt: *const InterruptDescriptorTable) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `primary` and `secondary` are never used
[INFO] [stdout]    --> common/src/pic.rs:231:8
[INFO] [stdout]     |
[INFO] [stdout] 220 | impl ICW3 {
[INFO] [stdout]     | --------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 231 |     fn primary(connect_idx: u8) -> Self {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     fn secondary(primary_idx: u8) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OCW2` is never constructed
[INFO] [stdout]    --> common/src/pic.rs:298:8
[INFO] [stdout]     |
[INFO] [stdout] 298 | struct OCW2 {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> common/src/pic.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout] 301 | impl OCW2 {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     fn new(rotation: bool, specific_level: bool, end_of_int: bool, config_data: u8) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]   --> common/src/bios_mem.rs:26:14
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl AddressRangeDescriptorStructure {
[INFO] [stdout]    | ------------------------------------ associated function in this implementation
[INFO] [stdout] 26 |     const fn empty() -> Self {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `counter1` and `counter2` are never read
[INFO] [stdout]    --> common/src/pit.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 114 | struct CounterEnum {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] 115 |     counter0: Counter,
[INFO] [stdout] 116 |     counter1: Counter,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 117 |     counter2: Counter,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> common/src/gdt.rs:48:14
[INFO] [stdout]    |
[INFO] [stdout] 48 |     unsafe { GDT.set_descriptor(desc_type, descriptor) };
[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]    = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[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]   --> common/src/gdt.rs:55:15
[INFO] [stdout]    |
[INFO] [stdout] 55 |     unsafe { *GDT.get_descriptor(desc_type) }
[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]    = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> common/src/paging.rs:87:18
[INFO] [stdout]    |
[INFO] [stdout] 87 |      pub fn iter(&self) -> PageTableEntryIterator {
[INFO] [stdout]    |                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 87 |      pub fn iter(&self) -> PageTableEntryIterator<'_> {
[INFO] [stdout]    |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> common/src/pool.rs:187:23
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub fn iter_valid(&self) -> MemPoolValidBitsIterator {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub fn iter_valid(&self) -> MemPoolValidBitsIterator<'_> {
[INFO] [stdout]     |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PortRead` is more private than the item `Port<T>`
[INFO] [stdout]   --> common/src/port.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl <T:PortRead + PortWrite> Port<T> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation `Port<T>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `PortRead` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> common/src/port.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | trait PortRead {
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_bounds)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PortWrite` is more private than the item `Port<T>`
[INFO] [stdout]   --> common/src/port.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl <T:PortRead + PortWrite> Port<T> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation `Port<T>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `PortWrite` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> common/src/port.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | trait PortWrite {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PortRead` is more private than the item `Port<T>`
[INFO] [stdout]   --> common/src/port.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl <T:PortRead> Port<T> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^ implementation `Port<T>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `PortRead` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> common/src/port.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | trait PortRead {
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PortWrite` is more private than the item `Port<T>`
[INFO] [stdout]   --> common/src/port.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl <T:PortWrite> Port<T> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation `Port<T>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `PortWrite` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> common/src/port.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | trait PortWrite {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Pic` is more private than the item `ChainedPics::primary`
[INFO] [stdout]    --> common/src/pic.rs:47:5
[INFO] [stdout]     |
[INFO] [stdout]  47 |     pub primary: Pic,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^ field `ChainedPics::primary` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Pic` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> common/src/pic.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | struct Pic {
[INFO] [stdout]     | ^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Pic` is more private than the item `ChainedPics::secondary`
[INFO] [stdout]    --> common/src/pic.rs:51:5
[INFO] [stdout]     |
[INFO] [stdout]  51 |     pub secondary: Pic,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^ field `ChainedPics::secondary` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Pic` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> common/src/pic.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | struct Pic {
[INFO] [stdout]     | ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ListNodeTrait` is more private than the item `linked_list_deprecated::LinkedNode`
[INFO] [stdout]   --> common/src/linked_list_deprecated.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct LinkedNode<T: ListNodeTrait> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ struct `linked_list_deprecated::LinkedNode` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `ListNodeTrait` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> common/src/linked_list_deprecated.rs:3:1
[INFO] [stdout]    |
[INFO] [stdout]  3 | trait ListNodeTrait: Copy{}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ListNodeTrait` is more private than the item `linked_list_deprecated::LinkedNode<T>`
[INFO] [stdout]   --> common/src/linked_list_deprecated.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl<T: ListNodeTrait> LinkedNode<T> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation `linked_list_deprecated::LinkedNode<T>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `ListNodeTrait` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> common/src/linked_list_deprecated.rs:3:1
[INFO] [stdout]    |
[INFO] [stdout]  3 | trait ListNodeTrait: Copy{}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ListNodeTrait` is more private than the item `linked_list_deprecated::LinkedList`
[INFO] [stdout]   --> common/src/linked_list_deprecated.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct LinkedList<T: ListNodeTrait> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ struct `linked_list_deprecated::LinkedList` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `ListNodeTrait` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> common/src/linked_list_deprecated.rs:3:1
[INFO] [stdout]    |
[INFO] [stdout]  3 | trait ListNodeTrait: Copy{}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ListNodeTrait` is more private than the item `linked_list_deprecated::LinkedList<T>`
[INFO] [stdout]   --> common/src/linked_list_deprecated.rs:50:1
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl<T: ListNodeTrait> LinkedList<T> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation `linked_list_deprecated::LinkedList<T>` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `ListNodeTrait` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> common/src/linked_list_deprecated.rs:3:1
[INFO] [stdout]    |
[INFO] [stdout]  3 | trait ListNodeTrait: Copy{}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ListNodeTrait` is more private than the item `linked_list_deprecated::LinkedNodeIterator`
[INFO] [stdout]    --> common/src/linked_list_deprecated.rs:134:1
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub struct LinkedNodeIterator<T: ListNodeTrait> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ struct `linked_list_deprecated::LinkedNodeIterator` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `ListNodeTrait` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> common/src/linked_list_deprecated.rs:3:1
[INFO] [stdout]     |
[INFO] [stdout]   3 | trait ListNodeTrait: Copy{}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> common/src/array_deque.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn iter(&self) -> ArrayDequeIterator<T, N> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn iter(&self) -> ArrayDequeIterator<'_, T, N> {
[INFO] [stdout]    |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CounterTrait` is more private than the item `set_frequency`
[INFO] [stdout]    --> common/src/pit.rs:52:1
[INFO] [stdout]     |
[INFO] [stdout]  52 | pub fn set_frequency(counter: &'static dyn CounterTrait, intr_frequency: u16) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `set_frequency` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but trait `CounterTrait` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> common/src/pit.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | trait CounterTrait {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ErrorFeature` is never constructed
[INFO] [stdout]  --> common/src/disk.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | enum PrimaryCommandRegister {
[INFO] [stdout]   |      ---------------------- variant in this enum
[INFO] [stdout] 8 |     Data = 0x1F0,
[INFO] [stdout] 9 |     ErrorFeature = 0x1F1,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Identify` and `Write` are never constructed
[INFO] [stdout]   --> common/src/disk.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | enum CommandRegister {
[INFO] [stdout]    |      --------------- variants in this enum
[INFO] [stdout] 43 |     // 识别硬盘命令
[INFO] [stdout] 44 |     Identify = 0xEC,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     Write = 0x30,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `unit` is never read
[INFO] [stdout]   --> common/src/sd.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct Granularity {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 90 |     value: u8,
[INFO] [stdout] 91 |     unit: u32
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Granularity` 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 `set_cr0` is never used
[INFO] [stdout]   --> common/src/reg_cr0.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn set_cr0(val: u32) {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> common/src/idt.rs:273:8
[INFO] [stdout]     |
[INFO] [stdout] 272 | impl IDTR {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 273 |     fn new(idt: *const InterruptDescriptorTable) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `primary` and `secondary` are never used
[INFO] [stdout]    --> common/src/pic.rs:231:8
[INFO] [stdout]     |
[INFO] [stdout] 220 | impl ICW3 {
[INFO] [stdout]     | --------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 231 |     fn primary(connect_idx: u8) -> Self {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     fn secondary(primary_idx: u8) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OCW2` is never constructed
[INFO] [stdout]    --> common/src/pic.rs:298:8
[INFO] [stdout]     |
[INFO] [stdout] 298 | struct OCW2 {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> common/src/pic.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout] 301 | impl OCW2 {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     fn new(rotation: bool, specific_level: bool, end_of_int: bool, config_data: u8) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]   --> common/src/bios_mem.rs:26:14
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl AddressRangeDescriptorStructure {
[INFO] [stdout]    | ------------------------------------ associated function in this implementation
[INFO] [stdout] 26 |     const fn empty() -> Self {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `counter1` and `counter2` are never read
[INFO] [stdout]    --> common/src/pit.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 114 | struct CounterEnum {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] 115 |     counter0: Counter,
[INFO] [stdout] 116 |     counter1: Counter,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 117 |     counter2: Counter,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> common/src/gdt.rs:48:14
[INFO] [stdout]    |
[INFO] [stdout] 48 |     unsafe { GDT.set_descriptor(desc_type, descriptor) };
[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]    = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[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]   --> common/src/gdt.rs:55:15
[INFO] [stdout]    |
[INFO] [stdout] 55 |     unsafe { *GDT.get_descriptor(desc_type) }
[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]    = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> common/src/paging.rs:87:18
[INFO] [stdout]    |
[INFO] [stdout] 87 |      pub fn iter(&self) -> PageTableEntryIterator {
[INFO] [stdout]    |                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 87 |      pub fn iter(&self) -> PageTableEntryIterator<'_> {
[INFO] [stdout]    |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> common/src/pool.rs:187:23
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub fn iter_valid(&self) -> MemPoolValidBitsIterator {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub fn iter_valid(&self) -> MemPoolValidBitsIterator<'_> {
[INFO] [stdout]     |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> common/src/array_deque.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn iter(&self) -> ArrayDequeIterator<T, N> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn iter(&self) -> ArrayDequeIterator<'_, T, N> {
[INFO] [stdout]    |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `abi_x86_interrupt` is declared but not used
[INFO] [stdout]  --> common/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(abi_x86_interrupt)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `abi_x86_interrupt` is declared but not used
[INFO] [stdout]  --> common/src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(abi_x86_interrupt)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `os_in_rust_common::sd::SegmentDescriptor`
[INFO] [stdout]  --> loader/src/protect_mode.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use os_in_rust_common::sd::SegmentDescriptor;
[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]   --> loader/src/main.rs:43:1
[INFO] [stdout]    |
[INFO] [stdout] 43 | / fn panic(_info: &PanicInfo) -> ! {
[INFO] [stdout] 44 | |     loop {}
[INFO] [stdout] 45 | | }
[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/e3d12f3322cb00126b2208c6b9df3ac4467951f5/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-1143cdb186b7e82f.rmeta
[INFO] [stdout]    = note: second definition in the local crate (`loader`)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0152`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `loader` (bin "loader" test) due to 1 previous error; 1 warning emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: unwinding panics are not supported without std
[INFO] [stdout]   |
[INFO] [stdout]   = help: using nightly cargo, use -Zbuild-std with panic="abort" to avoid unwinding
[INFO] [stdout]   = note: since the core library is usually precompiled with panic="unwind", rebuilding your crate with panic="abort" may not be enough to fix the problem
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0152]: found duplicate lang item `panic_impl`
[INFO] [stdout]   --> loader2/src/main.rs:81:1
[INFO] [stdout]    |
[INFO] [stdout] 81 | / fn panic(info: &PanicInfo) -> ! {
[INFO] [stdout] 82 | |     loop {}
[INFO] [stdout] 83 | | }
[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/e3d12f3322cb00126b2208c6b9df3ac4467951f5/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-1143cdb186b7e82f.rmeta
[INFO] [stdout]    = note: second definition in the local crate (`loader2`)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on externally exported functions
[INFO] [stdout]   --> loader2/src/page_table.rs:88:1
[INFO] [stdout]    |
[INFO] [stdout] 88 | #[inline]
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: externally exported functions are functions with `#[no_mangle]`, `#[export_name]`, or `#[linkage]`
[INFO] [stdout]    = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0152`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `os_in_rust_common::sd::SegmentDescriptor`
[INFO] [stdout]  --> loader/src/protect_mode.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use os_in_rust_common::sd::SegmentDescriptor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unwinding panics are not supported without std
[INFO] [stdout]   |
[INFO] [stdout]   = help: using nightly cargo, use -Zbuild-std with panic="abort" to avoid unwinding
[INFO] [stdout]   = note: since the core library is usually precompiled with panic="unwind", rebuilding your crate with panic="abort" may not be enough to fix the problem
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unwinding panics are not supported without std
[INFO] [stdout]   |
[INFO] [stdout]   = help: using nightly cargo, use -Zbuild-std with panic="abort" to avoid unwinding
[INFO] [stdout]   = note: since the core library is usually precompiled with panic="unwind", rebuilding your crate with panic="abort" may not be enough to fix the problem
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot use register `bx`: rbx is used internally by LLVM and cannot be used as an operand for inline asm
[INFO] [stdout]   --> loader/src/main.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |             in("bx") context as *const _  as u16,
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `loader2` (bin "loader2" test) due to 1 previous error
[INFO] [stderr] error: could not compile `mbr` (bin "mbr") due to 1 previous error
[INFO] [stderr] error: could not compile `loader` (bin "loader") due to 2 previous errors; 1 warning emitted
[INFO] [stdout] error[E0152]: found duplicate lang item `panic_impl`
[INFO] [stdout]   --> mbr/src/main.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | / fn panic(_info: &PanicInfo) -> ! {
[INFO] [stdout] 25 | |     loop {}
[INFO] [stdout] 26 | | }
[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/e3d12f3322cb00126b2208c6b9df3ac4467951f5/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-1143cdb186b7e82f.rmeta
[INFO] [stdout]    = note: second definition in the local crate (`mbr`)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0152`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `mbr` (bin "mbr" test) due to 1 previous error
[INFO] [stdout] warning: unused variable: `info`
[INFO] [stdout]   --> loader2/src/main.rs:81:10
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn panic(info: &PanicInfo) -> ! {
[INFO] [stdout]    |          ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `loader2` (bin "loader2") due to 1 previous error; 2 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "a2a04e9dab1e535587f4ce0bf30087a39d7c4b86570f2141183713cbc5bbbf13", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a2a04e9dab1e535587f4ce0bf30087a39d7c4b86570f2141183713cbc5bbbf13", kill_on_drop: false }`
[INFO] [stdout] a2a04e9dab1e535587f4ce0bf30087a39d7c4b86570f2141183713cbc5bbbf13
