Use C return in SBI handlers and clean up a bit
Details
Details
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Comment Actions
This doesn't seem to conform to the spec.
An ECALL with an unsupported SBI extension ID (EID) or an unsupported SBI function ID (FID) must return the error code SBI_ERR_NOT_SUPPORTED.
SBI_ERR_INVALID_PARAM Either hart_mask_base, or at least one hartid from hart_mask, is not valid, i.e. either the hartid is not enabled by the platform or is not available to the supervisor.
(this one's a "may return", but I think best to do so)
(but note hart_mask_base of -1 means all harts, and hart_mask is ignored)
sys/riscv/vmm/vmm_sbi.c | ||
---|---|---|
160–161 | Not for *this* change, but can you please implement this properly? It should not have landed with this TODO... |
Comment Actions
Address @jrtc27 comments
- riscv_send_ipi() now takes cpuset* as an argument
- SBI error codes fixed with respect to the spec