亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? device.h

?? Axis 221 camera embedded programing interface
?? H
?? 第 1 頁 / 共 2 頁
字號:
/* * device.h - generic, centralized driver model * * Copyright (c) 2001-2003 Patrick Mochel <mochel@osdl.org> * * This file is released under the GPLv2 * * See Documentation/driver-model/ for more information. */#ifndef _DEVICE_H_#define _DEVICE_H_#include <linux/ioport.h>#include <linux/kobject.h>#include <linux/klist.h>#include <linux/list.h>#include <linux/compiler.h>#include <linux/types.h>#include <linux/module.h>#include <linux/pm.h>#include <asm/semaphore.h>#include <asm/atomic.h>#include <asm/device.h>#define DEVICE_NAME_SIZE	50#define DEVICE_NAME_HALF	__stringify(20)	/* Less than half to accommodate slop */#define DEVICE_ID_SIZE		32#define BUS_ID_SIZE		KOBJ_NAME_LENstruct device;struct device_driver;struct class;struct class_device;struct bus_type {	const char		* name;	struct subsystem	subsys;	struct kset		drivers;	struct kset		devices;	struct klist		klist_devices;	struct klist		klist_drivers;	struct blocking_notifier_head bus_notifier;	struct bus_attribute	* bus_attrs;	struct device_attribute	* dev_attrs;	struct driver_attribute	* drv_attrs;	int		(*match)(struct device * dev, struct device_driver * drv);	int		(*uevent)(struct device *dev, char **envp,				  int num_envp, char *buffer, int buffer_size);	int		(*probe)(struct device * dev);	int		(*remove)(struct device * dev);	void		(*shutdown)(struct device * dev);	int (*suspend)(struct device * dev, pm_message_t state);	int (*suspend_late)(struct device * dev, pm_message_t state);	int (*resume_early)(struct device * dev);	int (*resume)(struct device * dev);};extern int __must_check bus_register(struct bus_type * bus);extern void bus_unregister(struct bus_type * bus);extern int __must_check bus_rescan_devices(struct bus_type * bus);/* iterator helpers for buses */int bus_for_each_dev(struct bus_type * bus, struct device * start, void * data,		     int (*fn)(struct device *, void *));struct device * bus_find_device(struct bus_type *bus, struct device *start,				void *data, int (*match)(struct device *, void *));int __must_check bus_for_each_drv(struct bus_type *bus,		struct device_driver *start, void *data,		int (*fn)(struct device_driver *, void *));/* * Bus notifiers: Get notified of addition/removal of devices * and binding/unbinding of drivers to devices. * In the long run, it should be a replacement for the platform * notify hooks. */struct notifier_block;extern int bus_register_notifier(struct bus_type *bus,				 struct notifier_block *nb);extern int bus_unregister_notifier(struct bus_type *bus,				   struct notifier_block *nb);/* All 4 notifers below get called with the target struct device * * as an argument. Note that those functions are likely to be called * with the device semaphore held in the core, so be careful. */#define BUS_NOTIFY_ADD_DEVICE		0x00000001 /* device added */#define BUS_NOTIFY_DEL_DEVICE		0x00000002 /* device removed */#define BUS_NOTIFY_BOUND_DRIVER		0x00000003 /* driver bound to device */#define BUS_NOTIFY_UNBIND_DRIVER	0x00000004 /* driver about to be						      unbound *//* driverfs interface for exporting bus attributes */struct bus_attribute {	struct attribute	attr;	ssize_t (*show)(struct bus_type *, char * buf);	ssize_t (*store)(struct bus_type *, const char * buf, size_t count);};#define BUS_ATTR(_name,_mode,_show,_store)	\struct bus_attribute bus_attr_##_name = __ATTR(_name,_mode,_show,_store)extern int __must_check bus_create_file(struct bus_type *,					struct bus_attribute *);extern void bus_remove_file(struct bus_type *, struct bus_attribute *);struct device_driver {	const char		* name;	struct bus_type		* bus;	struct completion	unloaded;	struct kobject		kobj;	struct klist		klist_devices;	struct klist_node	knode_bus;	struct module		* owner;	int	(*probe)	(struct device * dev);	int	(*remove)	(struct device * dev);	void	(*shutdown)	(struct device * dev);	int	(*suspend)	(struct device * dev, pm_message_t state);	int	(*resume)	(struct device * dev);	unsigned int multithread_probe:1;};extern int __must_check driver_register(struct device_driver * drv);extern void driver_unregister(struct device_driver * drv);extern struct device_driver * get_driver(struct device_driver * drv);extern void put_driver(struct device_driver * drv);extern struct device_driver *driver_find(const char *name, struct bus_type *bus);extern int driver_probe_done(void);/* driverfs interface for exporting driver attributes */struct driver_attribute {	struct attribute	attr;	ssize_t (*show)(struct device_driver *, char * buf);	ssize_t (*store)(struct device_driver *, const char * buf, size_t count);};#define DRIVER_ATTR(_name,_mode,_show,_store)	\struct driver_attribute driver_attr_##_name = __ATTR(_name,_mode,_show,_store)extern int __must_check driver_create_file(struct device_driver *,					struct driver_attribute *);extern void driver_remove_file(struct device_driver *, struct driver_attribute *);extern int __must_check driver_for_each_device(struct device_driver * drv,		struct device *start, void *data,		int (*fn)(struct device *, void *));struct device * driver_find_device(struct device_driver *drv,				   struct device *start, void *data,				   int (*match)(struct device *, void *));/* * device classes */struct class {	const char		* name;	struct module		* owner;	struct subsystem	subsys;	struct list_head	children;	struct list_head	devices;	struct list_head	interfaces;	struct semaphore	sem;	/* locks both the children and interfaces lists */	struct kobject		*virtual_dir;	struct class_attribute		* class_attrs;	struct class_device_attribute	* class_dev_attrs;	struct device_attribute		* dev_attrs;	int	(*uevent)(struct class_device *dev, char **envp,			   int num_envp, char *buffer, int buffer_size);	int	(*dev_uevent)(struct device *dev, char **envp, int num_envp,				char *buffer, int buffer_size);	void	(*release)(struct class_device *dev);	void	(*class_release)(struct class *class);	void	(*dev_release)(struct device *dev);	int	(*suspend)(struct device *, pm_message_t state);	int	(*resume)(struct device *);};extern int __must_check class_register(struct class *);extern void class_unregister(struct class *);struct class_attribute {	struct attribute	attr;	ssize_t (*show)(struct class *, char * buf);	ssize_t (*store)(struct class *, const char * buf, size_t count);};#define CLASS_ATTR(_name,_mode,_show,_store)			\struct class_attribute class_attr_##_name = __ATTR(_name,_mode,_show,_store) extern int __must_check class_create_file(struct class *,					const struct class_attribute *);extern void class_remove_file(struct class *, const struct class_attribute *);struct class_device_attribute {	struct attribute	attr;	ssize_t (*show)(struct class_device *, char * buf);	ssize_t (*store)(struct class_device *, const char * buf, size_t count);};#define CLASS_DEVICE_ATTR(_name,_mode,_show,_store)		\struct class_device_attribute class_device_attr_##_name = 	\	__ATTR(_name,_mode,_show,_store)extern int __must_check class_device_create_file(struct class_device *,				    const struct class_device_attribute *);/** * struct class_device - class devices * @class: pointer to the parent class for this class device.  This is required. * @devt: for internal use by the driver core only. * @node: for internal use by the driver core only. * @kobj: for internal use by the driver core only. * @devt_attr: for internal use by the driver core only. * @groups: optional additional groups to be created * @dev: if set, a symlink to the struct device is created in the sysfs * directory for this struct class device. * @class_data: pointer to whatever you want to store here for this struct * class_device.  Use class_get_devdata() and class_set_devdata() to get and * set this pointer. * @parent: pointer to a struct class_device that is the parent of this struct * class_device.  If NULL, this class_device will show up at the root of the * struct class in sysfs (which is probably what you want to have happen.) * @release: pointer to a release function for this struct class_device.  If * set, this will be called instead of the class specific release function. * Only use this if you want to override the default release function, like * when you are nesting class_device structures. * @uevent: pointer to a uevent function for this struct class_device.  If * set, this will be called instead of the class specific uevent function. * Only use this if you want to override the default uevent function, like * when you are nesting class_device structures. */struct class_device {	struct list_head	node;	struct kobject		kobj;	struct class		* class;	/* required */	dev_t			devt;		/* dev_t, creates the sysfs "dev" */	struct class_device_attribute *devt_attr;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久久久久久久院品网| 亚洲少妇30p| 91香蕉国产在线观看软件| 国产一区在线观看视频| 玖玖九九国产精品| 精品一区二区三区不卡| 麻豆精品在线观看| 狠狠狠色丁香婷婷综合激情| 国产一区二区主播在线| 国内精品伊人久久久久影院对白| 国产九色sp调教91| 成人免费电影视频| 色哟哟日韩精品| 欧美日韩精品专区| 日韩女优制服丝袜电影| 日韩午夜av电影| 久久午夜羞羞影院免费观看| 国产日韩欧美精品综合| 亚洲日本一区二区| 午夜精品成人在线| 久色婷婷小香蕉久久| 国产精品亚洲一区二区三区妖精| 成人久久视频在线观看| 在线观看不卡一区| 欧美一级黄色片| 中国色在线观看另类| 亚洲午夜免费福利视频| 美脚の诱脚舐め脚责91 | 日韩欧美国产成人一区二区| 精品国产乱子伦一区| 国产精品欧美一区二区三区| 亚洲综合精品久久| 九九国产精品视频| 91日韩精品一区| 日韩一二三四区| 亚洲免费伊人电影| 韩国女主播成人在线观看| 91美女视频网站| 精品国产乱码久久久久久影片| 亚洲视频在线一区二区| 韩国精品在线观看| 99视频在线精品| 精品国产亚洲一区二区三区在线观看| 亚洲三级在线观看| 久久精品国产精品青草| 欧洲生活片亚洲生活在线观看| www激情久久| 午夜欧美电影在线观看| 99r国产精品| 国产午夜精品一区二区| 免费高清在线一区| 欧美视频三区在线播放| 国产精品国产精品国产专区不蜜| 久久99精品一区二区三区| 欧美性猛交xxxx乱大交退制版| 久久久国产精品麻豆 | 欧美丰满少妇xxxbbb| 国产精品国产三级国产aⅴ原创 | 日韩一区二区在线观看| 一区二区三区**美女毛片| 丁香婷婷综合五月| 日韩欧美久久久| 亚洲免费资源在线播放| 国产91综合网| 久久久久久久久久美女| 国产在线播放一区| 欧美精品1区2区| 亚洲免费观看高清完整版在线观看 | 欧美激情一区二区三区全黄| 三级在线观看一区二区 | 亚洲国产精品麻豆| 99热在这里有精品免费| 中文字幕va一区二区三区| 国产成人av在线影院| 欧美浪妇xxxx高跟鞋交| 亚洲愉拍自拍另类高清精品| 成人性生交大片免费看中文 | 蜜臀久久久久久久| 欧美日韩一区高清| 视频一区视频二区中文| 欧美一区二区三区爱爱| 久久精品国产秦先生| 欧美一区欧美二区| 国产精品久久福利| 91搞黄在线观看| 午夜伊人狠狠久久| 日韩亚洲欧美在线| 国产呦精品一区二区三区网站| 久久久精品天堂| 成人激情图片网| 亚洲精品国产高清久久伦理二区| 成人国产亚洲欧美成人综合网| 亚洲天天做日日做天天谢日日欢 | 美脚の诱脚舐め脚责91| 亚洲国产精品激情在线观看| 成人三级在线视频| 夜夜精品视频一区二区| 91麻豆精品国产91久久久资源速度 | 国产精品欧美综合在线| 91麻豆精品在线观看| 婷婷六月综合网| 日本一区二区三区国色天香 | 精品乱码亚洲一区二区不卡| 成人一道本在线| 亚洲一区成人在线| 精品国产制服丝袜高跟| 色综合一区二区三区| 日韩黄色片在线观看| 日本一区二区免费在线| 欧美午夜精品免费| 国产一区二区三区四区五区美女| 中文字幕亚洲视频| 欧美一级免费观看| 91香蕉国产在线观看软件| 久久国产精品99久久人人澡| 国产精品白丝在线| 日韩精品一区二区三区四区视频 | 国产精品无码永久免费888| 欧美这里有精品| 激情综合网激情| 亚洲国产精品一区二区www| 欧美美女bb生活片| 波多野结衣欧美| 伦理电影国产精品| 一区二区三区四区av| 日韩欧美精品在线视频| 欧美日韩情趣电影| 91女人视频在线观看| 国产一区视频网站| 午夜精品福利在线| 国产精品久久福利| 国产色91在线| 欧美日韩一区二区三区在线| 成人免费视频视频在线观看免费 | 精品一区二区三区蜜桃| 性久久久久久久| 亚洲精品v日韩精品| 亚洲欧洲国产专区| 国产清纯美女被跳蛋高潮一区二区久久w| 欧美日韩国产三级| 欧美午夜影院一区| 色婷婷综合久久久久中文| 不卡一二三区首页| 成人不卡免费av| 成人国产一区二区三区精品| 成人免费高清视频| 成人app在线| 99re热这里只有精品视频| a4yy欧美一区二区三区| 99久久精品久久久久久清纯| 大胆欧美人体老妇| 成人精品亚洲人成在线| 成人精品免费视频| 99国产精品久| 欧美系列一区二区| 欧美久久久久久蜜桃| 欧美一级片在线| 久久综合九色综合97婷婷| 久久人人97超碰com| 久久色.com| 国产精品国产三级国产有无不卡 | 成人av网站免费| 91日韩一区二区三区| 欧美三级中文字| 日韩女优制服丝袜电影| 久久这里只有精品首页| 国产女人18毛片水真多成人如厕| 综合av第一页| 午夜电影网亚洲视频| 日本91福利区| 国产成人精品免费在线| 99久久99久久综合| 欧美日韩免费高清一区色橹橹| 日韩一区二区三区精品视频 | 色婷婷综合久久久久中文| 欧美日韩亚洲综合| 精品99一区二区三区| 国产精品成人免费精品自在线观看| 18成人在线观看| 青娱乐精品在线视频| 丰满少妇在线播放bd日韩电影| 一本高清dvd不卡在线观看| 欧美精品第一页| 欧美国产精品专区| 亚洲成人7777| 高潮精品一区videoshd| 欧美人伦禁忌dvd放荡欲情| 久久蜜臀中文字幕| 一区二区三区欧美久久| 精品一区二区av| 在线精品国精品国产尤物884a| 欧美va亚洲va香蕉在线| 一区二区三区波多野结衣在线观看| 久久精品国产久精国产| 日本精品免费观看高清观看| 久久一留热品黄| 亚洲va国产va欧美va观看| 成人自拍视频在线观看| 日韩精品中文字幕一区| 亚洲一卡二卡三卡四卡五卡|