Re: 64-syscall args on 32-bit vs syscall()

From: Andreas Schwab
Date: Thu Mar 18 2010 - 13:20:58 EST


Steven Munroe <munroesj@xxxxxxxxxxxxxxxxxx> writes:

> extern long int syscall (long int __sysno, ...) __THROW;
>
> #endif /* Use misc. */
>
> Changing this would be an ABI change and would have to be versioned. It
> would effect any one using syscall not just SYS_fallocate.
>
> the question is do programmers in practice include unistd.h when they
> use syscall.
>
> If the changed prototype is not in scope then the 1st parm (__sysno)
> defaults to int and is passed in on r3 which gets moved to r0.

int is incompatible with long, so you already get undefined behaviour
anyway.

Andreas.

--
Andreas Schwab, schwab@xxxxxxxxxx
GPG Key fingerprint = D4E8 DBE3 3813 BB5D FA84 5EC7 45C6 250E 6F00 984E
"And now for something completely different."
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/