summaryrefslogtreecommitdiff
path: root/view/kernelcache/core/KernelCacheBuilder.h
diff options
context:
space:
mode:
authorkat <kat@vector35.com>2025-07-06 15:05:01 -0400
committerkat <kat@vector35.com>2025-07-07 07:37:23 -0400
commit768f7c78465fb93936e5ca50a0ca712664fe54e7 (patch)
tree78c73e0022d6006882e365a257595a5b55a37432 /view/kernelcache/core/KernelCacheBuilder.h
parent8f3e251c42169fb4fe8db9403d900571434d88ff (diff)
KernelCache rewrite
Diffstat (limited to 'view/kernelcache/core/KernelCacheBuilder.h')
-rw-r--r--view/kernelcache/core/KernelCacheBuilder.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/view/kernelcache/core/KernelCacheBuilder.h b/view/kernelcache/core/KernelCacheBuilder.h
new file mode 100644
index 00000000..756d069b
--- /dev/null
+++ b/view/kernelcache/core/KernelCacheBuilder.h
@@ -0,0 +1,20 @@
+#pragma once
+
+#include "binaryninjaapi.h"
+#include "KernelCache.h"
+
+// This constructs a Cache
+class KernelCacheBuilder
+{
+ BinaryNinja::Ref<BinaryNinja::BinaryView> m_view;
+ BinaryNinja::Ref<BinaryNinja::Logger> m_logger;
+ // This cache is what is returned via `Finalize`.
+ KernelCache m_cache;
+
+public:
+ explicit KernelCacheBuilder(BinaryNinja::Ref<BinaryNinja::BinaryView> view);
+
+ KernelCache& GetCache() { return m_cache; };
+ // Returns a shared cache that is ready for processing, this should include all the required shared cache entries.
+ KernelCache Finalize();
+};