Re: [Linux-ia64] Re: [RFC] proposed change for syscall stub

From: Ulrich Drepper <drepper_at_redhat.com>
Date: 2003-01-15 12:14:10
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Peter Chubb wrote:
>>>>>>"David" == David Mosberger <davidm@napali.hpl.hp.com> writes:
> 
> 
> 
> really_new_syscall_stub: 
> 	adds r2 = SYSINFO_OFF, r13;; 
> 	ld8 r2 = [r2] 
> 	mov r9 = ar.pfs;; 
> 	mov r15 = SYSCALL_NR 
> 	mov b7 = r2
> 	br.call.sptk.many b6 = b7;; 
> 	cmp.eq p6,p0 = -1, r10 
> 	mov ar.pfs = r9 
> (p6)	br.cond.spnt.few syscall_error 
> 	br.ret.sptk.many rp;;
> 
> David> Here, SYSINFO_OFF is the offset in the user-level thread-control-block
> David> at which the system call entry point is stored.  glibc initializes
> David> this value to point to the following piece of code:
> 
> 
> The ABI only allows 16 bytes for the TCB pointed to by R13; 
> the first 8 bytes are a pointer to the dynamic thread vector, the
> second 8 bytes a pointer to the per-thread thread-library-private data
> (for linuxthreads, it points to a _pthread_descr)

I haven't yet decided how I'll handle this for IA-64 but I think the
thread descriptor should be placed before what the IA-64 ABI
unfortunately calls TCB.  I.e., SYSINFO_OFF will be a negative value.

- -- 
- --------------.                        ,-.            444 Castro Street
Ulrich Drepper \    ,-----------------'   \ Mountain View, CA 94041 USA
Red Hat         `--' drepper at redhat.com `---------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE+JLXi2ijCOnn/RHQRAgHLAJ9l2WqOeUqjK4uqVvR7Cp0SO58a6QCghwB/
mR6zJ3mrvjlB7GycnU3cqNU=
=68G8
-----END PGP SIGNATURE-----
Received on Tue Jan 14 17:14:16 2003

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:11 EST