peekpoke.h 2.1 KB

123456789101112131415161718192021222324252627282930
  1. #ifndef __PEEKPOKE
  2. #define __PEEKPOKE
  3. #include <default.h>
  4. /* Begin Auto-Generated Part */
  5. #define peek_bit(addr,bit) (!!(*((unsigned char*)(long)(addr))&(1<<(bit))))
  6. #define peek_l(addr) (*((unsigned long*)(long)(addr)))
  7. #define peek_w(addr) (*((unsigned short*)(long)(addr)))
  8. #define peek(addr) (*((unsigned char*)(long)(addr)))
  9. #define peekIO_bit(port,bit) (!!(*((volatile unsigned char*)(long)(port))&(1<<(bit))))
  10. #define peekIO_w(port) (*((volatile unsigned short*)(long)(port)))
  11. #define peekIO(port) (*((volatile unsigned char*)(long)(port)))
  12. #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__));})
  13. #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__));})
  14. #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__));})
  15. #define poke_l(addr,val) (void)(*((unsigned long*)(long)(addr))=(val))
  16. #define poke_w(addr,val) (void)(*((unsigned short*)(long)(addr))=(val))
  17. #define poke(addr,val) (void)(*((unsigned char*)(long)(addr))=(val))
  18. #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__));})
  19. #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__));})
  20. #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__));})
  21. #define pokeIO_w(port,val) (void)(*((volatile unsigned short*)(long)(port))=(val))
  22. #define pokeIO(port,val) (void)(*((volatile unsigned char*)(long)(port))=(val))
  23. #define speek_l(addr) (*((signed long*)(long)(addr)))
  24. #define speek_w(addr) (*((signed short*)(long)(addr)))
  25. #define speek(addr) (*((signed char*)(long)(addr)))
  26. /* End Auto-Generated Part */
  27. #endif