small reorder to make tohost output more readable
This commit is contained in:
parent
978c3db06e
commit
82a70efdb8
|
@ -1130,8 +1130,8 @@ iss::status riscv_hart_m_p<BASE, FEAT, LOGCAT>::write_mem(phys_addr_t paddr, uns
|
||||||
reg_t loaded_payload[8];
|
reg_t loaded_payload[8];
|
||||||
read(address_type::PHYSICAL, access_type::READ, traits<BASE>::MEM, payload_addr, sizeof(loaded_payload),
|
read(address_type::PHYSICAL, access_type::READ, traits<BASE>::MEM, payload_addr, sizeof(loaded_payload),
|
||||||
reinterpret_cast<uint8_t*>(loaded_payload));
|
reinterpret_cast<uint8_t*>(loaded_payload));
|
||||||
reg_t syscall_no = loaded_payload[0];
|
reg_t syscall_num = loaded_payload[0];
|
||||||
if(syscall_no == 64) { // SYS_WRITE
|
if(syscall_num == 64) { // SYS_WRITE
|
||||||
reg_t fd = loaded_payload[1];
|
reg_t fd = loaded_payload[1];
|
||||||
reg_t buf_ptr = loaded_payload[2];
|
reg_t buf_ptr = loaded_payload[2];
|
||||||
reg_t len = loaded_payload[3];
|
reg_t len = loaded_payload[3];
|
||||||
|
@ -1140,15 +1140,17 @@ iss::status riscv_hart_m_p<BASE, FEAT, LOGCAT>::write_mem(phys_addr_t paddr, uns
|
||||||
reinterpret_cast<uint8_t*>(buf.data()));
|
reinterpret_cast<uint8_t*>(buf.data()));
|
||||||
// we disregard the fd and just log to stdout
|
// we disregard the fd and just log to stdout
|
||||||
for(size_t i = 0; i < len; i++) {
|
for(size_t i = 0; i < len; i++) {
|
||||||
io_buf << buf[i];
|
if(buf[i] == '\n') {
|
||||||
|
CPPLOG(INFO) << "tohost send '" << io_buf.str() << "'";
|
||||||
|
io_buf.str("");
|
||||||
|
} else
|
||||||
|
io_buf << buf[i];
|
||||||
}
|
}
|
||||||
CPPLOG(INFO) << "tohost send '" << io_buf.str() << "'";
|
|
||||||
io_buf.str("");
|
|
||||||
// Not sure what the correct return value should be
|
// Not sure what the correct return value should be
|
||||||
uint8_t ret_val = 1;
|
uint8_t ret_val = 1;
|
||||||
write(address_type::PHYSICAL, access_type::WRITE, traits<BASE>::MEM, fromhost, 1, &ret_val);
|
write(address_type::PHYSICAL, access_type::WRITE, traits<BASE>::MEM, fromhost, 1, &ret_val);
|
||||||
} else {
|
} else {
|
||||||
CPPLOG(ERR) << "tohost syscall with number " << std::hex << syscall_no << std::dec << " (" << syscall_no
|
CPPLOG(ERR) << "tohost syscall with number " << std::hex << syscall_num << std::dec << " (" << syscall_num
|
||||||
<< ") not implemented";
|
<< ") not implemented";
|
||||||
this->reg.trap_state = std::numeric_limits<uint32_t>::max();
|
this->reg.trap_state = std::numeric_limits<uint32_t>::max();
|
||||||
this->interrupt_sim = payload;
|
this->interrupt_sim = payload;
|
||||||
|
|
Loading…
Reference in New Issue