From 6e915d9ccf44169544f03a15499b07820ea871d5 Mon Sep 17 00:00:00 2001 From: hky1999 <976929993@qq.com> Date: Tue, 29 Oct 2024 00:24:51 +0800 Subject: [PATCH] [fix] set MAX_RW_SIZE in riscv console read and write --- modules/axhal/src/platform/riscv64_qemu_virt/console.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/axhal/src/platform/riscv64_qemu_virt/console.rs b/modules/axhal/src/platform/riscv64_qemu_virt/console.rs index 84f0b2a5d0..7051fd698b 100644 --- a/modules/axhal/src/platform/riscv64_qemu_virt/console.rs +++ b/modules/axhal/src/platform/riscv64_qemu_virt/console.rs @@ -3,7 +3,7 @@ use memory_addr::VirtAddr; use crate::mem::virt_to_phys; /// The maximum number of bytes that can be read at once. -const MAX_READ_SIZE: usize = 256; +const MAX_RW_SIZE: usize = 256; /// Writes a byte to the console. pub fn putchar(c: u8) { @@ -13,7 +13,7 @@ pub fn putchar(c: u8) { /// Writes bytes to the console from input u8 slice. pub fn write_bytes(bytes: &[u8]) { sbi_rt::console_write(sbi_rt::Physical::new( - bytes.len(), + bytes.len().min(MAX_RW_SIZE), virt_to_phys(VirtAddr::from_ptr_of(bytes.as_ptr())).as_usize(), 0, )); @@ -23,7 +23,7 @@ pub fn write_bytes(bytes: &[u8]) { /// Returns the number of bytes read. pub fn read_bytes(bytes: &mut [u8]) -> usize { sbi_rt::console_read(sbi_rt::Physical::new( - bytes.len().min(MAX_READ_SIZE), + bytes.len().min(MAX_RW_SIZE), virt_to_phys(VirtAddr::from_mut_ptr_of(bytes.as_mut_ptr())).as_usize(), 0, ))