aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/ioport.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/ioport.h')
-rw-r--r--include/linux/ioport.h33
1 files changed, 21 insertions, 12 deletions
diff --git a/include/linux/ioport.h b/include/linux/ioport.h
index cd6bd001ba4e..d42c83399071 100644
--- a/include/linux/ioport.h
+++ b/include/linux/ioport.h
@@ -9,13 +9,15 @@
9#define _LINUX_IOPORT_H 9#define _LINUX_IOPORT_H
10 10
11#include <linux/compiler.h> 11#include <linux/compiler.h>
12#include <linux/types.h>
12/* 13/*
13 * Resources are tree-like, allowing 14 * Resources are tree-like, allowing
14 * nesting etc.. 15 * nesting etc..
15 */ 16 */
16struct resource { 17struct resource {
18 resource_size_t start;
19 resource_size_t end;
17 const char *name; 20 const char *name;
18 unsigned long start, end;
19 unsigned long flags; 21 unsigned long flags;
20 struct resource *parent, *sibling, *child; 22 struct resource *parent, *sibling, *child;
21}; 23};
@@ -53,6 +55,7 @@ struct resource_list {
53#define IORESOURCE_IRQ_LOWEDGE (1<<1) 55#define IORESOURCE_IRQ_LOWEDGE (1<<1)
54#define IORESOURCE_IRQ_HIGHLEVEL (1<<2) 56#define IORESOURCE_IRQ_HIGHLEVEL (1<<2)
55#define IORESOURCE_IRQ_LOWLEVEL (1<<3) 57#define IORESOURCE_IRQ_LOWLEVEL (1<<3)
58#define IORESOURCE_IRQ_SHAREABLE (1<<4)
56 59
57/* ISA PnP DMA specific bits (IORESOURCE_BITS) */ 60/* ISA PnP DMA specific bits (IORESOURCE_BITS) */
58#define IORESOURCE_DMA_TYPE_MASK (3<<0) 61#define IORESOURCE_DMA_TYPE_MASK (3<<0)
@@ -94,33 +97,39 @@ extern struct resource iomem_resource;
94extern int request_resource(struct resource *root, struct resource *new); 97extern int request_resource(struct resource *root, struct resource *new);
95extern struct resource * ____request_resource(struct resource *root, struct resource *new); 98extern struct resource * ____request_resource(struct resource *root, struct resource *new);
96extern int release_resource(struct resource *new); 99extern int release_resource(struct resource *new);
97extern __deprecated_for_modules int insert_resource(struct resource *parent, struct resource *new); 100extern int insert_resource(struct resource *parent, struct resource *new);
98extern int allocate_resource(struct resource *root, struct resource *new, 101extern int allocate_resource(struct resource *root, struct resource *new,
99 unsigned long size, 102 resource_size_t size, resource_size_t min,
100 unsigned long min, unsigned long max, 103 resource_size_t max, resource_size_t align,
101 unsigned long align,
102 void (*alignf)(void *, struct resource *, 104 void (*alignf)(void *, struct resource *,
103 unsigned long, unsigned long), 105 resource_size_t, resource_size_t),
104 void *alignf_data); 106 void *alignf_data);
105int adjust_resource(struct resource *res, unsigned long start, 107int adjust_resource(struct resource *res, resource_size_t start,
106 unsigned long size); 108 resource_size_t size);
109
110/* get registered SYSTEM_RAM resources in specified area */
111extern int find_next_system_ram(struct resource *res);
107 112
108/* Convenience shorthand with allocation */ 113/* Convenience shorthand with allocation */
109#define request_region(start,n,name) __request_region(&ioport_resource, (start), (n), (name)) 114#define request_region(start,n,name) __request_region(&ioport_resource, (start), (n), (name))
110#define request_mem_region(start,n,name) __request_region(&iomem_resource, (start), (n), (name)) 115#define request_mem_region(start,n,name) __request_region(&iomem_resource, (start), (n), (name))
111#define rename_region(region, newname) do { (region)->name = (newname); } while (0) 116#define rename_region(region, newname) do { (region)->name = (newname); } while (0)
112 117
113extern struct resource * __request_region(struct resource *, unsigned long start, unsigned long n, const char *name); 118extern struct resource * __request_region(struct resource *,
119 resource_size_t start,
120 resource_size_t n, const char *name);
114 121
115/* Compatibility cruft */ 122/* Compatibility cruft */
116#define release_region(start,n) __release_region(&ioport_resource, (start), (n)) 123#define release_region(start,n) __release_region(&ioport_resource, (start), (n))
117#define check_mem_region(start,n) __check_region(&iomem_resource, (start), (n)) 124#define check_mem_region(start,n) __check_region(&iomem_resource, (start), (n))
118#define release_mem_region(start,n) __release_region(&iomem_resource, (start), (n)) 125#define release_mem_region(start,n) __release_region(&iomem_resource, (start), (n))
119 126
120extern int __check_region(struct resource *, unsigned long, unsigned long); 127extern int __check_region(struct resource *, resource_size_t, resource_size_t);
121extern void __release_region(struct resource *, unsigned long, unsigned long); 128extern void __release_region(struct resource *, resource_size_t,
129 resource_size_t);
122 130
123static inline int __deprecated check_region(unsigned long s, unsigned long n) 131static inline int __deprecated check_region(resource_size_t s,
132 resource_size_t n)
124{ 133{
125 return __check_region(&ioport_resource, s, n); 134 return __check_region(&ioport_resource, s, n);
126} 135}