diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2004-03-02 11:32:59 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2004-03-02 11:32:59 +0000 |
commit | 111a972b65f5fcc2ef98a5164d0367e7e50f4b09 (patch) | |
tree | 84cdb473f8c439575ac99d90f94d636e7f25e731 /firmware/export | |
parent | aa5b23d6162a5ac6cbfc1d871ed9360ffa946c56 (diff) | |
download | rockbox-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.h | 15 |
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 | ||
26 | extern void system_reboot (void); | 26 | extern void system_reboot (void); |
27 | extern void system_init(void); | 27 | extern void system_init(void); |
28 | extern 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) | ||
80 | static 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 | |||
76 | static inline short SWAB16(short value) | 89 | static inline short SWAB16(short value) |
77 | /* | 90 | /* |
78 | result[15..8] = value[ 7..0]; | 91 | result[15..8] = value[ 7..0]; |