Remove all those "safety" headers, C calls are never "safe" as per Rust's definition.
As far as I can tell, these two are trivial and do not need firmware calls. Suggest moving to IRRT.
Do we really need to call the firmware for something as simple as transpose? Should probably go to IRRT instead.
Half that memory may be uninitialized and also this will break on any big-endian architecture (not that there are many left out there).
Thought the compiler had to be changed as well? Or does it work right now just because x86 is little endian?
Yes, just like they are defined in any other serious compiler.
Is there a reason not to follow the Rust cslice?
The firmware uses Rust cslice and this will become a problem when we start using it on 64-bit CPUs like Zynq MPSoC.