上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页
  2012年6月2日
摘要: 在从事Linux Kernel开发的过程中,user_app和kernel之间传递数据时不能使用memcpy()函数,必须使用copy_to/from_kernel或者是put/get_user。原因是kernel和user_app内存不能直接互访。1. put_userNameput_user -- Write a simple value into user space.Synopsisput_user ( x, ptr);ArgumentsxValue to copy to user space.ptrDestination address, in user space.ContextU 阅读全文
posted @ 2012-06-02 21:04 wanghetao 阅读(26019) 评论(0) 推荐(3) 编辑
摘要: /proc/devices/下的设备是驱动程序生成的,它可产生一个major供mknod作为参数。/dev/下的设备是通过mknod加上去的,用户通过此设备名来访问驱动。The following script,scull_load, is part of thesculldistribution. The user of a driver that is distributed in the form of a module can invoke such a script from the system'src.localfile or call it manually whene 阅读全文
posted @ 2012-06-02 20:02 wanghetao 阅读(9966) 评论(0) 推荐(1) 编辑
  2012年5月28日
摘要: struct file结构体定义在/linux/include/linux/fs.h(Linux 2.6.11内核)中,其原型是:struct file { /* * fu_list becomes invalid after file_free is called and queued via * fu_rcuhead for RCU freeing */ union { struct list_head fu_list; struct rcu_head fu_rcuhead; } f_u; struct path f_path;#define f_dentry f_path.dentry# 阅读全文
posted @ 2012-05-28 17:35 wanghetao 阅读(10012) 评论(0) 推荐(2) 编辑
摘要: *索引节点对象由inode结构体表示,定义文件在linux/fs.h中*/struct inode { struct hlist_node i_hash; /* 哈希表 */ struct list_head i_list; /* 索引节点链表 */ struct list_head i_dentry; /* 目录项链表 */ unsigned long i_ino; /* 节点号 */ atomic_t i_count; /* 引用记数 */ umode_t i_mode; /* 访问权限控制 */ unsi... 阅读全文
posted @ 2012-05-28 17:33 wanghetao 阅读(8871) 评论(0) 推荐(2) 编辑
摘要: 在标准C中(C89)结构标准初始化是用{}来实始化,在C99的版本,采用了采用可读性更强的标记化实始化,这在LINUX内核和驱动很为常见。这是ISO C99的用法C Primer Plus第五版中相关章节:已知一个结构,定义如下 struct book { char title[MAXTITL]; char author[MAXAUTL]; float value;}; C99支持结构的指定初始化项目,其语法与数组的指定初始化项目近似。只是,结构的指定初始化项目使用点运算符和成员名(而不是方括号和索引值)来标识具体的元素。例如,只初始化book结构的成员value,可以这样做: stru... 阅读全文
posted @ 2012-05-28 16:37 wanghetao 阅读(3043) 评论(0) 推荐(3) 编辑
摘要: Character Device DriversThe file_operations Structure The file_operations structure is defined in linux/fs.h, andholds pointers to functions defined by the driver that perform various operations on the device. Each field of thestructure corresponds to the address of some function defined by the dri. 阅读全文
posted @ 2012-05-28 15:43 wanghetao 阅读(3097) 评论(0) 推荐(1) 编辑
摘要: 数据来源:Alexa时间:2012年4月8日要点:前50家中,谷歌旗下网站占了14个(包括收购的Youtube和Blogger);百度排名从去年第六位上升到第五位;新浪的门户和微薄站了两个。按照浏览时间,facebook远远超过google。谷歌是第一个月独立访问两超过10亿的网站。说明:作为谷粉,我这篇文章是想说,虽然苹果马上6000亿了,虽然说FB要在纳斯达克IPO,融资50亿(谷歌当年是16.7亿);谷歌还是很牛的。*************************************************************************************** 阅读全文
posted @ 2012-05-28 12:25 wanghetao 阅读(821) 评论(0) 推荐(1) 编辑
  2012年5月27日
摘要: Linux是基于模块的,所有的驱动都是模块化的:管理模块的命令:1、列出系统中所有已经加载的模块的大小与名称等:lsmod或者cat/proc /modulesty@tonylinux:~$lsmodModuleSizeUsedbyrfcomm402160l2cap262445rfcommbluetooth500204rfcomm,l2capppdev92200radeon1160001........ty@tonylinux:~$cat/proc/modulesrfcomm402160-Live0xf8dee000l2cap262445rfcomm,Live0xf8DB2000bluetoo 阅读全文
posted @ 2012-05-27 20:41 wanghetao 阅读(2187) 评论(0) 推荐(1) 编辑
  2012年5月22日
摘要: C++ STL iterator lower_bound( const key_type &key ); iterator upper_bound( const key_type &key );函数作用 iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bound( const key_type &key ):返回一个迭代器,指向键值> key的第一个元素。lower_bound()函数第一个版本: template< cl 阅读全文
posted @ 2012-05-22 21:39 wanghetao 阅读(9224) 评论(0) 推荐(0) 编辑
摘要: 1 pair的应用pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first second 因为是使用struct不是class,所以可以直接使用pair的成员变量。2 make_pair函数templatepair make_pair(T1 a, T2 b) { return pair(a, b); }很明显,我们可以使用pair的构造函数也可以使用make_pair来生成我们需要的pair。 阅读全文
posted @ 2012-05-22 20:08 wanghetao 阅读(7791) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页