File indexing completed on 2026-05-10 08:45:12
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #if defined(NVTX_AS_SYSTEM_HEADER)
0022 #if defined(__clang__)
0023 #pragma clang system_header
0024 #elif defined(__GNUC__) || defined(__NVCOMPILER)
0025 #pragma GCC system_header
0026 #elif defined(_MSC_VER)
0027 #pragma system_header
0028 #endif
0029 #endif
0030
0031 #ifndef NVTX_EXT_PAYLOAD_HELPER_INTERNAL_H
0032 #define NVTX_EXT_PAYLOAD_HELPER_INTERNAL_H
0033
0034
0035 #include "nvtxExtHelperMacros.h"
0036
0037
0038 #define _NVTX_PAYLOAD_DATA_VAR NVTX_EXT_CONCAT(nvtxDFDB,__LINE__)
0039
0040
0041 #define _NVTX_PAYLOAD_PASS_THROUGH(...) __VA_ARGS__
0042
0043
0044 #define NVTX_PAYLOAD_ENTRY_THROWAWAY
0045 #define _NVTX_PAYLOAD_NESTED(id) THROWAWAY id
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056 #define NVTX_PAYLOAD_SCHEMA_ATTR(struct_id, schema_name, schema_flags, schema_id, mask_add, num_entries) \
0057 nvtxPayloadSchemaAttr_t struct_id##Attr = { \
0058 NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_TYPE | mask_add \
0059 NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_ENTRIES | \
0060 NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_NUM_ENTRIES | \
0061 NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_STATIC_SIZE, \
0062 schema_name, \
0063 NVTX_PAYLOAD_SCHEMA_TYPE_STATIC, \
0064 schema_flags, \
0065 struct_id##Schema, num_entries, \
0066 sizeof(struct_id), \
0067 0, schema_id, \
0068 NVTX_NULLPTR};
0069
0070
0071
0072
0073
0074
0075 #define _NVTX_PAYLOAD_SCHEMA_EF2(member, etype) \
0076 0, NVTX_PAYLOAD_ENTRY_##etype, NVTX_NULLPTR, NVTX_NULLPTR, 0,
0077 #define _NVTX_PAYLOAD_SCHEMA_EF3(member, etype, name) \
0078 0, NVTX_PAYLOAD_ENTRY_##etype, name, NVTX_NULLPTR, 0,
0079 #define _NVTX_PAYLOAD_SCHEMA_EF4(member, etype, name, desc) \
0080 0, NVTX_PAYLOAD_ENTRY_##etype, name, desc, 0,
0081 #define _NVTX_PAYLOAD_SCHEMA_EF5(member, etype, name, desc, arraylen) \
0082 0, NVTX_PAYLOAD_ENTRY_##etype, name, desc, arraylen,
0083 #define _NVTX_PAYLOAD_SCHEMA_EF6(member, etype, name, desc, arraylen, flags) \
0084 NVTX_PAYLOAD_ENTRY_FLAG_##flags, NVTX_PAYLOAD_ENTRY_##etype, name, desc, arraylen,
0085
0086 #define _NVTX_PAYLOAD_SCHEMA_ENTRY_FRONT(...) \
0087 NVTX_EXT_CONCAT(_NVTX_PAYLOAD_SCHEMA_EF, NVTX_EXT_NUM_ARGS(__VA_ARGS__))(__VA_ARGS__)
0088
0089
0090
0091 #define _NVTX_PAYLOAD_SCHEMA_ENTRY_END(member, ...) member
0092
0093
0094 #define _NVTX_PAYLOAD_SCHEMA_ENTRY(struct_id, entry) \
0095 {_NVTX_PAYLOAD_SCHEMA_ENTRY_FRONT entry \
0096 offsetof(struct_id, _NVTX_PAYLOAD_SCHEMA_ENTRY_END entry), \
0097 NVTX_NULLPTR, NVTX_NULLPTR},
0098
0099
0100 #define _NVTX_PAYLOAD_SME1(s,e1) _NVTX_PAYLOAD_SCHEMA_ENTRY(s,e1)
0101 #define _NVTX_PAYLOAD_SME2(s,e1,...) _NVTX_PAYLOAD_SCHEMA_ENTRY(s,e1) _NVTX_PAYLOAD_SME1(s,__VA_ARGS__)
0102 #define _NVTX_PAYLOAD_SME3(s,e1,...) _NVTX_PAYLOAD_SCHEMA_ENTRY(s,e1) _NVTX_PAYLOAD_SME2(s,__VA_ARGS__)
0103 #define _NVTX_PAYLOAD_SME4(s,e1,...) _NVTX_PAYLOAD_SCHEMA_ENTRY(s,e1) _NVTX_PAYLOAD_SME3(s,__VA_ARGS__)
0104 #define _NVTX_PAYLOAD_SME5(s,e1,...) _NVTX_PAYLOAD_SCHEMA_ENTRY(s,e1) _NVTX_PAYLOAD_SME4(s,__VA_ARGS__)
0105 #define _NVTX_PAYLOAD_SME6(s,e1,...) _NVTX_PAYLOAD_SCHEMA_ENTRY(s,e1) _NVTX_PAYLOAD_SME5(s,__VA_ARGS__)
0106 #define _NVTX_PAYLOAD_SME7(s,e1,...) _NVTX_PAYLOAD_SCHEMA_ENTRY(s,e1) _NVTX_PAYLOAD_SME6(s,__VA_ARGS__)
0107 #define _NVTX_PAYLOAD_SME8(s,e1,...) _NVTX_PAYLOAD_SCHEMA_ENTRY(s,e1) _NVTX_PAYLOAD_SME7(s,__VA_ARGS__)
0108 #define _NVTX_PAYLOAD_SME9(s,e1,...) _NVTX_PAYLOAD_SCHEMA_ENTRY(s,e1) _NVTX_PAYLOAD_SME8(s,__VA_ARGS__)
0109 #define _NVTX_PAYLOAD_SME10(s,e1,...) _NVTX_PAYLOAD_SCHEMA_ENTRY(s,e1) _NVTX_PAYLOAD_SME9(s,__VA_ARGS__)
0110 #define _NVTX_PAYLOAD_SME11(s,e1,...) _NVTX_PAYLOAD_SCHEMA_ENTRY(s,e1) _NVTX_PAYLOAD_SME10(s,__VA_ARGS__)
0111 #define _NVTX_PAYLOAD_SME12(s,e1,...) _NVTX_PAYLOAD_SCHEMA_ENTRY(s,e1) _NVTX_PAYLOAD_SME11(s,__VA_ARGS__)
0112 #define _NVTX_PAYLOAD_SME13(s,e1,...) _NVTX_PAYLOAD_SCHEMA_ENTRY(s,e1) _NVTX_PAYLOAD_SME12(s,__VA_ARGS__)
0113 #define _NVTX_PAYLOAD_SME14(s,e1,...) _NVTX_PAYLOAD_SCHEMA_ENTRY(s,e1) _NVTX_PAYLOAD_SME13(s,__VA_ARGS__)
0114 #define _NVTX_PAYLOAD_SME15(s,e1,...) _NVTX_PAYLOAD_SCHEMA_ENTRY(s,e1) _NVTX_PAYLOAD_SME14(s,__VA_ARGS__)
0115 #define _NVTX_PAYLOAD_SME16(s,e1,...) _NVTX_PAYLOAD_SCHEMA_ENTRY(s,e1) _NVTX_PAYLOAD_SME15(s,__VA_ARGS__)
0116
0117 #define _NVTX_PAYLOAD_SCHEMA_ENTRIES(struct_id, ...) \
0118 nvtxPayloadSchemaEntry_t struct_id##Schema[] = { \
0119 NVTX_EXT_CONCAT(_NVTX_PAYLOAD_SME, NVTX_EXT_NUM_ARGS(__VA_ARGS__))(struct_id, __VA_ARGS__) \
0120 {0, 0, NVTX_NULLPTR, NVTX_NULLPTR, 0, 0, NVTX_NULLPTR, NVTX_NULLPTR} \
0121 };
0122
0123
0124
0125
0126 #define _NVTX_DEFINE_S4S_6(struct_id, schema_name, prefix, schema_flags, schema_id, entries) \
0127 prefix _NVTX_PAYLOAD_SCHEMA_ENTRIES(struct_id, _NVTX_PAYLOAD_PASS_THROUGH entries) \
0128 prefix NVTX_PAYLOAD_SCHEMA_ATTR(struct_id, schema_name, schema_flags, schema_id, \
0129 NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_NAME | NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_FLAGS | NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_SCHEMA_ID |,\
0130 NVTX_EXT_NUM_ARGS(_NVTX_PAYLOAD_PASS_THROUGH entries))
0131 #define _NVTX_DEFINE_S4S_5(struct_id, schema_name, prefix, schema_flags, entries) \
0132 prefix _NVTX_PAYLOAD_SCHEMA_ENTRIES(struct_id, _NVTX_PAYLOAD_PASS_THROUGH entries) \
0133 prefix NVTX_PAYLOAD_SCHEMA_ATTR(struct_id, schema_name, schema_flags, 0, \
0134 NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_NAME | NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_FLAGS |, \
0135 NVTX_EXT_NUM_ARGS(_NVTX_PAYLOAD_PASS_THROUGH entries))
0136 #define _NVTX_DEFINE_S4S_4(struct_id, schema_name, prefix, entries) \
0137 prefix _NVTX_PAYLOAD_SCHEMA_ENTRIES(struct_id, _NVTX_PAYLOAD_PASS_THROUGH entries) \
0138 prefix NVTX_PAYLOAD_SCHEMA_ATTR(struct_id, schema_name, NVTX_PAYLOAD_SCHEMA_FLAG_NONE, 0, \
0139 NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_NAME |, \
0140 NVTX_EXT_NUM_ARGS(_NVTX_PAYLOAD_PASS_THROUGH entries))
0141 #define _NVTX_DEFINE_S4S_3(struct_id, schema_name, entries) \
0142 _NVTX_DEFINE_S4S_4(struct_id, schema_name, , entries)
0143 #define _NVTX_DEFINE_S4S_2(struct_id, entries) \
0144 _NVTX_PAYLOAD_SCHEMA_ENTRIES(struct_id, _NVTX_PAYLOAD_PASS_THROUGH entries) \
0145 NVTX_PAYLOAD_SCHEMA_ATTR(struct_id, NVTX_NULLPTR, NVTX_PAYLOAD_SCHEMA_FLAG_NONE, 0, ,\
0146 NVTX_EXT_NUM_ARGS(_NVTX_PAYLOAD_PASS_THROUGH entries))
0147
0148 #define _NVTX_DEFINE_SCHEMA_FOR_STRUCT(struct_id, ...) \
0149 NVTX_EXT_CONCAT(_NVTX_DEFINE_S4S_, \
0150 NVTX_EXT_NUM_ARGS(struct_id, __VA_ARGS__))(struct_id, __VA_ARGS__)
0151
0152
0153
0154
0155
0156
0157
0158
0159 #define _NVTX_PAYLOAD_STRUCT_ARR_MEM1(name) name
0160 #define _NVTX_PAYLOAD_STRUCT_ARR_MEM2(name, count) name[count]
0161
0162
0163 #define _NVTX_PAYLOAD_STRUCT_E2(type, member) type member;
0164 #define _NVTX_PAYLOAD_STRUCT_E3(type, member, etype) type member;
0165 #define _NVTX_PAYLOAD_STRUCT_E4(type, member, etype, name) type member;
0166 #define _NVTX_PAYLOAD_STRUCT_E5(type, member, etype, name, desc) type member;
0167 #define _NVTX_PAYLOAD_STRUCT_E6(type, member, etype, name, desc, arraylen) \
0168 type NVTX_EXT_CONCAT(_NVTX_PAYLOAD_STRUCT_ARR_MEM, NVTX_EXT_NUM_ARGS member) member;
0169 #define _NVTX_PAYLOAD_STRUCT_E7(type, member, etype, name, desc, arraylen, flags) \
0170 _NVTX_PAYLOAD_STRUCT_E6(type, member, etype, name, desc, arraylen)
0171
0172
0173 #define _NVTX_PAYLOAD_STRUCT_ENTRY_(...) \
0174 NVTX_EXT_CONCAT(_NVTX_PAYLOAD_STRUCT_E, NVTX_EXT_NUM_ARGS(__VA_ARGS__))(__VA_ARGS__)
0175
0176
0177 #define _NVTX_PAYLOAD_STRUCT_ENTRY(entry) _NVTX_PAYLOAD_STRUCT_ENTRY_ entry
0178 #define _NVTX_PAYLOAD_STRUCT1(e1) _NVTX_PAYLOAD_STRUCT_ENTRY(e1)
0179 #define _NVTX_PAYLOAD_STRUCT2(e1, ...) _NVTX_PAYLOAD_STRUCT_ENTRY(e1) _NVTX_PAYLOAD_STRUCT1(__VA_ARGS__)
0180 #define _NVTX_PAYLOAD_STRUCT3(e1, ...) _NVTX_PAYLOAD_STRUCT_ENTRY(e1) _NVTX_PAYLOAD_STRUCT2(__VA_ARGS__)
0181 #define _NVTX_PAYLOAD_STRUCT4(e1, ...) _NVTX_PAYLOAD_STRUCT_ENTRY(e1) _NVTX_PAYLOAD_STRUCT3(__VA_ARGS__)
0182 #define _NVTX_PAYLOAD_STRUCT5(e1, ...) _NVTX_PAYLOAD_STRUCT_ENTRY(e1) _NVTX_PAYLOAD_STRUCT4(__VA_ARGS__)
0183 #define _NVTX_PAYLOAD_STRUCT6(e1, ...) _NVTX_PAYLOAD_STRUCT_ENTRY(e1) _NVTX_PAYLOAD_STRUCT5(__VA_ARGS__)
0184 #define _NVTX_PAYLOAD_STRUCT7(e1, ...) _NVTX_PAYLOAD_STRUCT_ENTRY(e1) _NVTX_PAYLOAD_STRUCT6(__VA_ARGS__)
0185 #define _NVTX_PAYLOAD_STRUCT8(e1, ...) _NVTX_PAYLOAD_STRUCT_ENTRY(e1) _NVTX_PAYLOAD_STRUCT7(__VA_ARGS__)
0186 #define _NVTX_PAYLOAD_STRUCT9(e1, ...) _NVTX_PAYLOAD_STRUCT_ENTRY(e1) _NVTX_PAYLOAD_STRUCT8(__VA_ARGS__)
0187 #define _NVTX_PAYLOAD_STRUCT10(e1, ...) _NVTX_PAYLOAD_STRUCT_ENTRY(e1) _NVTX_PAYLOAD_STRUCT9(__VA_ARGS__)
0188 #define _NVTX_PAYLOAD_STRUCT11(e1, ...) _NVTX_PAYLOAD_STRUCT_ENTRY(e1) _NVTX_PAYLOAD_STRUCT10(__VA_ARGS__)
0189 #define _NVTX_PAYLOAD_STRUCT12(e1, ...) _NVTX_PAYLOAD_STRUCT_ENTRY(e1) _NVTX_PAYLOAD_STRUCT11(__VA_ARGS__)
0190 #define _NVTX_PAYLOAD_STRUCT13(e1, ...) _NVTX_PAYLOAD_STRUCT_ENTRY(e1) _NVTX_PAYLOAD_STRUCT12(__VA_ARGS__)
0191 #define _NVTX_PAYLOAD_STRUCT14(e1, ...) _NVTX_PAYLOAD_STRUCT_ENTRY(e1) _NVTX_PAYLOAD_STRUCT13(__VA_ARGS__)
0192 #define _NVTX_PAYLOAD_STRUCT15(e1, ...) _NVTX_PAYLOAD_STRUCT_ENTRY(e1) _NVTX_PAYLOAD_STRUCT14(__VA_ARGS__)
0193 #define _NVTX_PAYLOAD_STRUCT16(e1, ...) _NVTX_PAYLOAD_STRUCT_ENTRY(e1) _NVTX_PAYLOAD_STRUCT15(__VA_ARGS__)
0194
0195
0196 #define _NVTX_PAYLOAD_TYPEDEF_STRUCT(struct_id, ...) \
0197 typedef struct { \
0198 NVTX_EXT_CONCAT(_NVTX_PAYLOAD_STRUCT, NVTX_EXT_NUM_ARGS(__VA_ARGS__))(__VA_ARGS__) \
0199 } struct_id;
0200
0201
0202 #define _NVTX_PAYLOAD_INIT_SCHEMA_N3(type, memberId, etype) \
0203 0, NVTX_PAYLOAD_ENTRY_##etype, NVTX_NULLPTR, NVTX_NULLPTR, 0,
0204 #define _NVTX_PAYLOAD_INIT_SCHEMA_N4(type, memberId, etype, name) \
0205 0, NVTX_PAYLOAD_ENTRY_##etype, name, NVTX_NULLPTR, 0,
0206 #define _NVTX_PAYLOAD_INIT_SCHEMA_N5(type, memberId, etype, name, desc) \
0207 0, NVTX_PAYLOAD_ENTRY_##etype, name, desc, 0,
0208 #define _NVTX_PAYLOAD_INIT_SCHEMA_N6(type, memberId, etype, name, desc, arraylen) \
0209 0, NVTX_PAYLOAD_ENTRY_##etype, name, desc, arraylen,
0210 #define _NVTX_PAYLOAD_INIT_SCHEMA_N7(type, memberId, etype, name, desc, arraylen, flags) \
0211 NVTX_PAYLOAD_ENTRY_FLAG_##flags, NVTX_PAYLOAD_ENTRY_##etype, name, desc, arraylen,
0212
0213 #define _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY_FRONT(...) \
0214 NVTX_EXT_CONCAT(_NVTX_PAYLOAD_INIT_SCHEMA_N, NVTX_EXT_NUM_ARGS(__VA_ARGS__))(__VA_ARGS__)
0215
0216 #define _NVTX_PAYLOAD_ARRAY_MEMBER1(name) name
0217 #define _NVTX_PAYLOAD_ARRAY_MEMBER2(name, count) name
0218
0219
0220 #define _NVTX_PAYLOAD_INIT_SCHEMA_NX3(type, memberId, ...) memberId
0221 #define _NVTX_PAYLOAD_INIT_SCHEMA_NX4(type, memberId, ...) memberId
0222 #define _NVTX_PAYLOAD_INIT_SCHEMA_NX5(type, memberId, ...) memberId
0223 #define _NVTX_PAYLOAD_INIT_SCHEMA_NX6(type, memberId, ...) \
0224 NVTX_EXT_CONCAT(_NVTX_PAYLOAD_ARRAY_MEMBER, NVTX_EXT_NUM_ARGS memberId) memberId
0225 #define _NVTX_PAYLOAD_INIT_SCHEMA_NX7(type, memberId, ...) \
0226 _NVTX_PAYLOAD_INIT_SCHEMA_NX6(type, memberId, __VA_ARGS__)
0227
0228 #define _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY_END(...) \
0229 NVTX_EXT_CONCAT(_NVTX_PAYLOAD_INIT_SCHEMA_NX, NVTX_EXT_NUM_ARGS(__VA_ARGS__))(__VA_ARGS__)
0230
0231
0232 #define _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY(struct_id, entry) \
0233 {_NVTX_PAYLOAD_SCHEMA_INIT_ENTRY_FRONT entry \
0234 offsetof(struct_id, _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY_END entry)},
0235
0236
0237 #define _NVTX_PAYLOAD_INIT_SME1(s, e1) _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY(s, e1)
0238 #define _NVTX_PAYLOAD_INIT_SME2(s, e1, ...) _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY(s, e1) _NVTX_PAYLOAD_INIT_SME1(s, __VA_ARGS__)
0239 #define _NVTX_PAYLOAD_INIT_SME3(s, e1, ...) _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY(s, e1) _NVTX_PAYLOAD_INIT_SME2(s, __VA_ARGS__)
0240 #define _NVTX_PAYLOAD_INIT_SME4(s, e1, ...) _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY(s, e1) _NVTX_PAYLOAD_INIT_SME3(s, __VA_ARGS__)
0241 #define _NVTX_PAYLOAD_INIT_SME5(s, e1, ...) _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY(s, e1) _NVTX_PAYLOAD_INIT_SME4(s, __VA_ARGS__)
0242 #define _NVTX_PAYLOAD_INIT_SME6(s, e1, ...) _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY(s, e1) _NVTX_PAYLOAD_INIT_SME5(s, __VA_ARGS__)
0243 #define _NVTX_PAYLOAD_INIT_SME7(s, e1, ...) _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY(s, e1) _NVTX_PAYLOAD_INIT_SME6(s, __VA_ARGS__)
0244 #define _NVTX_PAYLOAD_INIT_SME8(s, e1, ...) _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY(s, e1) _NVTX_PAYLOAD_INIT_SME7(s, __VA_ARGS__)
0245 #define _NVTX_PAYLOAD_INIT_SME9(s, e1, ...) _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY(s, e1) _NVTX_PAYLOAD_INIT_SME8(s, __VA_ARGS__)
0246 #define _NVTX_PAYLOAD_INIT_SME10(s, e1, ...) _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY(s, e1) _NVTX_PAYLOAD_INIT_SME9(s, __VA_ARGS__)
0247 #define _NVTX_PAYLOAD_INIT_SME11(s, e1, ...) _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY(s, e1) _NVTX_PAYLOAD_INIT_SME10(s, __VA_ARGS__)
0248 #define _NVTX_PAYLOAD_INIT_SME12(s, e1, ...) _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY(s, e1) _NVTX_PAYLOAD_INIT_SME11(s, __VA_ARGS__)
0249 #define _NVTX_PAYLOAD_INIT_SME13(s, e1, ...) _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY(s, e1) _NVTX_PAYLOAD_INIT_SME12(s, __VA_ARGS__)
0250 #define _NVTX_PAYLOAD_INIT_SME14(s, e1, ...) _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY(s, e1) _NVTX_PAYLOAD_INIT_SME13(s, __VA_ARGS__)
0251 #define _NVTX_PAYLOAD_INIT_SME15(s, e1, ...) _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY(s, e1) _NVTX_PAYLOAD_INIT_SME14(s, __VA_ARGS__)
0252 #define _NVTX_PAYLOAD_INIT_SME16(s, e1, ...) _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY(s, e1) _NVTX_PAYLOAD_INIT_SME15(s, __VA_ARGS__)
0253
0254 #define _NVTX_PAYLOAD_SCHEMA_INIT_ENTRIES(struct_id, ...) \
0255 nvtxPayloadSchemaEntry_t struct_id##Schema[] = { \
0256 NVTX_EXT_CONCAT(_NVTX_PAYLOAD_INIT_SME, NVTX_EXT_NUM_ARGS(__VA_ARGS__))(struct_id, __VA_ARGS__) \
0257 {0, 0, NVTX_NULLPTR, NVTX_NULLPTR, 0, 0, NVTX_NULLPTR, NVTX_NULLPTR} \
0258 };
0259
0260
0261
0262
0263 #define _NVTX_DEFINE_SWS_6(struct_id, schema_name, prefix, schema_flags, schema_id, entries) \
0264 _NVTX_PAYLOAD_TYPEDEF_STRUCT(struct_id, _NVTX_PAYLOAD_PASS_THROUGH entries) \
0265 prefix _NVTX_PAYLOAD_SCHEMA_INIT_ENTRIES(struct_id, _NVTX_PAYLOAD_PASS_THROUGH entries) \
0266 prefix NVTX_PAYLOAD_SCHEMA_ATTR(struct_id, schema_name, schema_flags, schema_id, \
0267 NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_NAME | NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_FLAGS | \
0268 NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_SCHEMA_ID |, \
0269 NVTX_EXT_NUM_ARGS(_NVTX_PAYLOAD_PASS_THROUGH entries))
0270 #define _NVTX_DEFINE_SWS_5(struct_id, schema_name, prefix, schema_flags, entries) \
0271 _NVTX_PAYLOAD_TYPEDEF_STRUCT(struct_id, _NVTX_PAYLOAD_PASS_THROUGH entries) \
0272 prefix _NVTX_PAYLOAD_SCHEMA_INIT_ENTRIES(struct_id, _NVTX_PAYLOAD_PASS_THROUGH entries) \
0273 prefix NVTX_PAYLOAD_SCHEMA_ATTR(struct_id, schema_name, schema_flags, 0, \
0274 NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_NAME | NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_FLAGS |, \
0275 NVTX_EXT_NUM_ARGS(_NVTX_PAYLOAD_PASS_THROUGH entries))
0276 #define _NVTX_DEFINE_SWS_4(struct_id, schema_name, prefix, entries) \
0277 _NVTX_PAYLOAD_TYPEDEF_STRUCT(struct_id, _NVTX_PAYLOAD_PASS_THROUGH entries) \
0278 prefix _NVTX_PAYLOAD_SCHEMA_INIT_ENTRIES(struct_id, _NVTX_PAYLOAD_PASS_THROUGH entries) \
0279 prefix NVTX_PAYLOAD_SCHEMA_ATTR(struct_id, schema_name, NVTX_PAYLOAD_SCHEMA_FLAG_NONE, 0, \
0280 NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_NAME |, \
0281 NVTX_EXT_NUM_ARGS(_NVTX_PAYLOAD_PASS_THROUGH entries))
0282 #define _NVTX_DEFINE_SWS_3(struct_id, schema_name, entries) \
0283 _NVTX_DEFINE_SWS_4(struct_id, schema_name, , entries)
0284 #define _NVTX_DEFINE_SWS_2(struct_id, entries) \
0285 _NVTX_PAYLOAD_TYPEDEF_STRUCT(struct_id, _NVTX_PAYLOAD_PASS_THROUGH entries) \
0286 _NVTX_PAYLOAD_SCHEMA_INIT_ENTRIES(struct_id, _NVTX_PAYLOAD_PASS_THROUGH entries) \
0287 NVTX_PAYLOAD_SCHEMA_ATTR(struct_id, NVTX_NULLPTR, NVTX_PAYLOAD_SCHEMA_FLAG_NONE, 0, , \
0288 NVTX_EXT_NUM_ARGS(_NVTX_PAYLOAD_PASS_THROUGH entries))
0289
0290 #define _NVTX_DEFINE_STRUCT_WITH_SCHEMA(struct_id, ...) \
0291 NVTX_EXT_CONCAT(_NVTX_DEFINE_SWS_, \
0292 NVTX_EXT_NUM_ARGS(struct_id, __VA_ARGS__))(struct_id, __VA_ARGS__)
0293
0294
0295
0296 #endif