Fix compilation on Linux kernel >= 3.18.0
[lttng-modules.git] / instrumentation / events / lttng-module / asoc.h
index 6ffc923de4037859157bfa7c085458e439c3b378..4aca115cb960e1532c2b1dcd635847b78346f985 100644 (file)
@@ -1,13 +1,15 @@
 #undef TRACE_SYSTEM
 #define TRACE_SYSTEM asoc
 
-#if !defined(_TRACE_ASOC_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_ASOC_H
+#if !defined(LTTNG_TRACE_ASOC_H) || defined(TRACE_HEADER_MULTI_READ)
+#define LTTNG_TRACE_ASOC_H
 
+#include "../../../probes/lttng-tracepoint-event.h"
 #include <linux/ktime.h>
-#include <linux/tracepoint.h>
 #include <linux/version.h>
 
+#define DAPM_DIRECT "(direct)"
+
 #ifndef _TRACE_ASOC_DEF
 #define _TRACE_ASOC_DEF
 struct snd_soc_jack;
@@ -19,10 +21,18 @@ struct snd_soc_card;
 struct snd_soc_dapm_widget;
 #endif
 
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0))
+#define CODEC_NAME_FIELD component.name
+#define CODEC_ID_FIELD component.id
+#else
+#define CODEC_NAME_FIELD name
+#define CODEC_ID_FIELD id
+#endif
+
 /*
  * Log register events
  */
-DECLARE_EVENT_CLASS(snd_soc_reg,
+LTTNG_TRACEPOINT_EVENT_CLASS(snd_soc_reg,
 
        TP_PROTO(struct snd_soc_codec *codec, unsigned int reg,
                 unsigned int val),
@@ -30,15 +40,15 @@ DECLARE_EVENT_CLASS(snd_soc_reg,
        TP_ARGS(codec, reg, val),
 
        TP_STRUCT__entry(
-               __string(       name,           codec->name     )
+               __string(       name,           codec->CODEC_NAME_FIELD )
                __field(        int,            id              )
                __field(        unsigned int,   reg             )
                __field(        unsigned int,   val             )
        ),
 
        TP_fast_assign(
-               tp_strcpy(name, codec->name)
-               tp_assign(id, codec->id)
+               tp_strcpy(name, codec->CODEC_NAME_FIELD)
+               tp_assign(id, codec->CODEC_ID_FIELD)
                tp_assign(reg, reg)
                tp_assign(val, val)
        ),
@@ -48,7 +58,7 @@ DECLARE_EVENT_CLASS(snd_soc_reg,
                  (unsigned int)__entry->val)
 )
 
-DEFINE_EVENT(snd_soc_reg, snd_soc_reg_write,
+LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_reg, snd_soc_reg_write,
 
        TP_PROTO(struct snd_soc_codec *codec, unsigned int reg,
                 unsigned int val),
@@ -57,7 +67,7 @@ DEFINE_EVENT(snd_soc_reg, snd_soc_reg_write,
 
 )
 
-DEFINE_EVENT(snd_soc_reg, snd_soc_reg_read,
+LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_reg, snd_soc_reg_read,
 
        TP_PROTO(struct snd_soc_codec *codec, unsigned int reg,
                 unsigned int val),
@@ -67,7 +77,7 @@ DEFINE_EVENT(snd_soc_reg, snd_soc_reg_read,
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
-DECLARE_EVENT_CLASS(snd_soc_preg,
+LTTNG_TRACEPOINT_EVENT_CLASS(snd_soc_preg,
 
        TP_PROTO(struct snd_soc_platform *platform, unsigned int reg,
                 unsigned int val),
@@ -75,15 +85,15 @@ DECLARE_EVENT_CLASS(snd_soc_preg,
        TP_ARGS(platform, reg, val),
 
        TP_STRUCT__entry(
-               __string(       name,           platform->name  )
+               __string(       name,           platform->CODEC_NAME_FIELD      )
                __field(        int,            id              )
                __field(        unsigned int,   reg             )
                __field(        unsigned int,   val             )
        ),
 
        TP_fast_assign(
-               tp_strcpy(name, platform->name)
-               tp_assign(id, platform->id)
+               tp_strcpy(name, platform->CODEC_NAME_FIELD)
+               tp_assign(id, platform->CODEC_ID_FIELD)
                tp_assign(reg, reg)
                tp_assign(val, val)
        ),
@@ -93,7 +103,7 @@ DECLARE_EVENT_CLASS(snd_soc_preg,
                  (unsigned int)__entry->val)
 )
 
-DEFINE_EVENT(snd_soc_preg, snd_soc_preg_write,
+LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_preg, snd_soc_preg_write,
 
        TP_PROTO(struct snd_soc_platform *platform, unsigned int reg,
                 unsigned int val),
@@ -102,7 +112,7 @@ DEFINE_EVENT(snd_soc_preg, snd_soc_preg_write,
 
 )
 
-DEFINE_EVENT(snd_soc_preg, snd_soc_preg_read,
+LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_preg, snd_soc_preg_read,
 
        TP_PROTO(struct snd_soc_platform *platform, unsigned int reg,
                 unsigned int val),
@@ -112,7 +122,7 @@ DEFINE_EVENT(snd_soc_preg, snd_soc_preg_read,
 )
 #endif
 
-DECLARE_EVENT_CLASS(snd_soc_card,
+LTTNG_TRACEPOINT_EVENT_CLASS(snd_soc_card,
 
        TP_PROTO(struct snd_soc_card *card, int val),
 
@@ -131,7 +141,7 @@ DECLARE_EVENT_CLASS(snd_soc_card,
        TP_printk("card=%s val=%d", __get_str(name), (int)__entry->val)
 )
 
-DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_start,
+LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_card, snd_soc_bias_level_start,
 
        TP_PROTO(struct snd_soc_card *card, int val),
 
@@ -139,7 +149,7 @@ DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_start,
 
 )
 
-DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_done,
+LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_card, snd_soc_bias_level_done,
 
        TP_PROTO(struct snd_soc_card *card, int val),
 
@@ -147,7 +157,7 @@ DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_done,
 
 )
 
-DECLARE_EVENT_CLASS(snd_soc_dapm_basic,
+LTTNG_TRACEPOINT_EVENT_CLASS(snd_soc_dapm_basic,
 
        TP_PROTO(struct snd_soc_card *card),
 
@@ -164,7 +174,7 @@ DECLARE_EVENT_CLASS(snd_soc_dapm_basic,
        TP_printk("card=%s", __get_str(name))
 )
 
-DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_start,
+LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_dapm_basic, snd_soc_dapm_start,
 
        TP_PROTO(struct snd_soc_card *card),
 
@@ -172,7 +182,7 @@ DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_start,
 
 )
 
-DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_done,
+LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_dapm_basic, snd_soc_dapm_done,
 
        TP_PROTO(struct snd_soc_card *card),
 
@@ -180,7 +190,7 @@ DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_done,
 
 )
 
-DECLARE_EVENT_CLASS(snd_soc_dapm_widget,
+LTTNG_TRACEPOINT_EVENT_CLASS(snd_soc_dapm_widget,
 
        TP_PROTO(struct snd_soc_dapm_widget *w, int val),
 
@@ -200,7 +210,7 @@ DECLARE_EVENT_CLASS(snd_soc_dapm_widget,
                  (int)__entry->val)
 )
 
-DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_power,
+LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_dapm_widget, snd_soc_dapm_widget_power,
 
        TP_PROTO(struct snd_soc_dapm_widget *w, int val),
 
@@ -208,7 +218,7 @@ DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_power,
 
 )
 
-DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_start,
+LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_dapm_widget, snd_soc_dapm_widget_event_start,
 
        TP_PROTO(struct snd_soc_dapm_widget *w, int val),
 
@@ -216,7 +226,7 @@ DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_start,
 
 )
 
-DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_done,
+LTTNG_TRACEPOINT_EVENT_INSTANCE(snd_soc_dapm_widget, snd_soc_dapm_widget_event_done,
 
        TP_PROTO(struct snd_soc_dapm_widget *w, int val),
 
@@ -225,7 +235,7 @@ DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_done,
 )
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
-TRACE_EVENT(snd_soc_dapm_walk_done,
+LTTNG_TRACEPOINT_EVENT(snd_soc_dapm_walk_done,
 
        TP_PROTO(struct snd_soc_card *card),
 
@@ -251,7 +261,87 @@ TRACE_EVENT(snd_soc_dapm_walk_done,
 )
 #endif
 
-TRACE_EVENT(snd_soc_jack_irq,
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
+LTTNG_TRACEPOINT_EVENT(snd_soc_dapm_output_path,
+
+       TP_PROTO(struct snd_soc_dapm_widget *widget,
+               struct snd_soc_dapm_path *path),
+
+       TP_ARGS(widget, path),
+
+       TP_STRUCT__entry(
+               __string(       wname,  widget->name            )
+               __string(       pname,  path->name ? path->name : DAPM_DIRECT)
+               __string(       psname, path->sink->name        )
+               __field(        int,    path_sink               )
+               __field(        int,    path_connect            )
+       ),
+
+       TP_fast_assign(
+               tp_strcpy(wname, widget->name)
+               tp_strcpy(pname, path->name ? path->name : DAPM_DIRECT)
+               tp_strcpy(psname, path->sink->name)
+               tp_assign(path_connect, path->connect)
+               tp_assign(path_sink, (long)path->sink)
+       ),
+
+       TP_printk("%c%s -> %s -> %s\n",
+               (int) __entry->path_sink &&
+               (int) __entry->path_connect ? '*' : ' ',
+               __get_str(wname), __get_str(pname), __get_str(psname))
+)
+
+LTTNG_TRACEPOINT_EVENT(snd_soc_dapm_input_path,
+
+       TP_PROTO(struct snd_soc_dapm_widget *widget,
+               struct snd_soc_dapm_path *path),
+
+       TP_ARGS(widget, path),
+
+       TP_STRUCT__entry(
+               __string(       wname,  widget->name            )
+               __string(       pname,  path->name ? path->name : DAPM_DIRECT)
+               __string(       psname, path->source->name      )
+               __field(        int,    path_source             )
+               __field(        int,    path_connect            )
+       ),
+
+       TP_fast_assign(
+               tp_strcpy(wname, widget->name)
+               tp_strcpy(pname, path->name ? path->name : DAPM_DIRECT)
+               tp_strcpy(psname, path->source->name)
+               tp_assign(path_connect, path->connect)
+               tp_assign(path_source, (long)path->source)
+       ),
+
+       TP_printk("%c%s <- %s <- %s\n",
+               (int) __entry->path_source &&
+               (int) __entry->path_connect ? '*' : ' ',
+               __get_str(wname), __get_str(pname), __get_str(psname))
+)
+
+LTTNG_TRACEPOINT_EVENT(snd_soc_dapm_connected,
+
+       TP_PROTO(int paths, int stream),
+
+       TP_ARGS(paths, stream),
+
+       TP_STRUCT__entry(
+               __field(        int,    paths           )
+               __field(        int,    stream          )
+       ),
+
+       TP_fast_assign(
+               tp_assign(paths, paths)
+               tp_assign(stream, stream)
+       ),
+
+       TP_printk("%s: found %d paths\n",
+               __entry->stream ? "capture" : "playback", __entry->paths)
+)
+#endif
+
+LTTNG_TRACEPOINT_EVENT(snd_soc_jack_irq,
 
        TP_PROTO(const char *name),
 
@@ -268,7 +358,7 @@ TRACE_EVENT(snd_soc_jack_irq,
        TP_printk("%s", __get_str(name))
 )
 
-TRACE_EVENT(snd_soc_jack_report,
+LTTNG_TRACEPOINT_EVENT(snd_soc_jack_report,
 
        TP_PROTO(struct snd_soc_jack *jack, int mask, int val),
 
@@ -290,7 +380,7 @@ TRACE_EVENT(snd_soc_jack_report,
                  (int)__entry->mask)
 )
 
-TRACE_EVENT(snd_soc_jack_notify,
+LTTNG_TRACEPOINT_EVENT(snd_soc_jack_notify,
 
        TP_PROTO(struct snd_soc_jack *jack, int val),
 
@@ -309,7 +399,7 @@ TRACE_EVENT(snd_soc_jack_notify,
        TP_printk("jack=%s %x", __get_str(name), (int)__entry->val)
 )
 
-TRACE_EVENT(snd_soc_cache_sync,
+LTTNG_TRACEPOINT_EVENT(snd_soc_cache_sync,
 
        TP_PROTO(struct snd_soc_codec *codec, const char *type,
                 const char *status),
@@ -317,24 +407,24 @@ TRACE_EVENT(snd_soc_cache_sync,
        TP_ARGS(codec, type, status),
 
        TP_STRUCT__entry(
-               __string(       name,           codec->name     )
+               __string(       name,           codec->CODEC_NAME_FIELD )
                __string(       status,         status          )
                __string(       type,           type            )
                __field(        int,            id              )
        ),
 
        TP_fast_assign(
-               tp_strcpy(name, codec->name)
+               tp_strcpy(name, codec->CODEC_NAME_FIELD)
                tp_strcpy(status, status)
                tp_strcpy(type, type)
-               tp_assign(id, codec->id)
+               tp_assign(id, codec->CODEC_ID_FIELD)
        ),
 
        TP_printk("codec=%s.%d type=%s status=%s", __get_str(name),
                  (int)__entry->id, __get_str(type), __get_str(status))
 )
 
-#endif /* _TRACE_ASOC_H */
+#endif /* LTTNG_TRACE_ASOC_H */
 
 /* This part must be outside protection */
 #include "../../../probes/define_trace.h"
This page took 0.028909 seconds and 4 git commands to generate.