diff --git a/Cargo.lock b/Cargo.lock index 0bf9b20..b2589a7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -39,7 +39,7 @@ dependencies = [ "bootloader 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)", "cache_utils 0.1.0", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "linked_list_allocator 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", + "linked_list_allocator 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "polling_serial 0.1.0", "vga_buffer 0.1.0", "volatile 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -56,10 +56,18 @@ dependencies = [ [[package]] name = "linked_list_allocator" -version = "0.6.6" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "spinning_top 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "lock_api" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -71,11 +79,24 @@ dependencies = [ "x86_64 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "spin" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "spinning_top" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lock_api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "vga_buffer" version = "0.1.0" @@ -105,7 +126,10 @@ dependencies = [ "checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" "checksum bootloader 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)" = "37b4577f46430d7dd1f16fa13a3aab5e3b57fe9ce7ff4378aa6b184e268eb60e" "checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -"checksum linked_list_allocator 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "47de1a43fad0250ee197e9e124e5b5deab3d7b39d4428ae8a6d741ceb340c362" +"checksum linked_list_allocator 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "411991593f041990abf72f6715903fe67770e710e3c95a6d2e98a7550270136a" +"checksum lock_api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "79b2de95ecb4691949fea4716ca53cdbcfccb2c612e19644a8bad05edcf9f47b" +"checksum scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" "checksum spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +"checksum spinning_top 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "32d801a3a53bcf5071f85fef8d5cab9e5f638fc5580a37e6eb7aba4b37438d24" "checksum volatile 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "6af0edf5b4faacc31fc51159244d78d65ec580f021afcef7bd53c04aeabc7f29" "checksum x86_64 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7467ff985c75f098f9897ea693141dbb25c8a5ceaf91e4a28ab705765932efb6" diff --git a/Cargo.toml b/Cargo.toml index 8217ce4..4541fe7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,15 +28,15 @@ x86_64 = "0.9.2" vga_buffer = { path = "vga_buffer" } polling_serial = { path = "polling_serial" } volatile = "0.2.6" -linked_list_allocator = "0.6.4" +linked_list_allocator = "0.7.0" cache_utils = { path = "cache_utils" } [dependencies.lazy_static] -version = "1.0" +version = "1.4.0" features = ["spin_no_std"] [dependencies.bootloader] -version = "^0.8.2" +version = "0.8.6" features = ["sse", "map_physical_memory"] #[patch.crates-io] diff --git a/cache_utils/src/calibration.rs b/cache_utils/src/calibration.rs index cc97a59..a5cc81a 100644 --- a/cache_utils/src/calibration.rs +++ b/cache_utils/src/calibration.rs @@ -1,5 +1,5 @@ -use crate::{flush, maccess, rdtsc_fence, rdtsc_nofence}; -use polling_serial::{serial_print, serial_println}; +use crate::{flush, maccess, rdtsc_fence}; +use polling_serial::serial_println; use vga_buffer::println; extern crate alloc; diff --git a/src/allocator.rs b/src/allocator.rs index ba46e25..81d58e3 100644 --- a/src/allocator.rs +++ b/src/allocator.rs @@ -1,4 +1,3 @@ -use polling_serial::serial_println; use x86_64::{ structures::paging::{ mapper::MapToError, FrameAllocator, Mapper, Page, PageTableFlags, Size4KiB, @@ -21,7 +20,7 @@ pub fn init_heap( Page::range_inclusive(heap_start_page, heap_end_page) }; - for (i, page) in page_range.enumerate() { + for page in page_range { let frame = frame_allocator .allocate_frame() .ok_or(MapToError::FrameAllocationFailed)?; diff --git a/src/main.rs b/src/main.rs index dd9cf19..9667a70 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,7 +12,6 @@ use bootloader::{entry_point, BootInfo}; use cache_utils; use core::panic::PanicInfo; use dendrobates_tinctoreus_azureus::allocator; -use polling_serial::serial_print; use polling_serial::serial_println; use vga_buffer; // required for custom panic handler use vga_buffer::{print, println}; diff --git a/src/memory.rs b/src/memory.rs index 24022c9..ce98eb5 100644 --- a/src/memory.rs +++ b/src/memory.rs @@ -49,8 +49,7 @@ pub fn create_example_mapping( let not_really_unused_frame = unsafe { UnusedPhysFrame::new(frame) }; let flags = Flags::PRESENT | Flags::WRITABLE; - let map_to_result = - unsafe { mapper.map_to(page, not_really_unused_frame, flags, frame_allocator) }; + let map_to_result = mapper.map_to(page, not_really_unused_frame, flags, frame_allocator); map_to_result.expect("map_to failed").flush(); }