Skip to content

Commit aaf5142

Browse files
committed
use addr_of! instead of from_ref
1 parent 6eeddf2 commit aaf5142

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

src/arch/aarch64/mod.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ pub fn output_message_byte(byte: u8) {
8181
}
8282

8383
pub unsafe fn get_memory(_memory_size: u64) -> u64 {
84-
(ptr::from_ref(unsafe { &kernel_end }).addr() as u64).align_up(LargePageSize::SIZE as u64)
84+
(ptr::addr_of!(kernel_end).addr() as u64).align_up(LargePageSize::SIZE as u64)
8585
}
8686

8787
pub fn find_kernel() -> &'static [u8] {
@@ -159,21 +159,21 @@ pub unsafe fn boot_kernel(kernel_info: LoadedKernel) -> ! {
159159
for i in pgt_slice.iter_mut() {
160160
*i = 0;
161161
}
162-
pgt_slice[0] = ptr::from_ref(unsafe { &l1_pgtable }).addr() as u64 + PT_PT;
163-
pgt_slice[511] = ptr::from_ref(unsafe { &l0_pgtable }).addr() as u64 + PT_PT + PT_SELF;
162+
pgt_slice[0] = ptr::addr_of!(l1_pgtable).addr() as u64 + PT_PT;
163+
pgt_slice[511] = ptr::addr_of!(l0_pgtable).addr() as u64 + PT_PT + PT_SELF;
164164

165165
let pgt_slice = unsafe { core::slice::from_raw_parts_mut(ptr::from_mut(&mut l1_pgtable), 512) };
166166
for i in pgt_slice.iter_mut() {
167167
*i = 0;
168168
}
169-
pgt_slice[0] = ptr::from_ref(unsafe { &l2_pgtable }).addr() as u64 + PT_PT;
170-
pgt_slice[1] = ptr::from_ref(unsafe { &l2k_pgtable }).addr() as u64 + PT_PT;
169+
pgt_slice[0] = ptr::addr_of!(l2_pgtable).addr() as u64 + PT_PT;
170+
pgt_slice[1] = ptr::addr_of!(l2k_pgtable).addr() as u64 + PT_PT;
171171

172172
let pgt_slice = unsafe { core::slice::from_raw_parts_mut(ptr::from_mut(&mut l2_pgtable), 512) };
173173
for i in pgt_slice.iter_mut() {
174174
*i = 0;
175175
}
176-
pgt_slice[0] = ptr::from_ref(unsafe { &l3_pgtable }).addr() as u64 + PT_PT;
176+
pgt_slice[0] = ptr::addr_of!(l3_pgtable).addr() as u64 + PT_PT;
177177

178178
let pgt_slice = unsafe { core::slice::from_raw_parts_mut(ptr::from_mut(&mut l3_pgtable), 512) };
179179
for i in pgt_slice.iter_mut() {
@@ -188,7 +188,7 @@ pub unsafe fn boot_kernel(kernel_info: LoadedKernel) -> ! {
188188
*i = 0;
189189
}
190190
for (i, pgt_slice) in pgt_slice.iter_mut().enumerate().take(10) {
191-
*pgt_slice = ptr::from_mut(unsafe { &mut L0mib_pgtable }).addr() as u64
191+
*pgt_slice = ptr::addr_of!(L0mib_pgtable).addr() as u64
192192
+ (i * BasePageSize::SIZE) as u64
193193
+ PT_PT;
194194
}

src/arch/x86_64/mod.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ pub fn find_kernel() -> &'static [u8] {
173173
let elf_start = ramdisk_address as usize;
174174
let elf_len = ramdisk_size as usize;
175175

176-
let free_memory_address = ptr::from_ref(unsafe { &kernel_end })
176+
let free_memory_address = unsafe { ptr::addr_of!(kernel_end) }
177177
.addr()
178178
.align_up(Size2MiB::SIZE as usize);
179179
// TODO: Workaround for https://github.com/hermitcore/loader/issues/96
@@ -286,7 +286,7 @@ pub unsafe fn boot_kernel(kernel_info: LoadedKernel) -> ! {
286286

287287
// determine boot stack address
288288
let new_stack =
289-
(ptr::from_ref(unsafe { &kernel_end }).addr() + 0x1000).align_up(Size4KiB::SIZE as usize);
289+
(ptr::addr_of!(kernel_end).addr() + 0x1000).align_up(Size4KiB::SIZE as usize);
290290

291291
let cmdline_ptr = unsafe {
292292
*(sptr::from_exposed_addr(boot_params + LINUX_SETUP_HEADER_OFFSET + CMD_LINE_PTR_OFFSET))
@@ -444,7 +444,7 @@ pub unsafe fn boot_kernel(kernel_info: LoadedKernel) -> ! {
444444
let multiboot = unsafe { Multiboot::from_ptr(mb_info as u64, &mut MEM).unwrap() };
445445

446446
// determine boot stack address
447-
let mut new_stack = ptr::from_ref(unsafe { &kernel_end })
447+
let mut new_stack = ptr::addr_of!(kernel_end)
448448
.addr()
449449
.align_up(Size4KiB::SIZE as usize);
450450

0 commit comments

Comments
 (0)