b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

semaphore 设备模型(上)

电脑杂谈  发布时间:2018-02-14 21:11:30  来源:网络整理

java semaphore_semaphore_semaphore mutex

对于驱动开发来说,设备模型的理解是根本,毫不夸张得说,理解了设备模型,再去看那些五花八门的驱动程序,你会发现自己站在了另一个高度,从而有了一种俯视的感觉,就像凤姐俯视知音和故事会,韩峰同志俯视女下属。

顾名而思义就知道设备模型是关于设备的模型,既不是任小强们的房模,也不是张导的炮模。对咱们写驱动的和不写驱动的人来说,设备的概念就是总线和与其相连的各种设备了。电脑城的IT工作者都会知道设备是通过总线连到计算机上的,而且还需要对应的驱动才能用,可是总线是如何发现设备的,设备又是如何和驱动对应起来的,它们经过怎样的艰辛才找到命里注定的那个他,它们的关系如何,白头偕老型的还是朝三暮四型的,这些问题就不是他们关心的了,而是咱们需要关心的。在房市股市千锤百炼的咱们还能够惊喜的发现,这些疑问的中心思想中心词汇就是总线、设备和驱动,没错,它们就是咱们这里要聊的Linux设备模型的名角。

总线、设备、驱动,也就是bus、device、driver,既然是名角,在内核里都会有它们自己专属的结构,在include/linux/device.h里定义。

52 struct bus_type {

53 const char * name;

54 struct module * owner;

55

56 struct kset subsys;

57 struct kset drivers;

58 struct kset devices;

59 struct klist klist_devices;

60 struct klist klist_drivers;

61

62 struct blocking_notifier_head bus_notifier;

63

64 struct bus_attribute * bus_attrs;

65 struct device_attribute * dev_attrs;

66 struct driver_attribute * drv_attrs;

67 struct bus_attribute drivers_autoprobe_attr;

68 struct bus_attribute drivers_probe_attr;

69

70 int (*match)(struct device * dev, struct device_driver * drv);

71 int (*uevent)(struct device *dev, char **envp,

72 int num_envp, char *buffer, int buffer_size);

73 int (*probe)(struct device * dev);

74 int (*remove)(struct device * dev);

75 void (*shutdown)(struct device * dev);

76

77 int (*suspend)(struct device * dev, pm_message_t state);

78 int (*suspend_late)(struct device * dev, pm_message_t state);

79 int (*resume_early)(struct device * dev);

80 int (*resume)(struct device * dev);

81

82 unsigned int drivers_autoprobe:1;

83 };

124 struct device_driver {


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-77924-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...