home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / alpha / include / asm / vga.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  2.0 KB  |  83 lines

  1. /*
  2.  *    Access to VGA videoram
  3.  *
  4.  *    (c) 1998 Martin Mares <mj@ucw.cz>
  5.  */
  6.  
  7. #ifndef _LINUX_ASM_VGA_H_
  8. #define _LINUX_ASM_VGA_H_
  9.  
  10. #include <asm/io.h>
  11.  
  12. #define VT_BUF_HAVE_RW
  13. #define VT_BUF_HAVE_MEMSETW
  14. #define VT_BUF_HAVE_MEMCPYW
  15.  
  16. static inline void scr_writew(u16 val, volatile u16 *addr)
  17. {
  18.     if (__is_ioaddr(addr))
  19.         __raw_writew(val, (volatile u16 __iomem *) addr);
  20.     else
  21.         *addr = val;
  22. }
  23.  
  24. static inline u16 scr_readw(volatile const u16 *addr)
  25. {
  26.     if (__is_ioaddr(addr))
  27.         return __raw_readw((volatile const u16 __iomem *) addr);
  28.     else
  29.         return *addr;
  30. }
  31.  
  32. static inline void scr_memsetw(u16 *s, u16 c, unsigned int count)
  33. {
  34.     if (__is_ioaddr(s))
  35.         memsetw_io((u16 __iomem *) s, c, count);
  36.     else
  37.         memsetw(s, c, count);
  38. }
  39.  
  40. /* Do not trust that the usage will be correct; analyze the arguments.  */
  41. extern void scr_memcpyw(u16 *d, const u16 *s, unsigned int count);
  42.  
  43. /* ??? These are currently only used for downloading character sets.  As
  44.    such, they don't need memory barriers.  Is this all they are intended
  45.    to be used for?  */
  46. #define vga_readb(a)    readb((u8 __iomem *)(a))
  47. #define vga_writeb(v,a)    writeb(v, (u8 __iomem *)(a))
  48.  
  49. #ifdef CONFIG_VGA_HOSE
  50. #include <linux/ioport.h>
  51. #include <linux/pci.h>
  52.  
  53. extern struct pci_controller *pci_vga_hose;
  54.  
  55. # define __is_port_vga(a)       \
  56.     (((a) >= 0x3b0) && ((a) < 0x3e0) && \
  57.      ((a) != 0x3b3) && ((a) != 0x3d3))
  58.  
  59. # define __is_mem_vga(a) \
  60.     (((a) >= 0xa0000) && ((a) <= 0xc0000))
  61.  
  62. # define FIXUP_IOADDR_VGA(a) do {                       \
  63.     if (pci_vga_hose && __is_port_vga(a))     \
  64.         (a) += pci_vga_hose->io_space->start;      \
  65.  } while(0)
  66.  
  67. # define FIXUP_MEMADDR_VGA(a) do {                       \
  68.     if (pci_vga_hose && __is_mem_vga(a))     \
  69.         (a) += pci_vga_hose->mem_space->start; \
  70.  } while(0)
  71.  
  72. #else /* CONFIG_VGA_HOSE */
  73. # define pci_vga_hose 0
  74. # define __is_port_vga(a) 0
  75. # define __is_mem_vga(a) 0
  76. # define FIXUP_IOADDR_VGA(a)
  77. # define FIXUP_MEMADDR_VGA(a)
  78. #endif /* CONFIG_VGA_HOSE */
  79.  
  80. #define VGA_MAP_MEM(x,s)    ((unsigned long) ioremap(x, s))
  81.  
  82. #endif
  83.