io.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. #ifndef _ASM_IO_H
  2. #define _ASM_IO_H
  3. #include <linux/config.h>
  4. #include <linux/types.h>
  5. #include <asm/gsc.h>
  6. #define virt_to_phys(a) ((unsigned long)__pa(a))
  7. #define phys_to_virt(a) __va(a)
  8. #define virt_to_bus virt_to_phys
  9. #define bus_to_virt phys_to_virt
  10. #define inb_p inb
  11. #define inw_p inw
  12. #define inl_p inl
  13. #define outb_p outb
  14. #define outw_p outw
  15. #define outl_p outl
  16. #define readb gsc_readb
  17. #define readw gsc_readw
  18. #define readl gsc_readl
  19. #define writeb gsc_writeb
  20. #define writew gsc_writew
  21. #define writel gsc_writel
  22. #if defined(CONFIG_PCI) || defined(CONFIG_ISA)
  23. /*
  24.  * So we get clear link errors 
  25.  */
  26. extern u8 inb(unsigned long addr);
  27. extern u16 inw(unsigned long addr);
  28. extern u32 inl(unsigned long addr);
  29. extern void outb(unsigned char b, unsigned long addr);
  30. extern void outw(unsigned short b, unsigned long addr);
  31. extern void outl(u32 b, unsigned long addr);
  32. static inline void memcpy_toio(void *dest, void *src, int count) 
  33. {
  34. while(count--)
  35. writeb(*((char *)src)++, (char *)dest++);
  36. }
  37. #endif
  38. /* IO Port space is :      BBiiii   where BB is HBA number. */
  39. #define IO_SPACE_LIMIT 0x00ffffff
  40. /* Right now we don't support Dino-on-a-card and V class which do PCI MMIO
  41.  * through address/data registers. */
  42. #define ioremap(__offset, __size) ((void *)(__offset))
  43. #define iounmap(__addr)
  44. #define dma_cache_inv(_start,_size) do { flush_kernel_dcache_range(_start,_size); } while(0)
  45. #define dma_cache_wback(_start,_size) do { flush_kernel_dcache_range(_start,_size); } while (0)
  46. #define dma_cache_wback_inv(_start,_size) do { flush_kernel_dcache_range(_start,_size); } while (0)
  47. #endif