Skip to content

Commit db21538

Browse files
authored
Merge pull request #73 from YanQD/hypervisor
refactor(axklib-impl): replace wildcard import with explicit imports and update module paths
2 parents 8e7e5ab + 1bd730e commit db21538

File tree

3 files changed

+19
-11
lines changed

3 files changed

+19
-11
lines changed

api/axfeat/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,4 @@
4141
#![no_std]
4242

4343
#[cfg(feature = "driver-dyn")]
44-
extern crate axklib_impl;
44+
extern crate axklib_impl;

modules/axklib-impl/src/lib.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,31 @@
22

33
use core::time::Duration;
44

5-
use axklib::*;
5+
use axklib::{AxResult, IrqHandler, Klib, PhysAddr, VirtAddr, impl_trait};
66

77
struct KlibImpl;
88

99
impl_trait! {
1010
impl Klib for KlibImpl {
1111
fn mem_iomap(addr: PhysAddr, size: usize) -> AxResult<VirtAddr> {
12-
mem::iomap(addr, size)
12+
axmm::iomap(addr, size)
1313
}
1414

1515
fn time_busy_wait(dur: Duration) {
16-
time::busy_wait(dur);
16+
axhal::time::busy_wait(dur);
1717
}
1818

1919
fn irq_set_enable(_irq: usize, _enabled: bool) {
2020
#[cfg(feature = "irq")]
21-
irq::set_enable(_irq, _enabled);
21+
axhal::irq::set_enable(_irq, _enabled);
2222
#[cfg(not(feature = "irq"))]
2323
unimplemented!();
2424
}
2525

2626
fn irq_register(_irq: usize, _handler: IrqHandler) -> bool {
2727
#[cfg(feature = "irq")]
2828
{
29-
irq::register(_irq, _handler)
29+
axhal::irq::register(_irq, _handler)
3030
}
3131
#[cfg(not(feature = "irq"))]
3232
{

modules/axruntime/src/lib.rs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -222,12 +222,20 @@ fn init_allocator() {
222222

223223
let mut max_region_size = 0;
224224
let mut max_region_paddr = 0.into();
225+
let mut use_next_free = false;
226+
225227
for r in memory_regions() {
226-
if r.flags.contains(MemRegionFlags::FREE) && r.size > max_region_size {
227-
max_region_size = r.size;
228-
max_region_paddr = r.paddr;
229-
// use lowest addr region
230-
break;
228+
if r.name == ".bss" {
229+
use_next_free = true;
230+
} else if r.flags.contains(MemRegionFlags::FREE) {
231+
if use_next_free {
232+
max_region_size = r.size;
233+
max_region_paddr = r.paddr;
234+
break;
235+
} else if r.size > max_region_size {
236+
max_region_size = r.size;
237+
max_region_paddr = r.paddr;
238+
}
231239
}
232240
}
233241
for r in memory_regions() {

0 commit comments

Comments
 (0)