#ifndef _LINUX_MCB_H
#define _LINUX_MCB_H
#include <linux/mod_devicetable.h>
#include <linux/device.h>
#include <linux/irqreturn.h>
#define CHAMELEON_FILENAME_LEN …
struct mcb_driver;
struct mcb_device;
struct mcb_bus { … };
static inline struct mcb_bus *to_mcb_bus(struct device *dev)
{ … }
struct mcb_device { … };
#define to_mcb_device(__dev) …
struct mcb_driver { … };
#define to_mcb_driver(__drv) …
static inline void *mcb_get_drvdata(struct mcb_device *dev)
{ … }
static inline void mcb_set_drvdata(struct mcb_device *dev, void *data)
{ … }
extern int __must_check __mcb_register_driver(struct mcb_driver *drv,
struct module *owner,
const char *mod_name);
#define mcb_register_driver(driver) …
extern void mcb_unregister_driver(struct mcb_driver *driver);
#define module_mcb_driver(__mcb_driver) …
extern void mcb_bus_add_devices(const struct mcb_bus *bus);
extern int mcb_device_register(struct mcb_bus *bus, struct mcb_device *dev);
extern struct mcb_bus *mcb_alloc_bus(struct device *carrier);
extern struct mcb_bus *mcb_bus_get(struct mcb_bus *bus);
extern void mcb_bus_put(struct mcb_bus *bus);
extern struct mcb_device *mcb_alloc_dev(struct mcb_bus *bus);
extern void mcb_free_dev(struct mcb_device *dev);
extern void mcb_release_bus(struct mcb_bus *bus);
extern struct resource *mcb_request_mem(struct mcb_device *dev,
const char *name);
extern void mcb_release_mem(struct resource *mem);
extern int mcb_get_irq(struct mcb_device *dev);
extern struct resource *mcb_get_resource(struct mcb_device *dev,
unsigned int type);
#endif