123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- #undef TRACE_SYSTEM
- #define TRACE_SYSTEM snd_pcm
- #define TRACE_INCLUDE_FILE pcm_trace
- #if !defined(_PCM_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
- #define _PCM_TRACE_H
- #include <linux/tracepoint.h>
- TRACE_EVENT(hwptr,
- TP_PROTO(struct snd_pcm_substream *substream, snd_pcm_uframes_t pos, bool irq),
- TP_ARGS(substream, pos, irq),
- TP_STRUCT__entry(
- __field( bool, in_interrupt )
- __field( unsigned int, card )
- __field( unsigned int, device )
- __field( unsigned int, number )
- __field( unsigned int, stream )
- __field( snd_pcm_uframes_t, pos )
- __field( snd_pcm_uframes_t, period_size )
- __field( snd_pcm_uframes_t, buffer_size )
- __field( snd_pcm_uframes_t, old_hw_ptr )
- __field( snd_pcm_uframes_t, hw_ptr_base )
- ),
- TP_fast_assign(
- __entry->in_interrupt = (irq);
- __entry->card = (substream)->pcm->card->number;
- __entry->device = (substream)->pcm->device;
- __entry->number = (substream)->number;
- __entry->stream = (substream)->stream;
- __entry->pos = (pos);
- __entry->period_size = (substream)->runtime->period_size;
- __entry->buffer_size = (substream)->runtime->buffer_size;
- __entry->old_hw_ptr = (substream)->runtime->status->hw_ptr;
- __entry->hw_ptr_base = (substream)->runtime->hw_ptr_base;
- ),
- TP_printk("pcmC%dD%d%c/sub%d: %s: pos=%lu, old=%lu, base=%lu, period=%lu, buf=%lu",
- __entry->card, __entry->device,
- __entry->stream == SNDRV_PCM_STREAM_PLAYBACK ? 'p' : 'c',
- __entry->number,
- __entry->in_interrupt ? "IRQ" : "POS",
- (unsigned long)__entry->pos,
- (unsigned long)__entry->old_hw_ptr,
- (unsigned long)__entry->hw_ptr_base,
- (unsigned long)__entry->period_size,
- (unsigned long)__entry->buffer_size)
- );
- TRACE_EVENT(xrun,
- TP_PROTO(struct snd_pcm_substream *substream),
- TP_ARGS(substream),
- TP_STRUCT__entry(
- __field( unsigned int, card )
- __field( unsigned int, device )
- __field( unsigned int, number )
- __field( unsigned int, stream )
- __field( snd_pcm_uframes_t, period_size )
- __field( snd_pcm_uframes_t, buffer_size )
- __field( snd_pcm_uframes_t, old_hw_ptr )
- __field( snd_pcm_uframes_t, hw_ptr_base )
- ),
- TP_fast_assign(
- __entry->card = (substream)->pcm->card->number;
- __entry->device = (substream)->pcm->device;
- __entry->number = (substream)->number;
- __entry->stream = (substream)->stream;
- __entry->period_size = (substream)->runtime->period_size;
- __entry->buffer_size = (substream)->runtime->buffer_size;
- __entry->old_hw_ptr = (substream)->runtime->status->hw_ptr;
- __entry->hw_ptr_base = (substream)->runtime->hw_ptr_base;
- ),
- TP_printk("pcmC%dD%d%c/sub%d: XRUN: old=%lu, base=%lu, period=%lu, buf=%lu",
- __entry->card, __entry->device,
- __entry->stream == SNDRV_PCM_STREAM_PLAYBACK ? 'p' : 'c',
- __entry->number,
- (unsigned long)__entry->old_hw_ptr,
- (unsigned long)__entry->hw_ptr_base,
- (unsigned long)__entry->period_size,
- (unsigned long)__entry->buffer_size)
- );
- TRACE_EVENT(hw_ptr_error,
- TP_PROTO(struct snd_pcm_substream *substream, const char *why),
- TP_ARGS(substream, why),
- TP_STRUCT__entry(
- __field( unsigned int, card )
- __field( unsigned int, device )
- __field( unsigned int, number )
- __field( unsigned int, stream )
- __field( const char *, reason )
- ),
- TP_fast_assign(
- __entry->card = (substream)->pcm->card->number;
- __entry->device = (substream)->pcm->device;
- __entry->number = (substream)->number;
- __entry->stream = (substream)->stream;
- __entry->reason = (why);
- ),
- TP_printk("pcmC%dD%d%c/sub%d: ERROR: %s",
- __entry->card, __entry->device,
- __entry->stream == SNDRV_PCM_STREAM_PLAYBACK ? 'p' : 'c',
- __entry->number, __entry->reason)
- );
- #endif /* _PCM_TRACE_H */
- /* This part must be outside protection */
- #undef TRACE_INCLUDE_PATH
- #define TRACE_INCLUDE_PATH .
- #include <trace/define_trace.h>
|