summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomasz Malesinski <tomal@rockbox.org>2006-11-09 21:59:27 +0000
committerTomasz Malesinski <tomal@rockbox.org>2006-11-09 21:59:27 +0000
commit5c54ba49d5c05e394a31f3827f7c4a75e28d9999 (patch)
tree096c978d3e4d259cc6cf08ee5ccdd4414d06c013
parent2e383a430de025378bf17942a1cf5ea86860f700 (diff)
downloadrockbox-5c54ba49d5c05e394a31f3827f7c4a75e28d9999.tar.gz
rockbox-5c54ba49d5c05e394a31f3827f7c4a75e28d9999.zip
Added macros controlling what goes to IRAM on different targets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11483 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/codecs/Tremor/bitwise.c4
-rw-r--r--apps/codecs/Tremor/block.c3
-rw-r--r--apps/codecs/Tremor/config-tremor.h16
-rw-r--r--apps/codecs/Tremor/floor1.c5
-rw-r--r--apps/codecs/Tremor/framing.c8
-rw-r--r--apps/codecs/Tremor/mdct.c6
-rw-r--r--apps/codecs/Tremor/res012.c3
-rw-r--r--apps/codecs/Tremor/synthesis.c3
-rw-r--r--apps/codecs/Tremor/vorbisfile.c4
-rw-r--r--apps/codecs/Tremor/window_lookup.h4
-rw-r--r--apps/codecs/flac.c2
-rw-r--r--apps/codecs/libalac/alac.c6
-rw-r--r--apps/codecs/libalac/decomp.h11
-rw-r--r--apps/codecs/libffmpegFLAC/bitstream.h14
-rw-r--r--apps/codecs/libffmpegFLAC/decoder.c12
-rw-r--r--apps/codecs/libffmpegFLAC/decoder.h2
-rw-r--r--apps/codecs/libffmpegFLAC/shndec.c2
-rw-r--r--apps/codecs/libmad/global.h4
-rw-r--r--apps/codecs/libmad/huffman.c38
-rw-r--r--apps/codecs/libmusepack/musepack.h4
-rw-r--r--apps/codecs/mpc.c3
-rw-r--r--apps/codecs/shorten.c6
-rw-r--r--apps/playback.c6
-rw-r--r--firmware/export/config-ifp7xx.h10
-rw-r--r--firmware/export/config-ipod3g.h2
-rw-r--r--firmware/export/config-ipod4g.h2
-rw-r--r--firmware/export/config-ipodcolor.h2
-rw-r--r--firmware/export/config-ipodmini.h2
-rwxr-xr-xfirmware/export/config-ipodmini2g.h2
-rw-r--r--firmware/export/config-ipodnano.h2
-rw-r--r--firmware/export/config-ipodvideo.h2
31 files changed, 128 insertions, 62 deletions
diff --git a/apps/codecs/Tremor/bitwise.c b/apps/codecs/Tremor/bitwise.c
index 3e967b9d42..55d3712708 100644
--- a/apps/codecs/Tremor/bitwise.c
+++ b/apps/codecs/Tremor/bitwise.c
@@ -49,7 +49,7 @@ void oggpack_readinit(oggpack_buffer *b,ogg_reference *r){
49 } 49 }
50 50
51/* Read in bits without advancing the bitptr; bits <= 32 */ 51/* Read in bits without advancing the bitptr; bits <= 32 */
52long oggpack_look_full(oggpack_buffer *b,int bits) ICODE_ATTR; 52long oggpack_look_full(oggpack_buffer *b,int bits) ICODE_ATTR_TREMOR_NOT_MDCT;
53long oggpack_look_full(oggpack_buffer *b,int bits){ 53long oggpack_look_full(oggpack_buffer *b,int bits){
54 unsigned long m=oggpack_mask[bits]; 54 unsigned long m=oggpack_mask[bits];
55 unsigned long ret=-1; 55 unsigned long ret=-1;
@@ -136,7 +136,7 @@ int oggpack_eop(oggpack_buffer *b){
136} 136}
137 137
138/* bits <= 32 */ 138/* bits <= 32 */
139long oggpack_read(oggpack_buffer *b,int bits) ICODE_ATTR; 139long oggpack_read(oggpack_buffer *b,int bits) ICODE_ATTR_TREMOR_NOT_MDCT;
140long oggpack_read(oggpack_buffer *b,int bits){ 140long oggpack_read(oggpack_buffer *b,int bits){
141 unsigned long m=oggpack_mask[bits]; 141 unsigned long m=oggpack_mask[bits];
142 ogg_uint32_t ret=-1; 142 ogg_uint32_t ret=-1;
diff --git a/apps/codecs/Tremor/block.c b/apps/codecs/Tremor/block.c
index ac19f3a317..9dce13c6e5 100644
--- a/apps/codecs/Tremor/block.c
+++ b/apps/codecs/Tremor/block.c
@@ -256,7 +256,8 @@ void vorbis_dsp_clear(vorbis_dsp_state *v){
256 block. The time domain envelope is not yet handled at the point of 256 block. The time domain envelope is not yet handled at the point of
257 calling (as it relies on the previous block). */ 257 calling (as it relies on the previous block). */
258 258
259int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb) ICODE_ATTR; 259int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb)
260 ICODE_ATTR_TREMOR_NOT_MDCT;
260int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){ 261int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){
261 vorbis_info *vi=v->vi; 262 vorbis_info *vi=v->vi;
262 codec_setup_info *ci=(codec_setup_info *)vi->codec_setup; 263 codec_setup_info *ci=(codec_setup_info *)vi->codec_setup;
diff --git a/apps/codecs/Tremor/config-tremor.h b/apps/codecs/Tremor/config-tremor.h
index f4a0e1c0bf..e1ade700e5 100644
--- a/apps/codecs/Tremor/config-tremor.h
+++ b/apps/codecs/Tremor/config-tremor.h
@@ -13,12 +13,16 @@
13#define BIG_ENDIAN 0 13#define BIG_ENDIAN 0
14#endif 14#endif
15 15
16/* As of 28 Dec 2005, the Tremor code is too big for IRAM on the iPod, 16#ifndef ICONST_ATTR_TREMOR_WINDOW
17 so we temporarily disable ICODE_ATTR - this needs reviewing when it comes 17#define ICONST_ATTR_TREMOR_WINDOW ICONST_ATTR
18 to optimising Tremor for the iPod */ 18#endif
19#ifdef CPU_ARM 19
20#undef ICODE_ATTR 20#ifndef ICODE_ATTR_TREMOR_MDCT
21#define ICODE_ATTR 21#define ICODE_ATTR_TREMOR_MDCT ICODE_ATTR
22#endif
23
24#ifndef ICODE_ATTR_TREMOR_NOT_MDCT
25#define ICODE_ATTR_TREMOR_NOT_MDCT ICODE_ATTR
22#endif 26#endif
23 27
24// #define _LOW_ACCURACY_ 28// #define _LOW_ACCURACY_
diff --git a/apps/codecs/Tremor/floor1.c b/apps/codecs/Tremor/floor1.c
index 14515c27e6..a66e7379d7 100644
--- a/apps/codecs/Tremor/floor1.c
+++ b/apps/codecs/Tremor/floor1.c
@@ -312,7 +312,8 @@ static void render_line(int x0,register int x1,int y0,int y1,ogg_int32_t *d){
312 } 312 }
313} 313}
314 314
315static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in) ICODE_ATTR; 315static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in)
316 ICODE_ATTR_TREMOR_NOT_MDCT;
316static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){ 317static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){
317 vorbis_look_floor1 *look=(vorbis_look_floor1 *)in; 318 vorbis_look_floor1 *look=(vorbis_look_floor1 *)in;
318 vorbis_info_floor1 *info=look->vi; 319 vorbis_info_floor1 *info=look->vi;
@@ -399,7 +400,7 @@ static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){
399} 400}
400 401
401static int floor1_inverse2(vorbis_block *vb,vorbis_look_floor *in,void *memo, 402static int floor1_inverse2(vorbis_block *vb,vorbis_look_floor *in,void *memo,
402 ogg_int32_t *out) ICODE_ATTR; 403 ogg_int32_t *out) ICODE_ATTR_TREMOR_NOT_MDCT;
403static int floor1_inverse2(vorbis_block *vb,vorbis_look_floor *in,void *memo, 404static int floor1_inverse2(vorbis_block *vb,vorbis_look_floor *in,void *memo,
404 ogg_int32_t *out){ 405 ogg_int32_t *out){
405 vorbis_look_floor1 *look=(vorbis_look_floor1 *)in; 406 vorbis_look_floor1 *look=(vorbis_look_floor1 *)in;
diff --git a/apps/codecs/Tremor/framing.c b/apps/codecs/Tremor/framing.c
index f17ad86d98..e444514901 100644
--- a/apps/codecs/Tremor/framing.c
+++ b/apps/codecs/Tremor/framing.c
@@ -105,7 +105,8 @@ static ogg_buffer *_fetch_buffer(ogg_buffer_state *bs,long bytes){
105 return ob; 105 return ob;
106} 106}
107 107
108static ogg_reference *_fetch_ref(ogg_buffer_state *bs) ICODE_ATTR; 108static ogg_reference *_fetch_ref(ogg_buffer_state *bs)
109 ICODE_ATTR_TREMOR_NOT_MDCT;
109static ogg_reference *_fetch_ref(ogg_buffer_state *bs){ 110static ogg_reference *_fetch_ref(ogg_buffer_state *bs){
110 ogg_reference *or; 111 ogg_reference *or;
111 bs->outstanding++; 112 bs->outstanding++;
@@ -857,7 +858,7 @@ static void _next_lace(oggbyte_buffer *ob,ogg_stream_state *os){
857 } 858 }
858} 859}
859 860
860static void _span_queued_page(ogg_stream_state *os) ICODE_ATTR; 861static void _span_queued_page(ogg_stream_state *os) ICODE_ATTR_TREMOR_NOT_MDCT;
861static void _span_queued_page(ogg_stream_state *os){ 862static void _span_queued_page(ogg_stream_state *os){
862 while( !(os->body_fill&FINFLAG) ){ 863 while( !(os->body_fill&FINFLAG) ){
863 864
@@ -1016,7 +1017,8 @@ int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno){
1016 return OGG_SUCCESS; 1017 return OGG_SUCCESS;
1017} 1018}
1018 1019
1019static int _packetout(ogg_stream_state *os,ogg_packet *op,int adv) ICODE_ATTR; 1020static int _packetout(ogg_stream_state *os,ogg_packet *op,int adv)
1021 ICODE_ATTR_TREMOR_NOT_MDCT;
1020static int _packetout(ogg_stream_state *os,ogg_packet *op,int adv){ 1022static int _packetout(ogg_stream_state *os,ogg_packet *op,int adv){
1021 1023
1022 ogg_packet_release(op); 1024 ogg_packet_release(op);
diff --git a/apps/codecs/Tremor/mdct.c b/apps/codecs/Tremor/mdct.c
index 5d7f195616..8334cdf3c4 100644
--- a/apps/codecs/Tremor/mdct.c
+++ b/apps/codecs/Tremor/mdct.c
@@ -144,7 +144,8 @@ STIN void mdct_butterfly_32(DATA_TYPE *x){
144} 144}
145 145
146/* N/stage point generic N stage butterfly (in place, 4 register) */ 146/* N/stage point generic N stage butterfly (in place, 4 register) */
147void mdct_butterfly_generic(DATA_TYPE *x,int points, int step) ICODE_ATTR; 147void mdct_butterfly_generic(DATA_TYPE *x,int points, int step)
148 ICODE_ATTR_TREMOR_MDCT;
148void mdct_butterfly_generic(DATA_TYPE *x,int points, int step){ 149void mdct_butterfly_generic(DATA_TYPE *x,int points, int step){
149 LOOKUP_T *T = sincos_lookup0; 150 LOOKUP_T *T = sincos_lookup0;
150 DATA_TYPE *x1 = x + points - 8; 151 DATA_TYPE *x1 = x + points - 8;
@@ -332,7 +333,8 @@ STIN void mdct_bitreverse(DATA_TYPE *x,int n,int step,int shift) {
332} 333}
333 334
334 335
335void mdct_backward(int n, DATA_TYPE *in, DATA_TYPE *out) ICODE_ATTR; 336void mdct_backward(int n, DATA_TYPE *in, DATA_TYPE *out)
337 ICODE_ATTR_TREMOR_MDCT;
336void mdct_backward(int n, DATA_TYPE *in, DATA_TYPE *out) { 338void mdct_backward(int n, DATA_TYPE *in, DATA_TYPE *out) {
337 int n2=n>>1; 339 int n2=n>>1;
338 int n4=n>>2; 340 int n4=n>>2;
diff --git a/apps/codecs/Tremor/res012.c b/apps/codecs/Tremor/res012.c
index 0f4d224f89..fe0cf2e50a 100644
--- a/apps/codecs/Tremor/res012.c
+++ b/apps/codecs/Tremor/res012.c
@@ -259,7 +259,8 @@ int res1_inverse(vorbis_block *vb,vorbis_look_residue *vl,
259 259
260/* duplicate code here as speed is somewhat more important */ 260/* duplicate code here as speed is somewhat more important */
261int res2_inverse(vorbis_block *vb,vorbis_look_residue *vl, 261int res2_inverse(vorbis_block *vb,vorbis_look_residue *vl,
262 ogg_int32_t **in,int *nonzero,int ch) ICODE_ATTR; 262 ogg_int32_t **in,int *nonzero,int ch)
263 ICODE_ATTR_TREMOR_NOT_MDCT;
263int res2_inverse(vorbis_block *vb,vorbis_look_residue *vl, 264int res2_inverse(vorbis_block *vb,vorbis_look_residue *vl,
264 ogg_int32_t **in,int *nonzero,int ch){ 265 ogg_int32_t **in,int *nonzero,int ch){
265 long i,k,l,s; 266 long i,k,l,s;
diff --git a/apps/codecs/Tremor/synthesis.c b/apps/codecs/Tremor/synthesis.c
index c7f0bb6cc5..cef240e796 100644
--- a/apps/codecs/Tremor/synthesis.c
+++ b/apps/codecs/Tremor/synthesis.c
@@ -35,7 +35,8 @@
35static ogg_int32_t *ipcm_vect[CHANNELS] IBSS_ATTR; 35static ogg_int32_t *ipcm_vect[CHANNELS] IBSS_ATTR;
36static ogg_int32_t ipcm_buff[CHANNELS*IRAM_PCM_END] IBSS_ATTR LINE_ATTR; 36static ogg_int32_t ipcm_buff[CHANNELS*IRAM_PCM_END] IBSS_ATTR LINE_ATTR;
37 37
38int vorbis_synthesis(vorbis_block *vb,ogg_packet *op,int decodep) ICODE_ATTR; 38int vorbis_synthesis(vorbis_block *vb,ogg_packet *op,int decodep)
39 ICODE_ATTR_TREMOR_NOT_MDCT;
39int vorbis_synthesis(vorbis_block *vb,ogg_packet *op,int decodep){ 40int vorbis_synthesis(vorbis_block *vb,ogg_packet *op,int decodep){
40 vorbis_dsp_state *vd=vb->vd; 41 vorbis_dsp_state *vd=vb->vd;
41 private_state *b=(private_state *)vd->backend_state; 42 private_state *b=(private_state *)vd->backend_state;
diff --git a/apps/codecs/Tremor/vorbisfile.c b/apps/codecs/Tremor/vorbisfile.c
index 4d36ab3b48..0f39826388 100644
--- a/apps/codecs/Tremor/vorbisfile.c
+++ b/apps/codecs/Tremor/vorbisfile.c
@@ -478,7 +478,7 @@ static void _decode_clear(OggVorbis_File *vf){
478 478
479static int _fetch_and_process_packet(OggVorbis_File *vf, 479static int _fetch_and_process_packet(OggVorbis_File *vf,
480 int readp, 480 int readp,
481 int spanp) ICODE_ATTR; 481 int spanp) ICODE_ATTR_TREMOR_NOT_MDCT;
482static int _fetch_and_process_packet(OggVorbis_File *vf, 482static int _fetch_and_process_packet(OggVorbis_File *vf,
483 int readp, 483 int readp,
484 int spanp){ 484 int spanp){
@@ -1458,7 +1458,7 @@ ogg_int64_t ov_pcm_tell(OggVorbis_File *vf){
1458} 1458}
1459 1459
1460/* return time offset (milliseconds) of next PCM sample to be read */ 1460/* return time offset (milliseconds) of next PCM sample to be read */
1461ogg_int64_t ov_time_tell(OggVorbis_File *vf) ICODE_ATTR; 1461ogg_int64_t ov_time_tell(OggVorbis_File *vf) ICODE_ATTR_TREMOR_NOT_MDCT;
1462ogg_int64_t ov_time_tell(OggVorbis_File *vf){ 1462ogg_int64_t ov_time_tell(OggVorbis_File *vf){
1463 int link=0; 1463 int link=0;
1464 ogg_int64_t pcm_total=0; 1464 ogg_int64_t pcm_total=0;
diff --git a/apps/codecs/Tremor/window_lookup.h b/apps/codecs/Tremor/window_lookup.h
index 9fbb98fb75..ccf316e227 100644
--- a/apps/codecs/Tremor/window_lookup.h
+++ b/apps/codecs/Tremor/window_lookup.h
@@ -51,7 +51,7 @@ static LOOKUP_T vwin128[64] = {
51 X(0x7ffdcf39), X(0x7fff6dac), X(0x7fffed01), X(0x7fffffc4), 51 X(0x7ffdcf39), X(0x7fff6dac), X(0x7fffed01), X(0x7fffffc4),
52}; 52};
53 53
54static LOOKUP_T vwin256[128] ICONST_ATTR = { 54static LOOKUP_T vwin256[128] ICONST_ATTR_TREMOR_WINDOW = {
55 X(0x0001f018), X(0x00117066), X(0x00306e9e), X(0x005ee5f1), 55 X(0x0001f018), X(0x00117066), X(0x00306e9e), X(0x005ee5f1),
56 X(0x009ccf26), X(0x00ea208b), X(0x0146cdea), X(0x01b2c87f), 56 X(0x009ccf26), X(0x00ea208b), X(0x0146cdea), X(0x01b2c87f),
57 X(0x022dfedf), X(0x02b85ced), X(0x0351cbbd), X(0x03fa317f), 57 X(0x022dfedf), X(0x02b85ced), X(0x0351cbbd), X(0x03fa317f),
@@ -284,7 +284,7 @@ static LOOKUP_T vwin1024[512] = {
284 X(0x7fffffdd), X(0x7ffffff7), X(0x7fffffff), X(0x7fffffff), 284 X(0x7fffffdd), X(0x7ffffff7), X(0x7fffffff), X(0x7fffffff),
285}; 285};
286 286
287static LOOKUP_T vwin2048[1024] ICONST_ATTR = { 287static LOOKUP_T vwin2048[1024] ICONST_ATTR_TREMOR_WINDOW = {
288 X(0x000007c0), X(0x000045c4), X(0x0000c1ca), X(0x00017bd3), 288 X(0x000007c0), X(0x000045c4), X(0x0000c1ca), X(0x00017bd3),
289 X(0x000273de), X(0x0003a9eb), X(0x00051df9), X(0x0006d007), 289 X(0x000273de), X(0x0003a9eb), X(0x00051df9), X(0x0006d007),
290 X(0x0008c014), X(0x000aee1e), X(0x000d5a25), X(0x00100428), 290 X(0x0008c014), X(0x000aee1e), X(0x000d5a25), X(0x00100428),
diff --git a/apps/codecs/flac.c b/apps/codecs/flac.c
index 1e9c30f1a9..9f2405f4f2 100644
--- a/apps/codecs/flac.c
+++ b/apps/codecs/flac.c
@@ -34,7 +34,7 @@ struct codec_api* rb;
34struct codec_api* ci; 34struct codec_api* ci;
35 35
36/* The output buffers containing the decoded samples (channels 0 and 1) */ 36/* The output buffers containing the decoded samples (channels 0 and 1) */
37int32_t decoded0[MAX_BLOCKSIZE] IBSS_ATTR; 37int32_t decoded0[MAX_BLOCKSIZE] IBSS_ATTR_FLAC_DECODED0;
38int32_t decoded1[MAX_BLOCKSIZE] IBSS_ATTR; 38int32_t decoded1[MAX_BLOCKSIZE] IBSS_ATTR;
39 39
40#define MAX_SUPPORTED_SEEKTABLE_SIZE 5000 40#define MAX_SUPPORTED_SEEKTABLE_SIZE 5000
diff --git a/apps/codecs/libalac/alac.c b/apps/codecs/libalac/alac.c
index 5487c68961..f8e4df8b1d 100644
--- a/apps/codecs/libalac/alac.c
+++ b/apps/codecs/libalac/alac.c
@@ -226,7 +226,7 @@ void basterdised_rice_decompress(alac_file *alac,
226 int rice_kmodifier, /* arg424->d */ 226 int rice_kmodifier, /* arg424->d */
227 int rice_historymult, /* arg424->c */ 227 int rice_historymult, /* arg424->c */
228 int rice_kmodifier_mask /* arg424->e */ 228 int rice_kmodifier_mask /* arg424->e */
229 ) ICODE_ATTR; 229 ) ICODE_ATTR_ALAC;
230void basterdised_rice_decompress(alac_file *alac, 230void basterdised_rice_decompress(alac_file *alac,
231 int32_t *output_buffer, 231 int32_t *output_buffer,
232 int output_size, 232 int output_size,
@@ -373,7 +373,7 @@ static void predictor_decompress_fir_adapt(int32_t *error_buffer,
373 int readsamplesize, 373 int readsamplesize,
374 int16_t *predictor_coef_table, 374 int16_t *predictor_coef_table,
375 int predictor_coef_num, 375 int predictor_coef_num,
376 int predictor_quantitization) ICODE_ATTR; 376 int predictor_quantitization) ICODE_ATTR_ALAC;
377static void predictor_decompress_fir_adapt(int32_t *error_buffer, 377static void predictor_decompress_fir_adapt(int32_t *error_buffer,
378 int32_t *buffer_out, 378 int32_t *buffer_out,
379 int output_size, 379 int output_size,
@@ -645,7 +645,7 @@ void deinterlace_16(int32_t* buffer0,
645 int32_t* buffer1, 645 int32_t* buffer1,
646 int numsamples, 646 int numsamples,
647 uint8_t interlacing_shift, 647 uint8_t interlacing_shift,
648 uint8_t interlacing_leftweight) ICODE_ATTR; 648 uint8_t interlacing_leftweight) ICODE_ATTR_ALAC;
649void deinterlace_16(int32_t* buffer0, 649void deinterlace_16(int32_t* buffer0,
650 int32_t* buffer1, 650 int32_t* buffer1,
651 int numsamples, 651 int numsamples,
diff --git a/apps/codecs/libalac/decomp.h b/apps/codecs/libalac/decomp.h
index 162811084f..e4a19a7252 100644
--- a/apps/codecs/libalac/decomp.h
+++ b/apps/codecs/libalac/decomp.h
@@ -1,6 +1,10 @@
1#ifndef __ALAC__DECOMP_H 1#ifndef __ALAC__DECOMP_H
2#define __ALAC__DECOMP_H 2#define __ALAC__DECOMP_H
3 3
4#ifndef ICODE_ATTR_ALAC
5#define ICODE_ATTR_ALAC ICODE_ATTR
6#endif
7
4/* Always output samples shifted to 28 bits + sign*/ 8/* Always output samples shifted to 28 bits + sign*/
5#define ALAC_OUTPUT_DEPTH 29 9#define ALAC_OUTPUT_DEPTH 29
6#define SCALE16 (ALAC_OUTPUT_DEPTH - 16) 10#define SCALE16 (ALAC_OUTPUT_DEPTH - 16)
@@ -31,12 +35,13 @@ typedef struct
31 /* end setinfo stuff */ 35 /* end setinfo stuff */
32} alac_file; 36} alac_file;
33 37
34void create_alac(int samplesize, int numchannels, alac_file* alac) ICODE_ATTR; 38void create_alac(int samplesize, int numchannels, alac_file* alac)
39 ICODE_ATTR_ALAC;
35int alac_decode_frame(alac_file *alac, 40int alac_decode_frame(alac_file *alac,
36 unsigned char *inbuffer, 41 unsigned char *inbuffer,
37 int32_t outputbuffer[ALAC_MAX_CHANNELS][ALAC_BLOCKSIZE], 42 int32_t outputbuffer[ALAC_MAX_CHANNELS][ALAC_BLOCKSIZE],
38 void (*yield)(void)) ICODE_ATTR; 43 void (*yield)(void)) ICODE_ATTR_ALAC;
39void alac_set_info(alac_file *alac, char *inputbuffer) ICODE_ATTR; 44void alac_set_info(alac_file *alac, char *inputbuffer) ICODE_ATTR_ALAC;
40 45
41#endif /* __ALAC__DECOMP_H */ 46#endif /* __ALAC__DECOMP_H */
42 47
diff --git a/apps/codecs/libffmpegFLAC/bitstream.h b/apps/codecs/libffmpegFLAC/bitstream.h
index 288d839c4a..19f2b6e01c 100644
--- a/apps/codecs/libffmpegFLAC/bitstream.h
+++ b/apps/codecs/libffmpegFLAC/bitstream.h
@@ -18,6 +18,14 @@
18 #define ICODE_ATTR 18 #define ICODE_ATTR
19#endif 19#endif
20 20
21#ifndef ICODE_ATTR_FLAC
22#define ICODE_ATTR_FLAC ICODE_ATTR
23#endif
24
25#ifndef IBSS_ATTR_FLAC_DECODED0
26#define IBSS_ATTR_FLAC_DECODED0 IBSS_ATTR
27#endif
28
21/* Endian conversion routines for standalone compilation */ 29/* Endian conversion routines for standalone compilation */
22#ifdef BUILD_STANDALONE 30#ifdef BUILD_STANDALONE
23 #ifdef BUILD_BIGENDIAN 31 #ifdef BUILD_BIGENDIAN
@@ -252,7 +260,7 @@ static inline unsigned int get_bits(GetBitContext *s, int n){
252 return tmp; 260 return tmp;
253} 261}
254 262
255unsigned int get_bits_long(GetBitContext *s, int n) ICODE_ATTR; 263unsigned int get_bits_long(GetBitContext *s, int n) ICODE_ATTR_FLAC;
256 264
257/** 265/**
258 * shows 0-17 bits. 266 * shows 0-17 bits.
@@ -267,7 +275,7 @@ static inline unsigned int show_bits(GetBitContext *s, int n){
267 return tmp; 275 return tmp;
268} 276}
269 277
270unsigned int show_bits_long(GetBitContext *s, int n) ICODE_ATTR; 278unsigned int show_bits_long(GetBitContext *s, int n) ICODE_ATTR_FLAC;
271 279
272static inline void skip_bits(GetBitContext *s, int n){ 280static inline void skip_bits(GetBitContext *s, int n){
273 //Note gcc seems to optimize this to s->index+=n for the ALT_READER :)) 281 //Note gcc seems to optimize this to s->index+=n for the ALT_READER :))
@@ -328,6 +336,6 @@ static inline void init_get_bits(GetBitContext *s,
328 } 336 }
329} 337}
330 338
331void align_get_bits(GetBitContext *s) ICODE_ATTR; 339void align_get_bits(GetBitContext *s) ICODE_ATTR_FLAC;
332 340
333#endif /* BITSTREAM_H */ 341#endif /* BITSTREAM_H */
diff --git a/apps/codecs/libffmpegFLAC/decoder.c b/apps/codecs/libffmpegFLAC/decoder.c
index 3d934d9990..8a1f84c6b6 100644
--- a/apps/codecs/libffmpegFLAC/decoder.c
+++ b/apps/codecs/libffmpegFLAC/decoder.c
@@ -99,7 +99,7 @@ static const uint8_t table_crc8[256] ICONST_ATTR = {
99 0xe6, 0xe1, 0xe8, 0xef, 0xfa, 0xfd, 0xf4, 0xf3 99 0xe6, 0xe1, 0xe8, 0xef, 0xfa, 0xfd, 0xf4, 0xf3
100}; 100};
101 101
102static int64_t get_utf8(GetBitContext *gb) ICODE_ATTR; 102static int64_t get_utf8(GetBitContext *gb) ICODE_ATTR_FLAC;
103static int64_t get_utf8(GetBitContext *gb) 103static int64_t get_utf8(GetBitContext *gb)
104{ 104{
105 uint64_t val; 105 uint64_t val;
@@ -124,7 +124,7 @@ static int64_t get_utf8(GetBitContext *gb)
124 return val; 124 return val;
125} 125}
126 126
127static int get_crc8(const uint8_t *buf, int count) ICODE_ATTR; 127static int get_crc8(const uint8_t *buf, int count) ICODE_ATTR_FLAC;
128static int get_crc8(const uint8_t *buf, int count) 128static int get_crc8(const uint8_t *buf, int count)
129{ 129{
130 int crc=0; 130 int crc=0;
@@ -137,7 +137,7 @@ static int get_crc8(const uint8_t *buf, int count)
137 return crc; 137 return crc;
138} 138}
139 139
140static int decode_residuals(FLACContext *s, int32_t* decoded, int pred_order) ICODE_ATTR; 140static int decode_residuals(FLACContext *s, int32_t* decoded, int pred_order) ICODE_ATTR_FLAC;
141static int decode_residuals(FLACContext *s, int32_t* decoded, int pred_order) 141static int decode_residuals(FLACContext *s, int32_t* decoded, int pred_order)
142{ 142{
143 int i, tmp, partition, method_type, rice_order; 143 int i, tmp, partition, method_type, rice_order;
@@ -177,7 +177,7 @@ static int decode_residuals(FLACContext *s, int32_t* decoded, int pred_order)
177 return 0; 177 return 0;
178} 178}
179 179
180static int decode_subframe_fixed(FLACContext *s, int32_t* decoded, int pred_order) ICODE_ATTR; 180static int decode_subframe_fixed(FLACContext *s, int32_t* decoded, int pred_order) ICODE_ATTR_FLAC;
181static int decode_subframe_fixed(FLACContext *s, int32_t* decoded, int pred_order) 181static int decode_subframe_fixed(FLACContext *s, int32_t* decoded, int pred_order)
182{ 182{
183 int i; 183 int i;
@@ -224,7 +224,7 @@ static int decode_subframe_fixed(FLACContext *s, int32_t* decoded, int pred_orde
224 return 0; 224 return 0;
225} 225}
226 226
227static int decode_subframe_lpc(FLACContext *s, int32_t* decoded, int pred_order) ICODE_ATTR; 227static int decode_subframe_lpc(FLACContext *s, int32_t* decoded, int pred_order) ICODE_ATTR_FLAC;
228static int decode_subframe_lpc(FLACContext *s, int32_t* decoded, int pred_order) 228static int decode_subframe_lpc(FLACContext *s, int32_t* decoded, int pred_order)
229{ 229{
230 int sum, i, j; 230 int sum, i, j;
@@ -386,7 +386,7 @@ static inline int decode_subframe(FLACContext *s, int channel, int32_t* decoded)
386static int decode_frame(FLACContext *s, 386static int decode_frame(FLACContext *s,
387 int32_t* decoded0, 387 int32_t* decoded0,
388 int32_t* decoded1, 388 int32_t* decoded1,
389 void (*yield)(void)) ICODE_ATTR; 389 void (*yield)(void)) ICODE_ATTR_FLAC;
390static int decode_frame(FLACContext *s, 390static int decode_frame(FLACContext *s,
391 int32_t* decoded0, 391 int32_t* decoded0,
392 int32_t* decoded1, 392 int32_t* decoded1,
diff --git a/apps/codecs/libffmpegFLAC/decoder.h b/apps/codecs/libffmpegFLAC/decoder.h
index affec0a5a3..0b148df916 100644
--- a/apps/codecs/libffmpegFLAC/decoder.h
+++ b/apps/codecs/libffmpegFLAC/decoder.h
@@ -44,6 +44,6 @@ int flac_decode_frame(FLACContext *s,
44 int32_t* decoded0, 44 int32_t* decoded0,
45 int32_t* decoded1, 45 int32_t* decoded1,
46 uint8_t *buf, int buf_size, 46 uint8_t *buf, int buf_size,
47 void (*yield)(void)) ICODE_ATTR; 47 void (*yield)(void)) ICODE_ATTR_FLAC;
48 48
49#endif 49#endif
diff --git a/apps/codecs/libffmpegFLAC/shndec.c b/apps/codecs/libffmpegFLAC/shndec.c
index d7fc6a15a6..61b3703188 100644
--- a/apps/codecs/libffmpegFLAC/shndec.c
+++ b/apps/codecs/libffmpegFLAC/shndec.c
@@ -83,7 +83,7 @@ static unsigned int get_uint(ShortenContext *s, int k)
83} 83}
84 84
85#if defined(CPU_COLDFIRE) && !defined(SIMULATOR) 85#if defined(CPU_COLDFIRE) && !defined(SIMULATOR)
86static void coldfire_lshift_samples(int n, int shift, int32_t *samples) ICODE_ATTR; 86static void coldfire_lshift_samples(int n, int shift, int32_t *samples) ICODE_ATTR_FLAC;
87static void coldfire_lshift_samples(int n, int shift, int32_t *samples) 87static void coldfire_lshift_samples(int n, int shift, int32_t *samples)
88{ 88{
89/* 89/*
diff --git a/apps/codecs/libmad/global.h b/apps/codecs/libmad/global.h
index fc3dde883e..1ecfea1c14 100644
--- a/apps/codecs/libmad/global.h
+++ b/apps/codecs/libmad/global.h
@@ -66,4 +66,8 @@
66# endif 66# endif
67# endif 67# endif
68 68
69#ifndef ICONST_ATTR_MPA_HUFFMAN
70#define ICONST_ATTR_MPA_HUFFMAN ICONST_ATTR
71#endif
72
69# endif 73# endif
diff --git a/apps/codecs/libmad/huffman.c b/apps/codecs/libmad/huffman.c
index 6ef2390dee..43216d3680 100644
--- a/apps/codecs/libmad/huffman.c
+++ b/apps/codecs/libmad/huffman.c
@@ -50,7 +50,7 @@
50# endif 50# endif
51 51
52static 52static
53union huffquad const hufftabA[] ICONST_ATTR = { 53union huffquad const hufftabA[] ICONST_ATTR_MPA_HUFFMAN = {
54 /* 0000 */ PTR(16, 2), 54 /* 0000 */ PTR(16, 2),
55 /* 0001 */ PTR(20, 2), 55 /* 0001 */ PTR(20, 2),
56 /* 0010 */ PTR(24, 1), 56 /* 0010 */ PTR(24, 1),
@@ -90,7 +90,7 @@ union huffquad const hufftabA[] ICONST_ATTR = {
90}; 90};
91 91
92static 92static
93union huffquad const hufftabB[] ICONST_ATTR = { 93union huffquad const hufftabB[] ICONST_ATTR_MPA_HUFFMAN = {
94 /* 0000 */ V(1, 1, 1, 1, 4), 94 /* 0000 */ V(1, 1, 1, 1, 4),
95 /* 0001 */ V(1, 1, 1, 0, 4), 95 /* 0001 */ V(1, 1, 1, 0, 4),
96 /* 0010 */ V(1, 1, 0, 1, 4), 96 /* 0010 */ V(1, 1, 0, 1, 4),
@@ -126,12 +126,12 @@ union huffquad const hufftabB[] ICONST_ATTR = {
126# endif 126# endif
127 127
128static 128static
129union huffpair const hufftab0[] ICONST_ATTR = { 129union huffpair const hufftab0[] ICONST_ATTR_MPA_HUFFMAN = {
130 /* */ V(0, 0, 0) 130 /* */ V(0, 0, 0)
131}; 131};
132 132
133static 133static
134union huffpair const hufftab1[] ICONST_ATTR = { 134union huffpair const hufftab1[] ICONST_ATTR_MPA_HUFFMAN = {
135 /* 000 */ V(1, 1, 3), 135 /* 000 */ V(1, 1, 3),
136 /* 001 */ V(0, 1, 3), 136 /* 001 */ V(0, 1, 3),
137 /* 010 */ V(1, 0, 2), 137 /* 010 */ V(1, 0, 2),
@@ -143,7 +143,7 @@ union huffpair const hufftab1[] ICONST_ATTR = {
143}; 143};
144 144
145static 145static
146union huffpair const hufftab2[] ICONST_ATTR = { 146union huffpair const hufftab2[] ICONST_ATTR_MPA_HUFFMAN = {
147 /* 000 */ PTR(8, 3), 147 /* 000 */ PTR(8, 3),
148 /* 001 */ V(1, 1, 3), 148 /* 001 */ V(1, 1, 3),
149 /* 010 */ V(0, 1, 3), 149 /* 010 */ V(0, 1, 3),
@@ -165,7 +165,7 @@ union huffpair const hufftab2[] ICONST_ATTR = {
165}; 165};
166 166
167static 167static
168union huffpair const hufftab3[] ICONST_ATTR = { 168union huffpair const hufftab3[] ICONST_ATTR_MPA_HUFFMAN = {
169 /* 000 */ PTR(8, 3), 169 /* 000 */ PTR(8, 3),
170 /* 001 */ V(1, 0, 3), 170 /* 001 */ V(1, 0, 3),
171 /* 010 */ V(1, 1, 2), 171 /* 010 */ V(1, 1, 2),
@@ -187,7 +187,7 @@ union huffpair const hufftab3[] ICONST_ATTR = {
187}; 187};
188 188
189static 189static
190union huffpair const hufftab5[] ICONST_ATTR = { 190union huffpair const hufftab5[] ICONST_ATTR_MPA_HUFFMAN = {
191 /* 000 */ PTR(8, 4), 191 /* 000 */ PTR(8, 4),
192 /* 001 */ V(1, 1, 3), 192 /* 001 */ V(1, 1, 3),
193 /* 010 */ V(0, 1, 3), 193 /* 010 */ V(0, 1, 3),
@@ -221,7 +221,7 @@ union huffpair const hufftab5[] ICONST_ATTR = {
221}; 221};
222 222
223static 223static
224union huffpair const hufftab6[] ICONST_ATTR = { 224union huffpair const hufftab6[] ICONST_ATTR_MPA_HUFFMAN = {
225 /* 0000 */ PTR(16, 3), 225 /* 0000 */ PTR(16, 3),
226 /* 0001 */ PTR(24, 1), 226 /* 0001 */ PTR(24, 1),
227 /* 0010 */ PTR(26, 1), 227 /* 0010 */ PTR(26, 1),
@@ -259,7 +259,7 @@ union huffpair const hufftab6[] ICONST_ATTR = {
259}; 259};
260 260
261static 261static
262union huffpair const hufftab7[] ICONST_ATTR = { 262union huffpair const hufftab7[] ICONST_ATTR_MPA_HUFFMAN = {
263 /* 0000 */ PTR(16, 4), 263 /* 0000 */ PTR(16, 4),
264 /* 0001 */ PTR(32, 4), 264 /* 0001 */ PTR(32, 4),
265 /* 0010 */ PTR(48, 2), 265 /* 0010 */ PTR(48, 2),
@@ -346,7 +346,7 @@ union huffpair const hufftab7[] ICONST_ATTR = {
346/* this version saves 8 entries (16 bytes) at the expense of 346/* this version saves 8 entries (16 bytes) at the expense of
347 an extra lookup in 4 out of 36 cases */ 347 an extra lookup in 4 out of 36 cases */
348static 348static
349union huffpair const hufftab8[] ICONST_ATTR = { 349union huffpair const hufftab8[] ICONST_ATTR_MPA_HUFFMAN = {
350 /* 0000 */ PTR(16, 4), 350 /* 0000 */ PTR(16, 4),
351 /* 0001 */ PTR(32, 2), 351 /* 0001 */ PTR(32, 2),
352 /* 0010 */ V(1, 2, 4), 352 /* 0010 */ V(1, 2, 4),
@@ -424,7 +424,7 @@ union huffpair const hufftab8[] ICONST_ATTR = {
424}; 424};
425# else 425# else
426static 426static
427union huffpair const hufftab8[] ICONST_ATTR = { 427union huffpair const hufftab8[] ICONST_ATTR_MPA_HUFFMAN = {
428 /* 0000 */ PTR(16, 4), 428 /* 0000 */ PTR(16, 4),
429 /* 0001 */ PTR(32, 4), 429 /* 0001 */ PTR(32, 4),
430 /* 0010 */ V(1, 2, 4), 430 /* 0010 */ V(1, 2, 4),
@@ -509,7 +509,7 @@ union huffpair const hufftab8[] ICONST_ATTR = {
509# endif 509# endif
510 510
511static 511static
512union huffpair const hufftab9[] ICONST_ATTR = { 512union huffpair const hufftab9[] ICONST_ATTR_MPA_HUFFMAN = {
513 /* 0000 */ PTR(16, 4), 513 /* 0000 */ PTR(16, 4),
514 /* 0001 */ PTR(32, 3), 514 /* 0001 */ PTR(32, 3),
515 /* 0010 */ PTR(40, 2), 515 /* 0010 */ PTR(40, 2),
@@ -581,7 +581,7 @@ union huffpair const hufftab9[] ICONST_ATTR = {
581}; 581};
582 582
583static 583static
584union huffpair const hufftab10[] ICONST_ATTR = { 584union huffpair const hufftab10[] ICONST_ATTR_MPA_HUFFMAN = {
585 /* 0000 */ PTR(16, 4), 585 /* 0000 */ PTR(16, 4),
586 /* 0001 */ PTR(32, 4), 586 /* 0001 */ PTR(32, 4),
587 /* 0010 */ PTR(48, 2), 587 /* 0010 */ PTR(48, 2),
@@ -719,7 +719,7 @@ union huffpair const hufftab10[] ICONST_ATTR = {
719}; 719};
720 720
721static 721static
722union huffpair const hufftab11[] ICONST_ATTR = { 722union huffpair const hufftab11[] ICONST_ATTR_MPA_HUFFMAN = {
723 /* 0000 */ PTR(16, 4), 723 /* 0000 */ PTR(16, 4),
724 /* 0001 */ PTR(32, 4), 724 /* 0001 */ PTR(32, 4),
725 /* 0010 */ PTR(48, 4), 725 /* 0010 */ PTR(48, 4),
@@ -855,7 +855,7 @@ union huffpair const hufftab11[] ICONST_ATTR = {
855}; 855};
856 856
857static 857static
858union huffpair const hufftab12[] ICONST_ATTR = { 858union huffpair const hufftab12[] ICONST_ATTR_MPA_HUFFMAN = {
859 /* 0000 */ PTR(16, 4), 859 /* 0000 */ PTR(16, 4),
860 /* 0001 */ PTR(32, 4), 860 /* 0001 */ PTR(32, 4),
861 /* 0010 */ PTR(48, 4), 861 /* 0010 */ PTR(48, 4),
@@ -983,7 +983,7 @@ union huffpair const hufftab12[] ICONST_ATTR = {
983}; 983};
984 984
985static 985static
986union huffpair const hufftab13[] ICONST_ATTR = { 986union huffpair const hufftab13[] ICONST_ATTR_MPA_HUFFMAN = {
987 /* 0000 */ PTR(16, 4), 987 /* 0000 */ PTR(16, 4),
988 /* 0001 */ PTR(32, 4), 988 /* 0001 */ PTR(32, 4),
989 /* 0010 */ PTR(48, 4), 989 /* 0010 */ PTR(48, 4),
@@ -1509,7 +1509,7 @@ union huffpair const hufftab13[] ICONST_ATTR = {
1509}; 1509};
1510 1510
1511static 1511static
1512union huffpair const hufftab15[] ICONST_ATTR = { 1512union huffpair const hufftab15[] ICONST_ATTR_MPA_HUFFMAN = {
1513 /* 0000 */ PTR(16, 4), 1513 /* 0000 */ PTR(16, 4),
1514 /* 0001 */ PTR(32, 4), 1514 /* 0001 */ PTR(32, 4),
1515 /* 0010 */ PTR(48, 4), 1515 /* 0010 */ PTR(48, 4),
@@ -2017,7 +2017,7 @@ union huffpair const hufftab15[] ICONST_ATTR = {
2017}; 2017};
2018 2018
2019static 2019static
2020union huffpair const hufftab16[] ICONST_ATTR = { 2020union huffpair const hufftab16[] ICONST_ATTR_MPA_HUFFMAN = {
2021 /* 0000 */ PTR(16, 4), 2021 /* 0000 */ PTR(16, 4),
2022 /* 0001 */ PTR(32, 4), 2022 /* 0001 */ PTR(32, 4),
2023 /* 0010 */ PTR(48, 4), 2023 /* 0010 */ PTR(48, 4),
@@ -2551,7 +2551,7 @@ union huffpair const hufftab16[] ICONST_ATTR = {
2551}; 2551};
2552 2552
2553static 2553static
2554union huffpair const hufftab24[] ICONST_ATTR = { 2554union huffpair const hufftab24[] ICONST_ATTR_MPA_HUFFMAN = {
2555 /* 0000 */ PTR(16, 4), 2555 /* 0000 */ PTR(16, 4),
2556 /* 0001 */ PTR(32, 4), 2556 /* 0001 */ PTR(32, 4),
2557 /* 0010 */ PTR(48, 4), 2557 /* 0010 */ PTR(48, 4),
diff --git a/apps/codecs/libmusepack/musepack.h b/apps/codecs/libmusepack/musepack.h
index 549ea798a9..7e65c75c5a 100644
--- a/apps/codecs/libmusepack/musepack.h
+++ b/apps/codecs/libmusepack/musepack.h
@@ -52,6 +52,10 @@ extern "C" {
52#include "reader.h" 52#include "reader.h"
53#include "streaminfo.h" 53#include "streaminfo.h"
54 54
55#ifndef IBSS_ATTR_MPC_SAMPLE_BUF
56#define IBSS_ATTR_MPC_SAMPLE_BUF IBSS_ATTR
57#endif
58
55#ifdef ROCKBOX_LITTLE_ENDIAN 59#ifdef ROCKBOX_LITTLE_ENDIAN
56#define MPC_LITTLE_ENDIAN 60#define MPC_LITTLE_ENDIAN
57#endif 61#endif
diff --git a/apps/codecs/mpc.c b/apps/codecs/mpc.c
index f9622f894b..821b3ce25e 100644
--- a/apps/codecs/mpc.c
+++ b/apps/codecs/mpc.c
@@ -63,7 +63,8 @@ mpc_bool_t canseek_impl(void *data)
63 return true; 63 return true;
64} 64}
65 65
66MPC_SAMPLE_FORMAT sample_buffer[MPC_DECODER_BUFFER_LENGTH] IBSS_ATTR; 66MPC_SAMPLE_FORMAT sample_buffer[MPC_DECODER_BUFFER_LENGTH]
67IBSS_ATTR_MPC_SAMPLE_BUF;
67mpc_uint32_t seek_table[10000]; 68mpc_uint32_t seek_table[10000];
68 69
69#ifdef USE_IRAM 70#ifdef USE_IRAM
diff --git a/apps/codecs/shorten.c b/apps/codecs/shorten.c
index c571df8c7a..a7fc601ae5 100644
--- a/apps/codecs/shorten.c
+++ b/apps/codecs/shorten.c
@@ -20,6 +20,10 @@
20#include "codeclib.h" 20#include "codeclib.h"
21#include <codecs/libffmpegFLAC/shndec.h> 21#include <codecs/libffmpegFLAC/shndec.h>
22 22
23#ifndef IBSS_ATTR_SHORTEN_DECODED0
24#define IBSS_ATTR_SHORTEN_DECODED0 IBSS_ATTR
25#endif
26
23CODEC_HEADER 27CODEC_HEADER
24 28
25#ifdef USE_IRAM 29#ifdef USE_IRAM
@@ -33,7 +37,7 @@ extern char iend[];
33struct codec_api* rb; 37struct codec_api* rb;
34struct codec_api* ci; 38struct codec_api* ci;
35 39
36int32_t decoded0[MAX_DECODE_SIZE] IBSS_ATTR; 40int32_t decoded0[MAX_DECODE_SIZE] IBSS_ATTR_SHORTEN_DECODED0;
37int32_t decoded1[MAX_DECODE_SIZE] IBSS_ATTR; 41int32_t decoded1[MAX_DECODE_SIZE] IBSS_ATTR;
38 42
39int32_t offset0[MAX_OFFSET_SIZE] IBSS_ATTR; 43int32_t offset0[MAX_OFFSET_SIZE] IBSS_ATTR;
diff --git a/apps/playback.c b/apps/playback.c
index f1589ac22e..892bd15105 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -176,6 +176,10 @@ enum {
176#endif 176#endif
177#define CODEC_IRAM_SIZE 0xc000 177#define CODEC_IRAM_SIZE 0xc000
178 178
179#ifndef IBSS_ATTR_VOICE_STACK
180#define IBSS_ATTR_VOICE_STACK IBSS_ATTR
181#endif
182
179#ifndef SIMULATOR 183#ifndef SIMULATOR
180extern bool audio_is_initialized; 184extern bool audio_is_initialized;
181#else 185#else
@@ -278,7 +282,7 @@ extern struct codec_api ci_voice;
278static struct thread_entry *voice_thread_p = NULL; 282static struct thread_entry *voice_thread_p = NULL;
279static struct event_queue voice_queue; 283static struct event_queue voice_queue;
280static long voice_stack[(DEFAULT_STACK_SIZE + 0x2000)/sizeof(long)] 284static long voice_stack[(DEFAULT_STACK_SIZE + 0x2000)/sizeof(long)]
281IBSS_ATTR; 285IBSS_ATTR_VOICE_STACK;
282static const char voice_thread_name[] = "voice codec"; 286static const char voice_thread_name[] = "voice codec";
283 287
284/* Voice codec swapping control */ 288/* Voice codec swapping control */
diff --git a/firmware/export/config-ifp7xx.h b/firmware/export/config-ifp7xx.h
index 9b8693a659..b0724f6e83 100644
--- a/firmware/export/config-ifp7xx.h
+++ b/firmware/export/config-ifp7xx.h
@@ -97,4 +97,14 @@
97#define BOOTFILE_EXT "iriver" 97#define BOOTFILE_EXT "iriver"
98#define BOOTFILE "rockbox." BOOTFILE_EXT 98#define BOOTFILE "rockbox." BOOTFILE_EXT
99 99
100#define IBSS_ATTR_VOICE_STACK
101#define ICODE_ATTR_TREMOR_NOT_MDCT
102#define ICODE_ATTR_TREMOR_MDCT
103#define ICODE_ATTR_FLAC
104#define IBSS_ATTR_FLAC_DECODED0
105#define ICONST_ATTR_MPA_HUFFMAN
106#define IBSS_ATTR_MPC_SAMPLE_BUF
107#define ICODE_ATTR_ALAC
108#define IBSS_ATTR_SHORTEN_DECODED0
109
100#endif 110#endif
diff --git a/firmware/export/config-ipod3g.h b/firmware/export/config-ipod3g.h
index 1cb4f883f7..33609044af 100644
--- a/firmware/export/config-ipod3g.h
+++ b/firmware/export/config-ipod3g.h
@@ -123,4 +123,6 @@
123#define BOOTFILE_EXT "ipod" 123#define BOOTFILE_EXT "ipod"
124#define BOOTFILE "rockbox." BOOTFILE_EXT 124#define BOOTFILE "rockbox." BOOTFILE_EXT
125 125
126#define ICODE_ATTR_TREMOR_NOT_MDCT
127
126#endif /* SIMULATOR */ 128#endif /* SIMULATOR */
diff --git a/firmware/export/config-ipod4g.h b/firmware/export/config-ipod4g.h
index 065c653fab..bf8d5359f8 100644
--- a/firmware/export/config-ipod4g.h
+++ b/firmware/export/config-ipod4g.h
@@ -128,4 +128,6 @@
128#define BOOTFILE_EXT "ipod" 128#define BOOTFILE_EXT "ipod"
129#define BOOTFILE "rockbox." BOOTFILE_EXT 129#define BOOTFILE "rockbox." BOOTFILE_EXT
130 130
131#define ICODE_ATTR_TREMOR_NOT_MDCT
132
131#endif 133#endif
diff --git a/firmware/export/config-ipodcolor.h b/firmware/export/config-ipodcolor.h
index efc57265a0..de06b223e5 100644
--- a/firmware/export/config-ipodcolor.h
+++ b/firmware/export/config-ipodcolor.h
@@ -119,4 +119,6 @@
119#define BOOTFILE_EXT "ipod" 119#define BOOTFILE_EXT "ipod"
120#define BOOTFILE "rockbox." BOOTFILE_EXT 120#define BOOTFILE "rockbox." BOOTFILE_EXT
121 121
122#define ICODE_ATTR_TREMOR_NOT_MDCT
123
122#endif 124#endif
diff --git a/firmware/export/config-ipodmini.h b/firmware/export/config-ipodmini.h
index 2e5da2e447..6ffb8637ff 100644
--- a/firmware/export/config-ipodmini.h
+++ b/firmware/export/config-ipodmini.h
@@ -125,4 +125,6 @@
125#define BOOTFILE_EXT "ipod" 125#define BOOTFILE_EXT "ipod"
126#define BOOTFILE "rockbox." BOOTFILE_EXT 126#define BOOTFILE "rockbox." BOOTFILE_EXT
127 127
128#define ICODE_ATTR_TREMOR_NOT_MDCT
129
128#endif 130#endif
diff --git a/firmware/export/config-ipodmini2g.h b/firmware/export/config-ipodmini2g.h
index 8f1fc1ad9f..c0822baef4 100755
--- a/firmware/export/config-ipodmini2g.h
+++ b/firmware/export/config-ipodmini2g.h
@@ -131,4 +131,6 @@
131#define BOOTFILE_EXT "ipod" 131#define BOOTFILE_EXT "ipod"
132#define BOOTFILE "rockbox." BOOTFILE_EXT 132#define BOOTFILE "rockbox." BOOTFILE_EXT
133 133
134#define ICODE_ATTR_TREMOR_NOT_MDCT
135
134#endif 136#endif
diff --git a/firmware/export/config-ipodnano.h b/firmware/export/config-ipodnano.h
index db85fa8ee8..3dd0575b1b 100644
--- a/firmware/export/config-ipodnano.h
+++ b/firmware/export/config-ipodnano.h
@@ -124,4 +124,6 @@
124#define BOOTFILE_EXT "ipod" 124#define BOOTFILE_EXT "ipod"
125#define BOOTFILE "rockbox." BOOTFILE_EXT 125#define BOOTFILE "rockbox." BOOTFILE_EXT
126 126
127#define ICODE_ATTR_TREMOR_NOT_MDCT
128
127#endif 129#endif
diff --git a/firmware/export/config-ipodvideo.h b/firmware/export/config-ipodvideo.h
index 543bfbfe65..0caa2f2421 100644
--- a/firmware/export/config-ipodvideo.h
+++ b/firmware/export/config-ipodvideo.h
@@ -124,4 +124,6 @@
124#define BOOTFILE_EXT "ipod" 124#define BOOTFILE_EXT "ipod"
125#define BOOTFILE "rockbox." BOOTFILE_EXT 125#define BOOTFILE "rockbox." BOOTFILE_EXT
126 126
127#define ICODE_ATTR_TREMOR_NOT_MDCT
128
127#endif 129#endif