Post

GSoC22: Summary Post

A blog post summarizing all my Google Summer of Code 2022 Work

Published on
3 min, 583 words

Hello everyone. This is probably the final blog post I write before Google Summer of Code 2022 ends (hopefully not the final uefi one). In this post, I will summarize my GSoC22 work to make it more accessible to everyone.

Read More

Writing UEFI Protocol in Rust

A post about writing UEFI Protocol in Rust

Published on
5 min, 837 words

Hello everyone. As a part of Porting Rust std for UEFI, I had to write a hacky implementation of pipes (using UEFI Variables) for piping output from launched programs. However, this implementation had some problems and failed to run tests using the feature panic_abort_tests. Since I had some time this week, I decided to write a Protocol to fix the pipes. Along the way, I also found many ways to shoot myself on foot. So I decided to write this post documenting all the gotchas I discovered while writing a new protocol in Rust. This post will only contain 1 of the two protocols I decided to create, internally named UEFI_COMMAND_PROTOCOL.

Read More

GSoC 2022: Progress Report 2

Google Summer of Code Progress Report 2

Published on
7 min, 1214 words

Hello everyone. It is finally possible to run the whole Rust testing suit for UEFI under QEMU and OVMF. So I think this is a good point to give a detailed overview of everything that has been implemented and the state of those implementations. I will also provide instructions on how to go about running the tests as well.

Read More

Using Rust main from a custom entry point (Part 2)

How to use Rust main function with a custom entry point with a custom function signature

Published on
7 min, 1228 words

Hello everyone. I will continue where I left off in post with the Rust main in this post. Since we now have an allocator, the Thread::new statement at library/std/src/rt.rs works. So we need to fix the line where we set the main thread with guard information. This will be a short post since it turned out easier than I initially thought.

Read More

Using Rust main from a custom entry point

How to use Rust main function with a custom entry point with a custom function signature

Published on
8 min, 1490 words

Hello everyone. In this post, we will deep dive into the crux of the main() function and look behind the scenes. By the end, we will have some understanding of Rust runtime. Primarily, I will describe my current implementation of efi_main to hook into Rust runtime.

Read More