Linux那些事儿之我是U盘(19)冬天来了,春天还会远吗?(三)

从两张表得到了我们需要的冬冬,然后下面的代码就是围绕着这两个指针来展开了.(unusual_dev和id) 476行,把unusual_dev给记录在us里边,反正us里边也有这么一个成员.这样记录下来日后要用起来就方便了,因为us是贯穿整个故事的,所以访问他的成员很方便,随时都可以,但是us_...

2007-06-29 22:04:00

阅读数:3

评论数:0

Linux那些事儿之我是U盘(18)冬天来了,春天还会远吗?(二)

我们打开unusual_devs.h吧,随便看一下,发现里边就是很多一个个UNUSUAL_DEV宏,每一行就是这么一个宏,毫无疑问它对应一种设备,我们从其中挑一个来看,比如挑一个三星的吧,过去在Intel的时候,前辈们会说,若不是当初我们对自己太自信了,这个世界上又怎么有三星的生存空间.说的是上世...

2007-06-28 19:28:00

阅读数:6

评论数:0

Linux那些事儿之我是U盘(17)冬天来了,春天还会远吗?(一)

整个usb-storage模块的代码中,其最灵魂的部分在一个叫做usb_stor_control_thread()的函数中,而那也自然是我们整个故事的高潮.这个函数的调用有些特殊,我们是从usb_stor_acquire_resources()函数进入的,而后者我们即将遇到,它在整部戏中只出现过一...

2007-06-28 17:33:00

阅读数:19

评论数:0

Linux那些事儿之我是U盘(16)冰冻三尺非一日之寒

罗马不是一天建成的.在让U盘工作之前,其实我们的驱动作了很多准备工作. 我们继续跟着感觉走,storage_probe(),943行至948行,一系列的以init_*命名的函数在此刻被调用,这里涉及了一些锁机制,等待机制,不过只是初始化,暂且不理睬,到后面用到的时候再细说,不过请记住,这几行每一...

2007-06-27 23:49:00

阅读数:6

评论数:0

Linux那些事儿之我是U盘(15)设备花名册

storage_probe这个函数挺有意思的,总长度不足100行,但是干了许多事情,这就像足球场上的后腰,比如切尔西的马克莱莱,在场上并不起眼,但是却为整个团队做出了卓越的贡献.也有很多评论家说银河战舰皇家马德里这几年的衰落正是从赶走这个不起眼的马克莱莱开始的. 在讲id_index之前,我...

2007-06-26 20:28:00

阅读数:4

评论数:0

Linux那些事儿之我是U盘(14)梦开始的地方

对于整个usb-storage模块,usb_stor_init()是它的开始,然而,对于U盘驱动程序来说,它真正驱使U盘工作却是始于storage_probe(). 两条平行线只要相交,就注定开始纠缠一生,不管中间是否短暂分离. usbcore为设备找到了适合她的驱动程序,或者为驱动程序找到了他...

2007-06-25 15:58:00

阅读数:4

评论数:0

Linux那些事儿之我是U盘(13)从协议中来,到协议中去(下)

如果你是急性子,那这时候你一定很想开始看storage_probe函数了,因为整个U盘的工作就是从这里开始的.不过,莎士比亚说过,磨刀不误砍柴功.不妨继续花点时间,至少把四大关键词中最后一个给弄明白了, 前面我们已经了解了device,configuration,interface,还剩最后一个...

2007-06-25 14:01:00

阅读数:3

评论数:0

Linux那些事儿之我是U盘(12)从协议中来,到协议中去(中)

星爷说,人有人他妈,妖有妖他妈.说的就是任何事物都有其要遵守的规矩.usb设备要遵循的就是usb协议.不管是软件还是硬件,在设计的伊始,总是要参考usb协议.怎么设计硬件,如何编写软件,不看usb协议,谁也不可能凭空想象出来.毕竟不是写小说,有几人能像海岩那样,光凭想象就能写出便衣警察,永不瞑目,...

2007-06-25 12:55:00

阅读数:6

评论数:0

Linux那些事儿之我是U盘(11)从协议中来,到协议中去(上)

在struct usb_driver中,.probe和.disconnect的原型如下: int (*probe) (struct usb_interface *intf,const struct usb_device_id *id); void (*disconnect) (stru...

2007-06-24 17:26:00

阅读数:4

评论数:0

Linux那些事儿之我是U盘(10)我是谁的他?

probe,disconnect,id_table,这三个咚咚中首先要登场亮相的是id_table,它是干嘛用的呢? 我们说过,一个device只能绑定一个driver,但driver并非只能支持一种设备,道理很简单,比如我有两块U盘,那么我可以一起都插入,但是我只需要加载一个模块,usb-st...

2007-06-24 15:27:00

阅读数:5

评论数:0

Linux那些事儿之我是U盘(9)总线,设备,和驱动(下)

bus上的两张链表记录了每一个device和driver,那么device和driver这两者之间又是如何联系起来的呢?此刻,必须抛出这样一个问题,先有device还是driver? 很久很久以前,在那激情燃烧的岁月里,先有的是device,每一个要用的device在计算机启动之前就已经插好...

2007-06-24 14:15:00

阅读数:6

评论数:0

Linux那些事儿之我是U盘(8)总线,设备,和驱动(上)

struct bus_type中为devices和drivers准备了两个链表,而代表device的结构体struct device中又有两个成员,struct bus_type *bus和struct device_driver *driver,同样,代表driver的结构体struct dev...

2007-06-24 13:29:00

阅读数:6

评论数:0

Linux那些事儿之我是U盘(7)狂欢是一群人的孤单

Linux设备模型中三个很重要的概念就是总线,设备,驱动.即bus,device,driver,而实际上内核中也定义了这么一些数据结构,他们是struct bus_type,struct device,struct device_driver,这三个重要的数据结构都来自一个地方,include/l...

2007-06-23 01:11:00

阅读数:5

评论数:0

Linux那些事儿之我是U盘(6)未曾开始却似结束

还是回到那个初始化函数吧,usb_stor_init,看了它的代码每一个人的心中都有一种莫名的兴奋,因为它太短了,就那么几行,除了两个printk语句以外,就是一个函数的调用,usb_register. printk不用我说,每一个有志青年都该知道,就算没见过printk也该见过printf吧,...

2007-06-22 23:36:00

阅读数:4

评论数:0

Linux那些事儿之我是U盘(5)外面的世界很精彩

看代码之前,我曾经认真的思考过这么一个问题,我需要关注的仅仅是drivers/usb/storage/目录下面那相关的3000多行代码吗?就是这样几个文件就能让一个个不同的U盘在Linux下面工作起来吗?像一开始那样把这个目录比作一个小城的话,也许,城里的月光很漂亮,她能够把人的梦照亮,能够温暖人...

2007-06-22 23:13:00

阅读数:5

评论数:0

Linux那些事儿之我是U盘(4)想到达明天,现在就要启程

既然知道了怎么编写一个模块,那么编写设备驱动程序自然也就不难了.我相信,每一个会写模块的人都不会觉得写设备驱动有困难.对自己行不行不确定的话,可以去问一下葛优,他准说:"(神州行),我看行." 真的,我没说假话.写驱动不是什么难事,你完全可以很自信的说,你...

2007-06-22 21:58:00

阅读数:4

评论数:0

CReg更新至V1.1.0

//========================================================================//TITLE:// CReg更新至V1.1.0//AUTHOR:// norains//DATE:// wednesday 60-June-2007...

2007-06-20 21:05:00

阅读数:7

评论数:0

Linux那些事儿之我是U盘(3)变态的模块机制

有一种感动,叫泪流满面,有一种机制,叫模块机制,十月革命一声炮响,给Linux送来了模块机制.显然,这种模块机制给那些Linux的发烧友们带来了方便,因为模块机制意味着人们可以把庞大的Linux内核划分为许许多多个小的模块,对于编写设备驱动程序的那帮家伙来说,从此以后他们可以编写设备驱动程序却不...

2007-06-20 19:18:00

阅读数:12

评论数:0

[转]VC++技术内幕(第四版)笔记(第7章)

/*****************************************/第七章:无模式对话框 和 Windows通用对话框类 1,[无模式对话框]在它处于激活状态下还允许用户在(同一个应用程序中)其它地方工作。 [通用对话框]则是C++和一组Windows的实用对话框之间的...

2007-06-11 16:57:00

阅读数:7

评论数:0

[转]VC++技术内幕(第四版)笔记(第6章)

/**************************************/ 第六章:模式对话框和Windows通用控件 1,对话框也是窗口,它不当可以接受消息,而且还可以被移动和关闭,甚至可以在它的客户区中进行绘图操作。 2,模式对话框在被关闭之前,用户无法在同一应用程序的其它...

2007-06-11 15:57:00

阅读数:5

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭