Document the non-obsoleted kernel interfaces used by libthr.
Reviewed by: emaste Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D6335
This commit is contained in:
parent
1943fefa8f
commit
10a21ce6a9
1235
lib/libc/sys/_umtx_op.2
Normal file
1235
lib/libc/sys/_umtx_op.2
Normal file
File diff suppressed because it is too large
Load Diff
80
lib/libc/sys/thr_exit.2
Normal file
80
lib/libc/sys/thr_exit.2
Normal file
@ -0,0 +1,80 @@
|
||||
.\" Copyright (c) 2016 The FreeBSD Foundation, Inc.
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" This documentation was written by
|
||||
.\" Konstantin Belousov <kib@FreeBSD.org> under sponsorship
|
||||
.\" from the FreeBSD Foundation.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd May 5, 2016
|
||||
.Dt THR_EXIT 2
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm thr_exit
|
||||
.Nd terminate current thread
|
||||
.Sh LIBRARY
|
||||
.Lb libc
|
||||
.Sh SYNOPSIS
|
||||
.In sys/thr.h
|
||||
.Ft void
|
||||
.Fn thr_exit "long *state"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn thr_exit
|
||||
system call terminates the current kernel-scheduled thread.
|
||||
.Pp
|
||||
If the
|
||||
.Fa state
|
||||
argument is not NULL, the location pointed to by the argument is
|
||||
updated with an arbitrary non-zero value, and
|
||||
.Xr _umtx_op 2
|
||||
.Dv UMTX_OP_WAKE
|
||||
operation is consequently performed on the location.
|
||||
.Pp
|
||||
Attempts to terminate last thread in the process are silently ignored.
|
||||
Use
|
||||
.Xr _exit 2
|
||||
syscall to terminate the process.
|
||||
.Sh RETURN VALUES
|
||||
The function does not return any values.
|
||||
A return from the function indicates that the calling thread was the
|
||||
last one in the process.
|
||||
.Sh SEE ALSO
|
||||
.Xr _exit 2 ,
|
||||
.Xr thr_kill 2 ,
|
||||
.Xr thr_kill2 2 ,
|
||||
.Xr thr_new 2 ,
|
||||
.Xr thr_self 2 ,
|
||||
.Xr thr_set_name 2 ,
|
||||
.Xr _umtx_op 2
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Fn thr_exit
|
||||
system call is non-standard and is used by the
|
||||
.Lb libthr
|
||||
to implement
|
||||
.St -p1003.1-2001
|
||||
.Xr pthread(3)
|
||||
functionality.
|
131
lib/libc/sys/thr_kill.2
Normal file
131
lib/libc/sys/thr_kill.2
Normal file
@ -0,0 +1,131 @@
|
||||
.\" Copyright (c) 2016 The FreeBSD Foundation, Inc.
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" This documentation was written by
|
||||
.\" Konstantin Belousov <kib@FreeBSD.org> under sponsorship
|
||||
.\" from the FreeBSD Foundation.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd May 5, 2016
|
||||
.Dt THR_kill 2
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm thr_kill
|
||||
.Nd send signal to the thread
|
||||
.Sh LIBRARY
|
||||
.Lb libc
|
||||
.Sh SYNOPSIS
|
||||
.In sys/thr.h
|
||||
.Ft int
|
||||
.Fn thr_kill "long id" "int sig"
|
||||
.Ft int
|
||||
.Fn thr_kill2 "pid_t pid" "long id" "int sig"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn thr_kill
|
||||
and
|
||||
.Fn thr_kill2
|
||||
system calls allow sending a signal, specified by the
|
||||
.Fa sig
|
||||
argument, to some threads in a process.
|
||||
For the
|
||||
.Fn thr_kill
|
||||
function, signalled threads are always limited to the current process.
|
||||
For the
|
||||
.Fn thr_kill2
|
||||
function, the
|
||||
.Fa pid
|
||||
argument specifies the process with threads to be signalled.
|
||||
.Pp
|
||||
The
|
||||
.Fa id
|
||||
argument specifies which threads get the signal.
|
||||
If
|
||||
.Fa id
|
||||
is equal to \-1, all threads in the specified process are signalled.
|
||||
Otherwise, only the thread with the thread identifier equal to the
|
||||
argument is signalled.
|
||||
.Pp
|
||||
The
|
||||
.Fa sig
|
||||
argument defines the delivered signal.
|
||||
It must be a valid signal number or zero.
|
||||
In the later case no signal is actually send, and the call is used to
|
||||
verify the liveness of the thread.
|
||||
.Pp
|
||||
The signal is delivered with
|
||||
.Dv siginfo
|
||||
.Dv si_code
|
||||
set to
|
||||
.Dv SI_LWP .
|
||||
.Sh RETURN VALUES
|
||||
If successful,
|
||||
.Fn thr_kill
|
||||
and
|
||||
.Fn thr_kill2
|
||||
will return zero, otherwise \-1 is returned, and
|
||||
.Va errno
|
||||
is set to indicate the error.
|
||||
.Sh ERRORS
|
||||
The
|
||||
.Fn thr_kill
|
||||
and
|
||||
.Fn thr_kill2
|
||||
operations return the following errors:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
The
|
||||
.Fa sig
|
||||
argument is not zero and does not specify valid signal.
|
||||
.It Bq Er ESRCH
|
||||
The specified process or thread was not found.
|
||||
.El
|
||||
.Pp
|
||||
Additionally, the
|
||||
.Fn thr_kill2
|
||||
may return the following errors:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EPERM
|
||||
The current process does not have sufficient privilege to check existence or
|
||||
send a signal to the specified process.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr thr_exit 2 ,
|
||||
.Xr thr_new 2 ,
|
||||
.Xr thr_self 2 ,
|
||||
.Xr thr_set_name 2 ,
|
||||
.Xr _umtx_op 2 ,
|
||||
.Xr signal 3
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Fn thr_kill
|
||||
and
|
||||
.Fn thr_kill2
|
||||
system calls are non-standard and are used by the
|
||||
.Lb libthr
|
||||
to implement
|
||||
.St -p1003.1-2001
|
||||
.Xr pthread(3)
|
||||
functionality.
|
228
lib/libc/sys/thr_new.2
Normal file
228
lib/libc/sys/thr_new.2
Normal file
@ -0,0 +1,228 @@
|
||||
.\" Copyright (c) 2016 The FreeBSD Foundation, Inc.
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" This documentation was written by
|
||||
.\" Konstantin Belousov <kib@FreeBSD.org> under sponsorship
|
||||
.\" from the FreeBSD Foundation.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd May 5, 2016
|
||||
.Dt THR_NEW 2
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm thr_new
|
||||
.Nd create new thread of execution
|
||||
.Sh LIBRARY
|
||||
.Lb libc
|
||||
.Sh SYNOPSIS
|
||||
.In sys/thr.h
|
||||
.Ft int
|
||||
.Fn thr_new "struct thr_param *param" "int param_size"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn thr_new
|
||||
system call creates a new kernel-scheduled thread of execution in the context
|
||||
of the current process.
|
||||
The newly created thread shares all attributes of the process with the
|
||||
existing kernel-scheduled threads in the process, but has private processor
|
||||
execution state.
|
||||
The machine context for the new thread is copied from the creating thread's
|
||||
context, including coprocessor state.
|
||||
FPU state and specific machine registers are excluded from the copy.
|
||||
These are set according to ABI requirements and syscall parameters.
|
||||
The FPU state for new thread is reinitialized to clean.
|
||||
.Pp
|
||||
The
|
||||
.Fa param
|
||||
structure supplies parameters affecting the thread creation.
|
||||
The structure is defined in the
|
||||
.In sys/thr.h
|
||||
header as follows
|
||||
.Bd -literal
|
||||
struct thr_param {
|
||||
void (*start_func)(void *);
|
||||
void *arg;
|
||||
char *stack_base;
|
||||
size_t stack_size;
|
||||
char *tls_base;
|
||||
size_t tls_size;
|
||||
long *child_tid;
|
||||
long *parent_tid;
|
||||
int flags;
|
||||
struct rtprio *rtp;
|
||||
};
|
||||
.Ed
|
||||
and contains the following fields:
|
||||
.Bl -tag -width ".Va parent_tid"
|
||||
.It Va start_func
|
||||
The pointer to the thread entry function.
|
||||
Kernel arranges for the new thread to start executing the function
|
||||
upon the first return to userspace.
|
||||
.It Va arg
|
||||
Opaque argument supplied to the entry function.
|
||||
.It Va stack_base
|
||||
Stack base address.
|
||||
The stack must be allocated by the caller.
|
||||
On some architectures, the ABI might require that system put information
|
||||
on the stack to ensure the execution environment for
|
||||
.Va start_func .
|
||||
.It Va stack_size
|
||||
Stack size.
|
||||
.It Va tls_base
|
||||
TLS base address.
|
||||
The value of TLS base is loaded to the ABI-defined machine register
|
||||
in the new thread context.
|
||||
.It Va tls_size
|
||||
TLS size.
|
||||
.It Va child_tid
|
||||
Address to store the new thread identifier, for the child's use.
|
||||
.It Va parent_tid
|
||||
Address to store the new thread identifier, for the parent's use.
|
||||
.Pp
|
||||
Both
|
||||
.Va child_tid
|
||||
and
|
||||
.Va parent_tid
|
||||
are provided, with the intent that
|
||||
.Va child_tid
|
||||
is used by the new thread to get its thread identifier without
|
||||
issuing the
|
||||
.Xr thr_self 2
|
||||
syscall, while
|
||||
.Va parent_tid
|
||||
is used by the thread creator.
|
||||
The later is separate from the
|
||||
.Va child_tid
|
||||
because new thread might exit and free its thread data before parent
|
||||
has a chance to execute far enough to access it.
|
||||
.It Va flags
|
||||
Thread creation flags.
|
||||
The
|
||||
.Va flags
|
||||
member may specify the following flags:
|
||||
.Bl -tag -width ".Dv THR_SYSTEM_SCOPE"
|
||||
.It Dv THR_SUSPENDED
|
||||
Create the new thread in the suspended state.
|
||||
The flag is not currently implemented.
|
||||
.It Dv THR_SYSTEM_SCOPE
|
||||
Create the system scope thread.
|
||||
The flag is not currently implemented.
|
||||
.El
|
||||
.It Va rtp
|
||||
Real-time scheduling priority for the new thread.
|
||||
May be NULL if thread should inherit the priority from the
|
||||
creating thread.
|
||||
.El
|
||||
.Pp
|
||||
The
|
||||
.Fa param_size
|
||||
argument should be set to the size of the
|
||||
.Fa param
|
||||
structure.
|
||||
.Pp
|
||||
After the first successful creation of an additional thread,
|
||||
the process is marked by the kernel as multi-threaded.
|
||||
In particular, the
|
||||
.Dv P_HADTHREADS
|
||||
flag is set in the process'
|
||||
.Dv p_flag
|
||||
(visible in the
|
||||
.Xr ps 1
|
||||
output), and several operations are executed in multi-threaded mode.
|
||||
For instance, the
|
||||
.Xr execve 2
|
||||
system call terminates all threads but the calling one on successful
|
||||
execution.
|
||||
.Sh RETURN VALUES
|
||||
If successful,
|
||||
.Fn thr_new
|
||||
will return zero, otherwise \-1 is returned, and
|
||||
.Va errno
|
||||
is set to indicate the error.
|
||||
.Sh ERRORS
|
||||
The
|
||||
.Fn thr_new
|
||||
operation returns the following errors:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EFAULT
|
||||
The memory pointed to by the
|
||||
.Fa param
|
||||
argument is not valid.
|
||||
.It Bq Er EFAULT
|
||||
The memory pointed to by the
|
||||
.Fa param
|
||||
structure
|
||||
.Fa child_tid , parent_tid
|
||||
or
|
||||
.Fa rtp
|
||||
arguments is not valid.
|
||||
.It Bq Er EFAULT
|
||||
Specified stack base is invalid, or the kernel was unable to put required
|
||||
initial data on the stack.
|
||||
.It Bq Er EINVAL
|
||||
The
|
||||
.Fa param_size
|
||||
argument specifies negative value, or its value is greater than the
|
||||
largest
|
||||
.Fa struct param
|
||||
size the kernel can interpret.
|
||||
.It Bq Er EINVAL
|
||||
The
|
||||
.Fa rtp
|
||||
member is not NULL, but specifies invalid scheduling parameters.
|
||||
.It Bq Er EINVAL
|
||||
The specified TLS base is invalid.
|
||||
.It Bq Er EPROCLIM
|
||||
Creation of the new thread would exceed the
|
||||
.Dv RACCT_NTHR
|
||||
limit, see
|
||||
.Xr racct 2 .
|
||||
.It Bq Er EPROCLIM
|
||||
Creation of the new thread would exceed the
|
||||
.Dv kern.threads.max_threads_per_proc
|
||||
.Xr sysctl 2
|
||||
limit.
|
||||
.It Bq Er ENOMEM
|
||||
No kernel memory to allocate for the new thread structures.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr ps 1 ,
|
||||
.Xr execve 2 ,
|
||||
.Xr racct 2 ,
|
||||
.Xr thr_exit 2 ,
|
||||
.Xr thr_kill 2 ,
|
||||
.Xr thr_kill2 2 ,
|
||||
.Xr thr_self 2 ,
|
||||
.Xr thr_set_name 2 ,
|
||||
.Xr _umtx_op 2
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Fn thr_new
|
||||
system call is non-standard and is used by the
|
||||
.Lb libthr
|
||||
to implement
|
||||
.St -p1003.1-2001
|
||||
.Xr pthread(3)
|
||||
functionality.
|
88
lib/libc/sys/thr_self.2
Normal file
88
lib/libc/sys/thr_self.2
Normal file
@ -0,0 +1,88 @@
|
||||
.\" Copyright (c) 2016 The FreeBSD Foundation, Inc.
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" This documentation was written by
|
||||
.\" Konstantin Belousov <kib@FreeBSD.org> under sponsorship
|
||||
.\" from the FreeBSD Foundation.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd May 5, 2016
|
||||
.Dt THR_SELF 2
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm thr_self
|
||||
.Nd return thread identifier for the calling thread
|
||||
.Sh LIBRARY
|
||||
.Lb libc
|
||||
.Sh SYNOPSIS
|
||||
.In sys/thr.h
|
||||
.Ft int
|
||||
.Fn thr_self "long *id"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn thr_self
|
||||
system call stores the system-wide thread identifier for the current
|
||||
kernel-scheduled thread in the variable pointed by the argument
|
||||
.Va id .
|
||||
.Pp
|
||||
The thread identifier is an integer in the range from
|
||||
.Dv PID_MAX + 2
|
||||
(10002) to
|
||||
.Dv INT_MAX .
|
||||
The thread identifier is guaranteed to be unique at any given time,
|
||||
for each running thread in the system.
|
||||
After the thread exits, the identifier may be reused.
|
||||
.Sh RETURN VALUES
|
||||
If successful,
|
||||
.Fn thr_self
|
||||
will return zero, otherwise \-1 is returned, and
|
||||
.Va errno
|
||||
is set to indicate the error.
|
||||
.Sh ERRORS
|
||||
The
|
||||
.Fn thr_self
|
||||
operation may return the following errors:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EFAULT
|
||||
The memory pointed to by the
|
||||
.Fa id
|
||||
argument is not valid.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr thr_exit 2 ,
|
||||
.Xr thr_kill 2 ,
|
||||
.Xr thr_kill2 2 ,
|
||||
.Xr thr_new 2 ,
|
||||
.Xr thr_set_name 2 ,
|
||||
.Xr _umtx_op 2
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Fn thr_self
|
||||
system call is non-standard and is used by the
|
||||
.Lb libthr
|
||||
to implement
|
||||
.St -p1003.1-2001
|
||||
.Xr pthread(3)
|
||||
functionality.
|
96
lib/libc/sys/thr_set_name.2
Normal file
96
lib/libc/sys/thr_set_name.2
Normal file
@ -0,0 +1,96 @@
|
||||
.\" Copyright (c) 2016 The FreeBSD Foundation, Inc.
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" This documentation was written by
|
||||
.\" Konstantin Belousov <kib@FreeBSD.org> under sponsorship
|
||||
.\" from the FreeBSD Foundation.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd May 5, 2016
|
||||
.Dt THR_SET_NAME 2
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm thr_set_name
|
||||
.Nd set user-visible thread name
|
||||
.Sh LIBRARY
|
||||
.Lb libc
|
||||
.Sh SYNOPSIS
|
||||
.In sys/thr.h
|
||||
.Ft int
|
||||
.Fn thr_set_name "long id" "const char *name"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn thr_set_name
|
||||
sets the user-visible name for the kernel thread with the identifier
|
||||
.Va id
|
||||
in the current process, to the NULL-terminated string
|
||||
.Va name .
|
||||
The thread name can be seen in the output of the
|
||||
.Xr ps 1
|
||||
and
|
||||
.Xr top 1
|
||||
commands, in the kernel debuggers and kernel tracing facility outputs,
|
||||
also in userland debuggers and program core files, as notes.
|
||||
.Sh RETURN VALUES
|
||||
If successful,
|
||||
.Fn thr_set_name
|
||||
will return zero, otherwise \-1 is returned, and
|
||||
.Va errno
|
||||
is set to indicate the error.
|
||||
.Sh ERRORS
|
||||
The
|
||||
.Fn thr_set_name
|
||||
operation may return the following errors:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EFAULT
|
||||
The memory pointed to by the
|
||||
.Fa name
|
||||
argument is not valid.
|
||||
.It Bq Er ENAMETOOLONG
|
||||
The string pointed to by the
|
||||
.Fa name
|
||||
argument exceeds
|
||||
.Dv MAXCOMLEN + 1
|
||||
bytes in length.
|
||||
.It Bq Er ESRCH
|
||||
The thread with the identifier
|
||||
.Fa id
|
||||
does not exist in the current process.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr ps 1 ,
|
||||
.Xr thr_exit 2 ,
|
||||
.Xr thr_kill 2 ,
|
||||
.Xr thr_kill2 2 ,
|
||||
.Xr thr_new 2 ,
|
||||
.Xr thr_self 2 ,
|
||||
.Xr _umtx_op 2 ,
|
||||
.Xr ddb 4 ,
|
||||
.Xr ktr 9
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Fn thr_new
|
||||
system call is non-standard and is used by the
|
||||
.Lb libthr .
|
Loading…
x
Reference in New Issue
Block a user