Module Name:    src
Committed By:   rmind
Date:           Thu Dec 19 19:40:08 UTC 2013

Modified Files:
        src/distrib/sets/lists/comp: mi
        src/lib/librt: Makefile
Added Files:
        src/lib/librt: shm_open.3

Log Message:
Add a man page for shm_open(3) and shm_unlink(3).  Obtained from FreeBSD,
with various modifications.


To generate a diff of this commit:
cvs rdiff -u -r1.1871 -r1.1872 src/distrib/sets/lists/comp/mi
cvs rdiff -u -r1.17 -r1.18 src/lib/librt/Makefile
cvs rdiff -u -r0 -r1.1 src/lib/librt/shm_open.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/sets/lists/comp/mi
diff -u src/distrib/sets/lists/comp/mi:1.1871 src/distrib/sets/lists/comp/mi:1.1872
--- src/distrib/sets/lists/comp/mi:1.1871	Wed Dec 18 20:14:02 2013
+++ src/distrib/sets/lists/comp/mi	Thu Dec 19 19:40:08 2013
@@ -1,4 +1,4 @@
-#	$NetBSD: mi,v 1.1871 2013/12/18 20:14:02 pooka Exp $
+#	$NetBSD: mi,v 1.1872 2013/12/19 19:40:08 rmind Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -8760,6 +8760,8 @@
 ./usr/share/man/cat3/sha.0			comp-obsolete		obsolete
 ./usr/share/man/cat3/sha1.0			comp-c-catman		.cat
 ./usr/share/man/cat3/sha2.0			comp-c-catman		.cat
+./usr/share/man/cat3/shm_open.0			comp-c-catman		.cat
+./usr/share/man/cat3/shm_unlink.0		comp-c-catman		.cat
 ./usr/share/man/cat3/shquote.0			comp-c-catman		.cat
 ./usr/share/man/cat3/shquotev.0			comp-c-catman		.cat
 ./usr/share/man/cat3/sigaddset.0		comp-c-catman		.cat
@@ -15288,6 +15290,8 @@
 ./usr/share/man/html3/setvbuf.html		comp-c-htmlman		html
 ./usr/share/man/html3/sha1.html			comp-c-htmlman		html
 ./usr/share/man/html3/sha2.html			comp-c-htmlman		html
+./usr/share/man/html3/shm_open.html		comp-c-htmlman		html
+./usr/share/man/html3/shm_unlink.html		comp-c-htmlman		html
 ./usr/share/man/html3/shquote.html		comp-c-htmlman		html
 ./usr/share/man/html3/shquotev.html		comp-c-htmlman		html
 ./usr/share/man/html3/sigaddset.html		comp-c-htmlman		html
@@ -21830,6 +21834,8 @@
 ./usr/share/man/man3/sha.3			comp-obsolete		obsolete
 ./usr/share/man/man3/sha1.3			comp-c-man		.man
 ./usr/share/man/man3/sha2.3			comp-c-man		.man
+./usr/share/man/man3/shm_open.3			comp-c-man		.man
+./usr/share/man/man3/shm_unlink.3		comp-c-man		.man
 ./usr/share/man/man3/shquote.3			comp-c-man		.man
 ./usr/share/man/man3/shquotev.3			comp-c-man		.man
 ./usr/share/man/man3/sigaddset.3		comp-c-man		.man

Index: src/lib/librt/Makefile
diff -u src/lib/librt/Makefile:1.17 src/lib/librt/Makefile:1.18
--- src/lib/librt/Makefile:1.17	Thu Dec 19 19:11:50 2013
+++ src/lib/librt/Makefile	Thu Dec 19 19:40:08 2013
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.17 2013/12/19 19:11:50 rmind Exp $
+#	$NetBSD: Makefile,v 1.18 2013/12/19 19:40:08 rmind Exp $
 #
 
 .include <bsd.own.mk>
@@ -13,7 +13,7 @@ MAN+=	aio.3 aio_cancel.3 aio_error.3 aio
 	aio_suspend.3 aio_write.3 lio_listio.3 \
 	mq.3 mq_close.3 mq_getattr.3 mq_notify.3 mq_open.3 mq_receive.3 \
 	mq_send.3 mq_setattr.3 mq_unlink.3 \
-	pset.3 sched.3 \
+	pset.3 sched.3 shm_open.3 \
 	sem_destroy.3 sem_getvalue.3 sem_init.3 sem_open.3 sem_post.3 \
 	sem_wait.3
 
@@ -40,6 +40,7 @@ MLINKS+=	sched.3 sched_get_priority_min.
 MLINKS+=	sched.3 sched_rr_get_interval.3
 MLINKS+=	sched.3 sched_yield.3
 
+MLINKS+=	shm_open.3 shm_unlink.3
 
 .include "${.CURDIR}/../libc/libcincludes.mk"
 

Added files:

Index: src/lib/librt/shm_open.3
diff -u /dev/null src/lib/librt/shm_open.3:1.1
--- /dev/null	Thu Dec 19 19:40:08 2013
+++ src/lib/librt/shm_open.3	Thu Dec 19 19:40:08 2013
@@ -0,0 +1,241 @@
+.\" $NetBSD: shm_open.3,v 1.1 2013/12/19 19:40:08 rmind Exp $
+.\"
+.\" Copyright 2000 Massachusetts Institute of Technology
+.\"
+.\" Permission to use, copy, modify, and distribute this software and
+.\" its documentation for any purpose and without fee is hereby
+.\" granted, provided that both the above copyright notice and this
+.\" permission notice appear in all copies, that both the above
+.\" copyright notice and this permission notice appear in all
+.\" supporting documentation, and that the name of M.I.T. not be used
+.\" in advertising or publicity pertaining to distribution of the
+.\" software without specific, written prior permission.  M.I.T. makes
+.\" no representations about the suitability of this software for any
+.\" purpose.  It is provided "as is" without express or implied
+.\" warranty.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''.  M.I.T. DISCLAIMS
+.\" ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE,
+.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
+.\" SHALL M.I.T. 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 December 19, 2013
+.Dt SHM_OPEN 3
+.Os
+.Sh NAME
+.Nm shm_open , shm_unlink
+.Nd "shared memory object operations"
+.Sh LIBRARY
+.Lb librt
+.Sh SYNOPSIS
+.In sys/types.h
+.In sys/mman.h
+.In fcntl.h
+.Ft int
+.Fn shm_open "const char *name" "int flags" "mode_t mode"
+.Ft int
+.Fn shm_unlink "const char *name"
+.Sh DESCRIPTION
+The
+.Fn shm_open
+function creates or opens a
+.Tn POSIX
+shared memory object named
+.Fa name .
+The
+.Fa flags
+argument contains a subset of the flags used by
+.Xr open 2 .
+An access mode of either
+.Dv O_RDONLY
+or
+.Dv O_RDWR
+must be included in
+.Fa flags .
+The optional flags
+.Dv O_CREAT ,
+.Dv O_EXCL ,
+and
+.Dv O_TRUNC
+may also be specified.
+.Pp
+If
+.Dv O_CREAT
+is specified,
+then a new shared memory object named
+.Fa name
+will be created if it does not exist.
+In this case,
+the shared memory object is created with mode
+.Fa mode
+subject to the process' umask value.
+If both the
+.Dv O_CREAT
+and
+.Dv O_EXCL
+flags are specified and a shared memory object named
+.Fa path
+already exists,
+then
+.Fn shm_open
+will fail with
+.Er EEXIST .
+.Pp
+Newly created objects start off with a size of zero.
+If an existing shared memory object is opened with
+.Dv O_RDWR
+and the
+.Dv O_TRUNC
+flag is specified,
+then the shared memory object will be truncated to a size of zero.
+The size of the object can be adjusted via
+.Xr ftruncate 2
+and queried via
+.Xr fstat 2 .
+.Pp
+The new descriptor is set to close during
+.Xr execve 2
+system calls;
+see
+.Xr close 2
+and
+.Xr fcntl 2 .
+.Pp
+The
+.Fn shm_unlink
+system call removes a shared memory object named
+.Fa path .
+.Sh RETURN VALUES
+If successful,
+.Fn shm_open
+returns a non-negative integer,
+and
+.Fn shm_unlink
+returns zero.
+Both functions return -1 on failure, and set
+.Va errno
+to indicate the error.
+.Sh COMPATIBILITY
+The
+.Fa path
+argument does not necessarily represent a pathname (although it does in
+most other implementations).
+Two processes opening the same
+.Fa path
+are guaranteed to access the same shared memory object if and only if
+.Fa path
+begins with a slash
+.Pq Ql \&/
+character.
+.Pp
+Only the
+.Dv O_RDONLY ,
+.Dv O_RDWR ,
+.Dv O_CREAT ,
+.Dv O_EXCL ,
+and
+.Dv O_TRUNC
+flags may be used in portable programs.
+.Pp
+The result of using
+.Xr open 2 ,
+.Xr read 2 ,
+or
+.Xr write 2
+on a shared memory object, or on the descriptor returned by
+.Fn shm_open ,
+is undefined.
+It is also undefined whether the shared memory object itself, or its
+contents, persist across reboots.
+.Sh ERRORS
+The following errors are defined for
+.Fn shm_open :
+.Bl -tag -width Er
+.It Bq Er EINVAL
+A flag other than
+.Dv O_RDONLY ,
+.Dv O_RDWR ,
+.Dv O_CREAT ,
+.Dv O_EXCL ,
+or
+.Dv O_TRUNC
+was included in
+.Fa flags .
+.It Bq Er EMFILE
+The process has already reached its limit for open file descriptors.
+.It Bq Er ENFILE
+The system file table is full.
+.It Bq Er EFAULT
+The
+.Fa path
+argument points outside the process' allocated address space.
+.It Bq Er ENAMETOOLONG
+The entire pathname exceeded
+.Brq Dv PATH_MAX
+characters.
+.It Bq Er EINVAL
+The
+.Fa path
+does not begin with a slash
+.Pq Ql \&/
+character.
+.It Bq Er ENOENT
+.Dv O_CREAT
+is specified and the named shared memory object does not exist.
+.It Bq Er ENOTSUP
+Not supported, most likely due to missing or incorrect
+.Pa /var/shm
+mount.
+.It Bq Er EEXIST
+.Dv O_CREAT
+and
+.Dv O_EXCL
+are specified and the named shared memory object does exist.
+.It Bq Er EACCES
+The required permissions (for reading or reading and writing) are denied.
+.El
+.Pp
+The following errors are defined for
+.Fn shm_unlink :
+.Bl -tag -width Er
+.It Bq Er EFAULT
+The
+.Fa path
+argument points outside the process' allocated address space.
+.It Bq Er ENAMETOOLONG
+The entire pathname exceeded
+.Brq Dv PATH_MAX
+characters.
+.It Bq Er ENOENT
+The named shared memory object does not exist.
+.It Bq Er EACCES
+The required permissions are denied.
+.Fn shm_unlink
+requires write permission to the shared memory object.
+.El
+.Sh SEE ALSO
+.Xr close 2 ,
+.Xr fstat 2 ,
+.Xr ftruncate 2 ,
+.Xr mmap 2 ,
+.Xr munmap 2
+.Sh STANDARDS
+The
+.Fn shm_open
+and
+.Fn shm_unlink
+functions are expected to conform to
+.St -p1003.1b-93 .
+.Sh HISTORY
+These functions first appeared in
+.Nx 7.0 .

Reply via email to