Manual Page Result
0
Command: __get_tcb | Section: 2 | Source: OpenBSD | File: __get_tcb.2
__GET_TCB(2) FreeBSD System Calls Manual __GET_TCB(2)
NAME
__get_tcb, __set_tcb - get or 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 libpthread and
other parts of the C 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.
The initial thread of a new process created using fork(2) or vfork(2)
inherits the TCB address of the thread that created it. A thread created
using __tfork(3) starts with the TCB address specified in that call.
execve(2) resets the thread's TCB address 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
__tfork(3)
HISTORY
The __get_tcb() and __set_tcb() system calls appeared in OpenBSD 5.1.
FreeBSD 14.1-RELEASE-p8 February 22, 2023 FreeBSD 14.1-RELEASE-p8