diff options
Diffstat (limited to 'apps/plugin.h')
| -rw-r--r-- | apps/plugin.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/apps/plugin.h b/apps/plugin.h index 11bb80d..606db6e 100644 --- a/apps/plugin.h +++ b/apps/plugin.h @@ -679,4 +679,24 @@ void plugin_tsr(bool (*exit_callback)(bool reenter)); enum plugin_status plugin_start(struct plugin_api* rockbox, void* parameter) NO_PROF_ATTR; +/* Use this macro in plugins where gcc tries to optimize by calling + * these functions directly */ +#define MEM_FUNCTION_WRAPPERS(api) \ + void *memcpy(void *dest, const void *src, size_t n) \ + { \ + return (api)->memcpy(dest, src, n); \ + } \ + void *memset(void *dest, int c, size_t n) \ + { \ + return (api)->memset(dest, c, n); \ + } \ + void *memmove(void *dest, const void *src, size_t n) \ + { \ + return (api)->memmove(dest, src, n); \ + } \ + int memcmp(const void *s1, const void *s2, size_t n) \ + { \ + return (api)->memcmp(s1, s2, n); \ + } + #endif |