io.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
- /*
- * linux/include/asm-arm/arch-tbox/io.h
- *
- * Copyright (C) 1996-1999 Russell King
- * Copyright (C) 1998, 1999 Philip Blundell
- *
- */
- #ifndef __ASM_ARM_ARCH_IO_H
- #define __ASM_ARM_ARCH_IO_H
- #define IO_SPACE_LIMIT 0xffffffff
- #define __io(_x) ((_x) << 2)
- /*
- * Generic virtual read/write
- */
- static inline unsigned int __arch_getw(unsigned long a)
- {
- unsigned int value;
- __asm__ __volatile__("ldr%?h %0, [%1, #0] @ getw"
- : "=&r" (value)
- : "r" (a));
- return value;
- }
- static inline void __arch_putw(unsigned int value, unsigned long a)
- {
- __asm__ __volatile__("str%?h %0, [%1, #0] @ putw"
- : : "r" (value), "r" (a));
- }
- /* Idem, for devices on the upper byte lanes */
- #define inb_u(p) __arch_getb(__io_pc(p) + 2)
- #define inw_u(p) __arch_getw(__io_pc(p) + 2)
- #define outb_u(v,p) __arch_putb(v,__io_pc(p) + 2)
- #define outw_u(v,p) __arch_putw(v,__io_pc(p) + 2)
- #endif