OpenBSD manual page server

Manual Page Search Parameters

__GET_TCB(2) System Calls Manual __GET_TCB(2)

__get_tcb, __set_tcbget and set the address of the thread control block of the current thread

void *
__get_tcb(void);

void
__set_tcb(void *);

The () and () 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.

__get_tcb() returns the address of the thread control block of the current thread.

rfork(2)

The __get_tcb() and __set_tcb() system calls appeared in OpenBSD 5.1.

October 16, 2011 OpenBSD-5.1