PERFORCE change 112778 for review
Marko Zec
zec at FreeBSD.org
Thu Jan 11 10:01:43 PST 2007
http://perforce.freebsd.org/chv.cgi?CH=112778
Change 112778 by zec at zec_tca51 on 2007/01/11 18:00:56
Introduce a macro for resolving pointers to virtualized symbols.
Introduce the SYSCTL_V_PROC macro, to be used for accessing
virtualized symbols in handler functions.
Affected files ...
.. //depot/projects/vimage/src/sys/sys/sysctl.h#3 edit
Differences ...
==== //depot/projects/vimage/src/sys/sys/sysctl.h#3 (text+ko) ====
@@ -373,10 +373,36 @@
SYSCTL_OID(parent, nbr, name, (access), \
ptr, arg, handler, fmt, descr)
+#ifdef VIMAGE
+#define SYSCTL_V_PROC(subs, mod, parent, nbr, name, access, sym, arg, \
+ handler, fmt, descr) \
+ SYSCTL_V_OID(subs, mod, parent, nbr, name, (access), \
+ sym, arg, handler, fmt, descr)
+#else
+#define SYSCTL_V_PROC(subs, mod, parent, nbr, name, access, sym, arg, \
+ handler, fmt, descr) \
+ SYSCTL_OID(parent, nbr, name, (access), \
+ &sym, arg, handler, fmt, descr)
+#endif
+
#define SYSCTL_ADD_PROC(ctx, parent, nbr, name, access, ptr, arg, handler, fmt, descr) \
sysctl_add_oid(ctx, parent, nbr, name, (access), \
ptr, arg, handler, fmt, __DESCR(descr))
+#ifdef VIMAGE
+#define SYSCTL_RESOLVE_V_ARG1() do { \
+ void *ptr; \
+ switch (subs) { \
+ case V_NET: \
+ ptr = curthread->td_vimage->v_vnetb->mod_data[mod]; \
+ arg1 = (void *) ((int) ptr + (int) arg1); \
+ break; \
+ default: \
+ panic("unsupported module id %d", subs); \
+ } \
+} while (0)
+#endif
+
#endif /* _KERNEL */
/*
More information about the p4-projects
mailing list