Something went wrong. Try again.
(I'm so sorry!) Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119/* SPDX-License-Identifier: GPL-2.0 */#ifndef __OF_RESERVED_MEM_H#define __OF_RESERVED_MEM_H
#include <linux/device.h>#include <linux/of.h>
struct of_phandle_args;struct reserved_mem_ops;struct resource;
struct reserved_mem { const char *name; const struct reserved_mem_ops *ops; phys_addr_t base; phys_addr_t size; void *priv;};
struct reserved_mem_ops { int (*node_validate)(unsigned long fdt_node, phys_addr_t *align); int (*node_fixup)(unsigned long fdt_node, phys_addr_t base, phys_addr_t size); int (*node_init)(unsigned long fdt_node, struct reserved_mem *rmem); int (*device_init)(struct reserved_mem *rmem, struct device *dev); void (*device_release)(struct reserved_mem *rmem, struct device *dev);};
#ifdef CONFIG_OF_RESERVED_MEM
#define RESERVEDMEM_OF_DECLARE(name, compat, ops) \ _OF_DECLARE(reservedmem, name, compat, ops, struct reserved_mem_ops *)
int of_reserved_mem_device_init_by_idx(struct device *dev, struct device_node *np, int idx);int of_reserved_mem_device_init_by_name(struct device *dev, struct device_node *np, const char *name);void of_reserved_mem_device_release(struct device *dev);
int devm_of_reserved_mem_device_init(struct device *dev);
struct reserved_mem *of_reserved_mem_lookup(struct device_node *np);int of_reserved_mem_region_to_resource(const struct device_node *np, unsigned int idx, struct resource *res);int of_reserved_mem_region_to_resource_byname(const struct device_node *np, const char *name, struct resource *res);int of_reserved_mem_region_count(const struct device_node *np);
#else
#define RESERVEDMEM_OF_DECLARE(name, compat, ops) \ _OF_DECLARE_STUB(reservedmem, name, compat, ops, \ struct reserved_mem_ops *)
static inline int of_reserved_mem_device_init_by_idx(struct device *dev, struct device_node *np, int idx){ return -ENOSYS;}
static inline int of_reserved_mem_device_init_by_name(struct device *dev, struct device_node *np, const char *name){ return -ENOSYS;}
static inline void of_reserved_mem_device_release(struct device *pdev) { }
static inline int devm_of_reserved_mem_device_init(struct device *dev){ return -EOPNOTSUPP;}
static inline struct reserved_mem *of_reserved_mem_lookup(struct device_node *np){ return NULL;}
static inline int of_reserved_mem_region_to_resource(const struct device_node *np, unsigned int idx, struct resource *res){ return -ENOSYS;}
static inline int of_reserved_mem_region_to_resource_byname(const struct device_node *np, const char *name, struct resource *res){ return -ENOSYS;}
static inline int of_reserved_mem_region_count(const struct device_node *np){ return 0;}#endif
/** * of_reserved_mem_device_init() - assign reserved memory region to given device * @dev: Pointer to the device to configure * * This function assigns respective DMA-mapping operations based on the first * reserved memory region specified by 'memory-region' property in device tree * node of the given device. * * Returns error code or zero on success. */static inline int of_reserved_mem_device_init(struct device *dev){ return of_reserved_mem_device_init_by_idx(dev, dev->of_node, 0);}
#endif /* __OF_RESERVED_MEM_H */