| 2351 | } |
| 2352 | |
| 2353 | BNKCImage* BNKCViewGetLoadedImages(BNKernelCache* cache, size_t* count) |
| 2354 | { |
| 2355 | if (cache->object) |
| 2356 | { |
| 2357 | auto images = cache->object->GetLoadedImages(); |
| 2358 | *count = images.size(); |
| 2359 | BNKCImage* bnImages = new BNKCImage[images.size()]; |
| 2360 | for (size_t i = 0; i < images.size(); i++) |
| 2361 | { |
| 2362 | bnImages[i].name = BNAllocString(images[i].installName.c_str()); |
| 2363 | bnImages[i].headerFileAddress = images[i].headerFileLocation; |
| 2364 | bnImages[i].mappingCount = images[i].regions.size(); |
| 2365 | bnImages[i].mappings = new BNKCImageMemoryMapping[images[i].regions.size()]; |
| 2366 | for (size_t j = 0; j < images[i].regions.size(); j++) |
| 2367 | { |
| 2368 | bnImages[i].mappings[j].rawViewOffset = images[i].regions[j].fileOffset; |
| 2369 | bnImages[i].mappings[j].vmAddress = images[i].regions[j].start; |
| 2370 | bnImages[i].mappings[j].size = images[i].regions[j].size; |
| 2371 | bnImages[i].mappings[j].name = BNAllocString(images[i].regions[j].prettyName.c_str()); |
| 2372 | } |
| 2373 | } |
| 2374 | return bnImages; |
| 2375 | } |
| 2376 | *count = 0; |
| 2377 | return nullptr; |
| 2378 | } |
| 2379 | |
| 2380 | void BNKCViewFreeLoadedImages(BNKCImage* images, size_t count) |
| 2381 | { |
no test coverage detected