111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/****************************************************************************
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   This header was automatically generated from a Linux kernel header
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   of the same name, to make information necessary for userspace to
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   call into the kernel available to libc.  It contains only constants,
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   structures, and macros generated from the original header, and thus,
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   contains no copyrightable information.
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _LINUX_IOPORT_H
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _LINUX_IOPORT_H
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/compiler.h>
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/types.h>
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct resource {
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert resource_size_t start;
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert resource_size_t end;
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const char *name;
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long flags;
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct resource *parent, *sibling, *child;
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct resource_list {
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct resource_list *next;
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct resource *res;
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct pci_dev *dev;
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_BITS 0x000000ff
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_IO 0x00000100
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_MEM 0x00000200
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_IRQ 0x00000400
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_DMA 0x00000800
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_PREFETCH 0x00001000
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_READONLY 0x00002000
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_CACHEABLE 0x00004000
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_RANGELENGTH 0x00008000
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_SHADOWABLE 0x00010000
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_BUS_HAS_VGA 0x00080000
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_DISABLED 0x10000000
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_UNSET 0x20000000
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_AUTO 0x40000000
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_BUSY 0x80000000
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_IRQ_HIGHEDGE (1<<0)
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_IRQ_LOWEDGE (1<<1)
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_IRQ_HIGHLEVEL (1<<2)
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_IRQ_LOWLEVEL (1<<3)
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_IRQ_SHAREABLE (1<<4)
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_DMA_TYPE_MASK (3<<0)
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_DMA_8BIT (0<<0)
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_DMA_8AND16BIT (1<<0)
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_DMA_16BIT (2<<0)
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_DMA_MASTER (1<<2)
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_DMA_BYTE (1<<3)
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_DMA_WORD (1<<4)
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_DMA_SPEED_MASK (3<<6)
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_DMA_COMPATIBLE (0<<6)
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_DMA_TYPEA (1<<6)
6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_DMA_TYPEB (2<<6)
7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_DMA_TYPEF (3<<6)
7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_MEM_WRITEABLE (1<<0)
7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_MEM_CACHEABLE (1<<1)
7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_MEM_RANGELENGTH (1<<2)
7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_MEM_TYPE_MASK (3<<3)
7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_MEM_8BIT (0<<3)
7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_MEM_16BIT (1<<3)
7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_MEM_8AND16BIT (2<<3)
7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_MEM_32BIT (3<<3)
8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_MEM_SHADOWABLE (1<<5)
8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_MEM_EXPANSIONROM (1<<6)
8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_ROM_ENABLE (1<<0)
8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_ROM_SHADOW (1<<1)
8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IORESOURCE_ROM_COPY (1<<2)
8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define request_region(start,n,name) __request_region(&ioport_resource, (start), (n), (name))
8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define request_mem_region(start,n,name) __request_region(&iomem_resource, (start), (n), (name))
8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define rename_region(region, newname) do { (region)->name = (newname); } while (0)
9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define release_region(start,n) __release_region(&ioport_resource, (start), (n))
9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define check_mem_region(start,n) __check_region(&iomem_resource, (start), (n))
9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define release_mem_region(start,n) __release_region(&iomem_resource, (start), (n))
9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
96