patch-2.3.15 linux/include/linux/ioport.h

Next file: linux/include/linux/ip_fw.h
Previous file: linux/include/linux/inetdevice.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.14/linux/include/linux/ioport.h linux/include/linux/ioport.h
@@ -8,19 +8,6 @@
 #ifndef _LINUX_IOPORT_H
 #define _LINUX_IOPORT_H
 
-#define DEVICE_IO_NOTSET	(~0)
-#define DEVICE_IO_AUTO		((~0)-1)
-
-#define DEVICE_IO_FLAG_WRITEABLE	(1<<0)
-#define DEVICE_IO_FLAG_CACHEABLE	(1<<1)
-#define DEVICE_IO_FLAG_RANGELENGTH	(1<<2)
-#define DEVICE_IO_FLAG_SHADOWABLE	(1<<4)
-#define DEVICE_IO_FLAG_EXPANSIONROM	(1<<5)
-
-#define DEVICE_IO_TYPE_8BIT		0
-#define DEVICE_IO_TYPE_16BIT		1
-#define DEVICE_IO_TYPE_8AND16BIT	2
-
 /*
  * Resources are tree-like, allowing
  * nesting etc..
@@ -29,22 +16,61 @@
 	const char *name;
 	unsigned long start, end;
 	unsigned long flags;
-	unsigned char bits;		/* decoded bits */
-	unsigned char fixed;		/* fixed range */
-	unsigned short hw_flags;	/* hardware flags */
-	unsigned short type;		/* region type */
 	struct resource *parent, *sibling, *child;
 };
 
 /*
- * PCI-like IO resources have these defined flags.
- * The low four bits come directly from the PCI specs,
- * the rest are extended sw flags..
+ * IO resources have these defined flags.
  */
-#define IORESOURCE_IOPORT	0x01	/* 0 - memory mapped, 1 - IO ports */
-#define IORESOURCE_MEMTYPE_MASK	0x06	/* PCI-specific mapping info */
-#define IORESOURCE_PREFETCH	0x08	/* No side effects */
-#define IORESOURCE_BUSY		0x10	/* Driver uses this resource */
+#define IORESOURCE_BITS		0x000000ff	/* Bus-specific bits */
+
+#define IORESOURCE_IO		0x00000100	/* Resource type */
+#define IORESOURCE_MEM		0x00000200
+#define IORESOURCE_IRQ		0x00000400
+#define IORESOURCE_DMA		0x00000800
+
+#define IORESOURCE_PREFETCH	0x00001000	/* No side effects */
+#define IORESOURCE_READONLY	0x00002000
+#define IORESOURCE_CACHEABLE	0x00004000
+#define IORESOURCE_RANGELENGTH	0x00008000
+#define IORESOURCE_SHADOWABLE	0x00010000
+
+#define IORESOURCE_UNSET	0x20000000
+#define IORESOURCE_AUTO		0x40000000
+#define IORESOURCE_BUSY		0x80000000	/* Driver has marked this resource busy */
+
+/* ISA PnP IRQ specific bits (IORESOURCE_BITS) */
+#define IORESOURCE_IRQ_HIGHEDGE		(1<<0)
+#define IORESOURCE_IRQ_LOWEDGE		(1<<1)
+#define IORESOURCE_IRQ_HIGHLEVEL	(1<<2)
+#define IORESOURCE_IRQ_LOWLEVEL		(1<<3)
+
+/* ISA PnP DMA specific bits (IORESOURCE_BITS) */
+#define IORESOURCE_DMA_TYPE_MASK	(3<<0)
+#define IORESOURCE_DMA_8BIT		(0<<0)
+#define IORESOURCE_DMA_8AND16BIT	(1<<0)
+#define IORESOURCE_DMA_16BIT		(2<<0)
+
+#define IORESOURCE_DMA_MASTER		(1<<2)
+#define IORESOURCE_DMA_BYTE		(1<<3)
+#define IORESOURCE_DMA_WORD		(1<<4)
+
+#define IORESOURCE_DMA_SPEED_MASK	(3<<6)
+#define IORESOURCE_DMA_COMPATIBLE	(0<<6)
+#define IORESOURCE_DMA_TYPEA		(1<<6)
+#define IORESOURCE_DMA_TYPEB		(2<<6)
+#define IORESOURCE_DMA_TYPEF		(3<<6)
+
+/* ISA PnP memory I/O specific bits (IORESOURCE_BITS) */
+#define IORESOURCE_MEM_WRITEABLE	(1<<0)	/* dup: IORESOURCE_READONLY */
+#define IORESOURCE_MEM_CACHEABLE	(1<<1)	/* dup: IORESOURCE_CACHEABLE */
+#define IORESOURCE_MEM_RANGELENGTH	(1<<2)	/* dup: IORESOURCE_RANGELENGTH */
+#define IORESOURCE_MEM_TYPE_MASK	(3<<3)
+#define IORESOURCE_MEM_8BIT		(0<<3)
+#define IORESOURCE_MEM_16BIT		(1<<3)
+#define IORESOURCE_MEM_8AND16BIT	(2<<3)
+#define IORESOURCE_MEM_SHADOWABLE	(1<<5)	/* dup: IORESOURCE_SHADOWABLE */
+#define IORESOURCE_MEM_EXPANSIONROM	(1<<6)
 
 /* PC/ISA/whatever - the normal PC address spaces: IO and memory */
 extern struct resource ioport_resource;
@@ -54,6 +80,10 @@
 
 extern int request_resource(struct resource *root, struct resource *new);
 extern int release_resource(struct resource *new);
+extern int allocate_resource(struct resource *root, struct resource *new,
+			     unsigned long size,
+			     unsigned long min, unsigned long max,
+			     unsigned long align);
 
 /* Convenience shorthand with allocation */
 #define request_region(start,n,name)	__request_region(&ioport_resource, (start), (n), (name))

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)