[hppa-linux] syscall work

Mike Shaver shaver@netscape.com
Fri, 26 Mar 1999 06:12:38 -0500


Michael Shalayeff wrote:
> Making, drinking tea and reading an opus magnum from Mike Shaver:
> > While we're on the topic, though: why 0xC0000004 and not 0xC0000000 as
> 0xC0000004 is because hpux uses it (;

Actually, I meant ``why does HP-UX use that address?''. =)

> dunno about linux's binary emulation principles, but for
> all bsd's the emulation parameters pointer is located in the proc
> structure, which allows syscall emulation to work even all
> the emulated os'es are using the same syscall entry point (on some
> architectures there might be only one possible way for syscall, 4 xampl)

Yes, we can do that too (and do on SPARC for Solaris at least, perhaps
SunOS as well), but it seems less efficient than just using different
syscall numbers or -- in the case of lovely hardware like PA-RISC --
using a different gateway address.

> > the target address?  (Although there are other bugs, like ``ldo 5,%r22''
> > instead of ``ldi 5,%r22'' in the Assembler Ref as well, so maybe this is
> > another?)
> there is no such pa-risc instruction like ldi, it's a pseudo-asm-insn
> which is actually ldo imm(0), rt
> the whole pa-risc asm is full of pseudo-insns (like comb, comib, b(ranch))

That I know, but ``ldo 5,%r22'' is illegal syntax (according to gas and
the assembler reference, anyway), and that's what appears in the
Assembler Ref.

Mike

-- 
158640.45 72598.35