linux/include/linux/of_reserved_mem.h
<<
>>
Prefs
   1#ifndef __OF_RESERVED_MEM_H
   2#define __OF_RESERVED_MEM_H
   3
   4struct device;
   5struct of_phandle_args;
   6struct reserved_mem_ops;
   7
   8struct reserved_mem {
   9        const char                      *name;
  10        unsigned long                   fdt_node;
  11        unsigned long                   phandle;
  12        const struct reserved_mem_ops   *ops;
  13        phys_addr_t                     base;
  14        phys_addr_t                     size;
  15        void                            *priv;
  16};
  17
  18struct reserved_mem_ops {
  19        int     (*device_init)(struct reserved_mem *rmem,
  20                               struct device *dev);
  21        void    (*device_release)(struct reserved_mem *rmem,
  22                                  struct device *dev);
  23};
  24
  25typedef int (*reservedmem_of_init_fn)(struct reserved_mem *rmem);
  26
  27#define RESERVEDMEM_OF_DECLARE(name, compat, init)                      \
  28        _OF_DECLARE(reservedmem, name, compat, init, reservedmem_of_init_fn)
  29
  30#ifdef CONFIG_OF_RESERVED_MEM
  31int of_reserved_mem_device_init(struct device *dev);
  32void of_reserved_mem_device_release(struct device *dev);
  33
  34void fdt_init_reserved_mem(void);
  35void fdt_reserved_mem_save_node(unsigned long node, const char *uname,
  36                               phys_addr_t base, phys_addr_t size);
  37#else
  38static inline int of_reserved_mem_device_init(struct device *dev)
  39{
  40        return -ENOSYS;
  41}
  42static inline void of_reserved_mem_device_release(struct device *pdev) { }
  43
  44static inline void fdt_init_reserved_mem(void) { }
  45static inline void fdt_reserved_mem_save_node(unsigned long node,
  46                const char *uname, phys_addr_t base, phys_addr_t size) { }
  47#endif
  48
  49#endif /* __OF_RESERVED_MEM_H */
  50