summaryrefslogtreecommitdiff
path: root/firmware/export
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2004-03-02 11:32:59 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2004-03-02 11:32:59 +0000
commit111a972b65f5fcc2ef98a5164d0367e7e50f4b09 (patch)
tree84cdb473f8c439575ac99d90f94d636e7f25e731 /firmware/export
parentaa5b23d6162a5ac6cbfc1d871ed9360ffa946c56 (diff)
downloadrockbox-111a972b65f5fcc2ef98a5164d0367e7e50f4b09.tar.gz
rockbox-111a972b65f5fcc2ef98a5164d0367e7e50f4b09.zip
Made set_irq_level() an inline function, and optimized it by removing the bit shifts
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4330 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/export')
-rw-r--r--firmware/export/system.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/firmware/export/system.h b/firmware/export/system.h
index 5886145d7b..038d9567e0 100644
--- a/firmware/export/system.h
+++ b/firmware/export/system.h
@@ -25,7 +25,6 @@
25 25
26extern void system_reboot (void); 26extern void system_reboot (void);
27extern void system_init(void); 27extern void system_init(void);
28extern int set_irq_level(int level);
29 28
30#define FREQ CPU_FREQ 29#define FREQ CPU_FREQ
31#define BAUDRATE 9600 30#define BAUDRATE 9600
@@ -73,6 +72,20 @@ extern int set_irq_level(int level);
73 72
74#ifndef SIMULATOR 73#ifndef SIMULATOR
75 74
75/****************************************************************************
76 * Interrupt level setting
77 * The level is left shifted 4 bits
78 ****************************************************************************/
79#define HIGHEST_IRQ_LEVEL (15<<4)
80static inline int set_irq_level(int level)
81{
82 int i;
83 /* Read the old level and set the new one */
84 asm volatile ("stc sr, %0" : "=r" (i));
85 asm volatile ("ldc %0, sr" : : "r" (level));
86 return i;
87}
88
76static inline short SWAB16(short value) 89static inline short SWAB16(short value)
77 /* 90 /*
78 result[15..8] = value[ 7..0]; 91 result[15..8] = value[ 7..0];