Re: 32-bit syscalls from 64-bit process on x86-64?

From: Jeremy Fitzhardinge
Date: Fri Dec 03 2004 - 18:21:11 EST


On Fri, 2004-12-03 at 07:15 +0100, Andi Kleen wrote:
> int 0x80 from 64bit will call 32bit syscalls.

Hm, that's not what I found. If I run int 0x80 with [re]ax=1, I get
exit with a 32-bit process and write with a 64-bit one.

> But some things
> will not work properly, e.g. signals because they test the 32bit
> flag in the task_struct. So you would still get 64bit signal frames.

OK, I can deal with that, since signals are never directly delivered to
the client.

> There are some other such tests, but they probably wont affect you.
>
> There were some plans at one point to allow to toggle the flag
> using personality or prctl, but so far it hasn't been implemented.
> There is also no way to do 64bit calls from a 32bit executable.

What about my idea of using distinct ranges of syscall numbers to
disambiguate them?

J

-
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/