@@ -101,34 +101,6 @@ struct ValidEmptyProgram : NEO::PatchTokenBinary::ProgramFromPatchtokens {
101101 iOpenCL::SProgramBinaryHeader *headerMutable = nullptr ;
102102};
103103
104- struct ValidProgramWithHostAccessTable : ValidEmptyProgram {
105- ValidProgramWithHostAccessTable () {
106- iOpenCL::SPatchFunctionTableInfo hostAccessTok = {};
107- hostAccessTok.Token = NEO::PatchTokenBinary::_PATCH_TOKEN_GLOBAL_HOST_ACCESS_TABLE;
108- hostAccessTok.NumEntries = 2 ;
109- struct HostAccessTableEntry {
110- char deviceName[vISA::MAX_SYMBOL_NAME_LENGTH];
111- char hostName[vISA::MAX_SYMBOL_NAME_LENGTH];
112- };
113- hostAccessTok.Size = sizeof (hostAccessTok) + 2 * sizeof (HostAccessTableEntry);
114- const size_t hostAccessTokStorageSize = sizeof (hostAccessTok) + 2 * sizeof (HostAccessTableEntry);
115- uint8_t hostAccessTokStorage[hostAccessTokStorageSize] = {};
116- uint8_t *storagePtr = hostAccessTokStorage;
117- memcpy_s (storagePtr, hostAccessTokStorageSize, &hostAccessTok, sizeof (iOpenCL::SPatchFunctionTableInfo));
118- storagePtr = ptrOffset (storagePtr, sizeof (iOpenCL::SPatchFunctionTableInfo));
119-
120- HostAccessTableEntry *entries = reinterpret_cast <HostAccessTableEntry *>(storagePtr);
121- strcpy_s (entries[0 ].deviceName , vISA::MAX_SYMBOL_NAME_LENGTH, " deviceNameOne" );
122- strcpy_s (entries[0 ].hostName , vISA::MAX_SYMBOL_NAME_LENGTH, " hostNameOne" );
123- strcpy_s (entries[1 ].deviceName , vISA::MAX_SYMBOL_NAME_LENGTH, " deviceNameTwo" );
124- strcpy_s (entries[1 ].hostName , vISA::MAX_SYMBOL_NAME_LENGTH, " hostNameTwo" );
125-
126- storage.insert (storage.end (), hostAccessTokStorage, hostAccessTokStorage + hostAccessTokStorageSize);
127- recalcTokPtr ();
128- headerMutable->PatchListSize = hostAccessTokStorageSize;
129- }
130- };
131-
132104struct ValidProgramWithConstantSurface : ValidEmptyProgram {
133105 ValidProgramWithConstantSurface () {
134106 iOpenCL::SPatchAllocateConstantMemorySurfaceProgramBinaryInfo constSurfTok = {};
@@ -362,4 +334,40 @@ struct ValidProgramWithKernelAndArg : ValidProgramWithKernel {
362334 size_t kernelArgOffset = 0U ;
363335};
364336
337+ struct ValidProgramWithKernelUsingHostAccessTable : ValidProgramWithKernel {
338+ ValidProgramWithKernelUsingHostAccessTable () {
339+ hostAccessMutableOffset = storage.size ();
340+ iOpenCL::SPatchFunctionTableInfo hostAccessTok = {};
341+ hostAccessTok.Token = NEO::PatchTokenBinary::_PATCH_TOKEN_GLOBAL_HOST_ACCESS_TABLE;
342+ hostAccessTok.NumEntries = 2 ;
343+ struct HostAccessTableEntry {
344+ char deviceName[vISA::MAX_SYMBOL_NAME_LENGTH];
345+ char hostName[vISA::MAX_SYMBOL_NAME_LENGTH];
346+ };
347+ hostAccessTok.Size = sizeof (hostAccessTok) + 2 * sizeof (HostAccessTableEntry);
348+ const size_t hostAccessTokStorageSize = sizeof (hostAccessTok) + 2 * sizeof (HostAccessTableEntry);
349+ uint8_t hostAccessTokStorage[hostAccessTokStorageSize] = {};
350+ uint8_t *storagePtr = hostAccessTokStorage;
351+ memcpy_s (storagePtr, hostAccessTokStorageSize, &hostAccessTok, sizeof (iOpenCL::SPatchFunctionTableInfo));
352+ storagePtr = ptrOffset (storagePtr, sizeof (iOpenCL::SPatchFunctionTableInfo));
353+
354+ HostAccessTableEntry *entries = reinterpret_cast <HostAccessTableEntry *>(storagePtr);
355+ strcpy_s (entries[0 ].deviceName , vISA::MAX_SYMBOL_NAME_LENGTH, " deviceNameOne" );
356+ strcpy_s (entries[0 ].hostName , vISA::MAX_SYMBOL_NAME_LENGTH, " hostNameOne" );
357+ strcpy_s (entries[1 ].deviceName , vISA::MAX_SYMBOL_NAME_LENGTH, " deviceNameTwo" );
358+ strcpy_s (entries[1 ].hostName , vISA::MAX_SYMBOL_NAME_LENGTH, " hostNameTwo" );
359+
360+ storage.insert (storage.end (), hostAccessTokStorage, hostAccessTokStorage + hostAccessTokStorageSize);
361+ ValidProgramWithKernel::recalcTokPtr ();
362+ }
363+
364+ void recalcTokPtr () {
365+ ValidProgramWithKernel::recalcTokPtr ();
366+ hostAccessMutable = reinterpret_cast <iOpenCL::SPatchFunctionTableInfo *>(storage.data () + hostAccessMutableOffset);
367+ this ->kernels [0 ].tokens .hostAccessTable = hostAccessMutable;
368+ }
369+
370+ iOpenCL::SPatchFunctionTableInfo *hostAccessMutable = nullptr ;
371+ size_t hostAccessMutableOffset = 0u ;
372+ };
365373} // namespace PatchTokensTestData
0 commit comments