Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 12 Dec 2009 15:49:28 +0000 (UTC)
From:      Luigi Rizzo <luigi@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r200439 - head/sys/net
Message-ID:  <200912121549.nBCFnS99056881@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: luigi
Date: Sat Dec 12 15:49:28 2009
New Revision: 200439
URL: http://svn.freebsd.org/changeset/base/200439

Log:
  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

Modified:
  head/sys/net/radix.c

Modified: head/sys/net/radix.c
==============================================================================
--- head/sys/net/radix.c	Sat Dec 12 14:44:04 2009	(r200438)
+++ head/sys/net/radix.c	Sat Dec 12 15:49:28 2009	(r200439)
@@ -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 */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200912121549.nBCFnS99056881>