@@ -28,25 +28,20 @@ fn into_fs_error(e: RvmError) -> FsError {
28
28
}
29
29
30
30
mod rvm_extern_fn {
31
- use crate :: memory:: { alloc_frame, dealloc_frame, phys_to_virt} ;
32
- #[ rvm:: extern_fn( alloc_frame) ]
33
- fn rvm_alloc_frame ( ) -> Option < usize > {
34
- alloc_frame ( )
31
+ use crate :: memory:: { alloc_frame_contiguous, dealloc_frame, phys_to_virt} ;
32
+ use rvm:: PAGE_SIZE ;
33
+ #[ rvm:: extern_fn( alloc_frames) ]
34
+ fn rvm_alloc_frames ( n : usize , align_log2 : usize ) -> Option < usize > {
35
+ alloc_frame_contiguous ( n, align_log2)
35
36
}
36
37
37
- #[ rvm:: extern_fn( dealloc_frame) ]
38
- fn rvm_dealloc_frame ( paddr : usize ) {
39
- dealloc_frame ( paddr)
40
- }
41
- #[ rvm:: extern_fn( alloc_frame_x4) ]
42
- fn rvm_alloc_frame_x4 ( ) -> Option < usize > {
43
- use crate :: memory:: alloc_frame_contiguous;
44
- alloc_frame_contiguous ( 4 , 2 )
45
- }
46
-
47
- #[ rvm:: extern_fn( dealloc_frame_x4) ]
48
- fn rvm_dealloc_frame_x4 ( paddr : usize ) {
49
- dealloc_frame ( paddr)
38
+ #[ rvm:: extern_fn( dealloc_frames) ]
39
+ fn rvm_dealloc_frames ( paddr : usize , n : usize , _align_log2 : usize ) {
40
+ for i in 0 ..n {
41
+ dealloc_frame ( paddr + i * PAGE_SIZE )
42
+ }
43
+ //use crate::memory::dealloc_frame_contiguous;
44
+ //dealloc_frame_contiguous(paddr, n, align_log2)
50
45
}
51
46
52
47
#[ rvm:: extern_fn( phys_to_virt) ]
@@ -73,20 +68,13 @@ mod rvm_extern_fn {
73
68
crate :: arch:: interrupt:: trap_handler_no_frame ( sepc) ;
74
69
}
75
70
76
- #[ cfg( all(
77
- any( target_arch = "riscv64" , target_arch = "riscv32" ) ,
78
- feature = "hypervisor"
79
- ) ) ]
80
- #[ rvm:: extern_fn( riscv_check_hypervisor_extension) ]
81
- fn rvm_riscv_check_hypervisor_extension ( ) -> bool {
82
- return true ;
83
- }
84
- #[ cfg( all(
85
- any( target_arch = "riscv64" , target_arch = "riscv32" ) ,
86
- not( feature = "hypervisor" )
87
- ) ) ]
71
+ #[ cfg( any( target_arch = "riscv64" , target_arch = "riscv32" ) ) ]
88
72
#[ rvm:: extern_fn( riscv_check_hypervisor_extension) ]
89
73
fn rvm_riscv_check_hypervisor_extension ( ) -> bool {
90
- return false ;
74
+ if cfg ! ( feature = "hypervisor" ) {
75
+ true
76
+ } else {
77
+ false
78
+ }
91
79
}
92
80
}
0 commit comments