summaryrefslogtreecommitdiff
path: root/apps/codecs.h
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs.h')
-rw-r--r--apps/codecs.h24
1 files changed, 23 insertions, 1 deletions
diff --git a/apps/codecs.h b/apps/codecs.h
index 652ae7451a..50bc36baa2 100644
--- a/apps/codecs.h
+++ b/apps/codecs.h
@@ -80,7 +80,7 @@
#define CODEC_ENC_MAGIC 0x52454E43 /* RENC */
/* increase this every time the api struct changes */
-#define CODEC_API_VERSION 18
+#define CODEC_API_VERSION 19
/* update this to latest version if a change to the api struct breaks
backwards compatibility (and please take the opportunity to sort in any
@@ -230,6 +230,10 @@ struct codec_api {
/* new stuff at the end, sort into place next time
the API gets incompatible */
+#ifdef CACHE_FUNCTIONS_AS_CALL
+ void (*flush_icache)(void);
+ void (*invalidate_icache)(void);
+#endif
};
/* codec header */
@@ -286,4 +290,22 @@ int codec_load_file(const char* codec, struct codec_api *api);
/* defined by the codec */
enum codec_status codec_start(struct codec_api* rockbox);
+#ifndef CACHE_FUNCTION_WRAPPERS
+
+#ifdef CACHE_FUNCTIONS_AS_CALL
+#define CACHE_FUNCTION_WRAPPERS(api) \
+ void flush_icache(void) \
+ { \
+ (api)->flush_icache(); \
+ } \
+ void invalidate_icache(void) \
+ { \
+ (api)->invalidate_icache(); \
+ }
+#else
+#define CACHE_FUNCTION_WRAPPERS(api)
+#endif /* CACHE_FUNCTIONS_AS_CALL */
+
+#endif /* CACHE_FUNCTION_WRAPPERS */
+
#endif