Skip to content

Commit cae02f5

Browse files
committed
sq: correctly handle qemu feature
1 parent 58bd413 commit cae02f5

12 files changed

Lines changed: 460 additions & 192 deletions

File tree

Cargo.lock

Lines changed: 372 additions & 104 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

kernel/init_thread/src/boot_info.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
//! Insert sections that are either "free" or "used", disparate used sections can not overlap,
66
//! overlapping free sections are merged (unless they have different `MemAttributes`).
77
//!
8-
#[cfg(qemu)]
8+
#[cfg(feature = "qemu")]
99
use libqemu::semi_println;
1010
use {
1111
core::{cell::LazyCell, fmt},
@@ -319,7 +319,7 @@ impl BootInfo {
319319
if region.is_empty() {
320320
return Ok(());
321321
}
322-
#[cfg(qemu)]
322+
#[cfg(feature = "qemu")]
323323
semi_println!("BOOT_INFO.insert_free_region: {}", region);
324324
self.insert_raw(region)?;
325325
self.merge_free_regions();
@@ -349,13 +349,13 @@ impl BootInfo {
349349
if region.is_empty() {
350350
return Ok(());
351351
}
352-
#[cfg(qemu)]
352+
#[cfg(feature = "qemu")]
353353
semi_println!("BOOT_INFO.insert_used_region: {}", region);
354354

355355
// Check for overlap with existing used regions.
356356
for slot in &self.regions {
357357
if slot.is_used() && slot.intersects(&region) {
358-
#[cfg(qemu)]
358+
#[cfg(feature = "qemu")]
359359
semi_println!(
360360
"BOOT_INFO.insert_used_region: ERROR overlaps existing used region: {}",
361361
slot
@@ -389,7 +389,7 @@ impl BootInfo {
389389
return Ok(());
390390
}
391391

392-
#[cfg(qemu)]
392+
#[cfg(feature = "qemu")]
393393
semi_println!(
394394
"BOOT_INFO.insert_overlay_region: [{} - {}) {}",
395395
overlay_start,
@@ -646,7 +646,7 @@ impl BootInfo {
646646
// Add the remaining regions in largest to smallest order.
647647
self.insert_raw(rem_large)?;
648648
if self.insert_raw(rem_small).is_err() {
649-
#[cfg(qemu)]
649+
#[cfg(feature = "qemu")]
650650
semi_println!(
651651
"BootInfo::alloc_region(): wasted {} bytes due to alignment, try to increase NUM_MEM_REGIONS",
652652
rem_small.size()
@@ -689,11 +689,11 @@ impl BootInfo {
689689

690690
/// Print all non-empty regions for debug purposes.
691691
pub fn dump(&self) {
692-
#[cfg(qemu)]
692+
#[cfg(feature = "qemu")]
693693
semi_println!("BOOT_INFO: {} region(s):", self.count());
694694
for region in &self.regions {
695695
if !region.is_empty() {
696-
#[cfg(qemu)]
696+
#[cfg(feature = "qemu")]
697697
semi_println!(" {}", region);
698698
}
699699
}

kernel/init_thread/src/device_tree.rs

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -431,14 +431,14 @@ pub struct FdtDumper<'a> {
431431
impl FdtDumper<'_> {
432432
fn push_indent(&mut self) {
433433
for _ in 0..self.indent {
434-
#[cfg(qemu)]
434+
#[cfg(feature = "qemu")]
435435
libqemu::semi_print!(" ");
436436
}
437437
}
438438

439439
fn dump_node_name(&mut self, name: &str) {
440440
self.push_indent();
441-
#[cfg(qemu)]
441+
#[cfg(feature = "qemu")]
442442
libqemu::semi_println!("{name} {{");
443443
}
444444

@@ -456,15 +456,15 @@ impl FdtDumper<'_> {
456456
fn dump_property(&mut self, prop: &DevTreeIndexProp) -> DevTreeResult<()> {
457457
self.push_indent();
458458

459-
#[cfg(qemu)]
459+
#[cfg(feature = "qemu")]
460460
libqemu::semi_print!("{}", prop.name()?);
461461

462462
if prop.length() == 0 {
463-
#[cfg(qemu)]
463+
#[cfg(feature = "qemu")]
464464
libqemu::semi_println!(";");
465465
return Ok(());
466466
}
467-
#[cfg(qemu)]
467+
#[cfg(feature = "qemu")]
468468
libqemu::semi_print!(" = ");
469469

470470
// SAFETY: Unsafe Ok - we're reinterpreting the data as expected.
@@ -473,37 +473,37 @@ impl FdtDumper<'_> {
473473
if are_printable_strings(prop.iter_str()) {
474474
let mut iter = prop.iter_str();
475475
while let Some(s) = iter.next()? {
476-
#[cfg(qemu)]
476+
#[cfg(feature = "qemu")]
477477
libqemu::semi_print!("\"{}\", ", s);
478478
}
479479
// let _ = self.dump.pop();
480480
// let _ = self.dump.pop();
481481
} else if prop.propbuf().len() % size_of::<u32>() == 0 {
482-
#[cfg(qemu)]
482+
#[cfg(feature = "qemu")]
483483
libqemu::semi_print!("<");
484484
for val in prop.propbuf().chunks_exact(size_of::<u32>()) {
485485
// We use read_unaligned
486486
let v = u32::from_be(read_unaligned::<u32>(val.as_ptr().cast::<u32>()));
487-
#[cfg(qemu)]
487+
#[cfg(feature = "qemu")]
488488
libqemu::semi_print!("{:#010x} ", v);
489489
}
490490
// let _ = self.dump.pop(); // Pop off extra space
491-
#[cfg(qemu)]
491+
#[cfg(feature = "qemu")]
492492
libqemu::semi_print!(">");
493493
} else {
494-
#[cfg(qemu)]
494+
#[cfg(feature = "qemu")]
495495
libqemu::semi_print!("[");
496496
for val in prop.propbuf() {
497-
#[cfg(qemu)]
497+
#[cfg(feature = "qemu")]
498498
libqemu::semi_print!("{:02x} ", val);
499499
}
500500
// let _ = self.dump.pop(); // Pop off extra space
501-
#[cfg(qemu)]
501+
#[cfg(feature = "qemu")]
502502
libqemu::semi_print!("]");
503503
}
504504
}
505505

506-
#[cfg(qemu)]
506+
#[cfg(feature = "qemu")]
507507
libqemu::semi_println!(";");
508508
Ok(())
509509
}
@@ -519,7 +519,7 @@ impl FdtDumper<'_> {
519519
}
520520
self.indent -= 1;
521521
self.push_indent();
522-
#[cfg(qemu)]
522+
#[cfg(feature = "qemu")]
523523
libqemu::semi_println!("}};");
524524
Ok(())
525525
}
@@ -530,28 +530,28 @@ impl FdtDumper<'_> {
530530

531531
pub fn dump_metadata(&mut self) {
532532
let fdt = self.index.fdt();
533-
#[cfg(qemu)]
533+
#[cfg(feature = "qemu")]
534534
libqemu::semi_println!("// magic:\t\t{:#x}", fdt.magic());
535535
let s = fdt.totalsize();
536-
#[cfg(qemu)]
536+
#[cfg(feature = "qemu")]
537537
libqemu::semi_println!("// totalsize:\t\t{:#x} ({})", s, s);
538-
#[cfg(qemu)]
538+
#[cfg(feature = "qemu")]
539539
libqemu::semi_println!("// off_dt_struct:\t{:#x}", fdt.off_dt_struct());
540-
#[cfg(qemu)]
540+
#[cfg(feature = "qemu")]
541541
libqemu::semi_println!("// off_dt_strings:\t{:#x}", fdt.off_dt_strings());
542-
#[cfg(qemu)]
542+
#[cfg(feature = "qemu")]
543543
libqemu::semi_println!("// off_mem_rsvmap:\t{:#x}", fdt.off_mem_rsvmap());
544-
#[cfg(qemu)]
544+
#[cfg(feature = "qemu")]
545545
libqemu::semi_println!("// version:\t\t{:}", fdt.version());
546-
#[cfg(qemu)]
546+
#[cfg(feature = "qemu")]
547547
libqemu::semi_println!("// last_comp_version:\t{:}", fdt.last_comp_version());
548-
#[cfg(qemu)]
548+
#[cfg(feature = "qemu")]
549549
libqemu::semi_println!("// boot_cpuid_phys:\t{:#x}", fdt.boot_cpuid_phys());
550-
#[cfg(qemu)]
550+
#[cfg(feature = "qemu")]
551551
libqemu::semi_println!("// size_dt_strings:\t{:#x}", fdt.size_dt_strings());
552-
#[cfg(qemu)]
552+
#[cfg(feature = "qemu")]
553553
libqemu::semi_println!("// size_dt_struct:\t{:#x}", fdt.size_dt_struct());
554-
#[cfg(qemu)]
554+
#[cfg(feature = "qemu")]
555555
libqemu::semi_println!();
556556
}
557557
}

kernel/init_thread/src/loader.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// init_thread/src/loader.rs
22

3-
#[cfg(qemu)]
3+
#[cfg(feature = "qemu")]
44
use libqemu::semi_println;
55
use {
66
crate::{
@@ -96,7 +96,7 @@ pub fn load_kernel(allocator: &mut BootAllocator) -> Result<KernelLayout, &'stat
9696
)
9797
.ok_or("Failed to allocate memory for kernel")?;
9898

99-
#[cfg(qemu)]
99+
#[cfg(feature = "qemu")]
100100
semi_println!(
101101
"Nucleus is {total_pages} * 4K pages @ {:#016X}",
102102
phys_base.as_u64()
@@ -150,7 +150,7 @@ fn load_section(section: &LoadableSection, kernel_phys_base: PhysAddr) -> Result
150150
let offset = section.meta.offset_from_base(KERNEL.virt_base);
151151
let dest_phys = PhysAddr::new(kernel_phys_base.as_u64() + offset);
152152

153-
#[cfg(qemu)]
153+
#[cfg(feature = "qemu")]
154154
semi_println!(
155155
"> section {}, copy {} bytes of {} bytes total to {:#016X}",
156156
section.meta.name,
@@ -188,7 +188,7 @@ fn zero_bss(bss: &SectionMeta, kernel_phys_base: PhysAddr) -> Result<(), &'stati
188188
let offset = bss.offset_from_base(KERNEL.virt_base);
189189
let dest_phys = PhysAddr::new(kernel_phys_base.as_u64() + offset);
190190

191-
#[cfg(qemu)]
191+
#[cfg(feature = "qemu")]
192192
semi_println!(
193193
"> section {}, zero {} bytes at {:#016X}",
194194
bss.name,

0 commit comments

Comments
 (0)