summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2010-05-27 12:00:29 +0000
committerRafaël Carré <rafael.carre@gmail.com>2010-05-27 12:00:29 +0000
commit435e08eae1502f520ce14b279cd2754093e195cb (patch)
treec34e4e445f87056b64a880c63af1c70b79f531e8
parentb36e721aa66e20595eb4441edaaddac76f8d5147 (diff)
downloadrockbox-435e08eae1502f520ce14b279cd2754093e195cb.tar.gz
rockbox-435e08eae1502f520ce14b279cd2754093e195cb.zip
mark some functions as init functions (discarded after init() has run)
tick_start, fmradio_i2c_init, pcm_init, pcm_postinit, pcm_play_dma_init Also add some as3525 target specific functions Make as3525v2 use this attribute git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26328 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/export/config.h2
-rw-r--r--firmware/export/fmradio_i2c.h3
-rw-r--r--firmware/export/kernel.h2
-rw-r--r--firmware/export/pcm.h6
-rw-r--r--firmware/target/arm/as3525/ascodec-target.h2
-rw-r--r--firmware/target/arm/as3525/dma-target.h3
6 files changed, 10 insertions, 8 deletions
diff --git a/firmware/export/config.h b/firmware/export/config.h
index 38eb696515..0ed1be4157 100644
--- a/firmware/export/config.h
+++ b/firmware/export/config.h
@@ -753,7 +753,7 @@ Lyre prototype 1 */
#define IBSS_ATTR
#define STATICIRAM static
#endif
-#if (defined(CPU_PP) || (CONFIG_CPU == AS3525)) \
+#if (defined(CPU_PP) || (CONFIG_CPU == AS3525) || (CONFIG_CPU == AS3525v2)) \
&& !defined(SIMULATOR) && !defined(BOOTLOADER)
/* Functions that have INIT_ATTR attached are NOT guaranteed to survive after
* root_menu() has been called. Their code may be overwritten by other data or
diff --git a/firmware/export/fmradio_i2c.h b/firmware/export/fmradio_i2c.h
index 0dc3889b08..f8f6e4f646 100644
--- a/firmware/export/fmradio_i2c.h
+++ b/firmware/export/fmradio_i2c.h
@@ -22,9 +22,10 @@
#ifndef FMRADIO_I2C_H
#define FMRADIO_I2C_H
+#include "config.h" /* for INIT_ATTR */
#include <stdbool.h>
-void fmradio_i2c_init(void);
+void fmradio_i2c_init(void) INIT_ATTR;
void fmradio_i2c_enable(bool enable);
int fmradio_i2c_write(unsigned char address, const unsigned char* buf, int count);
int fmradio_i2c_read(unsigned char address, unsigned char* buf, int count);
diff --git a/firmware/export/kernel.h b/firmware/export/kernel.h
index a4761302e0..bcf51c1723 100644
--- a/firmware/export/kernel.h
+++ b/firmware/export/kernel.h
@@ -211,7 +211,7 @@ extern void yield(void);
extern void sleep(int ticks);
int tick_add_task(void (*f)(void));
int tick_remove_task(void (*f)(void));
-extern void tick_start(unsigned int interval_in_ms);
+extern void tick_start(unsigned int interval_in_ms) INIT_ATTR;
#ifdef INCLUDE_TIMEOUT_API
struct timeout;
diff --git a/firmware/export/pcm.h b/firmware/export/pcm.h
index 40bfe6fa46..304f120059 100644
--- a/firmware/export/pcm.h
+++ b/firmware/export/pcm.h
@@ -67,8 +67,8 @@ void pcm_apply_settings(void);
void pcm_play_lock(void);
void pcm_play_unlock(void);
-void pcm_init(void);
-void pcm_postinit(void);
+void pcm_init(void) INIT_ATTR;
+void pcm_postinit(void) INIT_ATTR;
/* This is for playing "raw" PCM data */
void pcm_play_data(pcm_play_callback_type get_more,
@@ -104,7 +104,7 @@ extern volatile bool pcm_paused;
void pcm_play_dma_lock(void);
void pcm_play_dma_unlock(void);
-void pcm_play_dma_init(void);
+void pcm_play_dma_init(void) INIT_ATTR;
void pcm_play_dma_start(const void *addr, size_t size);
void pcm_play_dma_stop(void);
void pcm_play_dma_pause(bool pause);
diff --git a/firmware/target/arm/as3525/ascodec-target.h b/firmware/target/arm/as3525/ascodec-target.h
index d3d095c365..a92fea9f61 100644
--- a/firmware/target/arm/as3525/ascodec-target.h
+++ b/firmware/target/arm/as3525/ascodec-target.h
@@ -70,7 +70,7 @@ struct ascodec_request {
struct ascodec_request *next;
};
-void ascodec_init(void);
+void ascodec_init(void) INIT_ATTR;
int ascodec_write(unsigned int index, unsigned int value);
diff --git a/firmware/target/arm/as3525/dma-target.h b/firmware/target/arm/as3525/dma-target.h
index 00897fa070..a64055984d 100644
--- a/firmware/target/arm/as3525/dma-target.h
+++ b/firmware/target/arm/as3525/dma-target.h
@@ -19,6 +19,7 @@
*
****************************************************************************/
+#include "config.h" /* for INIT_ATTR */
#include <stdbool.h>
#include <stdlib.h>
@@ -32,7 +33,7 @@
#define DMA_PERI_SD 5 /* embedded storage */
#define DMA_PERI_DBOP 8
-void dma_init(void);
+void dma_init(void) INIT_ATTR;
void dma_enable_channel(int channel, void *src, void *dst, int peri,
int flow_controller, bool src_inc, bool dst_inc,
size_t size, int nwords, void (*callback)(void));