mirror of
https://github.com/rcore-os/rCore-Tutorial-v3.git
synced 2024-11-24 18:36:24 +04:00
Fix end_va bug in translated_byte_buffer
This commit is contained in:
parent
902e0a2f69
commit
3ea60ee964
@ -166,7 +166,11 @@ pub fn translated_byte_buffer(token: usize, ptr: *const u8, len: usize) -> Vec<&
|
|||||||
vpn.step();
|
vpn.step();
|
||||||
let mut end_va: VirtAddr = vpn.into();
|
let mut end_va: VirtAddr = vpn.into();
|
||||||
end_va = end_va.min(VirtAddr::from(end));
|
end_va = end_va.min(VirtAddr::from(end));
|
||||||
v.push(&mut ppn.get_bytes_array()[start_va.page_offset()..end_va.page_offset()]);
|
if end_va.page_offset() == 0 {
|
||||||
|
v.push(&mut ppn.get_bytes_array()[start_va.page_offset()..]);
|
||||||
|
} else {
|
||||||
|
v.push(&mut ppn.get_bytes_array()[start_va.page_offset()..end_va.page_offset()]);
|
||||||
|
}
|
||||||
start = end_va.into();
|
start = end_va.into();
|
||||||
}
|
}
|
||||||
v
|
v
|
||||||
|
Loading…
Reference in New Issue
Block a user