tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

ptrace(2) interface for TLSBASE



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



Home | Main Index | Thread Index | Old Index