⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pnp.h

📁 Axis 221 camera embedded programing interface
💻 H
📖 第 1 页 / 共 2 页
字号:
	void (*quirk_function)(struct pnp_dev *dev);	/* fixup function */};/* config parameters */#define PNP_CONFIG_NORMAL	0x0001#define PNP_CONFIG_FORCE	0x0002	/* disables validity checking *//* capabilities */#define PNP_READ		0x0001#define PNP_WRITE		0x0002#define PNP_DISABLE		0x0004#define PNP_CONFIGURABLE	0x0008#define PNP_REMOVABLE		0x0010#define pnp_can_read(dev)	(((dev)->protocol) && ((dev)->protocol->get) && \				 ((dev)->capabilities & PNP_READ))#define pnp_can_write(dev)	(((dev)->protocol) && ((dev)->protocol->set) && \				 ((dev)->capabilities & PNP_WRITE))#define pnp_can_disable(dev)	(((dev)->protocol) && ((dev)->protocol->disable) && \				 ((dev)->capabilities & PNP_DISABLE))#define pnp_can_configure(dev)	((!(dev)->active) && \				 ((dev)->capabilities & PNP_CONFIGURABLE))#ifdef CONFIG_ISAPNPextern struct pnp_protocol isapnp_protocol;#define pnp_device_is_isapnp(dev) ((dev)->protocol == (&isapnp_protocol))#else#define pnp_device_is_isapnp(dev) 0#endif#ifdef CONFIG_PNPBIOSextern struct pnp_protocol pnpbios_protocol;#define pnp_device_is_pnpbios(dev) ((dev)->protocol == (&pnpbios_protocol))#else#define pnp_device_is_pnpbios(dev) 0#endif/* status */#define PNP_READY		0x0000#define PNP_ATTACHED		0x0001#define PNP_BUSY		0x0002#define PNP_FAULTY		0x0004/* isapnp specific macros */#define isapnp_card_number(dev)	((dev)->card ? (dev)->card->number : -1)#define isapnp_csn_number(dev)  ((dev)->number)/* * Driver Management */struct pnp_id {	char id[PNP_ID_LEN];	struct pnp_id * next;};struct pnp_driver {	char * name;	const struct pnp_device_id *id_table;	unsigned int flags;	int  (*probe)  (struct pnp_dev *dev, const struct pnp_device_id *dev_id);	void (*remove) (struct pnp_dev *dev);	int  (*suspend) (struct pnp_dev *dev, pm_message_t state);	int  (*resume) (struct pnp_dev *dev);	struct device_driver driver;};#define	to_pnp_driver(drv) container_of(drv, struct pnp_driver, driver)struct pnp_card_driver {	struct list_head global_list;	char * name;	const struct pnp_card_device_id *id_table;	unsigned int flags;	int  (*probe)  (struct pnp_card_link *card, const struct pnp_card_device_id *card_id);	void (*remove) (struct pnp_card_link *card);	int  (*suspend) (struct pnp_card_link *card, pm_message_t state);	int  (*resume) (struct pnp_card_link *card);	struct pnp_driver link;};#define	to_pnp_card_driver(drv) container_of(drv, struct pnp_card_driver, link)/* pnp driver flags */#define PNP_DRIVER_RES_DO_NOT_CHANGE	0x0001	/* do not change the state of the device */#define PNP_DRIVER_RES_DISABLE		0x0003	/* ensure the device is disabled *//* * Protocol Management */struct pnp_protocol {	struct list_head	protocol_list;	char		      * name;	/* resource control functions */	int (*get)(struct pnp_dev *dev, struct pnp_resource_table *res);	int (*set)(struct pnp_dev *dev, struct pnp_resource_table *res);	int (*disable)(struct pnp_dev *dev);	/* used by pnp layer only (look but don't touch) */	unsigned char		number;		/* protocol number*/	struct device		dev;		/* link to driver model */	struct list_head	cards;	struct list_head	devices;};#define to_pnp_protocol(n) list_entry(n, struct pnp_protocol, protocol_list)#define protocol_for_each_card(protocol,card) \	for((card) = protocol_to_pnp_card((protocol)->cards.next); \	(card) != protocol_to_pnp_card(&(protocol)->cards); \	(card) = protocol_to_pnp_card((card)->protocol_list.next))#define protocol_for_each_dev(protocol,dev) \	for((dev) = protocol_to_pnp_dev((protocol)->devices.next); \	(dev) != protocol_to_pnp_dev(&(protocol)->devices); \	(dev) = protocol_to_pnp_dev((dev)->protocol_list.next))#if defined(CONFIG_PNP)/* device management */int pnp_register_protocol(struct pnp_protocol *protocol);void pnp_unregister_protocol(struct pnp_protocol *protocol);int pnp_add_device(struct pnp_dev *dev);int pnp_device_attach(struct pnp_dev *pnp_dev);void pnp_device_detach(struct pnp_dev *pnp_dev);extern struct list_head pnp_global;/* multidevice card support */int pnp_add_card(struct pnp_card *card);void pnp_remove_card(struct pnp_card *card);int pnp_add_card_device(struct pnp_card *card, struct pnp_dev *dev);void pnp_remove_card_device(struct pnp_dev *dev);int pnp_add_card_id(struct pnp_id *id, struct pnp_card *card);struct pnp_dev * pnp_request_card_device(struct pnp_card_link *clink, const char * id, struct pnp_dev * from);void pnp_release_card_device(struct pnp_dev * dev);int pnp_register_card_driver(struct pnp_card_driver * drv);void pnp_unregister_card_driver(struct pnp_card_driver * drv);extern struct list_head pnp_cards;/* resource management */struct pnp_option * pnp_register_independent_option(struct pnp_dev *dev);struct pnp_option * pnp_register_dependent_option(struct pnp_dev *dev, int priority);int pnp_register_irq_resource(struct pnp_option *option, struct pnp_irq *data);int pnp_register_dma_resource(struct pnp_option *option, struct pnp_dma *data);int pnp_register_port_resource(struct pnp_option *option, struct pnp_port *data);int pnp_register_mem_resource(struct pnp_option *option, struct pnp_mem *data);void pnp_init_resource_table(struct pnp_resource_table *table);int pnp_manual_config_dev(struct pnp_dev *dev, struct pnp_resource_table *res, int mode);int pnp_auto_config_dev(struct pnp_dev *dev);int pnp_validate_config(struct pnp_dev *dev);int pnp_start_dev(struct pnp_dev *dev);int pnp_stop_dev(struct pnp_dev *dev);int pnp_activate_dev(struct pnp_dev *dev);int pnp_disable_dev(struct pnp_dev *dev);void pnp_resource_change(struct resource *resource, resource_size_t start,				resource_size_t size);/* protocol helpers */int pnp_is_active(struct pnp_dev * dev);int compare_pnp_id(struct pnp_id * pos, const char * id);int pnp_add_id(struct pnp_id *id, struct pnp_dev *dev);int pnp_register_driver(struct pnp_driver *drv);void pnp_unregister_driver(struct pnp_driver *drv);#else/* device management */static inline int pnp_register_protocol(struct pnp_protocol *protocol) { return -ENODEV; }static inline void pnp_unregister_protocol(struct pnp_protocol *protocol) { }static inline int pnp_init_device(struct pnp_dev *dev) { return -ENODEV; }static inline int pnp_add_device(struct pnp_dev *dev) { return -ENODEV; }static inline int pnp_device_attach(struct pnp_dev *pnp_dev) { return -ENODEV; }static inline void pnp_device_detach(struct pnp_dev *pnp_dev) { ; }/* multidevice card support */static inline int pnp_add_card(struct pnp_card *card) { return -ENODEV; }static inline void pnp_remove_card(struct pnp_card *card) { ; }static inline int pnp_add_card_device(struct pnp_card *card, struct pnp_dev *dev) { return -ENODEV; }static inline void pnp_remove_card_device(struct pnp_dev *dev) { ; }static inline int pnp_add_card_id(struct pnp_id *id, struct pnp_card *card) { return -ENODEV; }static inline struct pnp_dev * pnp_request_card_device(struct pnp_card_link *clink, const char * id, struct pnp_dev * from) { return NULL; }static inline void pnp_release_card_device(struct pnp_dev * dev) { ; }static inline int pnp_register_card_driver(struct pnp_card_driver * drv) { return -ENODEV; }static inline void pnp_unregister_card_driver(struct pnp_card_driver * drv) { ; }/* resource management */static inline struct pnp_option * pnp_register_independent_option(struct pnp_dev *dev) { return NULL; }static inline struct pnp_option * pnp_register_dependent_option(struct pnp_dev *dev, int priority) { return NULL; }static inline int pnp_register_irq_resource(struct pnp_option *option, struct pnp_irq *data) { return -ENODEV; }static inline int pnp_register_dma_resource(struct pnp_option *option, struct pnp_dma *data) { return -ENODEV; }static inline int pnp_register_port_resource(struct pnp_option *option, struct pnp_port *data) { return -ENODEV; }static inline int pnp_register_mem_resource(struct pnp_option *option, struct pnp_mem *data) { return -ENODEV; }static inline void pnp_init_resource_table(struct pnp_resource_table *table) { }static inline int pnp_manual_config_dev(struct pnp_dev *dev, struct pnp_resource_table *res, int mode) { return -ENODEV; }static inline int pnp_auto_config_dev(struct pnp_dev *dev) { return -ENODEV; }static inline int pnp_validate_config(struct pnp_dev *dev) { return -ENODEV; }static inline int pnp_start_dev(struct pnp_dev *dev) { return -ENODEV; }static inline int pnp_stop_dev(struct pnp_dev *dev) { return -ENODEV; }static inline int pnp_activate_dev(struct pnp_dev *dev) { return -ENODEV; }static inline int pnp_disable_dev(struct pnp_dev *dev) { return -ENODEV; }static inline void pnp_resource_change(struct resource *resource,					resource_size_t start,					resource_size_t size) { }/* protocol helpers */static inline int pnp_is_active(struct pnp_dev * dev) { return 0; }static inline int compare_pnp_id(struct pnp_id * pos, const char * id) { return -ENODEV; }static inline int pnp_add_id(struct pnp_id *id, struct pnp_dev *dev) { return -ENODEV; }static inline int pnp_register_driver(struct pnp_driver *drv) { return -ENODEV; }static inline void pnp_unregister_driver(struct pnp_driver *drv) { ; }#endif /* CONFIG_PNP */#define pnp_err(format, arg...) printk(KERN_ERR "pnp: " format "\n" , ## arg)#define pnp_info(format, arg...) printk(KERN_INFO "pnp: " format "\n" , ## arg)#define pnp_warn(format, arg...) printk(KERN_WARNING "pnp: " format "\n" , ## arg)#ifdef CONFIG_PNP_DEBUG#define pnp_dbg(format, arg...) printk(KERN_DEBUG "pnp: " format "\n" , ## arg)#else#define pnp_dbg(format, arg...) do {} while (0)#endif#endif /* __KERNEL__ */#endif /* _LINUX_PNP_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -