]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Differentiate between multi-providers and meta-providers.
authorKris Van Hees <kris.van.hees@oracle.com>
Sun, 6 Jan 2013 09:51:59 +0000 (04:51 -0500)
committerKris Van Hees <kris.van.hees@oracle.com>
Sun, 6 Jan 2013 10:34:58 +0000 (05:34 -0500)
Renamed and module init/exit macro to reflect that this is a multi-provider
module (i.e. one that registers multiple providers in one kernel module) rather
than a meta-provider (a module that dynamically creates providers on demand).
Also added the list of providers to register/unregister as a 2nd argument to
the macro rather than expecting that the list of providers will be provided by
a global variable with a specific name.

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
dtrace/dtrace.h
dtrace/sdt_mod.c

index c17bfdb729943ca9163bf134fdae3010fcf9760a..b9cb4f296053e018554f70bfd667db3b92d1a6b8 100644 (file)
@@ -2207,17 +2207,17 @@ typedef struct dtrace_mprovider {
        dtrace_provider_id_t    dtmp_id;
 } dtrace_mprovider_t;
 
-#define DT_META_PROVIDER_MODULE(name)                                  \
+#define DT_MULTI_PROVIDER_MODULE(name, plist)                          \
   static int __init name##_init(void)                                  \
   {                                                                    \
-       int             ret = 0;                                        \
-       dtrace_mprovider_t      *prov;                                          \
+       int                     ret = 0;                                \
+       dtrace_mprovider_t      *prov;                                  \
                                                                        \
        ret = name##_dev_init();                                        \
        if (ret)                                                        \
                goto failed;                                            \
                                                                        \
-       for (prov = name##_providers; prov->dtmp_name != NULL; prov++) {\
+       for (prov = plist; prov->dtmp_name != NULL; prov++) {           \
                if (dtrace_register(prov->dtmp_name, prov->dtmp_attr,   \
                                    prov->dtmp_priv, NULL,              \
                                    prov->dtmp_pops, prov,              \
@@ -2237,7 +2237,7 @@ typedef struct dtrace_mprovider {
        int                     ret = 0;                                \
        dtrace_mprovider_t      *prov;                                  \
                                                                        \
-       for (prov = name##_providers; prov->dtmp_name != NULL; prov++) {\
+       for (prov = plist; prov->dtmp_name != NULL; prov++) {           \
                if (prov->dtmp_id != DTRACE_PROVNONE) {                 \
                        ret = dtrace_unregister(prov->dtmp_id);         \
                        if (ret != 0)                                   \
index d9b93f539d08e0f3d5df8fa8a57f8db053750f5a..26df969d0ab54eb4e6e51937e1cc706f4bd64f0e 100644 (file)
@@ -148,4 +148,4 @@ dtrace_mprovider_t sdt_providers[] = {
   { NULL }
 };
 
-DT_META_PROVIDER_MODULE(sdt)
+DT_MULTI_PROVIDER_MODULE(sdt, sdt_providers)