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