Make the code buildable in userland so it is easier to test it:

this requires a small reordering of headers and a few #defines to
map functions not available in userland.

Remove a useless #ifndef block at the beginning of the file.

Introduce (temporarily) rn_init2(), see the comment in the code
for the proper long term change.

No ABI or functional change.

MFC after:	7 days
This commit is contained in:
Luigi Rizzo 2009-12-12 15:49:28 +00:00
parent 1b2aeedc64
commit a50f6188de
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=200439

View File

@ -33,7 +33,6 @@
/*
* Routines to build and maintain radix trees for routing lookups.
*/
#ifndef _RADIX_H_
#include <sys/param.h>
#ifdef _KERNEL
#include <sys/lock.h>
@ -42,19 +41,21 @@
#include <sys/systm.h>
#include <sys/malloc.h>
#include <sys/domain.h>
#else
#include <stdlib.h>
#endif
#include <sys/syslog.h>
#include <net/radix.h>
#endif
#include "opt_mpath.h"
#ifdef RADIX_MPATH
#include <net/radix_mpath.h>
#endif
#else /* !_KERNEL */
#include <stdio.h>
#include <strings.h>
#include <stdlib.h>
#define log(x, arg...) fprintf(stderr, ## arg)
#define panic(x) fprintf(stderr, "PANIC: %s", x), exit(1)
#define min(a, b) ((a) < (b) ? (a) : (b) )
#include <net/radix.h>
#endif /* !_KERNEL */
static int rn_walktree_from(struct radix_node_head *h, void *a, void *m,
walktree_f_t *f, void *w);
@ -1188,3 +1189,19 @@ rn_init()
if (rn_inithead((void **)(void *)&mask_rnhead, 0) == 0)
panic("rn_init 2");
}
#ifndef _KERNEL
/*
* A simple function to make the code usable from userland.
* A proper fix (maybe later) would be to change rn_init() so that it
* takes maxkeylen as an argument, and move the scan of
* domains into net/route.c::route_init().
*/
void rn_init2(int maxk);
void
rn_init2(int maxk)
{
max_keylen = maxk;
rn_init();
}
#endif /* !_KERNEL */