summaryrefslogtreecommitdiffstats
path: root/firmware/common
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2014-08-29 23:36:11 -0400
committerMichael Sevakis <jethead71@rockbox.org>2014-08-29 23:36:11 -0400
commitf3d60aea34de60c4371c04fa1b8482ca71a64b53 (patch)
treeda90e55f804b4d9a9e93e48ff21416f9182801ca /firmware/common
parent17a007bc60c69d6ea471a96a465e04ba4ac2d00f (diff)
downloadrockbox-f3d60aea34de60c4371c04fa1b8482ca71a64b53.tar.gz
rockbox-f3d60aea34de60c4371c04fa1b8482ca71a64b53.tar.bz2
rockbox-f3d60aea34de60c4371c04fa1b8482ca71a64b53.zip
Hopefully fix most of the errors and warnings from the last push
Change-Id: I1a466b2d55f120796910039a0296ca324c58e891
Diffstat (limited to 'firmware/common')
-rw-r--r--firmware/common/file_internal.c3
-rw-r--r--firmware/common/unicode.c28
2 files changed, 25 insertions, 6 deletions
diff --git a/firmware/common/file_internal.c b/firmware/common/file_internal.c
index ebe77f0c9f..e5b43cd19d 100644
--- a/firmware/common/file_internal.c
+++ b/firmware/common/file_internal.c
@@ -36,7 +36,8 @@
/* for internal functions' scanning use to save quite a bit of stack space -
access must be serialized by the writer lock */
-#if defined(CPU_SH) || defined(IAUDIO_M5)
+#if defined(CPU_SH) || defined(IAUDIO_M5) \
+ || CONFIG_CPU == IMX233
/* otherwise, out of IRAM */
struct fat_direntry dir_fatent;
#else
diff --git a/firmware/common/unicode.c b/firmware/common/unicode.c
index 954ad47e1d..8988686b70 100644
--- a/firmware/common/unicode.c
+++ b/firmware/common/unicode.c
@@ -54,6 +54,7 @@
#else /* APPLICATION */
#ifdef __PCTOOL__
#define yield()
+#define DEFAULT_CP_STATIC_ALLOC
#endif
#define open_noiso_internal open
#endif /* !APPLICATION */
@@ -182,6 +183,23 @@ const char *get_current_codepage_name_linux(void)
}
#endif /* defined(APPLICATION) && defined(__linux__) */
+#ifdef DEFAULT_CP_STATIC_ALLOC
+static unsigned short default_cp_table_buf[MAX_CP_TABLE_SIZE+1];
+#define cp_table_get_data(handle) \
+ default_cp_table_buf
+#define cp_table_free(handle) \
+ do {} while (0)
+#define cp_table_alloc(filename, size, opsp) \
+ ({ (void)(opsp); 1; })
+#else
+#define cp_table_alloc(filename, size, opsp) \
+ core_alloc_ex((filename), (size), (opsp))
+#define cp_table_free(handle) \
+ core_free(handle)
+#define cp_table_get_data(handle) \
+ core_get_data(handle)
+#endif
+
static const unsigned char utf8comp[6] =
{
0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC
@@ -233,9 +251,9 @@ static int alloc_and_load_cp_table(int cp, void *buf)
!(size % (off_t)sizeof (uint16_t))) {
/* if the buffer is provided, use that but don't alloc */
- int handle = buf ? 0 : core_alloc_ex(filename, size, &ops);
+ int handle = buf ? 0 : cp_table_alloc(filename, size, &ops);
if (handle > 0)
- buf = core_get_data(handle);
+ buf = cp_table_get_data(handle);
if (buf && read(fd, buf, size) == size) {
close(fd);
@@ -244,7 +262,7 @@ static int alloc_and_load_cp_table(int cp, void *buf)
}
if (handle > 0)
- core_free(handle);
+ cp_table_free(handle);
}
close(fd);
@@ -284,7 +302,7 @@ unsigned char* iso_decode(const unsigned char *iso, unsigned char *utf8,
if (tid == default_cp_tid) {
/* use default table */
if (default_cp_handle > 0) {
- table = core_get_data(default_cp_handle);
+ table = cp_table_get_data(default_cp_handle);
default_cp_table_ref++;
}
@@ -564,7 +582,7 @@ void set_codepage(int cp)
cp_lock_leave();
if (handle > 0)
- core_free(handle);
+ cp_table_free(handle);
}
int get_codepage(void)