From 430778293e4ce7c2ae418ff11601d61833b99a67 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Fri, 31 Mar 2023 18:31:11 +0100 Subject: plugins: Add an API entry for finding functions by name --- src/plugins/PluginAPI.hpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/plugins/PluginAPI.hpp') diff --git a/src/plugins/PluginAPI.hpp b/src/plugins/PluginAPI.hpp index 813d7462..ff1f1ffe 100644 --- a/src/plugins/PluginAPI.hpp +++ b/src/plugins/PluginAPI.hpp @@ -33,6 +33,12 @@ typedef struct { std::string version; } PLUGIN_DESCRIPTION_INFO; +struct SFunctionMatch { + void* address = nullptr; + std::string signature; + std::string demangled; +}; + #define APICALL extern "C" #define EXPORT __attribute__((visibility("default"))) #define REQUIRED @@ -230,4 +236,13 @@ namespace HyprlandAPI { returns: true on success. False otherwise. */ APICALL bool addNotificationV2(HANDLE handle, const std::unordered_map& data); + + /* + Returns a vector of found functions matching the provided name. + + These addresses will not change, and should be made static. Lookups are slow. + + Empty means either none found or handle was invalid + */ + APICALL std::vector findFunctionsByName(HANDLE handle, const std::string& name); }; \ No newline at end of file -- cgit v1.2.3