arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / stages / stage3_trace_output.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2
3 /* Stage 3 definitions for creating trace events */
4
5 #undef __entry
6 #define __entry field
7
8 #undef TP_printk
9 #define TP_printk(fmt, args...) fmt "\n", args
10
11 #undef __get_dynamic_array
12 #define __get_dynamic_array(field)      \
13                 ((void *)__entry + (__entry->__data_loc_##field & 0xffff))
14
15 #undef __get_dynamic_array_len
16 #define __get_dynamic_array_len(field)  \
17                 ((__entry->__data_loc_##field >> 16) & 0xffff)
18
19 #undef __get_str
20 #define __get_str(field) ((char *)__get_dynamic_array(field))
21
22 #undef __get_rel_dynamic_array
23 #define __get_rel_dynamic_array(field)                                  \
24                 ((void *)__entry +                                      \
25                  offsetof(typeof(*__entry), __rel_loc_##field) +        \
26                  sizeof(__entry->__rel_loc_##field) +                   \
27                  (__entry->__rel_loc_##field & 0xffff))
28
29 #undef __get_rel_dynamic_array_len
30 #define __get_rel_dynamic_array_len(field)      \
31                 ((__entry->__rel_loc_##field >> 16) & 0xffff)
32
33 #undef __get_rel_str
34 #define __get_rel_str(field) ((char *)__get_rel_dynamic_array(field))
35
36 #undef __get_bitmask
37 #define __get_bitmask(field)                                            \
38         ({                                                              \
39                 void *__bitmask = __get_dynamic_array(field);           \
40                 unsigned int __bitmask_size;                            \
41                 __bitmask_size = __get_dynamic_array_len(field);        \
42                 trace_print_bitmask_seq(p, __bitmask, __bitmask_size);  \
43         })
44
45 #undef __get_cpumask
46 #define __get_cpumask(field) __get_bitmask(field)
47
48 #undef __get_rel_bitmask
49 #define __get_rel_bitmask(field)                                                \
50         ({                                                              \
51                 void *__bitmask = __get_rel_dynamic_array(field);               \
52                 unsigned int __bitmask_size;                            \
53                 __bitmask_size = __get_rel_dynamic_array_len(field);    \
54                 trace_print_bitmask_seq(p, __bitmask, __bitmask_size);  \
55         })
56
57 #undef __get_rel_cpumask
58 #define __get_rel_cpumask(field) __get_rel_bitmask(field)
59
60 #undef __get_sockaddr
61 #define __get_sockaddr(field)   ((struct sockaddr *)__get_dynamic_array(field))
62
63 #undef __get_rel_sockaddr
64 #define __get_rel_sockaddr(field)       ((struct sockaddr *)__get_rel_dynamic_array(field))
65
66 #undef __print_flags
67 #define __print_flags(flag, delim, flag_array...)                       \
68         ({                                                              \
69                 static const struct trace_print_flags __flags[] =       \
70                         { flag_array, { -1, NULL }};                    \
71                 trace_print_flags_seq(p, delim, flag, __flags); \
72         })
73
74 #undef __print_symbolic
75 #define __print_symbolic(value, symbol_array...)                        \
76         ({                                                              \
77                 static const struct trace_print_flags symbols[] =       \
78                         { symbol_array, { -1, NULL }};                  \
79                 trace_print_symbols_seq(p, value, symbols);             \
80         })
81
82 #undef __print_flags_u64
83 #undef __print_symbolic_u64
84 #if BITS_PER_LONG == 32
85 #define __print_flags_u64(flag, delim, flag_array...)                   \
86         ({                                                              \
87                 static const struct trace_print_flags_u64 __flags[] =   \
88                         { flag_array, { -1, NULL } };                   \
89                 trace_print_flags_seq_u64(p, delim, flag, __flags);     \
90         })
91
92 #define __print_symbolic_u64(value, symbol_array...)                    \
93         ({                                                              \
94                 static const struct trace_print_flags_u64 symbols[] =   \
95                         { symbol_array, { -1, NULL } };                 \
96                 trace_print_symbols_seq_u64(p, value, symbols); \
97         })
98 #else
99 #define __print_flags_u64(flag, delim, flag_array...)                   \
100                         __print_flags(flag, delim, flag_array)
101
102 #define __print_symbolic_u64(value, symbol_array...)                    \
103                         __print_symbolic(value, symbol_array)
104 #endif
105
106 #undef __print_hex
107 #define __print_hex(buf, buf_len)                                       \
108         trace_print_hex_seq(p, buf, buf_len, false)
109
110 #undef __print_hex_str
111 #define __print_hex_str(buf, buf_len)                                   \
112         trace_print_hex_seq(p, buf, buf_len, true)
113
114 #undef __print_array
115 #define __print_array(array, count, el_size)                            \
116         ({                                                              \
117                 BUILD_BUG_ON(el_size != 1 && el_size != 2 &&            \
118                              el_size != 4 && el_size != 8);             \
119                 trace_print_array_seq(p, array, count, el_size);        \
120         })
121
122 #undef __print_hex_dump
123 #define __print_hex_dump(prefix_str, prefix_type,                       \
124                          rowsize, groupsize, buf, len, ascii)           \
125         trace_print_hex_dump_seq(p, prefix_str, prefix_type,            \
126                                  rowsize, groupsize, buf, len, ascii)
127
128 #undef __print_ns_to_secs
129 #define __print_ns_to_secs(value)                       \
130         ({                                              \
131                 u64 ____val = (u64)(value);             \
132                 do_div(____val, NSEC_PER_SEC);          \
133                 ____val;                                \
134         })
135
136 #undef __print_ns_without_secs
137 #define __print_ns_without_secs(value)                  \
138         ({                                              \
139                 u64 ____val = (u64)(value);             \
140                 (u32) do_div(____val, NSEC_PER_SEC);    \
141         })
142
143 #undef __get_buf
144 #define __get_buf(len)          trace_seq_acquire(p, (len))