From 9fd2a2156b8bd6b8cf563a70e3ac6a83cb729201 Mon Sep 17 00:00:00 2001 From: djm Date: Thu, 12 Sep 2002 00:43:29 +0000 Subject: [PATCH] - (djm) Sync sys/tree.h with OpenBSD -current. Rename tree.h and fake-queue.h to sys-tree.h and sys-queue.h --- ChangeLog | 2 + monitor_mm.h | 2 +- openbsd-compat/{fake-queue.h => sys-queue.h} | 0 openbsd-compat/{tree.h => sys-tree.h} | 98 +++++++++++--------- sftp-client.c | 2 +- ssh-agent.c | 2 +- ssh-keyscan.c | 2 +- 7 files changed, 59 insertions(+), 49 deletions(-) rename openbsd-compat/{fake-queue.h => sys-queue.h} (100%) rename openbsd-compat/{tree.h => sys-tree.h} (97%) diff --git a/ChangeLog b/ChangeLog index 21e18bb5..b4a8b26e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,8 @@ 20020912 - (djm) Added getpeereid() replacement. Properly implemented for systems with SO_PEERCRED support. Faked for systems which lack it. + - (djm) Sync sys/tree.h with OpenBSD -current. Rename tree.h and + fake-queue.h to sys-tree.h and sys-queue.h - (djm) OpenBSD CVS Sync - markus@cvs.openbsd.org 2002/09/08 20:24:08 [hostfile.h] diff --git a/monitor_mm.h b/monitor_mm.h index c0a66d5e..a1323b9a 100644 --- a/monitor_mm.h +++ b/monitor_mm.h @@ -27,7 +27,7 @@ #ifndef _MM_H_ #define _MM_H_ -#include "openbsd-compat/tree.h" +#include "openbsd-compat/sys-tree.h" struct mm_share { RB_ENTRY(mm_share) next; diff --git a/openbsd-compat/fake-queue.h b/openbsd-compat/sys-queue.h similarity index 100% rename from openbsd-compat/fake-queue.h rename to openbsd-compat/sys-queue.h diff --git a/openbsd-compat/tree.h b/openbsd-compat/sys-tree.h similarity index 97% rename from openbsd-compat/tree.h rename to openbsd-compat/sys-tree.h index 30b4a856..0a58710c 100644 --- a/openbsd-compat/tree.h +++ b/openbsd-compat/sys-tree.h @@ -1,3 +1,4 @@ +/* $OpenBSD: tree.h,v 1.6 2002/06/11 22:09:52 provos Exp $ */ /* * Copyright 2002 Niels Provos * All rights reserved. @@ -113,8 +114,47 @@ struct { \ #define SPLAY_PROTOTYPE(name, type, field, cmp) \ void name##_SPLAY(struct name *, struct type *); \ void name##_SPLAY_MINMAX(struct name *, int); \ +struct type *name##_SPLAY_INSERT(struct name *, struct type *); \ +struct type *name##_SPLAY_REMOVE(struct name *, struct type *); \ \ -static __inline void \ +/* Finds the node with the same key as elm */ \ +static __inline struct type * \ +name##_SPLAY_FIND(struct name *head, struct type *elm) \ +{ \ + if (SPLAY_EMPTY(head)) \ + return(NULL); \ + name##_SPLAY(head, elm); \ + if ((cmp)(elm, (head)->sph_root) == 0) \ + return (head->sph_root); \ + return (NULL); \ +} \ + \ +static __inline struct type * \ +name##_SPLAY_NEXT(struct name *head, struct type *elm) \ +{ \ + name##_SPLAY(head, elm); \ + if (SPLAY_RIGHT(elm, field) != NULL) { \ + elm = SPLAY_RIGHT(elm, field); \ + while (SPLAY_LEFT(elm, field) != NULL) { \ + elm = SPLAY_LEFT(elm, field); \ + } \ + } else \ + elm = NULL; \ + return (elm); \ +} \ + \ +static __inline struct type * \ +name##_SPLAY_MIN_MAX(struct name *head, int val) \ +{ \ + name##_SPLAY_MINMAX(head, val); \ + return (SPLAY_ROOT(head)); \ +} + +/* Main splay operation. + * Moves node close to the key of elm to top + */ +#define SPLAY_GENERATE(name, type, field, cmp) \ +struct type * \ name##_SPLAY_INSERT(struct name *head, struct type *elm) \ { \ if (SPLAY_EMPTY(head)) { \ @@ -132,17 +172,18 @@ name##_SPLAY_INSERT(struct name *head, struct type *elm) \ SPLAY_LEFT(elm, field) = (head)->sph_root; \ SPLAY_RIGHT((head)->sph_root, field) = NULL; \ } else \ - return; \ + return ((head)->sph_root); \ } \ (head)->sph_root = (elm); \ + return (NULL); \ } \ \ -static __inline void \ +struct type * \ name##_SPLAY_REMOVE(struct name *head, struct type *elm) \ { \ struct type *__tmp; \ if (SPLAY_EMPTY(head)) \ - return; \ + return (NULL); \ name##_SPLAY(head, elm); \ if ((cmp)(elm, (head)->sph_root) == 0) { \ if (SPLAY_LEFT((head)->sph_root, field) == NULL) { \ @@ -153,47 +194,13 @@ name##_SPLAY_REMOVE(struct name *head, struct type *elm) \ name##_SPLAY(head, elm); \ SPLAY_RIGHT((head)->sph_root, field) = __tmp; \ } \ + return (elm); \ } \ -} \ - \ -/* Finds the node with the same key as elm */ \ -static __inline struct type * \ -name##_SPLAY_FIND(struct name *head, struct type *elm) \ -{ \ - if (SPLAY_EMPTY(head)) \ - return(NULL); \ - name##_SPLAY(head, elm); \ - if ((cmp)(elm, (head)->sph_root) == 0) \ - return (head->sph_root); \ return (NULL); \ } \ \ -static __inline struct type * \ -name##_SPLAY_NEXT(struct name *head, struct type *elm) \ -{ \ - name##_SPLAY(head, elm); \ - if (SPLAY_RIGHT(elm, field) != NULL) { \ - elm = SPLAY_RIGHT(elm, field); \ - while (SPLAY_LEFT(elm, field) != NULL) { \ - elm = SPLAY_LEFT(elm, field); \ - } \ - } else \ - elm = NULL; \ - return (elm); \ -} \ - \ -static __inline struct type * \ -name##_SPLAY_MIN_MAX(struct name *head, int val) \ -{ \ - name##_SPLAY_MINMAX(head, val); \ - return (SPLAY_ROOT(head)); \ -} - -/* Main splay operation. - * Moves node close to the key of elm to top - */ -#define SPLAY_GENERATE(name, type, field, cmp) \ -void name##_SPLAY(struct name *head, struct type *elm) \ +void \ +name##_SPLAY(struct name *head, struct type *elm) \ { \ struct type __node, *__left, *__right, *__tmp; \ int __comp; \ @@ -367,7 +374,7 @@ struct { \ #define RB_PROTOTYPE(name, type, field, cmp) \ void name##_RB_INSERT_COLOR(struct name *, struct type *); \ void name##_RB_REMOVE_COLOR(struct name *, struct type *, struct type *);\ -void name##_RB_REMOVE(struct name *, struct type *); \ +struct type *name##_RB_REMOVE(struct name *, struct type *); \ struct type *name##_RB_INSERT(struct name *, struct type *); \ struct type *name##_RB_FIND(struct name *, struct type *); \ struct type *name##_RB_NEXT(struct name *, struct type *); \ @@ -498,17 +505,17 @@ name##_RB_REMOVE_COLOR(struct name *head, struct type *parent, struct type *elm) RB_COLOR(elm, field) = RB_BLACK; \ } \ \ -void \ +struct type * \ name##_RB_REMOVE(struct name *head, struct type *elm) \ { \ - struct type *child, *parent; \ + struct type *child, *parent, *old = elm; \ int color; \ if (RB_LEFT(elm, field) == NULL) \ child = RB_RIGHT(elm, field); \ else if (RB_RIGHT(elm, field) == NULL) \ child = RB_LEFT(elm, field); \ else { \ - struct type *old = elm, *left; \ + struct type *left; \ elm = RB_RIGHT(elm, field); \ while ((left = RB_LEFT(elm, field))) \ elm = left; \ @@ -562,6 +569,7 @@ name##_RB_REMOVE(struct name *head, struct type *elm) \ color: \ if (color == RB_BLACK) \ name##_RB_REMOVE_COLOR(head, parent, child); \ + return (old); \ } \ \ /* Inserts a node into the RB tree */ \ diff --git a/sftp-client.c b/sftp-client.c index f7759681..f6a73f37 100644 --- a/sftp-client.c +++ b/sftp-client.c @@ -30,7 +30,7 @@ #include "includes.h" RCSID("$OpenBSD: sftp-client.c,v 1.35 2002/09/11 22:41:49 djm Exp $"); -#include "openbsd-compat/fake-queue.h" +#include "openbsd-compat/sys-queue.h" #include "buffer.h" #include "bufaux.h" diff --git a/ssh-agent.c b/ssh-agent.c index 312f2269..d4c008bb 100644 --- a/ssh-agent.c +++ b/ssh-agent.c @@ -34,7 +34,7 @@ */ #include "includes.h" -#include "openbsd-compat/fake-queue.h" +#include "openbsd-compat/sys-queue.h" RCSID("$OpenBSD: ssh-agent.c,v 1.103 2002/09/10 20:24:47 markus Exp $"); #include diff --git a/ssh-keyscan.c b/ssh-keyscan.c index ae7cd86f..8c14d6d2 100644 --- a/ssh-keyscan.c +++ b/ssh-keyscan.c @@ -9,7 +9,7 @@ #include "includes.h" RCSID("$OpenBSD: ssh-keyscan.c,v 1.40 2002/07/06 17:47:58 stevesk Exp $"); -#include "openbsd-compat/fake-queue.h" +#include "openbsd-compat/sys-queue.h" #include -- 2.45.2