From 9fa3dd7b2f00fe2e988e319d3fdb83ee99e30cd0 Mon Sep 17 00:00:00 2001 From: WeiN76LQh Date: Thu, 28 Nov 2024 18:52:19 +0000 Subject: [SharedCache] Define BackingCacheType Split out from https://github.com/WeiN76LQh/binaryninja-api/tree/process-local-symbols --- view/sharedcache/api/python/sharedcache.py | 13 ++++++++++--- view/sharedcache/api/python/sharedcache_enums.py | 6 ++++++ view/sharedcache/api/sharedcache.cpp | 2 +- view/sharedcache/api/sharedcacheapi.h | 2 +- view/sharedcache/api/sharedcachecore.h | 8 +++++++- 5 files changed, 25 insertions(+), 6 deletions(-) (limited to 'view/sharedcache/api') diff --git a/view/sharedcache/api/python/sharedcache.py b/view/sharedcache/api/python/sharedcache.py index e0e18bde..e3ccbb9b 100644 --- a/view/sharedcache/api/python/sharedcache.py +++ b/view/sharedcache/api/python/sharedcache.py @@ -52,14 +52,21 @@ class DSCBackingCacheMapping: @dataclasses.dataclass class DSCBackingCache: path: str - isPrimary: bool + cacheType: BackingCacheType mappings: list[DSCBackingCacheMapping] def __str__(self): return repr(self) def __repr__(self): - return f"" + match self.cacheType: + case BackingCacheType.BackingCacheTypePrimary: + cacheTypeStr = 'Primary' + case BackingCacheType.BackingCacheTypeSecondary: + cacheTypeStr = 'Secondary' + case BackingCacheType.BackingCacheTypeSymbols: + cacheTypeStr = 'Symbols' + return f"" @dataclasses.dataclass @@ -142,7 +149,7 @@ class SharedCache: mappings.append(mapping) result.append(DSCBackingCache( value[i].path, - value[i].isPrimary, + value[i].cacheType, mappings )) diff --git a/view/sharedcache/api/python/sharedcache_enums.py b/view/sharedcache/api/python/sharedcache_enums.py index 34668424..ea86b5c6 100644 --- a/view/sharedcache/api/python/sharedcache_enums.py +++ b/view/sharedcache/api/python/sharedcache_enums.py @@ -1,6 +1,12 @@ import enum +class BackingCacheType(enum.IntEnum): + BackingCacheTypePrimary = 0 + BackingCacheTypeSecondary = 1 + BackingCacheTypeSymbols = 2 + + class DSCViewLoadProgress(enum.IntEnum): LoadProgressNotStarted = 0 LoadProgressLoadingCaches = 1 diff --git a/view/sharedcache/api/sharedcache.cpp b/view/sharedcache/api/sharedcache.cpp index a0c4e961..d9838057 100644 --- a/view/sharedcache/api/sharedcache.cpp +++ b/view/sharedcache/api/sharedcache.cpp @@ -102,7 +102,7 @@ namespace SharedCacheAPI { { BackingCache cache; cache.path = value[i].path; - cache.isPrimary = value[i].isPrimary; + cache.cacheType = value[i].cacheType; for (size_t j = 0; j < value[i].mappingCount; j++) { BackingCacheMapping mapping; diff --git a/view/sharedcache/api/sharedcacheapi.h b/view/sharedcache/api/sharedcacheapi.h index 712cc98e..af82bb62 100644 --- a/view/sharedcache/api/sharedcacheapi.h +++ b/view/sharedcache/api/sharedcacheapi.h @@ -105,7 +105,7 @@ namespace SharedCacheAPI { struct BackingCache { std::string path; - bool isPrimary; + BNBackingCacheType cacheType; std::vector mappings; }; diff --git a/view/sharedcache/api/sharedcachecore.h b/view/sharedcache/api/sharedcachecore.h index c2e1c7bd..54899919 100644 --- a/view/sharedcache/api/sharedcachecore.h +++ b/view/sharedcache/api/sharedcachecore.h @@ -64,6 +64,12 @@ extern "C" LoadProgressFinished, } BNDSCViewLoadProgress; + typedef enum BNBackingCacheType { + BackingCacheTypePrimary, + BackingCacheTypeSecondary, + BackingCacheTypeSymbols, + } BNBackingCacheType; + typedef struct BNBinaryView BNBinaryView; typedef struct BNSharedCache BNSharedCache; typedef struct BNStringRef BNStringRef; @@ -98,7 +104,7 @@ extern "C" typedef struct BNDSCBackingCache { char* path; - bool isPrimary; + BNBackingCacheType cacheType; BNDSCBackingCacheMapping* mappings; size_t mappingCount; } BNDSCBackingCache; -- cgit v1.3.1