Author: rwatson
Date: Sun Jul 19 15:21:42 2009
New Revision: 195761
URL: http://svn.freebsd.org/changeset/base/195761

Log:
  Expose the definitions of 'struct vnet' and 'VNET_MAGIC_N' to userspace
  if _WANT_VNET is defined.  This is required so that libkvm can locate
  virtual network stack instances in order to reach their global variables
  for monitoring and crashdump analysis.
  
  Reviewed by:  bz
  Approved by:  re (kib)

Modified:
  head/sys/sys/vimage.h

Modified: head/sys/sys/vimage.h
==============================================================================
--- head/sys/sys/vimage.h       Sun Jul 19 14:20:53 2009        (r195760)
+++ head/sys/sys/vimage.h       Sun Jul 19 15:21:42 2009        (r195761)
@@ -33,13 +33,31 @@
 #ifndef        _SYS_VIMAGE_H_
 #define        _SYS_VIMAGE_H_
 
-#include <sys/proc.h>
+/*
+ * struct vnet describes a virtualized network stack, and is primarily a
+ * pointer to storage for virtualized global variables.  Expose to userspace
+ * as required for libkvm.
+ */
+#if defined(_KERNEL) || defined(_WANT_VNET)
 #include <sys/queue.h>
 
+struct vnet {
+       LIST_ENTRY(vnet)         vnet_le;       /* all vnets list */
+       u_int                    vnet_magic_n;
+       u_int                    ifcnt;
+       u_int                    sockcnt;
+       void                    *vnet_data_mem;
+       uintptr_t                vnet_data_base;
+};
+
+#define        VNET_MAGIC_N 0x3e0d8f29
+#endif
+
 #ifdef _KERNEL
 
 #include <sys/lock.h>
 #include <sys/sx.h>
+#include <sys/proc.h>
 
 #ifdef INVARIANTS
 #define        VNET_DEBUG
@@ -115,19 +133,8 @@ void       vnet_foreach(void (*vnet_foreach_fn
 
 #endif /* VIMAGE */
 
-struct vnet {
-       LIST_ENTRY(vnet)         vnet_le;       /* all vnets list */
-       u_int                    vnet_magic_n;
-       u_int                    ifcnt;
-       u_int                    sockcnt;
-       void                    *vnet_data_mem;
-       uintptr_t                vnet_data_base;
-};
-
 #define        curvnet curthread->td_vnet
 
-#define        VNET_MAGIC_N 0x3e0d8f29
-
 #ifdef VIMAGE
 #ifdef VNET_DEBUG
 #define        VNET_ASSERT(condition)                                          
\
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to