From 2146e21a6190016af2e36b829665ff958f3799f3 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Wed, 2 Jan 2013 17:21:50 +0100 Subject: [PATCH 1/2] Remove NetBSD specific code, ifdefs, etc. We only care about userspace. --- include/rbtree.h | 5 -- src/prop_array.c | 12 +--- src/prop_data.c | 3 - src/prop_dictionary.c | 15 ++--- src/prop_number.c | 22 ++----- src/prop_object.c | 2 +- src/prop_object_impl.h | 167 ------------------------------------------------- src/prop_rb_impl.h | 108 -------------------------------- src/prop_string.c | 2 - src/rb.c | 20 ------ 10 files changed, 11 insertions(+), 345 deletions(-) diff --git a/include/rbtree.h b/include/rbtree.h index b32307d..3c9c9e2 100644 --- include/rbtree.h +++ include/rbtree.h @@ -32,13 +32,8 @@ #ifndef _SYS_RBTREE_H_ #define _SYS_RBTREE_H_ -#if defined(_KERNEL) || defined(_STANDALONE) -#include - -#else #include #include -#endif #include #if __GNUC_PREREQ(2, 96) diff --git a/src/prop_array.c b/src/prop_array.c index 8c7c94f..565418b 100644 --- src/prop_array.c +++ src/prop_array.c @@ -31,11 +31,7 @@ #include #include "prop_object_impl.h" - -#if !defined(_KERNEL) && !defined(_STANDALONE) #include -#define __unused /* empty */ -#endif struct _prop_array { struct _prop_object pa_obj; @@ -51,8 +47,6 @@ struct _prop_array { #define PA_F_IMMUTABLE 0x01 /* array is immutable */ _PROP_POOL_INIT(_prop_array_pool, sizeof(struct _prop_array), "proparay") -_PROP_MALLOC_DEFINE(M_PROP_ARRAY, "prop array", - "property array container object") static _prop_object_free_rv_t _prop_array_free(prop_stack_t, prop_object_t *); @@ -341,7 +335,7 @@ static prop_object_t _prop_array_iterator_next_object(void *v) { struct _prop_array_iterator *pai = v; - prop_array_t pa __unused = pai->pai_base.pi_obj; + prop_array_t pa = pai->pai_base.pi_obj; prop_object_t po; _PROP_ASSERT(prop_object_is_array(pa)); @@ -368,7 +362,7 @@ static void _prop_array_iterator_reset(void *v) { struct _prop_array_iterator *pai = v; - prop_array_t pa __unused = pai->pai_base.pi_obj; + prop_array_t pa = pai->pai_base.pi_obj; _PROP_ASSERT(prop_object_is_array(pa)); @@ -866,7 +860,6 @@ prop_array_internalize(const char *xml) return _prop_generic_internalize(xml, "array"); } -#if !defined(_KERNEL) && !defined(_STANDALONE) /* * prop_array_externalize_to_file -- * Externalize an array to the specified file. @@ -909,4 +902,3 @@ prop_array_internalize_from_file(const char *fname) return (array); } -#endif /* _KERNEL && !_STANDALONE */ diff --git a/src/prop_data.c b/src/prop_data.c index da07fd2..abb7b18 100644 --- src/prop_data.c +++ src/prop_data.c @@ -52,9 +52,6 @@ struct _prop_data { _PROP_POOL_INIT(_prop_data_pool, sizeof(struct _prop_data), "propdata") -_PROP_MALLOC_DEFINE(M_PROP_DATA, "prop data", - "property data container object") - static _prop_object_free_rv_t _prop_data_free(prop_stack_t, prop_object_t *); static bool _prop_data_externalize( diff --git a/src/prop_dictionary.c b/src/prop_dictionary.c index 4c21fcb..8b329fb 100644 --- src/prop_dictionary.c +++ src/prop_dictionary.c @@ -35,10 +35,7 @@ #include "prop_object_impl.h" #include "prop_rb_impl.h" -#if !defined(_KERNEL) && !defined(_STANDALONE) #include -#define __unused /* empty */ -#endif /* * We implement these like arrays, but we keep them sorted by key. @@ -98,8 +95,6 @@ struct _prop_dictionary { _PROP_POOL_INIT(_prop_dictionary_pool, sizeof(struct _prop_dictionary), "propdict") -_PROP_MALLOC_DEFINE(M_PROP_DICT, "prop dictionary", - "property dictionary container object") static _prop_object_free_rv_t _prop_dictionary_free(prop_stack_t, prop_object_t *); @@ -174,7 +169,7 @@ struct _prop_dictionary_iterator { static int /*ARGSUSED*/ -_prop_dict_keysym_rb_compare_nodes(void *ctx __unused, +_prop_dict_keysym_rb_compare_nodes(void *ctx, const void *n1, const void *n2) { const struct _prop_dictionary_keysym *pdk1 = n1; @@ -185,7 +180,7 @@ _prop_dict_keysym_rb_compare_nodes(void *ctx __unused, static int /*ARGSUSED*/ -_prop_dict_keysym_rb_compare_key(void *ctx __unused, +_prop_dict_keysym_rb_compare_key(void *ctx, const void *n, const void *v) { const struct _prop_dictionary_keysym *pdk = n; @@ -629,7 +624,7 @@ static prop_object_t _prop_dictionary_iterator_next_object(void *v) { struct _prop_dictionary_iterator *pdi = v; - prop_dictionary_t pd __unused = pdi->pdi_base.pi_obj; + prop_dictionary_t pd = pdi->pdi_base.pi_obj; prop_dictionary_keysym_t pdk; _PROP_ASSERT(prop_object_is_dictionary(pd)); @@ -656,7 +651,7 @@ static void _prop_dictionary_iterator_reset(void *v) { struct _prop_dictionary_iterator *pdi = v; - prop_dictionary_t pd __unused = pdi->pdi_base.pi_obj; + prop_dictionary_t pd = pdi->pdi_base.pi_obj; _PROP_RWLOCK_RDLOCK(pd->pd_rwlock); _prop_dictionary_iterator_reset_locked(pdi); @@ -1375,7 +1370,6 @@ prop_dictionary_internalize(const char *xml) return _prop_generic_internalize(xml, "dict"); } -#if !defined(_KERNEL) && !defined(_STANDALONE) /* * prop_dictionary_externalize_to_file -- * Externalize a dictionary to the specified file. @@ -1419,4 +1413,3 @@ prop_dictionary_internalize_from_file(const char *fname) return (dict); } -#endif /* !_KERNEL && !_STANDALONE */ diff --git a/src/prop_number.c b/src/prop_number.c index dfd5e42..ab3013a 100644 --- src/prop_number.c +++ src/prop_number.c @@ -33,16 +33,8 @@ #include "prop_object_impl.h" #include "prop_rb_impl.h" -#if defined(_KERNEL) -#include -#elif defined(_STANDALONE) -#include -#include -#else #include #include -#define __unused /* empty */ -#endif struct _prop_number { struct _prop_object pn_obj; @@ -120,7 +112,7 @@ _prop_number_compare_values(const struct _prop_number_value *pnv1, static int /*ARGSUSED*/ -_prop_number_rb_compare_nodes(void *ctx __unused, +_prop_number_rb_compare_nodes(void *ctx, const void *n1, const void *n2) { const struct _prop_number *pn1 = n1; @@ -131,7 +123,7 @@ _prop_number_rb_compare_nodes(void *ctx __unused, static int /*ARGSUSED*/ -_prop_number_rb_compare_key(void *ctx __unused, const void *n, const void *v) +_prop_number_rb_compare_key(void *ctx, const void *n, const void *v) { const struct _prop_number *pn = n; const struct _prop_number_value *pnv = v; @@ -512,14 +504,11 @@ _prop_number_internalize_unsigned(struct _prop_object_internalize_context *ctx, _PROP_ASSERT(/*CONSTCOND*/sizeof(unsigned long long) == sizeof(uint64_t)); -#ifndef _KERNEL errno = 0; -#endif pnv->pnv_unsigned = (uint64_t) strtoull(ctx->poic_cp, &cp, 0); -#ifndef _KERNEL /* XXX can't check for ERANGE in the kernel */ if (pnv->pnv_unsigned == UINT64_MAX && errno == ERANGE) return (false); -#endif + pnv->pnv_is_unsigned = true; ctx->poic_cp = cp; @@ -534,15 +523,12 @@ _prop_number_internalize_signed(struct _prop_object_internalize_context *ctx, _PROP_ASSERT(/*CONSTCOND*/sizeof(long long) == sizeof(int64_t)); -#ifndef _KERNEL errno = 0; -#endif pnv->pnv_signed = (int64_t) strtoll(ctx->poic_cp, &cp, 0); -#ifndef _KERNEL /* XXX can't check for ERANGE in the kernel */ if ((pnv->pnv_signed == INT64_MAX || pnv->pnv_signed == INT64_MIN) && errno == ERANGE) return (false); -#endif + pnv->pnv_is_unsigned = false; ctx->poic_cp = cp; diff --git a/src/prop_object.c b/src/prop_object.c index 087110c..ec76453 100644 --- src/prop_object.c +++ src/prop_object.c @@ -61,7 +61,7 @@ _prop_object_init(struct _prop_object *po, const struct _prop_object_type *pot) */ /*ARGSUSED*/ void -_prop_object_fini(struct _prop_object *po _PROP_ARG_UNUSED) +_prop_object_fini(struct _prop_object *po) { /* Nothing to do, currently. */ } diff --git a/src/prop_object_impl.h b/src/prop_object_impl.h index 6251709..65b1739 100644 --- src/prop_object_impl.h +++ src/prop_object_impl.h @@ -32,12 +32,7 @@ #ifndef _PROPLIB_PROP_OBJECT_IMPL_H_ #define _PROPLIB_PROP_OBJECT_IMPL_H_ -#if defined(_KERNEL) || defined(_STANDALONE) -#include -#else #include -#endif - #include "prop_stack.h" struct _prop_object_externalize_context { @@ -147,7 +142,6 @@ struct _prop_object_internalize_context * void _prop_object_internalize_context_free( struct _prop_object_internalize_context *); -#if !defined(_KERNEL) && !defined(_STANDALONE) bool _prop_object_externalize_write_file(const char *, const char *, size_t, bool); @@ -160,7 +154,6 @@ struct _prop_object_internalize_mapped_file * _prop_object_internalize_map_file(const char *); void _prop_object_internalize_unmap_file( struct _prop_object_internalize_mapped_file *); -#endif /* !_KERNEL && !_STANDALONE */ typedef bool (*prop_object_internalizer_t)(prop_stack_t, prop_object_t *, struct _prop_object_internalize_context *); @@ -231,110 +224,6 @@ struct _prop_object_iterator { uint32_t pi_version; }; -#define _PROP_NOTHREAD_ONCE_DECL(x) static bool x = false; -#define _PROP_NOTHREAD_ONCE_RUN(x,f) \ - do { \ - if ((x) == false) { \ - f(); \ - x = true; \ - } \ - } while (/*CONSTCOND*/0) - -#if defined(_KERNEL) - -/* - * proplib in the kernel... - */ - -#include -#include -#include -#include -#include -#include - -#define _PROP_ASSERT(x) KASSERT(x) - -#define _PROP_MALLOC(s, t) malloc((s), (t), M_WAITOK) -#define _PROP_CALLOC(s, t) malloc((s), (t), M_WAITOK | M_ZERO) -#define _PROP_REALLOC(v, s, t) realloc((v), (s), (t), M_WAITOK) -#define _PROP_FREE(v, t) free((v), (t)) - -#define _PROP_POOL_GET(p) pool_get(&(p), PR_WAITOK) -#define _PROP_POOL_PUT(p, v) pool_put(&(p), (v)) - -struct prop_pool_init { - struct pool *pp; - size_t size; - const char *wchan; -}; -#define _PROP_POOL_INIT(pp, size, wchan) \ -struct pool pp; \ -static const struct prop_pool_init _link_ ## pp[1] = { \ - { &pp, size, wchan } \ -}; \ -__link_set_add_rodata(prop_linkpools, _link_ ## pp); - -#define _PROP_MALLOC_DEFINE(t, s, l) \ - MALLOC_DEFINE(t, s, l); - -#define _PROP_MUTEX_DECL_STATIC(x) static kmutex_t x; -#define _PROP_MUTEX_INIT(x) mutex_init(&(x),MUTEX_DEFAULT,IPL_NONE) -#define _PROP_MUTEX_LOCK(x) mutex_enter(&(x)) -#define _PROP_MUTEX_UNLOCK(x) mutex_exit(&(x)) - -#define _PROP_RWLOCK_DECL(x) krwlock_t x ; -#define _PROP_RWLOCK_INIT(x) rw_init(&(x)) -#define _PROP_RWLOCK_RDLOCK(x) rw_enter(&(x), RW_READER) -#define _PROP_RWLOCK_WRLOCK(x) rw_enter(&(x), RW_WRITER) -#define _PROP_RWLOCK_UNLOCK(x) rw_exit(&(x)) -#define _PROP_RWLOCK_DESTROY(x) rw_destroy(&(x)) - -#define _PROP_ONCE_DECL(x) static ONCE_DECL(x); -#define _PROP_ONCE_RUN(x,f) RUN_ONCE(&(x), f) - -#elif defined(_STANDALONE) - -/* - * proplib in a standalone environment... - */ - -#include - -void * _prop_standalone_calloc(size_t); -void * _prop_standalone_realloc(void *, size_t); - -#define _PROP_ASSERT(x) /* nothing */ - -#define _PROP_MALLOC(s, t) alloc((s)) -#define _PROP_CALLOC(s, t) _prop_standalone_calloc((s)) -#define _PROP_REALLOC(v, s, t) _prop_standalone_realloc((v), (s)) -#define _PROP_FREE(v, t) dealloc((v), 0) /* XXX */ - -#define _PROP_POOL_GET(p) alloc((p)) -#define _PROP_POOL_PUT(p, v) dealloc((v), (p)) - -#define _PROP_POOL_INIT(p, s, d) static const size_t p = s; - -#define _PROP_MALLOC_DEFINE(t, s, l) /* nothing */ - -#define _PROP_MUTEX_DECL_STATIC(x) /* nothing */ -#define _PROP_MUTEX_INIT(x) /* nothing */ -#define _PROP_MUTEX_LOCK(x) /* nothing */ -#define _PROP_MUTEX_UNLOCK(x) /* nothing */ - -#define _PROP_RWLOCK_DECL(x) /* nothing */ -#define _PROP_RWLOCK_INIT(x) /* nothing */ -#define _PROP_RWLOCK_RDLOCK(x) /* nothing */ -#define _PROP_RWLOCK_WRLOCK(x) /* nothing */ -#define _PROP_RWLOCK_UNLOCK(x) /* nothing */ -#define _PROP_RWLOCK_DESTROY(x) /* nothing */ - -#define _PROP_ONCE_DECL(x) _PROP_NOTHREAD_ONCE_DECL(x) -#define _PROP_ONCE_RUN(x,f) _PROP_NOTHREAD_ONCE_RUN(x,f) - -#else - /* * proplib in user space... */ @@ -357,49 +246,6 @@ void * _prop_standalone_realloc(void *, size_t); #define _PROP_POOL_INIT(p, s, d) static const size_t p = s; -#define _PROP_MALLOC_DEFINE(t, s, l) /* nothing */ - -#if defined(__NetBSD__) && defined(_LIBPROP) -/* - * Use the same mechanism as libc; we get pthread mutexes for threaded - * programs and do-nothing stubs for non-threaded programs. - */ -#include "reentrant.h" -#define _PROP_MUTEX_DECL_STATIC(x) static mutex_t x; -#define _PROP_MUTEX_INIT(x) mutex_init(&(x), NULL) -#define _PROP_MUTEX_LOCK(x) mutex_lock(&(x)) -#define _PROP_MUTEX_UNLOCK(x) mutex_unlock(&(x)) - -#define _PROP_RWLOCK_DECL(x) rwlock_t x ; -#define _PROP_RWLOCK_INIT(x) rwlock_init(&(x), NULL) -#define _PROP_RWLOCK_RDLOCK(x) rwlock_rdlock(&(x)) -#define _PROP_RWLOCK_WRLOCK(x) rwlock_wrlock(&(x)) -#define _PROP_RWLOCK_UNLOCK(x) rwlock_unlock(&(x)) -#define _PROP_RWLOCK_DESTROY(x) rwlock_destroy(&(x)) - -#define _PROP_ONCE_DECL(x) \ - static pthread_once_t x = PTHREAD_ONCE_INIT; -#define _PROP_ONCE_RUN(x,f) thr_once(&(x), (void(*)(void))f); - -#elif defined(HAVE_NBTOOL_CONFIG_H) -/* - * None of NetBSD's build tools are multi-threaded. - */ -#define _PROP_MUTEX_DECL_STATIC(x) /* nothing */ -#define _PROP_MUTEX_INIT(x) /* nothing */ -#define _PROP_MUTEX_LOCK(x) /* nothing */ -#define _PROP_MUTEX_UNLOCK(x) /* nothing */ - -#define _PROP_RWLOCK_DECL(x) /* nothing */ -#define _PROP_RWLOCK_INIT(x) /* nothing */ -#define _PROP_RWLOCK_RDLOCK(x) /* nothing */ -#define _PROP_RWLOCK_WRLOCK(x) /* nothing */ -#define _PROP_RWLOCK_UNLOCK(x) /* nothing */ -#define _PROP_RWLOCK_DESTROY(x) /* nothing */ - -#define _PROP_ONCE_DECL(x) _PROP_NOTHREAD_ONCE_DECL(x) -#define _PROP_ONCE_RUN(x,f) _PROP_NOTHREAD_ONCE_RUN(x,f) -#else /* * Use pthread mutexes everywhere else. */ @@ -419,18 +265,5 @@ void * _prop_standalone_realloc(void *, size_t); #define _PROP_ONCE_DECL(x) \ static pthread_once_t x = PTHREAD_ONCE_INIT; #define _PROP_ONCE_RUN(x,f) pthread_once(&(x),(void(*)(void))f) -#endif - -#endif /* _KERNEL */ - -/* - * Language features. - */ -#if defined(__NetBSD__) -#include -#define _PROP_ARG_UNUSED __unused -#else -#define _PROP_ARG_UNUSED /* delete */ -#endif /* __NetBSD__ */ #endif /* _PROPLIB_PROP_OBJECT_IMPL_H_ */ diff --git a/src/prop_rb_impl.h b/src/prop_rb_impl.h index 8b7e964..54e064a 100644 --- src/prop_rb_impl.h +++ src/prop_rb_impl.h @@ -32,7 +32,6 @@ #ifndef _PROP_RB_IMPL_H_ #define _PROP_RB_IMPL_H_ -#if 1 #include /* @@ -44,111 +43,4 @@ #define _prop_rb_tree_remove_node rb_tree_remove_node #define _prop_rb_tree_iterate rb_tree_iterate -#else /* __NetBSD__ */ - -#include -#include -#include - -struct rb_node { - struct rb_node *rb_nodes[3]; -#define RB_NODE_LEFT 0 -#define RB_NODE_RIGHT 1 -#define RB_NODE_OTHER 1 -#define RB_NODE_PARENT 2 -#define rb_left rb_nodes[RB_NODE_LEFT] -#define rb_right rb_nodes[RB_NODE_RIGHT] -#define rb_parent rb_nodes[RB_NODE_PARENT] - union { - struct { -#if BYTE_ORDER == LITTLE_ENDIAN - unsigned int : 28; - unsigned int s_root : 1; - unsigned int s_position : 1; - unsigned int s_color : 1; - unsigned int s_sentinel : 1; -#endif -#if BYTE_ORDER == BIG_ENDIAN - unsigned int s_sentinel : 1; - unsigned int s_color : 1; - unsigned int s_position : 1; - unsigned int s_root : 1; - unsigned int : 28; -#endif - } u_s; - unsigned int u_i; - } rb_u; -#define rb_root rb_u.u_s.s_root -#define rb_position rb_u.u_s.s_position -#define rb_color rb_u.u_s.s_color -#define rb_sentinel rb_u.u_s.s_sentinel -#define rb_properties rb_u.u_i -#define RB_SENTINEL_P(rb) ((rb)->rb_sentinel + 0) -#define RB_LEFT_SENTINEL_P(rb) ((rb)->rb_left->rb_sentinel + 0) -#define RB_RIGHT_SENTINEL_P(rb) ((rb)->rb_right->rb_sentinel + 0) -#define RB_PARENT_SENTINEL_P(rb) ((rb)->rb_parent->rb_sentinel + 0) -#define RB_CHILDLESS_P(rb) (RB_LEFT_SENTINEL_P(rb) \ - && RB_RIGHT_SENTINEL_P(rb)) -#define RB_TWOCHILDREN_P(rb) (!RB_LEFT_SENTINEL_P(rb) \ - && !RB_RIGHT_SENTINEL_P(rb)) -#define RB_ROOT_P(rb) ((rb)->rb_root != false) -#define RB_RED_P(rb) ((rb)->rb_color + 0) -#define RB_BLACK_P(rb) (!(rb)->rb_color) -#define RB_MARK_RED(rb) ((void)((rb)->rb_color = 1)) -#define RB_MARK_BLACK(rb) ((void)((rb)->rb_color = 0)) -#define RB_MARK_ROOT(rb) ((void)((rb)->rb_root = 1)) -#ifdef RBDEBUG - TAILQ_ENTRY(rb_node) rb_link; -#endif -}; - -#ifdef RBDEBUG -TAILQ_HEAD(rb_node_qh, rb_node); - -#define RB_TAILQ_REMOVE TAILQ_REMOVE -#define RB_TAILQ_INIT TAILQ_INIT -#define RB_TAILQ_INSERT_HEAD(a, b, c) TAILQ_INSERT_HEAD -#define RB_TAILQ_INSERT_BEFORE(a, b, c) TAILQ_INSERT_BEFORE -#define RB_TAILQ_INSERT_AFTER(a, b, c, d) TAILQ_INSERT_AFTER -#else -#define RB_TAILQ_REMOVE(a, b, c) do { } while (/*CONSTCOND*/0) -#define RB_TAILQ_INIT(a) do { } while (/*CONSTCOND*/0) -#define RB_TAILQ_INSERT_HEAD(a, b, c) do { } while (/*CONSTCOND*/0) -#define RB_TAILQ_INSERT_BEFORE(a, b, c) do { } while (/*CONSTCOND*/0) -#define RB_TAILQ_INSERT_AFTER(a, b, c, d) do { } while (/*CONSTCOND*/0) -#endif - -typedef int (*rb_compare_nodes_fn)(const struct rb_node *, - const struct rb_node *); -typedef int (*rb_compare_key_fn)(const struct rb_node *, const void *); - -struct rb_tree_ops { - rb_compare_nodes_fn rbto_compare_nodes; - rb_compare_key_fn rbto_compare_key; -}; - -struct rb_tree { - struct rb_node *rbt_root; -#ifdef RBDEBUG - struct rb_node_qh rbt_nodes; -#endif - const struct rb_tree_ops *rbt_ops; -#ifdef RBDEBUG - unsigned int rbt_count; -#endif -}; - -void _prop_rb_tree_init(struct rb_tree *, const struct rb_tree_ops *); -bool _prop_rb_tree_insert_node(struct rb_tree *, struct rb_node *); -struct rb_node * - _prop_rb_tree_find(struct rb_tree *, const void *); -void _prop_rb_tree_remove_node(struct rb_tree *, struct rb_node *); -#ifdef RBDEBUG -void _prop_rb_tree_check(const struct rb_tree *, bool); -#endif -struct rb_node * - _prop_rb_tree_iterate(struct rb_tree *, struct rb_node *, unsigned int); - -#endif /* __NetBSD__ */ - #endif /* _PROP_RB_IMPL_H_*/ diff --git a/src/prop_string.c b/src/prop_string.c index 4f9ed88..6daddbd 100644 --- src/prop_string.c +++ src/prop_string.c @@ -48,8 +48,6 @@ struct _prop_string { _PROP_POOL_INIT(_prop_string_pool, sizeof(struct _prop_string), "propstng") -_PROP_MALLOC_DEFINE(M_PROP_STRING, "prop string", - "property string container object") static _prop_object_free_rv_t _prop_string_free(prop_stack_t, prop_object_t *); diff --git a/src/rb.c b/src/rb.c index 54d5dff..8be152a 100644 --- src/rb.c +++ src/rb.c @@ -29,7 +29,6 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#if !defined(_KERNEL) && !defined(_STANDALONE) #include #include #include @@ -39,25 +38,6 @@ #else #define KASSERT(s) do { } while (/*CONSTCOND*/ 0) #endif -#else -#include -#endif - -#ifdef _LIBC -__weak_alias(rb_tree_init, _rb_tree_init) -__weak_alias(rb_tree_find_node, _rb_tree_find_node) -__weak_alias(rb_tree_find_node_geq, _rb_tree_find_node_geq) -__weak_alias(rb_tree_find_node_leq, _rb_tree_find_node_leq) -__weak_alias(rb_tree_insert_node, _rb_tree_insert_node) -__weak_alias(rb_tree_remove_node, _rb_tree_remove_node) -__weak_alias(rb_tree_iterate, _rb_tree_iterate) -#ifdef RBDEBUG -__weak_alias(rb_tree_check, _rb_tree_check) -__weak_alias(rb_tree_depths, _rb_tree_depths) -#endif - -#include "namespace.h" -#endif #ifdef RBTEST #include "rbtree.h" -- 1.8.1.3