diff options
| author | Jens Arnold <amiconn@rockbox.org> | 2006-01-16 18:51:12 +0000 |
|---|---|---|
| committer | Jens Arnold <amiconn@rockbox.org> | 2006-01-16 18:51:12 +0000 |
| commit | ffb0cdc4263c5c5f4b13fd7514533f4d17fa2a3b (patch) | |
| tree | 26ded3a09271a2c2df73889e2761cf80c77f5237 /apps/plugins/rockboy | |
| parent | b1a17a624645522d751e6d313a5ceebc0649d49d (diff) | |
| download | rockbox-ffb0cdc4263c5c5f4b13fd7514533f4d17fa2a3b.zip rockbox-ffb0cdc4263c5c5f4b13fd7514533f4d17fa2a3b.tar.gz rockbox-ffb0cdc4263c5c5f4b13fd7514533f4d17fa2a3b.tar.bz2 rockbox-ffb0cdc4263c5c5f4b13fd7514533f4d17fa2a3b.tar.xz | |
Archos recorders: The Rockboy overlay loader now uses the same header as the plugin loader.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8354 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/rockboy')
| -rwxr-xr-x | apps/plugins/rockboy/archos.lds | 4 | ||||
| -rw-r--r-- | apps/plugins/rockboy/rockboy.c | 24 |
2 files changed, 5 insertions, 23 deletions
diff --git a/apps/plugins/rockboy/archos.lds b/apps/plugins/rockboy/archos.lds index 55db1e2..24f4f1d 100755 --- a/apps/plugins/rockboy/archos.lds +++ b/apps/plugins/rockboy/archos.lds @@ -19,7 +19,7 @@ MEMORY SECTIONS { .header : { - _ovl_start_addr = .; + _plugin_start_addr = .; *(.header) } > OVERLAY_RAM @@ -42,6 +42,6 @@ SECTIONS *(.bss) *(COMMON) . = ALIGN(0x4); - _ovl_end_addr = .; + _plugin_end_addr = .; } > OVERLAY_RAM } diff --git a/apps/plugins/rockboy/rockboy.c b/apps/plugins/rockboy/rockboy.c index a21e9e4..a7e9bfb 100644 --- a/apps/plugins/rockboy/rockboy.c +++ b/apps/plugins/rockboy/rockboy.c @@ -20,25 +20,7 @@ #include "loader.h" #include "rockmacros.h" -#if MEM <= 8 && !defined(SIMULATOR) -/* On archos this is loaded as an overlay */ - -/* These are defined in the linker script */ -extern unsigned char ovl_start_addr[]; -extern unsigned char ovl_end_addr[]; - -const struct { - unsigned long magic; - unsigned char *start_addr; - unsigned char *end_addr; - enum plugin_status (*entry_point)(struct plugin_api*, void*); -} header __attribute__ ((section (".header"))) = { - 0x524f564c, /* ROVL */ - ovl_start_addr, ovl_end_addr, plugin_start -}; -#else PLUGIN_HEADER -#endif #ifdef USE_IRAM extern char iramcopy[]; @@ -109,10 +91,10 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) audio_bufferbase = audio_bufferpointer = rb->plugin_get_audio_buffer((int *)&audio_buffer_free); #if MEM <= 8 && !defined(SIMULATOR) - /* loaded as an overlay, protect from overwriting ourselves */ - if ((unsigned)(ovl_start_addr - (unsigned char *)audio_bufferbase) + /* loaded as an overlay plugin, protect from overwriting ourselves */ + if ((unsigned)(plugin_start_addr - (unsigned char *)audio_bufferbase) < audio_buffer_free) - audio_buffer_free = ovl_start_addr - (unsigned char *)audio_bufferbase; + audio_buffer_free = plugin_start_addr - (unsigned char *)audio_bufferbase; #endif #ifdef USE_IRAM |