1951a39d68df598db08dfced8b4707755864a0492Ying Wang/****************************************************************************
2951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************
3951a39d68df598db08dfced8b4707755864a0492Ying Wang ***
4951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   This header was automatically generated from a Linux kernel header
5951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   of the same name, to make information necessary for userspace to
6951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   call into the kernel available to libc.  It contains only constants,
7951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   structures, and macros generated from the original header, and thus,
8951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   contains no copyrightable information.
9951a39d68df598db08dfced8b4707755864a0492Ying Wang ***
10951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************
11951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************/
12951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef _LINUX_IOPORT_H
13951a39d68df598db08dfced8b4707755864a0492Ying Wang#define _LINUX_IOPORT_H
14951a39d68df598db08dfced8b4707755864a0492Ying Wang
15951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <linux/compiler.h>
16951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <linux/types.h>
17951a39d68df598db08dfced8b4707755864a0492Ying Wang
18951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct resource {
19951a39d68df598db08dfced8b4707755864a0492Ying Wang resource_size_t start;
20951a39d68df598db08dfced8b4707755864a0492Ying Wang resource_size_t end;
21951a39d68df598db08dfced8b4707755864a0492Ying Wang const char *name;
22951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned long flags;
23951a39d68df598db08dfced8b4707755864a0492Ying Wang struct resource *parent, *sibling, *child;
24951a39d68df598db08dfced8b4707755864a0492Ying Wang};
25951a39d68df598db08dfced8b4707755864a0492Ying Wang
26951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct resource_list {
27951a39d68df598db08dfced8b4707755864a0492Ying Wang struct resource_list *next;
28951a39d68df598db08dfced8b4707755864a0492Ying Wang struct resource *res;
29951a39d68df598db08dfced8b4707755864a0492Ying Wang struct pci_dev *dev;
30951a39d68df598db08dfced8b4707755864a0492Ying Wang};
31951a39d68df598db08dfced8b4707755864a0492Ying Wang
32951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_BITS 0x000000ff
33951a39d68df598db08dfced8b4707755864a0492Ying Wang
34951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_IO 0x00000100
35951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_MEM 0x00000200
36951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_IRQ 0x00000400
37951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_DMA 0x00000800
38951a39d68df598db08dfced8b4707755864a0492Ying Wang
39951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_PREFETCH 0x00001000
40951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_READONLY 0x00002000
41951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_CACHEABLE 0x00004000
42951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_RANGELENGTH 0x00008000
43951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_SHADOWABLE 0x00010000
44951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_BUS_HAS_VGA 0x00080000
45951a39d68df598db08dfced8b4707755864a0492Ying Wang
46951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_DISABLED 0x10000000
47951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_UNSET 0x20000000
48951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_AUTO 0x40000000
49951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_BUSY 0x80000000
50951a39d68df598db08dfced8b4707755864a0492Ying Wang
51951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_IRQ_HIGHEDGE (1<<0)
52951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_IRQ_LOWEDGE (1<<1)
53951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_IRQ_HIGHLEVEL (1<<2)
54951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_IRQ_LOWLEVEL (1<<3)
55951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_IRQ_SHAREABLE (1<<4)
56951a39d68df598db08dfced8b4707755864a0492Ying Wang
57951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_DMA_TYPE_MASK (3<<0)
58951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_DMA_8BIT (0<<0)
59951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_DMA_8AND16BIT (1<<0)
60951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_DMA_16BIT (2<<0)
61951a39d68df598db08dfced8b4707755864a0492Ying Wang
62951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_DMA_MASTER (1<<2)
63951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_DMA_BYTE (1<<3)
64951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_DMA_WORD (1<<4)
65951a39d68df598db08dfced8b4707755864a0492Ying Wang
66951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_DMA_SPEED_MASK (3<<6)
67951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_DMA_COMPATIBLE (0<<6)
68951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_DMA_TYPEA (1<<6)
69951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_DMA_TYPEB (2<<6)
70951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_DMA_TYPEF (3<<6)
71951a39d68df598db08dfced8b4707755864a0492Ying Wang
72951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_MEM_WRITEABLE (1<<0)
73951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_MEM_CACHEABLE (1<<1)
74951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_MEM_RANGELENGTH (1<<2)
75951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_MEM_TYPE_MASK (3<<3)
76951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_MEM_8BIT (0<<3)
77951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_MEM_16BIT (1<<3)
78951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_MEM_8AND16BIT (2<<3)
79951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_MEM_32BIT (3<<3)
80951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_MEM_SHADOWABLE (1<<5)
81951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_MEM_EXPANSIONROM (1<<6)
82951a39d68df598db08dfced8b4707755864a0492Ying Wang
83951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_ROM_ENABLE (1<<0)
84951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_ROM_SHADOW (1<<1)
85951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IORESOURCE_ROM_COPY (1<<2)
86951a39d68df598db08dfced8b4707755864a0492Ying Wang
87951a39d68df598db08dfced8b4707755864a0492Ying Wang#define request_region(start,n,name) __request_region(&ioport_resource, (start), (n), (name))
88951a39d68df598db08dfced8b4707755864a0492Ying Wang#define request_mem_region(start,n,name) __request_region(&iomem_resource, (start), (n), (name))
89951a39d68df598db08dfced8b4707755864a0492Ying Wang#define rename_region(region, newname) do { (region)->name = (newname); } while (0)
90951a39d68df598db08dfced8b4707755864a0492Ying Wang
91951a39d68df598db08dfced8b4707755864a0492Ying Wang#define release_region(start,n) __release_region(&ioport_resource, (start), (n))
92951a39d68df598db08dfced8b4707755864a0492Ying Wang#define check_mem_region(start,n) __check_region(&iomem_resource, (start), (n))
93951a39d68df598db08dfced8b4707755864a0492Ying Wang#define release_mem_region(start,n) __release_region(&iomem_resource, (start), (n))
94951a39d68df598db08dfced8b4707755864a0492Ying Wang
95951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
96