Home | History | Annotate | Download | only in linux
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ****************************************************************************
     11  ****************************************************************************/
     12 #ifndef _LINUX_IOPORT_H
     13 #define _LINUX_IOPORT_H
     14 
     15 #include <linux/compiler.h>
     16 #include <linux/types.h>
     17 
     18 struct resource {
     19  resource_size_t start;
     20  resource_size_t end;
     21  const char *name;
     22  unsigned long flags;
     23  struct resource *parent, *sibling, *child;
     24 };
     25 
     26 struct resource_list {
     27  struct resource_list *next;
     28  struct resource *res;
     29  struct pci_dev *dev;
     30 };
     31 
     32 #define IORESOURCE_BITS 0x000000ff
     33 
     34 #define IORESOURCE_IO 0x00000100
     35 #define IORESOURCE_MEM 0x00000200
     36 #define IORESOURCE_IRQ 0x00000400
     37 #define IORESOURCE_DMA 0x00000800
     38 
     39 #define IORESOURCE_PREFETCH 0x00001000
     40 #define IORESOURCE_READONLY 0x00002000
     41 #define IORESOURCE_CACHEABLE 0x00004000
     42 #define IORESOURCE_RANGELENGTH 0x00008000
     43 #define IORESOURCE_SHADOWABLE 0x00010000
     44 #define IORESOURCE_BUS_HAS_VGA 0x00080000
     45 
     46 #define IORESOURCE_DISABLED 0x10000000
     47 #define IORESOURCE_UNSET 0x20000000
     48 #define IORESOURCE_AUTO 0x40000000
     49 #define IORESOURCE_BUSY 0x80000000
     50 
     51 #define IORESOURCE_IRQ_HIGHEDGE (1<<0)
     52 #define IORESOURCE_IRQ_LOWEDGE (1<<1)
     53 #define IORESOURCE_IRQ_HIGHLEVEL (1<<2)
     54 #define IORESOURCE_IRQ_LOWLEVEL (1<<3)
     55 #define IORESOURCE_IRQ_SHAREABLE (1<<4)
     56 
     57 #define IORESOURCE_DMA_TYPE_MASK (3<<0)
     58 #define IORESOURCE_DMA_8BIT (0<<0)
     59 #define IORESOURCE_DMA_8AND16BIT (1<<0)
     60 #define IORESOURCE_DMA_16BIT (2<<0)
     61 
     62 #define IORESOURCE_DMA_MASTER (1<<2)
     63 #define IORESOURCE_DMA_BYTE (1<<3)
     64 #define IORESOURCE_DMA_WORD (1<<4)
     65 
     66 #define IORESOURCE_DMA_SPEED_MASK (3<<6)
     67 #define IORESOURCE_DMA_COMPATIBLE (0<<6)
     68 #define IORESOURCE_DMA_TYPEA (1<<6)
     69 #define IORESOURCE_DMA_TYPEB (2<<6)
     70 #define IORESOURCE_DMA_TYPEF (3<<6)
     71 
     72 #define IORESOURCE_MEM_WRITEABLE (1<<0)
     73 #define IORESOURCE_MEM_CACHEABLE (1<<1)
     74 #define IORESOURCE_MEM_RANGELENGTH (1<<2)
     75 #define IORESOURCE_MEM_TYPE_MASK (3<<3)
     76 #define IORESOURCE_MEM_8BIT (0<<3)
     77 #define IORESOURCE_MEM_16BIT (1<<3)
     78 #define IORESOURCE_MEM_8AND16BIT (2<<3)
     79 #define IORESOURCE_MEM_32BIT (3<<3)
     80 #define IORESOURCE_MEM_SHADOWABLE (1<<5)
     81 #define IORESOURCE_MEM_EXPANSIONROM (1<<6)
     82 
     83 #define IORESOURCE_ROM_ENABLE (1<<0)
     84 #define IORESOURCE_ROM_SHADOW (1<<1)
     85 #define IORESOURCE_ROM_COPY (1<<2)
     86 
     87 #define request_region(start,n,name) __request_region(&ioport_resource, (start), (n), (name))
     88 #define request_mem_region(start,n,name) __request_region(&iomem_resource, (start), (n), (name))
     89 #define rename_region(region, newname) do { (region)->name = (newname); } while (0)
     90 
     91 #define release_region(start,n) __release_region(&ioport_resource, (start), (n))
     92 #define check_mem_region(start,n) __check_region(&iomem_resource, (start), (n))
     93 #define release_mem_region(start,n) __release_region(&iomem_resource, (start), (n))
     94 
     95 #endif
     96