425a8eeafebe2c94b1169aa30a95c3ac8b6506f0
[rpikern] / src / asm.h
1 #ifndef ASM_H_
2 #define ASM_H_
3
4 #define enable_intr()   asm volatile ("cpsie i")
5 #define disable_intr()  asm volatile ("cpsid i")
6 #define mem_barrier()   asm volatile ("dmb" ::: "memory")
7
8 #define delay(x)  asm volatile ( \
9                 "0: subs %0, %0, #1\n\t" \
10                 "bne 0b\n\t" \
11                 :: "r"(x) : "cc")
12
13 #define halt_cpu() asm volatile("wfe");
14
15 #endif  /* ASM_H_ */