@@ -59,16 +59,56 @@ ${th.make_func_name(n, tags, obj)}(
59
59
std::call_once(${ x} _lib::context->initOnce, [flags]() {
60
60
% if re.match(" zes" , n):
61
61
result = ${ x} _lib::context->Init(flags, true);
62
- % else :
63
- result = ${ x} _lib::context->Init(flags, false);
64
- %endif
65
62
66
63
});
67
64
68
65
if( ${ X} _RESULT_SUCCESS != result )
69
66
return result;
70
67
68
+ if(ze_lib::context->inTeardown) {
69
+ return ${ X} _RESULT_ERROR_UNINITIALIZED;
70
+ }
71
+
72
+ auto ${ th.make_pfn_name(n, tags, obj)} = ${ x} _lib::context->${ n} DdiTable.${ th.get_table_name(n, tags, obj)} .${ th.make_pfn_name(n, tags, obj)} ;
73
+ if( nullptr == ${ th.make_pfn_name(n, tags, obj)} ) {
74
+ if(!ze_lib::context->isInitialized)
75
+ return ${ X} _RESULT_ERROR_UNINITIALIZED;
76
+ else
77
+ return ${ X} _RESULT_ERROR_UNSUPPORTED_FEATURE;
78
+ }
79
+
80
+ return ${ th.make_pfn_name(n, tags, obj)} ( ${ " , " .join(th.make_param_lines(n, tags, obj, format = [" name" ]))} );
81
+ }
82
+ % else :
83
+ result = ${ x} _lib::context->Init(flags, false);
84
+
85
+ if( ${ X} _RESULT_SUCCESS != result )
86
+ return result;
87
+
88
+ if(ze_lib::context->inTeardown) {
89
+ return ${ X} _RESULT_ERROR_UNINITIALIZED;
90
+ }
91
+
92
+ auto ${ th.make_pfn_name(n, tags, obj)} = ${ x} _lib::context->${ n} DdiTable.${ th.get_table_name(n, tags, obj)} .${ th.make_pfn_name(n, tags, obj)} ;
93
+ if( nullptr == ${ th.make_pfn_name(n, tags, obj)} ) {
94
+ if(!ze_lib::context->isInitialized)
95
+ return ${ X} _RESULT_ERROR_UNINITIALIZED;
96
+ else
97
+ return ${ X} _RESULT_ERROR_UNSUPPORTED_FEATURE;
98
+ }
99
+
100
+ result = ${ th.make_pfn_name(n, tags, obj)} ( ${ " , " .join(th.make_param_lines(n, tags, obj, format = [" name" ]))} );
101
+ return result;
102
+ });
103
+
104
+ if(ze_lib::context->inTeardown) {
105
+ result = ${ X} _RESULT_ERROR_UNINITIALIZED;
106
+ }
107
+
108
+ return result;
109
+ }
71
110
%endif
111
+ % else :
72
112
if(ze_lib::context->inTeardown) {
73
113
return ${ X} _RESULT_ERROR_UNINITIALIZED;
74
114
}
@@ -83,6 +123,7 @@ ${th.make_func_name(n, tags, obj)}(
83
123
84
124
return ${ th.make_pfn_name(n, tags, obj)} ( ${ " , " .join(th.make_param_lines(n, tags, obj, format = [" name" ]))} );
85
125
}
126
+ %endif
86
127
% if ' condition' in obj:
87
128
# endif // ${th.subt(n, tags, obj['condition'])}
88
129
%endif
0 commit comments