svn commit: r201207 - in stable/7/sys: kern security/mac sys
Robert Watson
rwatson at FreeBSD.org
Tue Dec 29 17:35:57 UTC 2009
Author: rwatson
Date: Tue Dec 29 17:35:56 2009
New Revision: 201207
URL: http://svn.freebsd.org/changeset/base/201207
Log:
Merge r189311 from head to stable/7:
Reduce the verbosity of SDT trace points for DTrace by defining several
wrapper macros that allow trace points and arguments to be declared
using a single macro rather than several. This means a lot less
repetition and vertical space for each trace point.
Use these macros when defining privilege and MAC Framework trace points.
Reviewed by: jb
Requested by: bz
Modified:
stable/7/sys/kern/kern_priv.c
stable/7/sys/security/mac/mac_framework.c
stable/7/sys/sys/sdt.h
Directory Properties:
stable/7/sys/ (props changed)
stable/7/sys/cddl/contrib/opensolaris/ (props changed)
stable/7/sys/contrib/dev/acpica/ (props changed)
stable/7/sys/contrib/pf/ (props changed)
Modified: stable/7/sys/kern/kern_priv.c
==============================================================================
--- stable/7/sys/kern/kern_priv.c Tue Dec 29 17:31:52 2009 (r201206)
+++ stable/7/sys/kern/kern_priv.c Tue Dec 29 17:35:56 2009 (r201207)
@@ -61,12 +61,8 @@ SYSCTL_INT(_security_bsd, OID_AUTO, suse
TUNABLE_INT("security.bsd.suser_enabled", &suser_enabled);
SDT_PROVIDER_DEFINE(priv);
-
-SDT_PROBE_DEFINE(priv, kernel, priv_check, priv_ok);
-SDT_PROBE_ARGTYPE(priv, kernel, priv_check, priv_ok, 0, "int");
-
-SDT_PROBE_DEFINE(priv, kernel, priv_check, priv_err);
-SDT_PROBE_ARGTYPE(priv, kernel, priv_check, priv_err, 0, "int");
+SDT_PROBE_DEFINE1(priv, kernel, priv_check, priv_ok, "int");
+SDT_PROBE_DEFINE1(priv, kernel, priv_check, priv_err, "int");
/*
* Check a credential for privilege. Lots of good reasons to deny privilege;
Modified: stable/7/sys/security/mac/mac_framework.c
==============================================================================
--- stable/7/sys/security/mac/mac_framework.c Tue Dec 29 17:31:52 2009 (r201206)
+++ stable/7/sys/security/mac/mac_framework.c Tue Dec 29 17:35:56 2009 (r201207)
@@ -87,19 +87,10 @@ __FBSDID("$FreeBSD$");
* DTrace SDT provider for MAC.
*/
SDT_PROVIDER_DEFINE(mac);
-
-SDT_PROBE_DEFINE(mac, kernel, policy, modevent);
-SDT_PROBE_ARGTYPE(mac, kernel, policy, modevent, 0, "int");
-SDT_PROBE_ARGTYPE(mac, kernel, policy, modevent, 1,
+SDT_PROBE_DEFINE2(mac, kernel, policy, modevent, "int",
"struct mac_policy_conf *mpc");
-
-SDT_PROBE_DEFINE(mac, kernel, policy, register);
-SDT_PROBE_ARGTYPE(mac, kernel, policy, register, 0,
- "struct mac_policy_conf *");
-
-SDT_PROBE_DEFINE(mac, kernel, policy, unregister);
-SDT_PROBE_ARGTYPE(mac, kernel, policy, unregister, 0,
- "struct mac_policy_conf *");
+SDT_PROBE_DEFINE1(mac, kernel, policy, register, "struct mac_policy_conf *");
+SDT_PROBE_DEFINE1(mac, kernel, policy, unregister, "struct mac_policy_conf *");
/*
* Root sysctl node for all MAC and MAC policy controls.
Modified: stable/7/sys/sys/sdt.h
==============================================================================
--- stable/7/sys/sys/sdt.h Tue Dec 29 17:31:52 2009 (r201206)
+++ stable/7/sys/sys/sdt.h Tue Dec 29 17:35:56 2009 (r201207)
@@ -53,6 +53,12 @@
#define SDT_PROBE(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4)
#define SDT_PROBE_ARGTYPE(prov, mod, func, name, num, type)
+#define SDT_PROBE_DEFINE1(prov, mod, func, name, arg0)
+#define SDT_PROBE_DEFINE2(prov, mod, func, name, arg0, arg1)
+#define SDT_PROBE_DEFINE3(prov, mod, func, name, arg0, arg1, arg2)
+#define SDT_PROBE_DEFINE4(prov, mod, func, name, arg0, arg1, arg2, arg3)
+#define SDT_PROBE_DEFINE5(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4)
+
#else
/*
@@ -156,6 +162,36 @@ struct sdt_provider {
SI_SUB_KDTRACE, SI_ORDER_SECOND + 2, sdt_argtype_deregister, \
sdt_##prov##_##mod##_##func##_##name##num )
+#define SDT_PROBE_DEFINE1(prov, mod, func, name, arg0) \
+ SDT_PROBE_DEFINE(prov, mod, func, name); \
+ SDT_PROBE_ARGTYPE(prov, mod, func, name, 0, arg0)
+
+#define SDT_PROBE_DEFINE2(prov, mod, func, name, arg0, arg1) \
+ SDT_PROBE_DEFINE(prov, mod, func, name); \
+ SDT_PROBE_ARGTYPE(prov, mod, func, name, 0, arg0) \
+ SDT_PROBE_ARGTYPE(prov, mod, func, name, 1, arg1)
+
+#define SDT_PROBE_DEFINE3(prov, mod, func, name, arg0, arg1, arg2) \
+ SDT_PROBE_DEFINE(prov, mod, func, name); \
+ SDT_PROBE_ARGTYPE(prov, mod, func, name, 0, arg0) \
+ SDT_PROBE_ARGTYPE(prov, mod, func, name, 1, arg1) \
+ SDT_PROBE_ARGTYPE(prov, mod, func, name, 2, arg2)
+
+#define SDT_PROBE_DEFINE4(prov, mod, func, name, arg0, arg1, arg2, arg3) \
+ SDT_PROBE_DEFINE(prov, mod, func, name); \
+ SDT_PROBE_ARGTYPE(prov, mod, func, name, 0, arg0) \
+ SDT_PROBE_ARGTYPE(prov, mod, func, name, 1, arg1) \
+ SDT_PROBE_ARGTYPE(prov, mod, func, name, 2, arg2) \
+ SDT_PROBE_ARGTYPE(prov, mod, func, name, 3, arg3)
+
+#define SDT_PROBE_DEFINE5(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4) \
+ SDT_PROBE_DEFINE(prov, mod, func, name); \
+ SDT_PROBE_ARGTYPE(prov, mod, func, name, 0, arg0) \
+ SDT_PROBE_ARGTYPE(prov, mod, func, name, 1, arg1) \
+ SDT_PROBE_ARGTYPE(prov, mod, func, name, 2, arg2) \
+ SDT_PROBE_ARGTYPE(prov, mod, func, name, 3, arg3) \
+ SDT_PROBE_ARGTYPE(prov, mod, func, name, 4, arg4)
+
typedef int (*sdt_argtype_listall_func_t)(struct sdt_argtype *, void *);
typedef int (*sdt_probe_listall_func_t)(struct sdt_probe *, void *);
typedef int (*sdt_provider_listall_func_t)(struct sdt_provider *, void *);
More information about the svn-src-stable-7
mailing list