From cc7ac4251d9e79f59912cefe0a1327534890ca07 Mon Sep 17 00:00:00 2001 From: millert <> Date: Thu, 8 May 2003 23:26:30 +0000 Subject: move insque(3) and remque(3) from libcompat -> libc; they are now POSIX --- src/lib/libc/stdlib/insque.3 | 100 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 src/lib/libc/stdlib/insque.3 (limited to 'src/lib/libc/stdlib/insque.3') diff --git a/src/lib/libc/stdlib/insque.3 b/src/lib/libc/stdlib/insque.3 new file mode 100644 index 0000000000..b87adb87bc --- /dev/null +++ b/src/lib/libc/stdlib/insque.3 @@ -0,0 +1,100 @@ +.\" $OpenBSD: insque.3,v 1.1 2003/05/08 23:26:30 millert Exp $ +.\" Copyright (c) 1993 John Brezak +.\" 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. The name of the author may be used to endorse or promote products +.\" derived from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR `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 AUTHOR 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. +.\" +.\" +.Dd August 12, 1993 +.Dt INSQUE 3 +.Os +.Sh NAME +.Nm insque , +.Nm remque +.Nd insert/remove element from a queue +.Sh SYNOPSIS +.Fd #include +.Ft void +.Fn insque "void *elem" "void *pred" +.Ft void +.Fn remque "void *elem" +.Sh DESCRIPTION +.Bf -symbolic +These interfaces have been superceded by the +.Xr queue 3 +macros and are provided for compatibility with legacy code. +.Ef +.Pp +.Fn insque +and +.Fn remque +manipulate queues built from doubly linked lists. +The queue can be either circular or linear. +Each element in the queue must be of the following form: +.Bd -literal +struct qelem { + struct qelem *q_forw; + struct qelem *q_back; + char q_data[]; +}; +.Ed +.Pp +The first two elements in the struct must be pointers of the +same type that point to the previous and next elements in +the queue respectively. +Any subsequent data in the struct is application-dependent. +.Pp +The +.Fn insque +function inserts +.Fa elem +into a queue immediately after +.Fa pred . +.Pp +The +.Fn remque +function removes +.Fa elem +from the queue. +.Sh DIAGNOSTICS +These functions are not atomic unless that machine architecture allows it. +.Sh SEE ALSO +.Xr queue 3 +.Sh STANDARDS +The +.Fn lsearch +and +.Fn lfind +functions conform to the +.St -p1003.1-01 +and +.St -xpg4.3 . +specifications. +.Sh HISTORY +The +.Fn insque +and +.Fn remque +functions are derived from the insque and remque instructions on a +.Tn VAX . -- cgit v1.2.3-55-g6feb