NAME
__get_tcb
,
__set_tcb
—
get and set the address of the thread
control block of the current thread
SYNOPSIS
void *
__get_tcb
(void);
void
__set_tcb
(void
*);
DESCRIPTION
The
__get_tcb
()
and
__set_tcb
()
functions are for use by librthread and other parts of the system runtime to
retrieve and set the address of the current thread's thread control block
(TCB). This is used to locate per-thread data such as
errno. Each kernel-level thread in a process has a
separate value for this address, which can be obtained and changed via these
system calls. New threads (including the first thread of a new process)
created using fork(2),
vfork(2), or
rfork(2), start with this address set to zero. Similarly,
execve(2) resets it to zero.
On some platforms, this address is also directly mapped to a CPU register which can be accessed from userspace.
RETURN VALUES
__get_tcb
() returns the address of the
thread control block of the current thread.
SEE ALSO
HISTORY
The __get_tcb
() and
__set_tcb
() system calls appeared in
OpenBSD 5.1.