diff options
Diffstat (limited to 'include/linux/ioport.h')
| -rw-r--r-- | include/linux/ioport.h | 33 |
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 | */ |
| 16 | struct resource { | 17 | struct 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; | |||
| 94 | extern int request_resource(struct resource *root, struct resource *new); | 97 | extern int request_resource(struct resource *root, struct resource *new); |
| 95 | extern struct resource * ____request_resource(struct resource *root, struct resource *new); | 98 | extern struct resource * ____request_resource(struct resource *root, struct resource *new); |
| 96 | extern int release_resource(struct resource *new); | 99 | extern int release_resource(struct resource *new); |
| 97 | extern __deprecated_for_modules int insert_resource(struct resource *parent, struct resource *new); | 100 | extern int insert_resource(struct resource *parent, struct resource *new); |
| 98 | extern int allocate_resource(struct resource *root, struct resource *new, | 101 | extern 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); |
| 105 | int adjust_resource(struct resource *res, unsigned long start, | 107 | int 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 */ | ||
| 111 | extern 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 | ||
| 113 | extern struct resource * __request_region(struct resource *, unsigned long start, unsigned long n, const char *name); | 118 | extern 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 | ||
| 120 | extern int __check_region(struct resource *, unsigned long, unsigned long); | 127 | extern int __check_region(struct resource *, resource_size_t, resource_size_t); |
| 121 | extern void __release_region(struct resource *, unsigned long, unsigned long); | 128 | extern void __release_region(struct resource *, resource_size_t, |
| 129 | resource_size_t); | ||
| 122 | 130 | ||
| 123 | static inline int __deprecated check_region(unsigned long s, unsigned long n) | 131 | static 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 | } |
