8 Aug 2007 11:49
stacked syscall args on N32 kernel + O32 userland
Masao Uebayashi <uebayasi <at> gmail.com>
2007-08-08 09:49:24 GMT
2007-08-08 09:49:24 GMT
O32 programs put arguments, that can't be put on argument registers
(a[0-3] for O32), on stack, where 64-bit values are aligned to 64-bit
and 32-bit and smaller values are aligned to 32-bit.
The new syscall entry code Matt Thomas has just added (thanks!) to
matt-mips64 doesn't work if register_t is 64-bit. The right code I
think would be
* copyin() the whole arguments (sy_argsize) into kernel, and
* copy each argument into register_t array.
But but we can't know sizes of each argument at this point. Some may
be 64-bit, like off_t. So we can't rearrange arguments into
register_t array.
Masao
RSS Feed