Skip to content

Commit 02d668e

Browse files
authored
Merge pull request #6 from Roeegg2/main
Make repo stable
2 parents 27acd50 + b2fb229 commit 02d668e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+2256
-1130
lines changed

Cargo.lock

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,3 @@ panic = "abort"
1919

2020
[profile.release]
2121
panic = "abort"
22-

Justfile

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ limine-binary := limine-dir + "/limine"
1717

1818
# Rust flags
1919
rustflags := "-C relocation-model=static"
20-
features := "default"
20+
features := "limine"
2121

2222
# Default recipe (runs when just is called without arguments)
2323
default: build
@@ -116,6 +116,8 @@ _media:
116116
sudo dd if={{iso-file}} of=$DEVICE bs=4M status=progress oflag=sync
117117

118118
# Helper recipe for running QEMU
119+
#
120+
# Remove logging options if you want
119121
_run-qemu: _download-firmware
120122
qemu-system-x86_64 \
121123
-machine q35 \
@@ -127,7 +129,8 @@ _run-qemu: _download-firmware
127129
-drive file=nvme.img,if=none,id=nvme-drive,format=raw \
128130
-drive if=pflash,unit=0,format=raw,file={{ovmf-code}},readonly=on \
129131
-drive if=pflash,unit=1,format=raw,file={{ovmf-vars}} \
130-
-cdrom {{iso-file}}
132+
-cdrom {{iso-file}} \
133+
-d in_asm,int -D qemu.log \
131134

132135
# Helper recipe for running QEMU with debug
133136
#
@@ -143,7 +146,7 @@ _run-qemu-debug: _download-firmware
143146
-drive if=pflash,unit=1,format=raw,file={{ovmf-vars}} \
144147
-cdrom {{iso-file}} \
145148
-d in_asm,int -D qemu.log \
146-
-D qemu.log \
149+
-s -S \
147150

148151
# Common ISO creation steps
149152
_create-iso-common: _setup-limine

boot/Cargo.toml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,9 @@ slab = { version = "0.1.0", path = "../slab" }
1818
pedantic = "warn"
1919

2020
[features]
21-
default = ["limine", "serial", "framebuffer"]
22-
23-
# logging methods
24-
serial = []
25-
framebuffer = []
21+
default = []
2622

2723
# Booting method
2824
limine = ["dep:limine"]
25+
26+
framebuffer = []

boot/build.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
fn main() {
22
let arch = std::env::var("CARGO_CFG_TARGET_ARCH").unwrap();
3-
println!("cargo:warning=Target architecture: {arch}");
43
// Tell cargo to pass the linker script to the linker..
54
println!("cargo:rustc-link-arg=-Tlinker-{arch}.ld");
65
// ..and to re-run if it changes.

boot/src/acpi/hpet.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,15 @@ impl Hpet {
2727
// reserved, so the kernel shouldn't be tracking it
2828
let phys_addr = PhysAddr(self.base_addr.addr as usize);
2929
unsafe {
30-
let virt_addr = X86_64::map_pages(
30+
let ptr = X86_64::map_pages(
3131
phys_addr,
3232
1,
3333
Flags::new().set_read_write(true),
3434
PageSize::size_4kb(),
3535
)
3636
.unwrap();
3737

38-
hpet::Hpet::init(
39-
virt_addr.into(),
40-
self.minimum_tick,
41-
InterruptRoutingMode::Legacy,
42-
);
38+
hpet::Hpet::init(ptr.cast(), self.minimum_tick, InterruptRoutingMode::Legacy);
4339
}
4440

4541
logger::info!("Configured HPET as timer");

boot/src/acpi/madt.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ impl Madt {
243243
PageSize::size_4kb(),
244244
)
245245
.unwrap()
246-
.into();
246+
.cast();
247247
lapic::override_base(ptr);
248248
},
249249
EntryType::PROCESSOR_LOCAL_X2APIC => unsafe {

boot/src/acpi/mod.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,11 +86,13 @@ pub unsafe fn init(rsdp_addr: PhysAddr) -> Result<(), AcpiError> {
8686
sanity_assert!(rsdp_addr.0 % align_of::<Rsdp2>() == 0);
8787

8888
let rsdp = unsafe {
89-
let diff = rsdp_addr.0 % BASIC_PAGE_SIZE;
89+
let diff = rsdp_addr.0 % BASIC_PAGE_SIZE.size();
9090
let ptr: *const Rsdp2 =
91-
(X86_64::map_pages(rsdp_addr - diff, 1, Flags::new(), PageSize::size_4kb()).unwrap()
92-
+ diff)
93-
.into();
91+
X86_64::map_pages(rsdp_addr - diff, 1, Flags::new(), PageSize::size_4kb())
92+
.unwrap()
93+
.byte_add(diff)
94+
.cast();
95+
9496
ptr.as_ref().unwrap()
9597
};
9698

boot/src/acpi/rsdp.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,12 @@ impl Rsdp2 {
7878
pub(super) fn get_xsdt(&self) -> &Xsdt {
7979
let ptr: *const SdtHeader = unsafe {
8080
let addr = PhysAddr(self.xsdt_address as usize);
81-
let diff = addr.0 % BASIC_PAGE_SIZE;
82-
(X86_64::map_pages(addr - diff, 1, Flags::new(), PageSize::size_4kb()).unwrap() + diff)
83-
.into()
81+
let diff = addr.0 % BASIC_PAGE_SIZE.size();
82+
83+
X86_64::map_pages(addr - diff, 1, Flags::new(), PageSize::size_4kb())
84+
.unwrap()
85+
.byte_add(diff)
86+
.cast()
8487
};
8588

8689
utils::sanity_assert!(ptr.is_aligned_to(align_of::<Xsdt>()));

boot/src/acpi/xsdt.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,13 @@ impl Iterator for Iter {
7676
return None;
7777
}
7878

79-
let ptr: *const SdtHeader = unsafe {
79+
let ptr = unsafe {
8080
let addr = self.ptr.read_unaligned();
81-
let diff = addr.0 % BASIC_PAGE_SIZE;
82-
(X86_64::map_pages(addr - diff, 1, Flags::new(), PageSize::size_4kb()).unwrap() + diff)
83-
.into()
81+
let diff = addr.0 % BASIC_PAGE_SIZE.size();
82+
X86_64::map_pages(addr - diff, 1, Flags::new(), PageSize::size_4kb())
83+
.unwrap()
84+
.cast::<SdtHeader>()
85+
.byte_add(diff)
8486
};
8587

8688
self.ptr = unsafe { self.ptr.add(1) };

0 commit comments

Comments
 (0)