On Fri, Aug 12, 2016 at 2:09 AM, Michael S. Tsirkin <mst@redhat.com> wrote:
I guess
typedef void * errno_t;
is one way, maybe marking it noderef for good measure.

This means the values are 64 bit unfortunately, which is often
overkill.

s/64-bit/native word size/

Does anyone know of an ABI where that's *inefficient*?!  Or at least, less efficient than returning a 32-bit int?  Pretty much every ABI I ever saw says something along the lines of 'register FOO contains the return value if the type is small enough, otherwise for returning aggregates, register FOO contains ...'

I can't believe anyone would deliberately design an ABI where calling
void *foo(void) is less efficient than calling int bar(void);

(and if you have some weird DSP or the CDC6600 in mind where Linux won't run anyway, then comp.arch.necrophilia is --> that way)