diff options
author | Rafaël Carré <rafael.carre@gmail.com> | 2010-05-27 12:00:29 +0000 |
---|---|---|
committer | Rafaël Carré <rafael.carre@gmail.com> | 2010-05-27 12:00:29 +0000 |
commit | 435e08eae1502f520ce14b279cd2754093e195cb (patch) | |
tree | c34e4e445f87056b64a880c63af1c70b79f531e8 | |
parent | b36e721aa66e20595eb4441edaaddac76f8d5147 (diff) | |
download | rockbox-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.h | 2 | ||||
-rw-r--r-- | firmware/export/fmradio_i2c.h | 3 | ||||
-rw-r--r-- | firmware/export/kernel.h | 2 | ||||
-rw-r--r-- | firmware/export/pcm.h | 6 | ||||
-rw-r--r-- | firmware/target/arm/as3525/ascodec-target.h | 2 | ||||
-rw-r--r-- | firmware/target/arm/as3525/dma-target.h | 3 |
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 */ | |||
753 | #define IBSS_ATTR | 753 | #define IBSS_ATTR |
754 | #define STATICIRAM static | 754 | #define STATICIRAM static |
755 | #endif | 755 | #endif |
756 | #if (defined(CPU_PP) || (CONFIG_CPU == AS3525)) \ | 756 | #if (defined(CPU_PP) || (CONFIG_CPU == AS3525) || (CONFIG_CPU == AS3525v2)) \ |
757 | && !defined(SIMULATOR) && !defined(BOOTLOADER) | 757 | && !defined(SIMULATOR) && !defined(BOOTLOADER) |
758 | /* Functions that have INIT_ATTR attached are NOT guaranteed to survive after | 758 | /* Functions that have INIT_ATTR attached are NOT guaranteed to survive after |
759 | * root_menu() has been called. Their code may be overwritten by other data or | 759 | * 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 @@ | |||
22 | #ifndef FMRADIO_I2C_H | 22 | #ifndef FMRADIO_I2C_H |
23 | #define FMRADIO_I2C_H | 23 | #define FMRADIO_I2C_H |
24 | 24 | ||
25 | #include "config.h" /* for INIT_ATTR */ | ||
25 | #include <stdbool.h> | 26 | #include <stdbool.h> |
26 | 27 | ||
27 | void fmradio_i2c_init(void); | 28 | void fmradio_i2c_init(void) INIT_ATTR; |
28 | void fmradio_i2c_enable(bool enable); | 29 | void fmradio_i2c_enable(bool enable); |
29 | int fmradio_i2c_write(unsigned char address, const unsigned char* buf, int count); | 30 | int fmradio_i2c_write(unsigned char address, const unsigned char* buf, int count); |
30 | int fmradio_i2c_read(unsigned char address, unsigned char* buf, int count); | 31 | 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); | |||
211 | extern void sleep(int ticks); | 211 | extern void sleep(int ticks); |
212 | int tick_add_task(void (*f)(void)); | 212 | int tick_add_task(void (*f)(void)); |
213 | int tick_remove_task(void (*f)(void)); | 213 | int tick_remove_task(void (*f)(void)); |
214 | extern void tick_start(unsigned int interval_in_ms); | 214 | extern void tick_start(unsigned int interval_in_ms) INIT_ATTR; |
215 | 215 | ||
216 | #ifdef INCLUDE_TIMEOUT_API | 216 | #ifdef INCLUDE_TIMEOUT_API |
217 | struct timeout; | 217 | 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); | |||
67 | void pcm_play_lock(void); | 67 | void pcm_play_lock(void); |
68 | void pcm_play_unlock(void); | 68 | void pcm_play_unlock(void); |
69 | 69 | ||
70 | void pcm_init(void); | 70 | void pcm_init(void) INIT_ATTR; |
71 | void pcm_postinit(void); | 71 | void pcm_postinit(void) INIT_ATTR; |
72 | 72 | ||
73 | /* This is for playing "raw" PCM data */ | 73 | /* This is for playing "raw" PCM data */ |
74 | void pcm_play_data(pcm_play_callback_type get_more, | 74 | void pcm_play_data(pcm_play_callback_type get_more, |
@@ -104,7 +104,7 @@ extern volatile bool pcm_paused; | |||
104 | 104 | ||
105 | void pcm_play_dma_lock(void); | 105 | void pcm_play_dma_lock(void); |
106 | void pcm_play_dma_unlock(void); | 106 | void pcm_play_dma_unlock(void); |
107 | void pcm_play_dma_init(void); | 107 | void pcm_play_dma_init(void) INIT_ATTR; |
108 | void pcm_play_dma_start(const void *addr, size_t size); | 108 | void pcm_play_dma_start(const void *addr, size_t size); |
109 | void pcm_play_dma_stop(void); | 109 | void pcm_play_dma_stop(void); |
110 | void pcm_play_dma_pause(bool pause); | 110 | 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 { | |||
70 | struct ascodec_request *next; | 70 | struct ascodec_request *next; |
71 | }; | 71 | }; |
72 | 72 | ||
73 | void ascodec_init(void); | 73 | void ascodec_init(void) INIT_ATTR; |
74 | 74 | ||
75 | int ascodec_write(unsigned int index, unsigned int value); | 75 | int ascodec_write(unsigned int index, unsigned int value); |
76 | 76 | ||
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 @@ | |||
19 | * | 19 | * |
20 | ****************************************************************************/ | 20 | ****************************************************************************/ |
21 | 21 | ||
22 | #include "config.h" /* for INIT_ATTR */ | ||
22 | #include <stdbool.h> | 23 | #include <stdbool.h> |
23 | #include <stdlib.h> | 24 | #include <stdlib.h> |
24 | 25 | ||
@@ -32,7 +33,7 @@ | |||
32 | #define DMA_PERI_SD 5 /* embedded storage */ | 33 | #define DMA_PERI_SD 5 /* embedded storage */ |
33 | #define DMA_PERI_DBOP 8 | 34 | #define DMA_PERI_DBOP 8 |
34 | 35 | ||
35 | void dma_init(void); | 36 | void dma_init(void) INIT_ATTR; |
36 | void dma_enable_channel(int channel, void *src, void *dst, int peri, | 37 | void dma_enable_channel(int channel, void *src, void *dst, int peri, |
37 | int flow_controller, bool src_inc, bool dst_inc, | 38 | int flow_controller, bool src_inc, bool dst_inc, |
38 | size_t size, int nwords, void (*callback)(void)); | 39 | size_t size, int nwords, void (*callback)(void)); |