Skip to content

Commit 7fad9e5

Browse files
Fix the clang issue due to empty structure in the Tracing Layer
Use void* instead of empty zer_get_default_context_params_t structure for parameter-less callbacks to fix Clang compilation. Related-To: NEO-17790 Signed-off-by: Pratik Bari <pratik.bari@intel.com>
1 parent 580bab1 commit 7fad9e5

5 files changed

Lines changed: 24 additions & 25 deletions

File tree

include/layers/zel_tracing_register_cb.h

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2721,26 +2721,16 @@ typedef void (ZE_APICALL *zer_pfnTranslateIdentifierToDeviceHandleCb_t)(
27212721
void** ppTracerInstanceUserData
27222722
);
27232723

2724-
///////////////////////////////////////////////////////////////////////////////
2725-
/// @brief Callback function parameters for zerGetDefaultContext
2726-
/// @details Each entry is a pointer to the parameter passed to the function;
2727-
/// allowing the callback the ability to modify the parameter's value
2728-
2729-
typedef struct _zer_get_default_context_params_t
2730-
{
2731-
void* dummy; // Placeholder for empty parameter list
2732-
} zer_get_default_context_params_t;
2733-
27342724

27352725
///////////////////////////////////////////////////////////////////////////////
27362726
/// @brief Callback function-pointer for zerGetDefaultContext
2737-
/// @param[in] params Parameters passed to this instance
2727+
/// @param[in] params Parameters passed to this instance (NULL for parameter-less functions)
27382728
/// @param[in] result Return value
27392729
/// @param[in] pTracerUserData Per-Tracer user data
27402730
/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
27412731

27422732
typedef void (ZE_APICALL *zer_pfnGetDefaultContextCb_t)(
2743-
zer_get_default_context_params_t* params,
2733+
void* params,
27442734
ze_context_handle_t result,
27452735
void* pTracerUserData,
27462736
void** ppTracerInstanceUserData

scripts/templates/tracing/trc_setters.h.mako

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,32 +45,39 @@ typedef struct _zel_tracer_handle_t *zel_tracer_handle_t;
4545
<%
4646
ret_type = obj['return_type']
4747
param_lines = th.make_param_lines(n, tags, obj, format=["type*", "name"])
48-
%>///////////////////////////////////////////////////////////////////////////////
48+
%>\
49+
%if param_lines:
50+
///////////////////////////////////////////////////////////////////////////////
4951
/// @brief Callback function parameters for ${th.make_func_name(n, tags, obj)}
5052
/// @details Each entry is a pointer to the parameter passed to the function;
5153
/// allowing the callback the ability to modify the parameter's value
5254

5355
typedef struct _${th.make_pfncb_param_type(n, tags, obj)}
5456
{
55-
%if param_lines:
5657
%for line in param_lines:
5758
${line};
5859
%endfor
59-
%else:
60-
void* dummy; // Placeholder for empty parameter list
61-
%endif
6260
} ${th.make_pfncb_param_type(n, tags, obj)};
6361

62+
%endif
6463

6564
///////////////////////////////////////////////////////////////////////////////
6665
/// @brief Callback function-pointer for ${th.make_func_name(n, tags, obj)}
67-
/// @param[in] params Parameters passed to this instance
66+
/// @param[in] params Parameters passed to this instance\
67+
%if not param_lines:
68+
(NULL for parameter-less functions)\
69+
%endif
70+
6871
/// @param[in] result Return value
6972
/// @param[in] pTracerUserData Per-Tracer user data
7073
/// @param[in,out] ppTracerInstanceUserData Per-Tracer, Per-Instance user data
7174

7275
typedef void (${X}_APICALL *${th.make_pfncb_type(n, tags, obj)})(
76+
%if param_lines:
7377
${th.make_pfncb_param_type(n, tags, obj)}* params,
78+
%else:
79+
void* params,
80+
%endif
7481
${ret_type} result,
7582
void* pTracerUserData,
7683
void** ppTracerInstanceUserData

scripts/templates/tracing/trcddi.cpp.mako

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,19 +58,23 @@ namespace tracing_layer
5858
);
5959

6060
// capture parameters
61-
${th.make_pfncb_param_type(n, tags, obj)} tracerParams = {
6261
%if not is_void_params:
62+
${th.make_pfncb_param_type(n, tags, obj)} tracerParams = {
6363
&${",\n &".join(params_list)}
64-
%endif
6564
};
65+
%endif
6666

6767
tracing_layer::APITracerCallbackDataImp<${th.make_pfncb_type(n, tags, obj)}> apiCallbackData;
6868

6969
${N}_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ${th.make_pfncb_type(n, tags, obj)}, ${th.get_callback_table_name(n, tags, obj)}, ${th.make_pfncb_name(n, tags, obj)});
7070

7171

7272
return tracing_layer::APITracerWrapperImp<${ret_type}>(context.${n}DdiTable.${th.get_table_name(n, tags, obj)}.${th.make_pfn_name(n, tags, obj)},
73+
%if not is_void_params:
7374
&tracerParams,
75+
%else:
76+
nullptr,
77+
%endif
7478
apiCallbackData.apiOrdinal,
7579
apiCallbackData.prologCallbacks,
7680
apiCallbackData.epilogCallbacks\

source/layers/tracing/zer_trcddi.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,16 +125,14 @@ namespace tracing_layer
125125
ZE_HANDLE_TRACER_RECURSION(context.zerDdiTable.Global.pfnGetDefaultContext);
126126

127127
// capture parameters
128-
zer_get_default_context_params_t tracerParams = {
129-
};
130128

131129
tracing_layer::APITracerCallbackDataImp<zer_pfnGetDefaultContextCb_t> apiCallbackData;
132130

133131
ZER_GEN_PER_API_CALLBACK_STATE(apiCallbackData, zer_pfnGetDefaultContextCb_t, Global, pfnGetDefaultContextCb);
134132

135133

136134
return tracing_layer::APITracerWrapperImp<ze_context_handle_t>(context.zerDdiTable.Global.pfnGetDefaultContext,
137-
&tracerParams,
135+
nullptr,
138136
apiCallbackData.apiOrdinal,
139137
apiCallbackData.prologCallbacks,
140138
apiCallbackData.epilogCallbacks);

test/loader_tracing_layer.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,7 @@ namespace
422422
data->incrementZerPrologueCallCount("zerTranslateIdentifierToDeviceHandle");
423423
}
424424

425-
static void zerGetDefaultContextPrologueCallback(zer_get_default_context_params_t *params, ze_context_handle_t result, void *pTracerUserData, void **ppTracerInstanceUserData)
425+
static void zerGetDefaultContextPrologueCallback(void *params, ze_context_handle_t result, void *pTracerUserData, void **ppTracerInstanceUserData)
426426
{
427427
TracingData *data = static_cast<TracingData *>(pTracerUserData);
428428
data->incrementZerPrologueCallCount("zerGetDefaultContext");
@@ -446,7 +446,7 @@ namespace
446446
data->incrementZerEpilogueCallCount("zerTranslateIdentifierToDeviceHandle");
447447
}
448448

449-
static void zerGetDefaultContextEpilogueCallback(zer_get_default_context_params_t *params, ze_context_handle_t result, void *pTracerUserData, void **ppTracerInstanceUserData)
449+
static void zerGetDefaultContextEpilogueCallback(void *params, ze_context_handle_t result, void *pTracerUserData, void **ppTracerInstanceUserData)
450450
{
451451
TracingData *data = static_cast<TracingData *>(pTracerUserData);
452452
data->incrementZerEpilogueCallCount("zerGetDefaultContext");

0 commit comments

Comments
 (0)