Skip to content

Commit 7b17d8b

Browse files
authored
Fix legacy single driver function assignment for versioning (#467)
Signed-off-by: Neil R. Spruit <neil.r.spruit@intel.com>
1 parent cec83e2 commit 7b17d8b

5 files changed

Lines changed: 1329 additions & 78 deletions

File tree

scripts/templates/ldrddi.cpp.mako

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -710,11 +710,19 @@ ${tbl['export']['name']}(
710710
else
711711
{
712712
// return pointers directly to driver's DDIs
713-
%if namespace != "zes":
714-
*pDdiTable = loader::context->zeDrivers.front().dditable.${n}.${tbl['name']};
715-
%else:
716-
*pDdiTable = loader::context->sysmanInstanceDrivers->front().dditable.${n}.${tbl['name']};
713+
%for obj in tbl['functions']:
714+
if (version >= ${th.get_version(obj)}) {
715+
%if 'condition' in obj:
716+
#if ${th.subt(n, tags, obj['condition'])}
717+
%endif
718+
pDdiTable->${th.append_ws(th.make_pfn_name(n, tags, obj), 43)} = firstDriver->dditable.${n}.${tbl['name']}.${th.make_pfn_name(n, tags, obj)};
719+
%if 'condition' in obj:
720+
#else
721+
pDdiTable->${th.append_ws(th.make_pfn_name(n, tags, obj), 43)} = nullptr;
722+
#endif
717723
%endif
724+
}
725+
%endfor
718726
}
719727
}
720728

0 commit comments

Comments
 (0)