When this was brought up some time ago, there were strong objections from those who hate indirections. VAX users don't like unnecessary indirection because it's slow there. Some arm ports uses struct passing for bus_* API.
The problem at that time was that the move was thought of as mandatory. I don't think it should. I know situations where ABI is less important and performance matters more. So we could make a rule like: - APIs are real functions by default. Official modules binaries follow this. While: - Users can use optimize (inline, struct passing, ...) by their own, but ABI is not kept in that cases. It'd make sense to let the decision (ABI or performance) made by each port (portmaster). Keeping ABI compatibility of VAX might make little sense for VAX users. I don't know... Masao
