From 7d34811ba035367bbf26a8510265754f3fbb5a95 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 24 Oct 2012 23:21:38 -0700 Subject: [PATCH] altos: Add ao_arch_block/release_interrupts to avr and cc1111 Stop using cli/sei for AVR, add replacement to __critical for cc1111 Signed-off-by: Keith Packard --- src/avr/ao_arch.h | 3 +++ src/cc1111/ao_arch.h | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/src/avr/ao_arch.h b/src/avr/ao_arch.h index 96659aaf..c82612a8 100644 --- a/src/avr/ao_arch.h +++ b/src/avr/ao_arch.h @@ -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_ */ diff --git a/src/cc1111/ao_arch.h b/src/cc1111/ao_arch.h index 7fdfad80..f2442eb6 100644 --- a/src/cc1111/ao_arch.h +++ b/src/cc1111/ao_arch.h @@ -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; \ -- 2.30.2