peekpoke.h 2.1 KB

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