[hppa-linux] Gateway instructions

Cary Coutant cary@cup.hp.com
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 
available from


Cary Coutant
Hewlett-Packard Co.
Application Delivery Lab