Lines Matching full:resource
21 struct resource { struct
27 struct resource *parent, *sibling, *child; argument
33 * PCI devices expose these flags to userspace in the "resource" sysfs file,
38 #define IORESOURCE_TYPE_BITS 0x00001f00 /* Resource type */
57 #define IORESOURCE_MUXED 0x00400000 /* Resource is software muxed */
59 #define IORESOURCE_EXT_TYPE_BITS 0x01000000 /* Resource extended types */
64 #define IORESOURCE_SYSRAM_MERGEABLE 0x04000000 /* Resource can be merged. */
66 #define IORESOURCE_EXCLUSIVE 0x08000000 /* Userland may not map this resource */
71 #define IORESOURCE_BUSY 0x80000000 /* Driver has marked this resource busy */
73 /* I/O resource extended types */
124 #define IORESOURCE_PCI_FIXED (1<<4) /* Do not move resource */
128 * I/O Resource Descriptors
131 * for searching a specific resource range in the iomem table. Assign
132 * a new descriptor when a resource range supports the search interfaces.
133 * Otherwise, resource.desc must be set to IORES_DESC_NONE (0).
158 (struct resource) { \
192 * typedef resource_alignf - Resource alignment callback
194 * @res: Resource candidate range (an empty resource space)
198 * Callback allows calculating resource placement and alignment beyond min,
201 * Return: Start address for the resource.
204 const struct resource *res,
210 * resource space
228 extern struct resource ioport_resource;
229 extern struct resource iomem_resource;
231 extern struct resource *request_resource_conflict(struct resource *root, struct resource *new);
232 extern int request_resource(struct resource *root, struct resource *new);
233 extern int release_resource(struct resource *new);
234 void release_child_resources(struct resource *new);
235 extern void reserve_region_with_split(struct resource *root,
238 extern struct resource *insert_resource_conflict(struct resource *parent, struct resource *new);
239 extern int insert_resource(struct resource *parent, struct resource *new);
240 extern void insert_resource_expand_to_fit(struct resource *root, struct resource *new);
241 extern int remove_resource(struct resource *old);
242 extern void arch_remove_reservations(struct resource *avail);
243 extern int allocate_resource(struct resource *root, struct resource *new,
248 struct resource *lookup_resource(struct resource *root, resource_size_t start);
249 int adjust_resource(struct resource *res, resource_size_t start,
251 resource_size_t resource_alignment(struct resource *res);
254 * resource_set_size - Calculate resource end address from size and start
255 * @res: Resource descriptor
256 * @size: Size of the resource
263 static inline void resource_set_size(struct resource *res, resource_size_t size) in resource_set_size()
269 * resource_set_range - Set resource start and end addresses
270 * @res: Resource descriptor
271 * @start: Start address for the resource
272 * @size: Size of the resource
276 static inline void resource_set_range(struct resource *res, in resource_set_range()
284 static inline resource_size_t resource_size(const struct resource *res) in resource_size()
288 static inline unsigned long resource_type(const struct resource *res) in resource_type()
292 static inline unsigned long resource_ext_type(const struct resource *res) in resource_ext_type()
297 static inline bool resource_contains(const struct resource *r1, const struct resource *r2) in resource_contains()
307 static inline bool resource_overlaps(const struct resource *r1, const struct resource *r2) in resource_overlaps()
312 static inline bool resource_intersection(const struct resource *r1, const struct resource *r2, in resource_intersection()
313 struct resource *r) in resource_intersection()
322 static inline bool resource_union(const struct resource *r1, const struct resource *r2, in resource_union()
323 struct resource *r) in resource_union()
332 int find_resource_space(struct resource *root, struct resource *new,
346 extern struct resource * __request_region(struct resource *,
355 extern void __release_region(struct resource *, resource_size_t,
361 extern void merge_system_ram_resource(struct resource *res);
367 extern int devm_request_resource(struct device *dev, struct resource *root,
368 struct resource *new);
369 extern void devm_release_resource(struct device *dev, struct resource *new);
376 extern struct resource * __devm_request_region(struct device *dev,
377 struct resource *parent, resource_size_t start,
385 extern void __devm_release_region(struct device *dev, struct resource *parent,
389 extern bool resource_is_exclusive(struct resource *resource, u64 addr,
397 int (*func)(struct resource *, void *));
400 int (*func)(struct resource *, void *));
403 int (*func)(struct resource *, void *));
406 void *arg, int (*func)(struct resource *, void *));
408 struct resource *devm_request_free_mem_region(struct device *dev,
409 struct resource *base, unsigned long size);
410 struct resource *request_free_mem_region(struct resource *base,
412 struct resource *alloc_free_mem_region(struct resource *base,
415 static inline void irqresource_disabled(struct resource *res, u32 irq) in irqresource_disabled()