Skip to content

Commit 27d18d6

Browse files
misc(kernel): cleanup
Signed-off-by: Anhad Singh <[email protected]>
1 parent 2bfe5ad commit 27d18d6

File tree

10 files changed

+29
-42
lines changed

10 files changed

+29
-42
lines changed

.vscode/settings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@
1616
"termios.h": "c",
1717
"termios-c_iflag.h": "c"
1818
},
19-
// "rust-analyzer.check.command": "clippy",
19+
"rust-analyzer.check.command": "clippy",
2020
}

src/aero_kernel/src/arch/x86_64/gdt.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ pub fn init() {
337337
let gdt_size = gdt_ent_size * GDT_ENTRY_COUNT;
338338
let layout = Layout::from_size_align_unchecked(gdt_size, gdt_ent_align);
339339

340-
let ptr = alloc_zeroed(layout) as *mut GdtEntry;
340+
let ptr = alloc_zeroed(layout).cast::<GdtEntry>();
341341
core::slice::from_raw_parts_mut::<GdtEntry>(ptr, GDT_ENTRY_COUNT)
342342
};
343343

src/aero_kernel/src/arch/x86_64/task.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -661,7 +661,7 @@ fn xsave(fpu: &mut FpuState) {
661661

662662
use core::arch::x86_64::_fxsave64;
663663

664-
unsafe { _fxsave64(fpu as *mut FpuState as *mut _) }
664+
unsafe { _fxsave64((fpu as *mut FpuState).cast()) }
665665
}
666666

667667
fn xrstor(fpu: &FpuState) {
@@ -670,7 +670,7 @@ fn xrstor(fpu: &FpuState) {
670670
// options(nomem, nostack)); }
671671
use core::arch::x86_64::_fxrstor64;
672672

673-
unsafe { _fxrstor64(fpu as *const FpuState as *const _) }
673+
unsafe { _fxrstor64((fpu as *const FpuState).cast()) }
674674
}
675675

676676
/// Check out the module level documentation for more information.

src/aero_kernel/src/arch/x86_64/tls.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ pub fn init() {
119119
.map(|(name, _)| name)
120120
.collect::<Vec<_>>()
121121
})
122-
.unwrap_or(Vec::new());
122+
.unwrap_or_default();
123123

124124
CPU_INFO.lock().push(CpuInfo {
125125
cpuid: 0,

src/aero_kernel/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
#![no_std]
6464
#![no_main]
6565
#![reexport_test_harness_main = "test_main"]
66-
// #![warn(clippy::pedantic)]
66+
#![deny(clippy::ptr_as_ptr)]
6767

6868
#[macro_use]
6969
extern crate aero_proc;

src/aero_kernel/src/mem/paging/frame.rs

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -299,31 +299,19 @@ impl GlobalFrameAllocator {
299299
fn new(memory_map_resp: &mut limine::response::MemoryMapResponse) -> Self {
300300
let memory_map = memory_map_resp.entries_mut();
301301

302-
// Find a memory map entry that is big enough to fit all of the items in
303-
// range memory iter.
304302
let requested_size = (core::mem::size_of::<MemoryRange>() * memory_map.len()) as u64;
305-
let mut region = None;
306303

307-
for i in 0..memory_map.len() {
308-
let entry = &mut memory_map[i];
309-
310-
// Make sure that the memory map entry is marked as usable.
311-
if entry.entry_type != memory_map::EntryType::USABLE {
312-
continue;
313-
}
314-
315-
// Found a big enough memory map entry.
316-
if entry.length >= requested_size {
317-
let base = entry.base;
318-
319-
entry.base += requested_size;
320-
entry.length -= requested_size;
304+
let entry = memory_map
305+
.iter_mut()
306+
.find(|entry| {
307+
entry.entry_type == memory_map::EntryType::USABLE && entry.length >= requested_size
308+
})
309+
.expect("OOM");
321310

322-
region = Some(PhysAddr::new(base));
311+
let region = PhysAddr::new(entry.base);
323312

324-
break;
325-
}
326-
}
313+
entry.base += requested_size;
314+
entry.length -= requested_size;
327315

328316
let mut iter = memory_map_resp.entries().iter();
329317

@@ -332,7 +320,7 @@ impl GlobalFrameAllocator {
332320
.expect("stivale2: unexpected end of the memory map");
333321

334322
let ranges = unsafe {
335-
let virt_addr = region.expect("stivale2: out of memory").as_hhdm_virt();
323+
let virt_addr = region.as_hhdm_virt();
336324

337325
core::slice::from_raw_parts_mut::<MemoryRange>(
338326
virt_addr.as_mut_ptr(),

src/aero_kernel/src/mem/paging/mapper.rs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -676,17 +676,14 @@ impl<'a, P: PageTableFrameMapping> Mapper<Size4KiB> for MappedPageTable<'a, P> {
676676
page: Page<Size4KiB>,
677677
flags: PageTableFlags,
678678
) -> Result<MapperFlush<Size4KiB>, FlagUpdateError> {
679-
let p4;
680-
681-
if self.level_5_paging_enabled {
679+
let p4 = if self.level_5_paging_enabled {
682680
let p5 = &mut self.page_table;
683681

684-
p4 = self
685-
.page_table_walker
686-
.next_table_mut(&mut p5[page.p5_index()])?;
682+
self.page_table_walker
683+
.next_table_mut(&mut p5[page.p5_index()])?
687684
} else {
688-
p4 = &mut self.page_table;
689-
}
685+
&mut self.page_table
686+
};
690687

691688
let p3 = self
692689
.page_table_walker

src/aero_kernel/src/rendy.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,9 @@ impl<'a> Inner<'a> {
371371

372372
for x in xstart..xend {
373373
let img_pixel = unsafe {
374-
(image.image.as_ptr()).add(fixedp6_to_int(img_x) * col_size + off) as *const u32
374+
(image.image.as_ptr())
375+
.add(fixedp6_to_int(img_x) * col_size + off)
376+
.cast::<u32>()
375377
};
376378

377379
let i = blender(x, y, unsafe { *img_pixel });

src/aero_kernel/src/userland/vm.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ fn parse_elf_header<'header>(file: DirCacheItem) -> Result<Header<'header>, ElfL
6565
.read_at(0, pt1_hdr_slice)
6666
.map_err(ElfLoadError::IOError)?;
6767

68-
let pt1_header: &'header _ = unsafe { &*(pt1_hdr_slice.as_ptr() as *const HeaderPt1) };
68+
let pt1_header: &'header _ = unsafe { &*pt1_hdr_slice.as_ptr().cast::<HeaderPt1>() };
6969

7070
// 2. Ensure that the header has the correct magic number:
7171
if pt1_header.magic != ELF_HEADER_MAGIC {
@@ -82,7 +82,7 @@ fn parse_elf_header<'header>(file: DirCacheItem) -> Result<Header<'header>, ElfL
8282
.map_err(ElfLoadError::IOError)?;
8383

8484
let pt2_header_ptr = pt2_hdr_slice.as_ptr();
85-
let pt2_header: &'header _ = unsafe { &*(pt2_header_ptr as *const HeaderPt2_<P64>) };
85+
let pt2_header: &'header _ = unsafe { &*pt2_header_ptr.cast::<HeaderPt2_<P64>>() };
8686

8787
Ok(HeaderPt2::Header64(pt2_header))
8888
}
@@ -130,13 +130,13 @@ fn parse_program_header<'pheader>(
130130
match header.pt1.class() {
131131
// 3. Cast and return the 64-bit program header:
132132
Class::SixtyFour => {
133-
let phdr: &'pheader _ = unsafe { &*(phdr_ptr as *const ProgramHeader64) };
133+
let phdr: &'pheader _ = unsafe { &*phdr_ptr.cast::<ProgramHeader64>() };
134134
Ok(ProgramHeader::Ph64(phdr))
135135
}
136136

137137
// 3. Cast and return the 32-bit program header:
138138
Class::ThirtyTwo => {
139-
let phdr: &'pheader _ = unsafe { &*(phdr_ptr as *const ProgramHeader32) };
139+
let phdr: &'pheader _ = unsafe { &*phdr_ptr.cast::<ProgramHeader32>() };
140140
Ok(ProgramHeader::Ph32(phdr))
141141
}
142142

src/aero_kernel/src/utils/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ impl<T> PerCpu<T> {
132132
let cpu_count = get_cpu_count();
133133
let size = mem::size_of::<T>() * cpu_count;
134134

135-
let raw = unsafe { alloc_zeroed(Layout::from_size_align_unchecked(size, 8)) as *mut T };
135+
let raw = unsafe { alloc_zeroed(Layout::from_size_align_unchecked(size, 8)).cast::<T>() };
136136

137137
unsafe {
138138
for i in 0..cpu_count {

0 commit comments

Comments
 (0)