altos: Add ao_arch_block/release_interrupts to avr and cc1111
authorKeith Packard <keithp@keithp.com>
Thu, 25 Oct 2012 06:21:38 +0000 (23:21 -0700)
committerKeith Packard <keithp@keithp.com>
Thu, 25 Oct 2012 07:07:14 +0000 (00:07 -0700)
Stop using cli/sei for AVR, add replacement to __critical for cc1111

Signed-off-by: Keith Packard <keithp@keithp.com>
src/avr/ao_arch.h
src/cc1111/ao_arch.h

index 96659aaf9c530c92fd16837b0975724da34a0918..c82612a8ca12bf98666cc7f2970b147229ca6657 100644 (file)
@@ -150,6 +150,9 @@ extern uint8_t      ao_cpu_sleep_disable;
 
 #define ao_arch_critical(b) do { cli(); do { b } while (0); sei(); } while (0)
 
+#define ao_arch_block_interrupts()     cli()
+#define ao_arch_release_interrupts()   sei()
+
 #define AO_TELESCIENCE_NUM_ADC 12
 
 #endif /* _AO_ARCH_H_ */
index 7fdfad80825cbbd22fffe62d6e0b89e7d52bd0f3..f2442eb69775c36a98d54df3ca543731fb35c65c 100644 (file)
@@ -153,6 +153,11 @@ extern AO_ROMCONFIG_SYMBOL(0x00a6) uint32_t ao_radio_cal;
 
 #define ao_arch_cpu_idle()     (PCON = PCON_IDLE)
 
+#define ao_arch_block_interrupts()     __asm clr ea __endasm
+#define ao_arch_release_interrupts()   __asm setb ea __endasm
+#define cli() ao_arch_block_interrupts()
+#define sei() ao_arch_release_interrupts()
+
 #define ao_arch_restore_stack() {                                      \
                uint8_t stack_len;                                      \
                __data uint8_t *stack_ptr;                              \