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

From: Peter Chubb <peter_at_chubb.wattle.id.au>
Date: 2003-01-15 11:53:48
>>>>> "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)

So is the idea to extend the TCB (in contravention of the current
ABI), or should this code have an extra level of indirection, to get at the
sysinfo field from the library-specific structure?

Or am I missing something obvious?


--
Dr Peter Chubb				    peterc@gelato.unsw.edu.au
You are lost in a maze of BitKeeper repositories, all almost the same.
Received on Tue Jan 14 16:54:00 2003

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