summaryrefslogtreecommitdiff
path: root/firmware/export/system.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/export/system.h')
-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];