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.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/include/linux/ioport.h b/include/linux/ioport.h
index 2cd07cc29687..041e95aac2bf 100644
--- a/include/linux/ioport.h
+++ b/include/linux/ioport.h
@@ -34,7 +34,8 @@ struct resource_list {
34 */ 34 */
35#define IORESOURCE_BITS 0x000000ff /* Bus-specific bits */ 35#define IORESOURCE_BITS 0x000000ff /* Bus-specific bits */
36 36
37#define IORESOURCE_IO 0x00000100 /* Resource type */ 37#define IORESOURCE_TYPE_BITS 0x00000f00 /* Resource type */
38#define IORESOURCE_IO 0x00000100
38#define IORESOURCE_MEM 0x00000200 39#define IORESOURCE_MEM 0x00000200
39#define IORESOURCE_IRQ 0x00000400 40#define IORESOURCE_IRQ 0x00000400
40#define IORESOURCE_DMA 0x00000800 41#define IORESOURCE_DMA 0x00000800
@@ -108,7 +109,11 @@ extern struct resource iomem_resource;
108 109
109extern int request_resource(struct resource *root, struct resource *new); 110extern int request_resource(struct resource *root, struct resource *new);
110extern int release_resource(struct resource *new); 111extern int release_resource(struct resource *new);
112extern void reserve_region_with_split(struct resource *root,
113 resource_size_t start, resource_size_t end,
114 const char *name);
111extern int insert_resource(struct resource *parent, struct resource *new); 115extern int insert_resource(struct resource *parent, struct resource *new);
116extern void insert_resource_expand_to_fit(struct resource *root, struct resource *new);
112extern int allocate_resource(struct resource *root, struct resource *new, 117extern int allocate_resource(struct resource *root, struct resource *new,
113 resource_size_t size, resource_size_t min, 118 resource_size_t size, resource_size_t min,
114 resource_size_t max, resource_size_t align, 119 resource_size_t max, resource_size_t align,
@@ -118,6 +123,14 @@ extern int allocate_resource(struct resource *root, struct resource *new,
118int adjust_resource(struct resource *res, resource_size_t start, 123int adjust_resource(struct resource *res, resource_size_t start,
119 resource_size_t size); 124 resource_size_t size);
120resource_size_t resource_alignment(struct resource *res); 125resource_size_t resource_alignment(struct resource *res);
126static inline resource_size_t resource_size(struct resource *res)
127{
128 return res->end - res->start + 1;
129}
130static inline unsigned long resource_type(struct resource *res)
131{
132 return res->flags & IORESOURCE_TYPE_BITS;
133}
121 134
122/* Convenience shorthand with allocation */ 135/* Convenience shorthand with allocation */
123#define request_region(start,n,name) __request_region(&ioport_resource, (start), (n), (name)) 136#define request_region(start,n,name) __request_region(&ioport_resource, (start), (n), (name))
@@ -154,13 +167,14 @@ extern struct resource * __devm_request_region(struct device *dev,
154 struct resource *parent, resource_size_t start, 167 struct resource *parent, resource_size_t start,
155 resource_size_t n, const char *name); 168 resource_size_t n, const char *name);
156 169
157#define devm_release_region(start,n) \ 170#define devm_release_region(dev, start, n) \
158 __devm_release_region(dev, &ioport_resource, (start), (n)) 171 __devm_release_region(dev, &ioport_resource, (start), (n))
159#define devm_release_mem_region(start,n) \ 172#define devm_release_mem_region(dev, start, n) \
160 __devm_release_region(dev, &iomem_resource, (start), (n)) 173 __devm_release_region(dev, &iomem_resource, (start), (n))
161 174
162extern void __devm_release_region(struct device *dev, struct resource *parent, 175extern void __devm_release_region(struct device *dev, struct resource *parent,
163 resource_size_t start, resource_size_t n); 176 resource_size_t start, resource_size_t n);
177extern int iomem_map_sanity_check(resource_size_t addr, unsigned long size);
164 178
165#endif /* __ASSEMBLY__ */ 179#endif /* __ASSEMBLY__ */
166#endif /* _LINUX_IOPORT_H */ 180#endif /* _LINUX_IOPORT_H */