1 #ifndef SUNXI_HAL_ATOMIC_H 2 #define SUNXI_HAL_ATOMIC_H 3 4 #ifdef __cplusplus 5 extern "C" 6 { 7 #endif 8 #ifdef CONFIG_KERNEL_FREERTOS 9 #ifdef CONFIG_CORE_DSP0 10 #include <spinlock.h> 11 typedef unsigned int hal_spinlock_t; 12 #else 13 #include <spinlock.h> 14 typedef freert_spinlock_t hal_spinlock_t; 15 #endif /* CONFIG_CORE_DSP0 */ 16 #else 17 #include <arch.h> 18 /* TODO: define melis_spinlock_t in melis, not here */ 19 typedef unsigned int melis_spinlock_t; 20 typedef melis_spinlock_t hal_spinlock_t; 21 #endif 22 #include <stdint.h> 23 #include <stddef.h> 24 25 void hal_spin_lock(hal_spinlock_t *lock); 26 void hal_spin_unlock(hal_spinlock_t *lock); 27 28 uint32_t hal_spin_lock_irqsave(hal_spinlock_t *lock); 29 void hal_spin_unlock_irqrestore(hal_spinlock_t *lock, uint32_t __cpsr); 30 31 #ifdef __cplusplus 32 } 33 #endif 34 #endif 35