@@ -23,17 +23,6 @@ from templates import helper as th
2323
2424namespace ur_loader
2525{
26- ///////////////////////////////////////////////////////////////////////////////
27- % for obj in th.get_adapter_handles(specs):
28- % if ' class' in obj:
29- <%
30- _handle_t = th.subt(n, tags, obj[' name' ])
31- _factory_t = re.sub(r " ( \w + ) _handle_t" , r " \1 _factory_t" , _handle_t)
32- _factory = re.sub(r " ( \w + ) _handle_t" , r " \1 _factory" , _handle_t)
33- %> ${ th.append_ws(_factory_t, 35 )} ${ _factory} ;
34- %endif
35- %endfor
36-
3726 % for obj in th.get_adapter_functions(specs):
3827 ///////////////////////////////////////////////////////////////////////////////
3928 /// @brief Intercept function for ${ th.make_func_name(n, tags, obj)}
@@ -51,6 +40,7 @@ namespace ur_loader
5140 add_local = False
5241 %> ${ th.get_initial_null_set(obj)}
5342
43+ [[maybe_unused]] auto context = getContext();
5444 % if re.match(r " \w + AdapterGet$ " , th.make_func_name(n, tags, obj)):
5545
5646 size_t adapterIndex = 0;
@@ -63,7 +53,7 @@ namespace ur_loader
6353 platform.dditable.${ n} .${ th.get_table_name(n, tags, obj)} .${ th.make_pfn_name(n, tags, obj)} ( 1, & ${ obj[' params' ][1 ][' name' ]} [adapterIndex], nullptr );
6454 try
6555 {
66- ${ obj[' params' ][1 ][' name' ]} [adapterIndex] = reinterpret_cast<${ n} _adapter_handle_t>(${ n} _adapter_factory.getInstance(
56+ ${ obj[' params' ][1 ][' name' ]} [adapterIndex] = reinterpret_cast<${ n} _adapter_handle_t>(context->factories. ${ n} _adapter_factory.getInstance(
6757 ${ obj[' params' ][1 ][' name' ]} [adapterIndex], &platform.dditable
6858 ));
6959 }
@@ -114,7 +104,7 @@ namespace ur_loader
114104 for( uint32_t i = 0; i < library_platform_handle_count; ++i ) {
115105 uint32_t platform_index = total_platform_handle_count + i;
116106 ${ obj[' params' ][3 ][' name' ]} [ platform_index ] = reinterpret_cast<${ n} _platform_handle_t>(
117- ${ n} _platform_factory.getInstance( ${ obj[' params' ][3 ][' name' ]} [ platform_index ], dditable ) );
107+ context->factories. ${ n} _platform_factory.getInstance( ${ obj[' params' ][3 ][' name' ]} [ platform_index ], dditable ) );
118108 }
119109 }
120110 catch( std::bad_alloc& )
@@ -294,7 +284,7 @@ namespace ur_loader
294284 for (size_t i = 0; i < nelements; ++i) {
295285 if (handles[i] != nullptr) {
296286 handles[i] = reinterpret_cast<${ etor[' type' ]} >(
297- ${ etor[' factory' ]} .getInstance( handles[i], dditable ) );
287+ context->factories. ${ etor[' factory' ]} .getInstance( handles[i], dditable ) );
298288 }
299289 }
300290 } break;
@@ -306,16 +296,16 @@ namespace ur_loader
306296 // convert platform handles to loader handles
307297 for( size_t i = ${ item[' range' ][0 ]} ; ( nullptr != ${ item[' name' ]} ) && ( i < ${ item[' range' ][1 ]} ); ++i )
308298 ${ item[' name' ]} [ i ] = reinterpret_cast<${ item[' type' ]} >(
309- ${ item[' factory' ]} .getInstance( ${ item[' name' ]} [ i ], dditable ) );
299+ context->factories. ${ item[' factory' ]} .getInstance( ${ item[' name' ]} [ i ], dditable ) );
310300 % else :
311301 // convert platform handle to loader handle
312302 % if item[' optional' ] or th.always_wrap_outputs(obj):
313303 if( nullptr != ${ item[' name' ]} )
314304 *${ item[' name' ]} = reinterpret_cast<${ item[' type' ]} >(
315- ${ item[' factory' ]} .getInstance( *${ item[' name' ]} , dditable ) );
305+ context->factories. ${ item[' factory' ]} .getInstance( *${ item[' name' ]} , dditable ) );
316306 % else :
317307 *${ item[' name' ]} = reinterpret_cast<${ item[' type' ]} >(
318- ${ item[' factory' ]} .getInstance( *${ item[' name' ]} , dditable ) );
308+ context->factories. ${ item[' factory' ]} .getInstance( *${ item[' name' ]} , dditable ) );
319309 %endif
320310 %endif
321311 }
@@ -360,13 +350,13 @@ ${tbl['export']['name']}(
360350 if( nullptr == pDdiTable )
361351 return ${ X} _RESULT_ERROR_INVALID_NULL_POINTER;
362352
363- if( ur_loader::context ->version < version )
353+ if( ur_loader::getContext() ->version < version )
364354 return ${ X} _RESULT_ERROR_UNSUPPORTED_VERSION;
365355
366356 ${ x} _result_t result = ${ X} _RESULT_SUCCESS;
367357
368358 // Load the device-platform DDI tables
369- for( auto& platform : ur_loader::context ->platforms )
359+ for( auto& platform : ur_loader::getContext() ->platforms )
370360 {
371361 if(platform.initStatus != ${ X} _RESULT_SUCCESS)
372362 continue;
@@ -379,7 +369,7 @@ ${tbl['export']['name']}(
379369
380370 if( ${ X} _RESULT_SUCCESS == result )
381371 {
382- if( ur_loader::context ->platforms.size() != 1 || ur_loader::context ->forceIntercept )
372+ if( ur_loader::getContext() ->platforms.size() != 1 || ur_loader::getContext() ->forceIntercept )
383373 {
384374 // return pointers to loader's DDIs
385375 % for obj in tbl[' functions' ]:
@@ -397,7 +387,7 @@ ${tbl['export']['name']}(
397387 else
398388 {
399389 // return pointers directly to platform's DDIs
400- *pDdiTable = ur_loader::context ->platforms.front().dditable.${ n} .${ tbl[' name' ]} ;
390+ *pDdiTable = ur_loader::getContext() ->platforms.front().dditable.${ n} .${ tbl[' name' ]} ;
401391 }
402392 }
403393
0 commit comments