|
@@ -12,11 +12,13 @@
|
|
|
#define peekIO_bit(port,bit) (!!(*((volatile unsigned char*)(long)(port))&(1<<(bit))))
|
|
|
#define peekIO_w(port) (*((volatile unsigned short*)(long)(port)))
|
|
|
#define poke(addr,val) (void)(*((unsigned char*)(long)(addr))=(val))
|
|
|
+#define poke_bchg(__dest_addr__,__bit_nr__) ({register char *__addr_temp__=(char *)(__dest_addr__);asm("bchg.b %1,%0":"+dm"(*__addr_temp__):"di"(__bit_nr__));})
|
|
|
#define poke_bclr(__dest_addr__,__bit_nr__) ({register char *__addr_temp__=(char *)(__dest_addr__);asm("bclr.b %1,%0":"+dm"(*__addr_temp__):"di"(__bit_nr__));})
|
|
|
#define poke_bset(__dest_addr__,__bit_nr__) ({register char *__addr_temp__=(char *)(__dest_addr__);asm("bset.b %1,%0":"+dm"(*__addr_temp__):"di"(__bit_nr__));})
|
|
|
#define poke_l(addr,val) (void)(*((unsigned long*)(long)(addr))=(val))
|
|
|
#define poke_w(addr,val) (void)(*((unsigned short*)(long)(addr))=(val))
|
|
|
#define pokeIO(port,val) (void)(*((volatile unsigned char*)(long)(port))=(val))
|
|
|
+#define pokeIO_bchg(__dest_addr__,__bit_nr__) ({register char *__addr_temp__=(char *)(__dest_addr__);asm("bchg.b %1,%0":"+dm"(*__addr_temp__):"di"(__bit_nr__));})
|
|
|
#define pokeIO_bclr(__dest_addr__,__bit_nr__) ({register char *__addr_temp__=(char *)(__dest_addr__);asm("bclr.b %1,%0":"+dm"(*__addr_temp__):"di"(__bit_nr__));})
|
|
|
#define pokeIO_bset(__dest_addr__,__bit_nr__) ({register char *__addr_temp__=(char *)(__dest_addr__);asm("bset.b %1,%0":"+dm"(*__addr_temp__):"di"(__bit_nr__));})
|
|
|
#define pokeIO_w(port,val) (void)(*((volatile unsigned short*)(long)(port))=(val))
|