.\" $NetBSD: pthread_mutex_init.3,v 1.6 2010/05/20 04:40:23 jruoho Exp $ .\" .\" Copyright (c) 2002 The NetBSD Foundation, Inc. .\" All rights reserved. .\" 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. .\" .\" Copyright (c) 1997 Brian Cully .\" All rights reserved. .\" .\" 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. .\" 3. Neither the name of the author nor the names of any co-contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY JOHN BIRRELL 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 REGENTS 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: src/lib/libpthread/man/pthread_mutex_init.3,v 1.12 2002/09/16 19:29:29 mini Exp $ .\" .Dd May 20, 2010 .Dt PTHREAD_MUTEX_INIT 3 .Os .Sh NAME .Nm pthread_mutex_init .Nd create a mutex .Sh LIBRARY .Lb libpthread .Sh SYNOPSIS .In pthread.h .Ft int .Fn pthread_mutex_init "pthread_mutex_t * restrict mutex" "const pthread_mutexattr_t * restrict attr" .Pp .Va pthread_mutex_t mutex = Dv PTHREAD_MUTEX_INITIALIZER; .Sh DESCRIPTION The .Fn pthread_mutex_init function creates a new mutex, with attributes specified with .Fa attr . If .Fa attr is NULL the default attributes are used. .Pp The macro .Dv PTHREAD_MUTEX_INITIALIZER can be used to initialize a mutex when the default attributes are appropriate and the mutex can be statically allocated. The behavior is similar to .Fn pthread_mutex_init with .Fa attr specified as .Dv NULL , except that no error checking is done. .Sh RETURN VALUES If successful, .Fn pthread_mutex_init will return zero and put the new mutex id into .Fa mutex , otherwise an error number will be returned to indicate the error. .Sh ERRORS .Fn pthread_mutex_init shall fail if: .Bl -tag -width Er .It Bq Er EAGAIN The system lacks the resources to initialize another mutex. .It Bq Er ENOMEM The process cannot allocate enough memory to initialize another mutex. .El .Pp .Fn pthread_mutex_init may fail if: .Bl -tag -width Er .It Bq Er EINVAL The value specified by .Fa attr is invalid. .El .Sh SEE ALSO .Xr pthread_mutex_destroy 3 , .Xr pthread_mutex_lock 3 , .Xr pthread_mutex_trylock 3 , .Xr pthread_mutex_unlock 3 .Sh STANDARDS .Fn pthread_mutex_init conforms to .St -p1003.1-96 . '3' class='logmsg'> called to initialize lo0ifp. 2016-08-12more loopinit();christos 2016-01-26Put the kernelside rump kernel headers into <rump-sys> instead ofpooka sprinkling them around the faction directories. Avoids having to add a CPPFLAGS (or several) to pretty much every component Makefile. Leave compat headers around in the old locations. The commit changes some autogenerated files, but I'll fix the generators shortly and regen. 2015-10-19Add a COMMENT describing what each component roughly does.pooka "make describe" prints the comment. Requested/inspired by Vincent Schwarzer on rumpkernel-users 2015-08-25some final -Ifoo/opt removalpooka 2015-01-18Move defines of INET and INET6 from opt_inet.h to Makefile.incjustin As discussed with pooka@ fixes current issues with ipv6 on rump being broken 2014-12-02Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,pooka with the default provided by Makefile.rump (they're all 0.0 anyway) 2014-08-22Nuke the DOMAINADD() macro and just call domain_attach(), now that thingspooka work correctly that way. 2014-06-05- Implement pktqueue interface for lockless IP input queue.rmind - Replace ipintrq and ip6intrq with the pktqueue mechanism. - Eliminate kernel-lock from ipintr() and ip6intr(). - Some preparation work to push softnet_lock out of ipintr(). Discussed on tech-net. 2014-03-13rename component.c -> netinet6_component.cpooka 2014-02-14Register netisr's from component constructors instead of via a hardcodedpooka global list. 2014-01-02Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.pooka 2013-08-14Partially revert previous, there are still a few gotchas inpooka running ipv4/ipv6-only (too many dependencies on ifdefs). 2013-08-14Separate inet and inet6, allows inet6-only rump kernels.pooka