123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- do { \
- __asm __volatile("setpsw i\n"); \
- } while (0)
- do { \
- __asm __volatile("clrpsw i\n"); \
- } while (0)
- ({ \
- bool ret; \
- __asm __volatile( \
- "mvfc psw, %0\n" \
- "btst #16, %0\n" \
- "sceq.l %0\n" \
- : "=r" (ret) \
- : \
- : \
- ); \
- ret; \
- })
- { \
- bool _di = isNoInterrupts();
- if (_di) { \
- cli(); \
- } else { \
- sei(); \
- } \
- }
- do { \
- volatile byte* _port = (port); \
- int _bit = (bit); \
- __asm __volatile( \
- "bset %1, [%0].b\n" \
- : \
- : "r" (_port), "r" (_bit) \
- : \
- ); \
- } while (0)
- do { \
- volatile byte* _port = (port); \
- int _bit = (bit); \
- __asm __volatile( \
- "bclr %1, [%0].b\n" \
- : \
- : "r" (_port), "r" (_bit) \
- : \
- ); \
- } while (0)
- ({ \
- volatile byte* _port = (port); \
- int _bit = (bit); \
- int ret; \
- __asm __volatile( \
- "btst %2, [%1].b\n" \
- "scnz.l %0\n" \
- : "=r" (ret) \
- : "r" (_port), "r" (_bit) \
- : \
- ); \
- ret; \
- })
- do { \
- *port = *port | (1 << bit); \
- } while (0)
- do { \
- *port = *port & ~(1 << bit); \
- } while (0)
|