+++ /dev/null
-/* $OpenBSD: insque.S,v 1.4 2013/07/05 21:10:50 miod Exp $ */
-
-/*
- * Copyright (c) 1983, 1993
- * The Regents of the University of California. 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 University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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.
- *
- * From: "@(#)insque.s 8.1 (Berkeley) 6/4/93"
- */
-
-/* insque(new, pred) */
-
-#include "DEFS.h"
-
-ENTRY(insque, 0)
- insque *4(%ap), *8(%ap)
- ret
+++ /dev/null
-/* $OpenBSD: remque.S,v 1.4 2013/07/05 21:10:50 miod Exp $ */
-
-/*
- * Copyright (c) 1983, 1993
- * The Regents of the University of California. 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 University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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.
- *
- * From: "@(#)remque.s 8.1 (Berkeley) 6/4/93"
- */
-
-/* remque(entry) */
-
-#include "DEFS.h"
-
-ENTRY(remque, 0)
- remque *4(%ap),%r0
- ret
-# $OpenBSD: Makefile.inc,v 1.53 2014/05/08 21:43:49 deraadt Exp $
+# $OpenBSD: Makefile.inc,v 1.54 2014/08/15 04:14:36 guenther Exp $
# stdlib sources
.PATH: ${LIBCSRCDIR}/arch/${MACHINE_CPU}/stdlib ${LIBCSRCDIR}/stdlib
SRCS+= a64l.c abort.c atexit.c atoi.c atof.c atol.c atoll.c bsearch.c \
cfree.c exit.c ecvt.c gcvt.c getenv.c getopt_long.c \
- getsubopt.c hcreate.c heapsort.c imaxabs.c imaxdiv.c l64a.c llabs.c \
- lldiv.c lsearch.c malloc.c reallocarray.c merge.c posix_pty.c \
- qsort.c radixsort.c rand.c random.c realpath.c setenv.c strtoimax.c \
+ getsubopt.c hcreate.c heapsort.c imaxabs.c imaxdiv.c insque.c \
+ l64a.c llabs.c lldiv.c lsearch.c malloc.c reallocarray.c \
+ merge.c posix_pty.c qsort.c radixsort.c rand.c random.c \
+ realpath.c remque.c setenv.c strtoimax.c \
strtol.c strtoll.c strtonum.c strtoul.c strtoull.c strtoumax.c \
system.c tfind.c tsearch.c _rand48.c drand48.c erand48.c jrand48.c \
lcong48.c lrand48.c mrand48.c nrand48.c seed48.c srand48.c qabs.c \
SRCS+= abs.c div.c labs.c ldiv.c
.endif
-.if (${MACHINE_CPU} == "vax")
-SRCS+= insque.S remque.S
-.else
-SRCS+= insque.c remque.c
-.endif
-
MAN+= a64l.3 abort.3 abs.3 alloca.3 atexit.3 atof.3 atoi.3 atol.3 atoll.3 \
bsearch.3 div.3 ecvt.3 exit.3 getenv.3 getopt.3 getopt_long.3 \
getsubopt.3 hcreate.3 imaxabs.3 imaxdiv.3 insque.3 labs.3 ldiv.3 \
-/* $OpenBSD: insque.c,v 1.2 2005/08/08 08:05:36 espie Exp $ */
+/* $OpenBSD: insque.c,v 1.3 2014/08/15 04:14:36 guenther Exp $ */
/*
* Copyright (c) 1993 John Brezak
* POSSIBILITY OF SUCH DAMAGE.
*/
+#include <stdlib.h>
#include <search.h>
struct qelem {
void
insque(void *entry, void *pred)
{
- struct qelem *e = (struct qelem *) entry;
- struct qelem *p = (struct qelem *) pred;
+ struct qelem *e = entry;
+ struct qelem *p = pred;
- e->q_forw = p->q_forw;
- e->q_back = p;
- p->q_forw->q_back = e;
- p->q_forw = e;
+ if (p == NULL)
+ e->q_forw = e->q_back = NULL;
+ else {
+ e->q_forw = p->q_forw;
+ e->q_back = p;
+ if (p->q_forw != NULL)
+ p->q_forw->q_back = e;
+ p->q_forw = e;
+ }
}
-/* $OpenBSD: remque.c,v 1.2 2005/08/08 08:05:37 espie Exp $ */
+/* $OpenBSD: remque.c,v 1.3 2014/08/15 04:14:36 guenther Exp $ */
/*
* Copyright (c) 1993 John Brezak
* POSSIBILITY OF SUCH DAMAGE.
*/
+#include <stdlib.h>
#include <search.h>
struct qelem {
void
remque(void *element)
{
- struct qelem *e = (struct qelem *) element;
- e->q_forw->q_back = e->q_back;
- e->q_back->q_forw = e->q_forw;
+ struct qelem *e = element;
+
+ if (e->q_forw != NULL)
+ e->q_forw->q_back = e->q_back;
+ if (e->q_back != NULL)
+ e->q_back->q_forw = e->q_forw;
}