cheribsd
cheribsd copied to clipboard
psci: Make the assembly code match the structure defined in C
The output argument is a struct containing uintptr_t, so we should be storing capabilities there and not integers. Alternatively, the struct should be changed to always use ptraddr_t.
Noticed this before but IIRC nothing passes non-NULL for the 9th argument so in practice it's dead code (other than the load from the stack, which works due to endianness). Worth fixing though.
The struct probably should be register_t though to match the argument types until such time as PSCI gains a capability-aware interface (which changes almost nothing except for CPU_ON, IIRC)
Fix has been merged.