summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2011-12-17 07:27:24 +0000
committerMichael Sevakis <jethead71@rockbox.org>2011-12-17 07:27:24 +0000
commit6a67707b5ec3b2c649c401550bb7fdef2b7c8d07 (patch)
treebfe31942a4abbaac09ad0f4226effdcef8bf097e /apps
parent43d7a75369286dc3b39b858df34f66b0b45de34e (diff)
downloadrockbox-6a67707b5ec3b2c649c401550bb7fdef2b7c8d07.tar.gz
rockbox-6a67707b5ec3b2c649c401550bb7fdef2b7c8d07.tar.bz2
rockbox-6a67707b5ec3b2c649c401550bb7fdef2b7c8d07.zip
Commit to certain names for cache coherency APIs and discard the aliases.
Wouldn't surprise me a bit to get some non-green. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31339 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/codec_thread.c4
-rw-r--r--apps/codecs.c6
-rw-r--r--apps/codecs.h7
-rw-r--r--apps/codecs/codec_crt0.c4
-rw-r--r--apps/codecs/mpa.c2
-rw-r--r--apps/codecs/spc.c6
-rw-r--r--apps/plugin.c6
-rw-r--r--apps/plugin.h9
-rw-r--r--apps/plugins/fft/fft.c4
-rw-r--r--apps/plugins/mpegplayer/alloc.c2
-rw-r--r--apps/plugins/mpegplayer/video_thread.c8
-rw-r--r--apps/plugins/plugin_crt0.c8
12 files changed, 34 insertions, 32 deletions
diff --git a/apps/codec_thread.c b/apps/codec_thread.c
index 0498858be2..39db741054 100644
--- a/apps/codec_thread.c
+++ b/apps/codec_thread.c
@@ -550,9 +550,9 @@ static void do_callback(void (* callback)(void))
if (callback)
{
- cpucache_commit_discard();
+ commit_discard_idcache();
callback();
- cpucache_commit();
+ commit_dcache();
}
}
diff --git a/apps/codecs.c b/apps/codecs.c
index 93542e35ce..fafe4ac7a3 100644
--- a/apps/codecs.c
+++ b/apps/codecs.c
@@ -116,8 +116,8 @@ struct codec_api ci = {
semaphore_release,
#endif
- cpucache_flush,
- cpucache_invalidate,
+ commit_dcache,
+ commit_discard_dcache,
/* strings and memory */
strcpy,
@@ -165,6 +165,8 @@ struct codec_api ci = {
/* new stuff at the end, sort into place next time
the API gets incompatible */
+
+ commit_discard_idcache,
};
void codec_get_full_path(char *path, const char *codec_root_fn)
diff --git a/apps/codecs.h b/apps/codecs.h
index f1e2a51eac..1334953b82 100644
--- a/apps/codecs.h
+++ b/apps/codecs.h
@@ -75,7 +75,7 @@
#define CODEC_ENC_MAGIC 0x52454E43 /* RENC */
/* increase this every time the api struct changes */
-#define CODEC_API_VERSION 43
+#define CODEC_API_VERSION 44
/* update this to latest version if a change to the api struct breaks
backwards compatibility (and please take the opportunity to sort in any
@@ -169,8 +169,8 @@ struct codec_api {
void (*semaphore_release)(struct semaphore *s);
#endif /* NUM_CORES */
- void (*cpucache_flush)(void);
- void (*cpucache_invalidate)(void);
+ void (*commit_dcache)(void);
+ void (*commit_discard_dcache)(void);
/* strings and memory */
char* (*strcpy)(char *dst, const char *src);
@@ -223,6 +223,7 @@ struct codec_api {
/* new stuff at the end, sort into place next time
the API gets incompatible */
+ void (*commit_discard_idcache)(void);
};
/* codec header */
diff --git a/apps/codecs/codec_crt0.c b/apps/codecs/codec_crt0.c
index 50a2d8b66a..e3c3321e54 100644
--- a/apps/codecs/codec_crt0.c
+++ b/apps/codecs/codec_crt0.c
@@ -45,7 +45,7 @@ enum codec_status codec_start(enum codec_entry_call_reason reason)
ci->memcpy(iramstart, iramcopy, iram_size);
ci->memset(iedata, 0, ibss_size);
/* make the icache (if it exists) up to date with the new code */
- ci->cpucache_invalidate();
+ ci->commit_discard_idcache();
/* barrier to prevent reordering iram copy and BSS clearing,
* because the BSS segment alias the IRAM copy.
*/
@@ -56,7 +56,7 @@ enum codec_status codec_start(enum codec_entry_call_reason reason)
/* Some parts of bss may be used via a no-cache alias (at least
* portalplayer has this). If we don't clear the cache, those aliases
* may read garbage */
- ci->cpucache_invalidate();
+ ci->commit_dcache();
}
#endif /* CONFIG_PLATFORM */
diff --git a/apps/codecs/mpa.c b/apps/codecs/mpa.c
index ac81f06cab..f9bf7e600f 100644
--- a/apps/codecs/mpa.c
+++ b/apps/codecs/mpa.c
@@ -274,7 +274,7 @@ static void mad_synth_thread_quit(void)
die = 1;
ci->semaphore_release(&synth_pending_sem);
ci->thread_wait(mad_synth_thread_id);
- ci->cpucache_invalidate();
+ ci->commit_discard_dcache();
}
#else
static inline void mad_synth_thread_ready(void)
diff --git a/apps/codecs/spc.c b/apps/codecs/spc.c
index 94ac9ffadc..809562e2a0 100644
--- a/apps/codecs/spc.c
+++ b/apps/codecs/spc.c
@@ -295,7 +295,7 @@ static bool emu_thread_process_msg(struct sample_queue_chunk *chunk)
if (id == SPC_EMU_LOAD)
{
struct spc_load *ld = (struct spc_load *)chunk->data;
- ci->cpucache_invalidate();
+ ci->commit_discard_dcache();
SPC_Init(&spc_emu);
sample_queue.retval = SPC_load_spc(&spc_emu, ld->buf, ld->size);
@@ -368,7 +368,7 @@ static bool spc_emu_start(void)
static inline int load_spc_buffer(uint8_t *buf, size_t size)
{
struct spc_load ld = { buf, size };
- ci->cpucache_flush();
+ ci->commit_dcache();
return emu_thread_send_msg(SPC_EMU_LOAD, (intptr_t)&ld);
}
@@ -378,7 +378,7 @@ static inline void spc_emu_quit(void)
emu_thread_send_msg(SPC_EMU_QUIT, 0);
/* Wait for emu thread to be killed */
ci->thread_wait(emu_thread_id);
- ci->cpucache_invalidate();
+ ci->commit_discard_dcache();
}
}
diff --git a/apps/plugin.c b/apps/plugin.c
index f5aa589072..6dd84af775 100644
--- a/apps/plugin.c
+++ b/apps/plugin.c
@@ -428,8 +428,8 @@ static const struct plugin_api rockbox_api = {
cancel_cpu_boost,
#endif
- cpucache_flush,
- cpucache_invalidate,
+ commit_dcache,
+ commit_discard_dcache,
lc_open,
lc_open_from_mem,
@@ -794,6 +794,8 @@ static const struct plugin_api rockbox_api = {
/* new stuff at the end, sort into place next time
the API gets incompatible */
+
+ commit_discard_idcache,
};
int plugin_load(const char* plugin, const void* parameter)
diff --git a/apps/plugin.h b/apps/plugin.h
index e2b7fe7e11..4a62697724 100644
--- a/apps/plugin.h
+++ b/apps/plugin.h
@@ -148,7 +148,7 @@ void* plugin_get_buffer(size_t *buffer_size);
#define PLUGIN_MAGIC 0x526F634B /* RocK */
/* increase this every time the api struct changes */
-#define PLUGIN_API_VERSION 214
+#define PLUGIN_API_VERSION 215
/* update this to latest version if a change to the api struct breaks
backwards compatibility (and please take the opportunity to sort in any
@@ -513,8 +513,8 @@ struct plugin_api {
void (*cancel_cpu_boost)(void);
#endif
- void (*cpucache_flush)(void);
- void (*cpucache_invalidate)(void);
+ void (*commit_dcache)(void);
+ void (*commit_discard_dcache)(void);
/* load code api for overlay */
void* (*lc_open)(const char *filename, unsigned char *buf, size_t buf_size);
@@ -948,7 +948,8 @@ struct plugin_api {
/* new stuff at the end, sort into place next time
the API gets incompatible */
-
+
+ void (*commit_discard_idcache)(void);
};
/* plugin header */
diff --git a/apps/plugins/fft/fft.c b/apps/plugins/fft/fft.c
index 11bdfc8e74..89205503e7 100644
--- a/apps/plugins/fft/fft.c
+++ b/apps/plugins/fft/fft.c
@@ -1249,7 +1249,7 @@ static void fft_thread_entry(void)
}
/* write back output for other processor and invalidate for next frame read */
- rb->cpucache_invalidate();
+ rb->commit_discard_dcache();
int new_tail = output_tail ^ 1;
@@ -1311,7 +1311,7 @@ static void fft_close_fft(void)
/* Handle our FFT thread. */
fft_thread_run = false;
rb->thread_wait(fft_thread);
- rb->cpucache_invalidate();
+ rb->commit_discard_dcache();
}
#else /* NUM_CORES == 1 */
/* everything serialize on single-core and FFT gets to use IRAM main stack if
diff --git a/apps/plugins/mpegplayer/alloc.c b/apps/plugins/mpegplayer/alloc.c
index c2165b2ea9..eb58c67f44 100644
--- a/apps/plugins/mpegplayer/alloc.c
+++ b/apps/plugins/mpegplayer/alloc.c
@@ -149,7 +149,7 @@ bool mpeg_alloc_init(unsigned char *buf, size_t mallocsize)
return false;
}
- IF_COP(rb->cpucache_invalidate());
+ IF_COP(rb->commit_discard_dcache());
return true;
}
diff --git a/apps/plugins/mpegplayer/video_thread.c b/apps/plugins/mpegplayer/video_thread.c
index 5119712396..392cc6179f 100644
--- a/apps/plugins/mpegplayer/video_thread.c
+++ b/apps/plugins/mpegplayer/video_thread.c
@@ -550,7 +550,7 @@ static void video_thread_msg(struct video_thread_data *td)
}
else
{
- IF_COP(rb->cpucache_invalidate());
+ IF_COP(rb->commit_discard_dcache());
vo_lock();
rb->lcd_update();
vo_unlock();
@@ -1007,7 +1007,7 @@ bool video_thread_init(void)
{
intptr_t rep;
- IF_COP(rb->cpucache_flush());
+ IF_COP(rb->commit_dcache());
video_str.hdr.q = &video_str_queue;
rb->queue_init(video_str.hdr.q, false);
@@ -1025,7 +1025,7 @@ bool video_thread_init(void)
/* Wait for thread to initialize */
rep = str_send_msg(&video_str, STREAM_NULL, 0);
- IF_COP(rb->cpucache_invalidate());
+ IF_COP(rb->commit_discard_dcache());
return rep == 0; /* Normally STREAM_NULL should be ignored */
}
@@ -1037,7 +1037,7 @@ void video_thread_exit(void)
{
str_post_msg(&video_str, STREAM_QUIT, 0);
rb->thread_wait(video_str.thread);
- IF_COP(rb->cpucache_invalidate());
+ IF_COP(rb->commit_discard_dcache());
video_str.thread = 0;
}
}
diff --git a/apps/plugins/plugin_crt0.c b/apps/plugins/plugin_crt0.c
index 917ccb11a9..680bb0723d 100644
--- a/apps/plugins/plugin_crt0.c
+++ b/apps/plugins/plugin_crt0.c
@@ -76,10 +76,8 @@ enum plugin_status plugin__start(const void *param)
rb->audio_stop();
rb->memcpy(iramstart, iramcopy, iram_size);
rb->memset(iedata, 0, ibss_size);
-#ifdef HAVE_CPUCACHE_INVALIDATE
/* make the icache (if it exists) up to date with the new code */
- rb->cpucache_invalidate();
-#endif /* HAVE_CPUCACHE_INVALIDATE */
+ rb->commit_discard_idcache();
/* barrier to prevent reordering iram copy and BSS clearing,
* because the BSS segment alias the IRAM copy.
@@ -91,12 +89,10 @@ enum plugin_status plugin__start(const void *param)
/* zero out the bss section */
rb->memset(plugin_bss_start, 0, plugin_end_addr - plugin_bss_start);
-#ifdef HAVE_CPUCACHE_INVALIDATE
/* Some parts of bss may be used via a no-cache alias (at least
* portalplayer has this). If we don't clear the cache, those aliases
* may read garbage */
- rb->cpucache_invalidate();
-#endif /* HAVE_CPUCACHE_INVALIDATE */
+ rb->commit_dcache();
#endif
/* we come back here if exit() was called or the plugin returned normally */