MCPcopy Create free account
hub / github.com/XpuOS/xsched / registerForDataObject

Function registerForDataObject

platforms/hip/hal/src/kernel_param.cpp:217–254  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

215void registerForDataObjectV2_8(amd_comgr_data_t data_object, const void* image, kernel_names_params_map& kernel_names_params);
216
217static void registerForDataObject(amd_comgr_data_t data_object, const void* image, kernel_names_params_map& kernel_names_params)
218{
219 static size_t major = GetComgrVersion().first, minor = GetComgrVersion().second;
220 // XINFO("comgr version %lu.%lu",major,minor);
221 if(major >= 3 || (major == 2 && minor >= 8)) {
222 // need handle CCOB
223 if(major >= 3) {
224 registerForDataObjectV3_0(data_object, image, kernel_names_params);
225 } else {
226 registerForDataObjectV2_8(data_object, image, kernel_names_params);
227 }
228 return;
229 }
230 // Get a list of ISAs
231 size_t isa_count;
232 ASSERT_COMGR_STATUS(CodeObjectManager::get_isa_count(&isa_count));
233 if (isa_count == 0) XERRO("No ISAs found");
234
235 amd_comgr_code_object_info_t *info_list = new amd_comgr_code_object_info_t[isa_count];
236 for (size_t i = 0; i < isa_count; i++) {
237 ASSERT_COMGR_STATUS(CodeObjectManager::get_isa_name(i, &info_list[i].isa));
238 }
239 ASSERT_COMGR_STATUS(CodeObjectManager::lookup_code_object(data_object, info_list, isa_count));
240
241 // 1.4 Process each ISA
242 for (size_t i = 0; i < isa_count; i++) {
243 // XDEBG("RegisterForDataObject: ISA %s, size = %zu, offset = %zu", info_list[i].isa, info_list[i].size, info_list[i].offset);
244 if (info_list[i].size == 0) continue;
245 amd_comgr_data_t code_object;
246 ASSERT_COMGR_STATUS(CodeObjectManager::create_data(AMD_COMGR_DATA_KIND_EXECUTABLE, &code_object));
247 ASSERT_COMGR_STATUS(CodeObjectManager::set_data(code_object, info_list[i].size, ((const char*)image+info_list[i].offset)));
248 registerForOneISA(code_object, kernel_names_params);
249 ASSERT_COMGR_STATUS(CodeObjectManager::release_data(code_object));
250 }
251
252 delete[] info_list;
253 return;
254}
255
256void KernelParamManager::RegisterStaticCodeObject(const void* data)
257{

Callers 2

Calls 4

GetComgrVersionFunction · 0.85
registerForOneISAFunction · 0.85

Tested by

no test coverage detected