2 id: lttng-modules-tp-fields
6 <a name="doc-lttng-modules-tp-fast-assign"></a>
7 <a name="doc-lttng-modules-tp-struct-entry"></a>
8 The available macros to define tracepoint fields, which should be listed
9 within `TP_FIELDS()` in `LTTNG_TRACEPOINT_EVENT()`, are:
12 <table class="func-desc">
16 <th>Description/arguments</th>
23 <li><code class="no-bg">ctf_integer(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>)</code></li>
24 <li><code class="no-bg">ctf_integer_nowrite(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>)</code></li>
25 <li><code class="no-bg">ctf_user_integer(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>)</code></li>
26 <li><code class="no-bg">ctf_user_integer_nowrite(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>)</code></li>
30 <p>Standard integer, displayed in base 10</p>
33 <code class="arg"><strong>t</strong></code> integer C type
34 (<code>int</code>, <code>long</code>,
35 <code>size_t</code>, ...)
37 <li><code class="arg"><strong>n</strong></code> field name</li>
38 <li><code class="arg"><strong>e</strong></code> argument expression</li>
45 <li><code class="no-bg">ctf_integer_hex(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>)</code></li>
46 <li><code class="no-bg">ctf_user_integer_hex(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>)</code></li>
50 <p>Standard integer, displayed in base 16</p>
52 <li><code class="arg"><strong>t</strong></code> integer C type</li>
53 <li><code class="arg">n</code> field name</li>
54 <li><code class="arg">e</code> argument expression</li>
59 <td><code class="no-bg">ctf_integer_oct(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>)</code></td>
61 <p>Standard integer, displayed in base 8</p>
63 <li><code class="arg"><strong>t</strong></code> integer C type</li>
64 <li><code class="arg">n</code> field name</li>
65 <li><code class="arg">e</code> argument expression</li>
72 <li><code class="no-bg">ctf_integer_network(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>)</code></li>
73 <li><code class="no-bg">ctf_user_integer_network(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>)</code></li>
78 Integer in network byte order (big-endian),
79 displayed in base 10
82 <li><code class="arg">t</code> integer C type</li>
83 <li><code class="arg">n</code> field name</li>
84 <li><code class="arg">e</code> argument expression</li>
91 <li><code class="no-bg">ctf_integer_network_hex(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>)</code></li>
92 <li><code class="no-bg">ctf_user_integer_network_hex(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>)</code></li>
97 Integer in network byte order, displayed
100 <li><code class="arg">t</code> integer C type</li>
101 <li><code class="arg">n</code> field name</li>
102 <li><code class="arg">e</code> argument expression</li>
109 <li><code class="no-bg">ctf_float(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>)</code></li>
110 <li><code class="no-bg">ctf_user_float(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>)</code></li>
111 <li><code class="no-bg">ctf_float_nowrite(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>)</code></li>
112 <li><code class="no-bg">ctf_user_float_nowrite(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>)</code></li>
116 <p>Floating point number</p>
119 <code class="arg">t</code> floating point number
120 C type (<code>float</code>, <code>double</code>)
122 <li><code class="arg">n</code> field name</li>
123 <li><code class="arg">e</code> argument expression</li>
130 <li><code class="no-bg">ctf_string(<span class="arg">n</span>, <span class="arg">e</span>)</code></li>
131 <li><code class="no-bg">ctf_user_string(<span class="arg">n</span>, <span class="arg">e</span>)</code></li>
132 <li><code class="no-bg">ctf_string_nowrite(<span class="arg">n</span>, <span class="arg">e</span>)</code></li>
133 <li><code class="no-bg">ctf_user_string_nowrite(<span class="arg">n</span>, <span class="arg">e</span>)</code></li>
138 Null-terminated string; undefined behavior if
139 <code class="arg">e</code> is <code>NULL</code>
142 <li><code class="arg">n</code> field name</li>
143 <li><code class="arg">e</code> argument expression</li>
150 <li><code class="no-bg">ctf_array(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>, <span class="arg">s</span>)</code></li>
151 <li><code class="no-bg">ctf_user_array(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>, <span class="arg">s</span>)</code></li>
152 <li><code class="no-bg">ctf_array_nowrite(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>, <span class="arg">s</span>)</code></li>
153 <li><code class="no-bg">ctf_user_array_nowrite(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>, <span class="arg">s</span>)</code></li>
158 Statically-sized array of integers, displayed in
162 <li><code class="arg">t</code> array element C type</li>
163 <li><code class="arg">n</code> field name</li>
164 <li><code class="arg">e</code> argument expression</li>
165 <li><code class="arg">s</code> number of elements</li>
172 <li><code class="no-bg">ctf_array_text(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>, <span class="arg">s</span>)</code></li>
173 <li><code class="no-bg">ctf_user_array_text(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>, <span class="arg">s</span>)</code></li>
174 <li><code class="no-bg">ctf_array_text_nowrite(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>, <span class="arg">s</span>)</code></li>
175 <li><code class="no-bg">ctf_user_array_text_nowrite(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>, <span class="arg">s</span>)</code></li>
180 Statically-sized array, printed as text; no need to
184 <li><code class="arg">t</code> array element C type (always <code>char</code>)</li>
185 <li><code class="arg">n</code> field name</li>
186 <li><code class="arg">e</code> argument expression</li>
187 <li><code class="arg">s</code> number of elements</li>
194 <li><code class="no-bg">ctf_sequence(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>, <span class="arg">T</span>, <span class="arg">E</span>)</code></li>
195 <li><code class="no-bg">ctf_user_sequence(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>, <span class="arg">T</span>, <span class="arg">E</span>)</code></li>
196 <li><code class="no-bg">ctf_sequence_nowrite(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>, <span class="arg">T</span>, <span class="arg">E</span>)</code></li>
197 <li><code class="no-bg">ctf_user_sequence_nowrite(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>, <span class="arg">T</span>, <span class="arg">E</span>)</code></li>
202 Dynamically-sized array of integers, displayed in
203 base 10; type of
204 <code class="arg">E</code> needs to be unsigned
207 <li><code class="arg">t</code> sequence element C type</li>
208 <li><code class="arg">n</code> field name</li>
209 <li><code class="arg">e</code> argument expression</li>
210 <li><code class="arg">T</code> length expression C type</li>
211 <li><code class="arg">E</code> length expression</li>
218 <li><code class="no-bg">ctf_sequence_hex(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>, <span class="arg">T</span>, <span class="arg">E</span>)</code></li>
223 Dynamically-sized array of integers, displayed in
224 base 16; type of
225 <code class="arg">E</code> needs to be unsigned
228 <li><code class="arg">t</code> sequence element C type</li>
229 <li><code class="arg">n</code> field name</li>
230 <li><code class="arg">e</code> argument expression</li>
231 <li><code class="arg">T</code> length expression C type</li>
232 <li><code class="arg">E</code> length expression</li>
239 <li><code class="no-bg">ctf_sequence_network(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>, <span class="arg">T</span>, <span class="arg">E</span>)</code></li>
244 Dynamically-sized array of integers in network byte
245 order (big endian), displayed in base 10;
250 <code class="arg">E</code> needs to be unsigned
253 <li><code class="arg">t</code> sequence element C type</li>
254 <li><code class="arg">n</code> field name</li>
255 <li><code class="arg">e</code> argument expression</li>
256 <li><code class="arg">T</code> length expression C type</li>
257 <li><code class="arg">E</code> length expression</li>
264 <li><code class="no-bg">ctf_sequence_text(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>, <span class="arg">T</span>, <span class="arg">E</span>)</code></li>
265 <li><code class="no-bg">ctf_user_sequence_text(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>, <span class="arg">T</span>, <span class="arg">E</span>)</code></li>
266 <li><code class="no-bg">ctf_sequence_text_nowrite(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>, <span class="arg">T</span>, <span class="arg">E</span>)</code></li>
267 <li><code class="no-bg">ctf_user_sequence_text_nowrite(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>, <span class="arg">T</span>, <span class="arg">E</span>)</code></li>
272 Dynamically-sized array, displayed as text; no need to
273 be null-terminated; undefined behavior if
274 <code class="arg">e</code> is <code>NULL</code></p>
276 <li><code class="arg">t</code> sequence element C type (always <code>char</code>)</li>
277 <li><code class="arg">n</code> field name</li>
278 <li><code class="arg">e</code> argument expression</li>
279 <li><code class="arg">T</code> length expression C type</li>
280 <li><code class="arg">E</code> length expression</li>
288 The `_user` versions must be used when the argument expression, `e`, is
289 a user space address. In the cases of `ctf_user_integer*()` and
290 `ctf_user_float*()`, `&e` must be a user space address, thus `e` must
293 The `_nowrite` versions omit themselves from the session trace, but are
294 otherwise identical. This means the `_nowrite` fields won't be written
295 in the recorded trace. Their primary purpose is to make some
296 of the event context available to the
297 [event filters](#doc-enabling-disabling-events) without having to
298 commit the data to sub-buffers.