Date: Tue, 29 Dec 2009 17:35:56 +0000 (UTC) From: Robert Watson <rwatson@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org Subject: svn commit: r201207 - in stable/7/sys: kern security/mac sys Message-ID: <200912291735.nBTHZudM031329@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 *);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200912291735.nBTHZudM031329>