1#include <sys/cdefs.h>
2__FBSDID("$FreeBSD$");
3
4#if !defined(_RADEON_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
5#define _RADEON_TRACE_H_
6
7#include <linux/stringify.h>
8#include <linux/types.h>
9#include <linux/tracepoint.h>
10
11#include <drm/drmP.h>
12
13#undef TRACE_SYSTEM
14#define TRACE_SYSTEM radeon
15#define TRACE_SYSTEM_STRING __stringify(TRACE_SYSTEM)
16#define TRACE_INCLUDE_FILE radeon_trace
17
18TRACE_EVENT(radeon_bo_create,
19	    TP_PROTO(struct radeon_bo *bo),
20	    TP_ARGS(bo),
21	    TP_STRUCT__entry(
22			     __field(struct radeon_bo *, bo)
23			     __field(u32, pages)
24			     ),
25
26	    TP_fast_assign(
27			   __entry->bo = bo;
28			   __entry->pages = bo->tbo.num_pages;
29			   ),
30	    TP_printk("bo=%p, pages=%u", __entry->bo, __entry->pages)
31);
32
33DECLARE_EVENT_CLASS(radeon_fence_request,
34
35	    TP_PROTO(struct drm_device *dev, u32 seqno),
36
37	    TP_ARGS(dev, seqno),
38
39	    TP_STRUCT__entry(
40			     __field(u32, dev)
41			     __field(u32, seqno)
42			     ),
43
44	    TP_fast_assign(
45			   __entry->dev = dev->primary->index;
46			   __entry->seqno = seqno;
47			   ),
48
49	    TP_printk("dev=%u, seqno=%u", __entry->dev, __entry->seqno)
50);
51
52DEFINE_EVENT(radeon_fence_request, radeon_fence_emit,
53
54	    TP_PROTO(struct drm_device *dev, u32 seqno),
55
56	    TP_ARGS(dev, seqno)
57);
58
59DEFINE_EVENT(radeon_fence_request, radeon_fence_retire,
60
61	    TP_PROTO(struct drm_device *dev, u32 seqno),
62
63	    TP_ARGS(dev, seqno)
64);
65
66DEFINE_EVENT(radeon_fence_request, radeon_fence_wait_begin,
67
68	    TP_PROTO(struct drm_device *dev, u32 seqno),
69
70	    TP_ARGS(dev, seqno)
71);
72
73DEFINE_EVENT(radeon_fence_request, radeon_fence_wait_end,
74
75	    TP_PROTO(struct drm_device *dev, u32 seqno),
76
77	    TP_ARGS(dev, seqno)
78);
79
80#endif
81
82/* This part must be outside protection */
83#undef TRACE_INCLUDE_PATH
84#define TRACE_INCLUDE_PATH .
85#include <trace/define_trace.h>
86