[hppa-linux] Gateway instructions
Thu, 18 Mar 1999 17:38:28 -0800
>OK, so you don't have a spot on the page for each syscall? I was
>thinking that we'd want to do that, since we're going to use the whole
>page anyway and it would make things a little quicker by eliminating the
>later dispatch-by-syscall step.
There's a fair amount of setup code common to all syscalls before the
dispatch to individual kernel entry points, and there are a lot of
syscalls in HP-UX, so we use a single gateway.
For the 64-bit ABI, the gateway address is not hardcoded; when the
program is loaded, the kernel passes it the address of a syscall vector
table, which has one pointer per syscall. Most of the syscalls still
vector to the one common gateway, but the lightweight syscalls can now be
vectored off to a special gateway that has less overhead.
The 32-bit syscall convention is documented in (of all places) the
Assembler manual; the 64-bit convention is documented in the PA-64
runtime supplement (program startup chapter). These documents are
Application Delivery Lab