TLSBASE is stored on a selection of ports in a dedicated mcontext entry,
out of gpregs.
In the amd64 case mcontext looks like this:
typedef struct {
__gregset_t __gregs;
__greg_t _mc_tlsbase;
__fpregset_t __fpregs;
} mcontext_t;
The same situation is for: i386, arm, m68k and mips.
This patch implements the accessors for amd64:
http://netbsd.org/~kamil/patch-00199-TLSBASE.txt
Does it look correct? If so I will add the same code for i386,
i386-on-amd64, arm, m68k and mips.
I'm not completely sure as l_private might be desynced with TLSBASE that
was updated without letting the kernel know.
I intend to get this change merged into -9, before 9.0.
This interface pending to be introduced in GDB/NetBSD.
NB. FS/GS in x86 __gpregs is confusing as it is not TLS base.
Attachment:
signature.asc
Description: OpenPGP digital signature