From 00552fcd03f86bffed8c2f6a9d110981cb869489 Mon Sep 17 00:00:00 2001 From: Vaze Date: Sun, 24 May 2026 11:12:58 +0200 Subject: Added functionality to bootloader so it can now read the kernel file to memory. --- .../.fingerprint/bootloader-a1aaa9c1039d2d6b/invoked.timestamp | 1 + .../bootloader-a1aaa9c1039d2d6b/output-bin-bootloader | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 bootloader/target/debug/.fingerprint/bootloader-a1aaa9c1039d2d6b/invoked.timestamp create mode 100644 bootloader/target/debug/.fingerprint/bootloader-a1aaa9c1039d2d6b/output-bin-bootloader (limited to 'bootloader/target/debug/.fingerprint/bootloader-a1aaa9c1039d2d6b') diff --git a/bootloader/target/debug/.fingerprint/bootloader-a1aaa9c1039d2d6b/invoked.timestamp b/bootloader/target/debug/.fingerprint/bootloader-a1aaa9c1039d2d6b/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/bootloader/target/debug/.fingerprint/bootloader-a1aaa9c1039d2d6b/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/bootloader/target/debug/.fingerprint/bootloader-a1aaa9c1039d2d6b/output-bin-bootloader b/bootloader/target/debug/.fingerprint/bootloader-a1aaa9c1039d2d6b/output-bin-bootloader new file mode 100644 index 0000000..b4010a1 --- /dev/null +++ b/bootloader/target/debug/.fingerprint/bootloader-a1aaa9c1039d2d6b/output-bin-bootloader @@ -0,0 +1,8 @@ +{"$message_type":"diagnostic","message":"no global memory allocator found but one is required; link to std or add `#[global_allocator]` to a static item that implements the GlobalAlloc trait","code":null,"level":"error","spans":[],"children":[],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: no global memory allocator found but one is required; link to std or add `#[global_allocator]` to a static item that implements the GlobalAlloc trait\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"unwinding panics are not supported without std","code":null,"level":"error","spans":[],"children":[{"message":"using nightly cargo, use -Zbuild-std with panic=\"abort\" to avoid unwinding","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"since the core library is usually precompiled with panic=\"unwind\", rebuilding your crate with panic=\"abort\" may not be enough to fix the problem","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: unwinding panics are not supported without std\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: using nightly cargo, use -Zbuild-std with panic=\"abort\" to avoid unwinding\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: since the core library is usually precompiled with panic=\"unwind\", rebuilding your crate with panic=\"abort\" may not be enough to fix the problem\n\n"} +{"$message_type":"diagnostic","message":"`?` couldn't convert the error to `uefi::Error`","code":{"code":"E0277","explanation":"You tried to use a type which doesn't implement some trait in a place which\nexpected that trait.\n\nErroneous code example:\n\n```compile_fail,E0277\n// here we declare the Foo trait with a bar method\ntrait Foo {\n fn bar(&self);\n}\n\n// we now declare a function which takes an object implementing the Foo trait\nfn some_func(foo: T) {\n foo.bar();\n}\n\nfn main() {\n // we now call the method with the i32 type, which doesn't implement\n // the Foo trait\n some_func(5i32); // error: the trait bound `i32 : Foo` is not satisfied\n}\n```\n\nIn order to fix this error, verify that the type you're using does implement\nthe trait. Example:\n\n```\ntrait Foo {\n fn bar(&self);\n}\n\n// we implement the trait on the i32 type\nimpl Foo for i32 {\n fn bar(&self) {}\n}\n\nfn some_func(foo: T) {\n foo.bar(); // we can now use this method since i32 implements the\n // Foo trait\n}\n\nfn main() {\n some_func(5i32); // ok!\n}\n```\n\nOr in a generic context, an erroneous code example would look like:\n\n```compile_fail,E0277\nfn some_func(foo: T) {\n println!(\"{:?}\", foo); // error: the trait `core::fmt::Debug` is not\n // implemented for the type `T`\n}\n\nfn main() {\n // We now call the method with the i32 type,\n // which *does* implement the Debug trait.\n some_func(5i32);\n}\n```\n\nNote that the error here is in the definition of the generic function. Although\nwe only call it with a parameter that does implement `Debug`, the compiler\nstill rejects the function. It must work with all possible input types. In\norder to make this example compile, we need to restrict the generic type we're\naccepting:\n\n```\nuse std::fmt;\n\n// Restrict the input type to types that implement Debug.\nfn some_func(foo: T) {\n println!(\"{:?}\", foo);\n}\n\nfn main() {\n // Calling the method is still fine, as i32 implements Debug.\n some_func(5i32);\n\n // This would fail to compile now:\n // struct WithoutDebug;\n // some_func(WithoutDebug);\n}\n```\n\nRust only looks at the signature of the called function, as such it must\nalready specify all requirements that will be used for every type parameter.\n"},"level":"error","spans":[{"file_name":"src/main.rs","byte_start":586,"byte_end":635,"line_start":27,"line_end":27,"column_start":19,"column_end":68,"is_primary":false,"text":[{"text":" let boot_fs = boot::get_image_file_system(boot::image_handle())?;","highlight_start":19,"highlight_end":68}],"label":"this can't be annotated with `?` because it has type `Result<_, uefi::Error>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/main.rs","byte_start":539,"byte_end":565,"line_start":26,"line_end":26,"column_start":24,"column_end":50,"is_primary":false,"text":[{"text":"fn open_boot_part() -> Result {","highlight_start":24,"highlight_end":50}],"label":"expected `uefi::Error` because of this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/main.rs","byte_start":635,"byte_end":636,"line_start":27,"line_end":27,"column_start":68,"column_end":69,"is_primary":true,"text":[{"text":" let boot_fs = boot::get_image_file_system(boot::image_handle())?;","highlight_start":68,"highlight_end":69}],"label":"the trait `From` is not implemented for `uefi::Error`","suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"src/main.rs","byte_start":635,"byte_end":636,"line_start":27,"line_end":27,"column_start":68,"column_end":69,"is_primary":false,"text":[{"text":" let boot_fs = boot::get_image_file_system(boot::image_handle())?;","highlight_start":68,"highlight_end":69}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},"macro_decl_name":"desugaring of operator `?`","def_site_span":{"file_name":"src/main.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1,"is_primary":false,"text":[],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}}],"children":[{"message":"the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"the trait `From` is implemented for `uefi::Error`","code":null,"level":"help","spans":[{"file_name":"/home/gvr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/uefi-0.37.0/src/result/error.rs","byte_start":1204,"byte_end":1235,"line_start":47,"line_end":47,"column_start":1,"column_end":32,"is_primary":true,"text":[{"text":"impl From for Error<()> {","highlight_start":1,"highlight_end":32}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0277]\u001b[0m\u001b[1m: `?` couldn't convert the error to `uefi::Error`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/main.rs:27:68\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m26\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn open_boot_part() -> Result {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m--------------------------\u001b[0m \u001b[1m\u001b[94mexpected `uefi::Error` because of this\u001b[0m\n\u001b[1m\u001b[94m27\u001b[0m \u001b[1m\u001b[94m|\u001b[0m let boot_fs = boot::get_image_file_system(boot::image_handle())?;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m-------------------------------------------------\u001b[0m\u001b[1m\u001b[91m^\u001b[0m \u001b[1m\u001b[91mthe trait `From` is not implemented for `uefi::Error`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94mthis can't be annotated with `?` because it has type `Result<_, uefi::Error>`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait\n\u001b[1m\u001b[96mhelp\u001b[0m: the trait `From` \u001b[1m\u001b[35mis\u001b[0m implemented for `\u001b[1m\u001b[35muefi::Error\u001b[0m`\n \u001b[1m\u001b[94m--> \u001b[0m/home/gvr/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/uefi-0.37.0/src/result/error.rs:47:1\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m47\u001b[0m \u001b[1m\u001b[94m|\u001b[0m impl From for Error<()> {\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[96m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"cannot borrow `boot_fs` as mutable, as it is not declared as mutable","code":{"code":"E0596","explanation":"This error occurs because you tried to mutably borrow a non-mutable variable.\n\nErroneous code example:\n\n```compile_fail,E0596\nlet x = 1;\nlet y = &mut x; // error: cannot borrow mutably\n```\n\nIn here, `x` isn't mutable, so when we try to mutably borrow it in `y`, it\nfails. To fix this error, you need to make `x` mutable:\n\n```\nlet mut x = 1;\nlet y = &mut x; // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/main.rs","byte_start":471,"byte_end":478,"line_start":22,"line_end":22,"column_start":20,"column_end":27,"is_primary":true,"text":[{"text":" let boot_dir = boot_fs.open_volume();","highlight_start":20,"highlight_end":27}],"label":"cannot borrow as mutable","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"consider changing this to be mutable","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":390,"byte_end":390,"line_start":21,"line_end":21,"column_start":9,"column_end":9,"is_primary":true,"text":[{"text":" let boot_fs = boot::get_image_file_system(boot::image_handle())?;","highlight_start":9,"highlight_end":9}],"label":null,"suggested_replacement":"mut ","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0596]\u001b[0m\u001b[1m: cannot borrow `boot_fs` as mutable, as it is not declared as mutable\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/main.rs:22:20\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m22\u001b[0m \u001b[1m\u001b[94m|\u001b[0m let boot_dir = boot_fs.open_volume();\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m^^^^^^^\u001b[0m \u001b[1m\u001b[91mcannot borrow as mutable\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[96mhelp\u001b[0m: consider changing this to be mutable\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m21\u001b[0m \u001b[1m\u001b[94m| \u001b[0m let \u001b[92mmut \u001b[0mboot_fs = boot::get_image_file_system(boot::image_handle())?;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[92m+++\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"unused variable: `boot_dir`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":460,"byte_end":468,"line_start":22,"line_end":22,"column_start":9,"column_end":17,"is_primary":true,"text":[{"text":" let boot_dir = boot_fs.open_volume();","highlight_start":9,"highlight_end":17}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"if this is intentional, prefix it with an underscore","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":460,"byte_end":468,"line_start":22,"line_end":22,"column_start":9,"column_end":17,"is_primary":true,"text":[{"text":" let boot_dir = boot_fs.open_volume();","highlight_start":9,"highlight_end":17}],"label":null,"suggested_replacement":"_boot_dir","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused variable: `boot_dir`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/main.rs:22:9\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m22\u001b[0m \u001b[1m\u001b[94m|\u001b[0m let boot_dir = boot_fs.open_volume();\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^\u001b[0m \u001b[1m\u001b[33mhelp: if this is intentional, prefix it with an underscore: `_boot_dir`\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default\n\n"} +{"$message_type":"diagnostic","message":"aborting due to 4 previous errors; 1 warning emitted","code":null,"level":"error","spans":[],"children":[],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: aborting due to 4 previous errors; 1 warning emitted\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"Some errors have detailed explanations: E0277, E0596.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"\u001b[1mSome errors have detailed explanations: E0277, E0596.\u001b[0m\n"} +{"$message_type":"diagnostic","message":"For more information about an error, try `rustc --explain E0277`.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"\u001b[1mFor more information about an error, try `rustc --explain E0277`.\u001b[0m\n"} -- cgit v1.2.3