diff options
author | Philip Guenthe <guenther@cvs.openbsd.org> | 2011-10-16 06:21:53 +0000 |
---|---|---|
committer | Philip Guenthe <guenther@cvs.openbsd.org> | 2011-10-16 06:21:53 +0000 |
commit | 2a45f95d13665d24e0b297ff465f09d691dfb1bf (patch) | |
tree | 9d57b98c5c200efda13e826ed52ff15a91d2f197 /lib/libc/sys/__get_tcb.2 | |
parent | e9b2dbe5695582d77448b8fa0769c97400629b97 (diff) |
Add stubs and manpage for __{get,set}_tcb
ok deraadt@
Diffstat (limited to 'lib/libc/sys/__get_tcb.2')
-rw-r--r-- | lib/libc/sys/__get_tcb.2 | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/lib/libc/sys/__get_tcb.2 b/lib/libc/sys/__get_tcb.2 new file mode 100644 index 00000000000..6cd28d53fad --- /dev/null +++ b/lib/libc/sys/__get_tcb.2 @@ -0,0 +1,64 @@ +.\" $OpenBSD: __get_tcb.2,v 1.1 2011/10/16 06:21:52 guenther Exp $ +.\" +.\" Copyright (c) 2011 Philip Guenther <guenther@openbsd.org> +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.Dd $Mdocdate: October 16 2011 $ +.Dt __GET_TCB 2 +.Os +.Sh NAME +.Nm __get_tcb , +.Nm __set_tcb +.Nd "get and set the address of the thread-control-block of the current thread" +.Sh SYNOPSIS +.Ft void * +.Fn __get_tcb "void" +.Ft void +.Fn __set_tcb "void *" +.Sh DESCRIPTION +The +.Fn __get_tcb +and +.Fn __set_tcb +are for use by librthread and other parts of the system runtime to +retrieve and set the address of the current thread's TCB +(thread-control-block). +This is used to locate per-thread data such as +.Va 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 +.Xr fork 2 , +.Xr vfork 2 , +or +.Xr rfork 2 , +start with this address set to zero. +Similarly, +.Xr execve 2 +resets it to zero. +.Pp +On some platforms, this address is also directly mapped to a CPU +register which can be accessed from userspace. +.Sh RETURN VALUES +.Fn __get_tcb +returns the address of the thread-control-block of the current thread. +.Sh SEE ALSO +.Xr rfork 2 +.Sh HISTORY +The +.Fn __get_tcb +and +.Fn __set_tcb +system calls appeared in +.Ox 5.1 . |