2 id: lttng-modules-tp-fields
5 <a name="doc-lttng-modules-tp-fast-assign"></a>
6 <a name="doc-lttng-modules-tp-struct-entry"></a>
7 The available macros to define tracepoint fields, which should be listed
8 within `TP_FIELDS()` in `LTTNG_TRACEPOINT_EVENT()`, are:
11 <table class="func-desc">
15 <th>Description/arguments</th>
22 <li><code class="no-bg">ctf_integer(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>)</code></li>
23 <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>
24 <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>
25 <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>
29 <p>Standard integer, displayed in base 10</p>
32 <code class="arg"><strong>t</strong></code> integer C type
33 (<code>int</code>, <code>long</code>,
34 <code>size_t</code>, ...)
36 <li><code class="arg"><strong>n</strong></code> field name</li>
37 <li><code class="arg"><strong>e</strong></code> argument expression</li>
44 <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>
45 <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>
49 <p>Standard integer, displayed in base 16</p>
51 <li><code class="arg"><strong>t</strong></code> integer C type</li>
52 <li><code class="arg">n</code> field name</li>
53 <li><code class="arg">e</code> argument expression</li>
58 <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>
60 <p>Standard integer, displayed in base 8</p>
62 <li><code class="arg"><strong>t</strong></code> integer C type</li>
63 <li><code class="arg">n</code> field name</li>
64 <li><code class="arg">e</code> argument expression</li>
71 <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>
72 <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>
77 Integer in network byte order (big-endian),
78 displayed in base 10
81 <li><code class="arg">t</code> integer C type</li>
82 <li><code class="arg">n</code> field name</li>
83 <li><code class="arg">e</code> argument expression</li>
90 <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>
91 <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>
96 Integer in network byte order, displayed
99 <li><code class="arg">t</code> integer C type</li>
100 <li><code class="arg">n</code> field name</li>
101 <li><code class="arg">e</code> argument expression</li>
108 <li><code class="no-bg">ctf_float(<span class="arg">t</span>, <span class="arg">n</span>, <span class="arg">e</span>)</code></li>
109 <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>
110 <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>
111 <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>
115 <p>Floating point number</p>
118 <code class="arg">t</code> floating point number
119 C type (<code>float</code>, <code>double</code>)
121 <li><code class="arg">n</code> field name</li>
122 <li><code class="arg">e</code> argument expression</li>
129 <li><code class="no-bg">ctf_string(<span class="arg">n</span>, <span class="arg">e</span>)</code></li>
130 <li><code class="no-bg">ctf_user_string(<span class="arg">n</span>, <span class="arg">e</span>)</code></li>
131 <li><code class="no-bg">ctf_string_nowrite(<span class="arg">n</span>, <span class="arg">e</span>)</code></li>
132 <li><code class="no-bg">ctf_user_string_nowrite(<span class="arg">n</span>, <span class="arg">e</span>)</code></li>
137 Null-terminated string; undefined behavior if
138 <code class="arg">e</code> is <code>NULL</code>
141 <li><code class="arg">n</code> field name</li>
142 <li><code class="arg">e</code> argument expression</li>
149 <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>
150 <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>
151 <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>
152 <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>
157 Statically-sized array of integers, displayed in
161 <li><code class="arg">t</code> array element C type</li>
162 <li><code class="arg">n</code> field name</li>
163 <li><code class="arg">e</code> argument expression</li>
164 <li><code class="arg">s</code> number of elements</li>
171 <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>
172 <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>
173 <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>
174 <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>
179 Statically-sized array, printed as text; no need to
183 <li><code class="arg">t</code> array element C type (always <code>char</code>)</li>
184 <li><code class="arg">n</code> field name</li>
185 <li><code class="arg">e</code> argument expression</li>
186 <li><code class="arg">s</code> number of elements</li>
193 <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>
194 <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>
195 <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>
196 <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>
201 Dynamically-sized array of integers, displayed in
202 base 10; type of
203 <code class="arg">E</code> needs to be unsigned
206 <li><code class="arg">t</code> sequence element C type</li>
207 <li><code class="arg">n</code> field name</li>
208 <li><code class="arg">e</code> argument expression</li>
209 <li><code class="arg">T</code> length expression C type</li>
210 <li><code class="arg">E</code> length expression</li>
217 <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>
222 Dynamically-sized array of integers, displayed in
223 base 16; type of
224 <code class="arg">E</code> needs to be unsigned
227 <li><code class="arg">t</code> sequence element C type</li>
228 <li><code class="arg">n</code> field name</li>
229 <li><code class="arg">e</code> argument expression</li>
230 <li><code class="arg">T</code> length expression C type</li>
231 <li><code class="arg">E</code> length expression</li>
238 <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>
243 Dynamically-sized array of integers in network byte
244 order (big endian), displayed in base 10;
249 <code class="arg">E</code> needs to be unsigned
252 <li><code class="arg">t</code> sequence element C type</li>
253 <li><code class="arg">n</code> field name</li>
254 <li><code class="arg">e</code> argument expression</li>
255 <li><code class="arg">T</code> length expression C type</li>
256 <li><code class="arg">E</code> length expression</li>
263 <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>
264 <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>
265 <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>
266 <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>
271 Dynamically-sized array, displayed as text; no need to
272 be null-terminated; undefined behavior if
273 <code class="arg">e</code> is <code>NULL</code></p>
275 <li><code class="arg">t</code> sequence element C type (always <code>char</code>)</li>
276 <li><code class="arg">n</code> field name</li>
277 <li><code class="arg">e</code> argument expression</li>
278 <li><code class="arg">T</code> length expression C type</li>
279 <li><code class="arg">E</code> length expression</li>
287 The `_user` versions must be used when the argument expression, `e`, is
288 a user space address. In the cases of `ctf_user_integer*()` and
289 `ctf_user_float*()`, `&e` must be a user space address, thus `e` must
292 The `_nowrite` versions omit themselves from the session trace, but are
293 otherwise identical. This means the `_nowrite` fields won't be written
294 in the recorded trace. Their primary purpose is to make some
295 of the event context available to the
296 [event filters](#doc-enabling-disabling-events) without having to
297 commit the data to sub-buffers.