linux内核及编程
愚中仙
这个作者很懒,什么都没留下…
展开
-
内核数据结构--哈希链表
Linux内核中,除了有通用了双向链表list,还有通用的哈希链表hlist。后者定义与前者有些不同。因为通常一个哈希表的表头要占用很大空间,而如果每个表头都用一个双向链表来做的话,就显得太浪费了。只用一个指针可以实现相同的功能,并且可以节省一半的表头存储空间。双向链表定义如下:struct list_head {struct list_head *next, *prev;};转载 2013-08-16 03:13:14 · 1006 阅读 · 0 评论 -
linux内核container_of宏定义分析(全文转载)
全文转自:puppy居http://www.cnitblog.com/puppypyb/archive/2008/08/20/48172.aspx一、#define offsetof(TYPE, MEMBER) ((size_t) & ((TYPE *)0)->MEMBER )1. ( (TYPE *)0 ) 将零转型为TYPE类型指针;2. ((TYPE *)0)->MEMBER转载 2013-12-31 22:58:15 · 601 阅读 · 0 评论 -
unknown field 'ioctl' specified in initializer
写个LED的驱动模块,编译一直不能通过,问题是ioctl是未知的,查看了下原始结构体定义才发现,内核中file_operations的结构较早的版本(大部分书上都还是用的ioctl,至少我手头上的都是)发生了变化(我用的是linux2.6.37.4)。1、编译报错:error: unknown field 'ioctl' specified in initializer,解释:stru原创 2013-12-18 01:20:55 · 1182 阅读 · 0 评论 -
linux-3.12.6 移植yaffs2文件系统记录
这里主要是由于内核中一些接口的改变造成的。1、问题:fs/yaffs2/yaffs_vfs.c:1786:2: error: unknown field 'readdir' specified ininitializer. 分析:出现这种错误往往是由于没有定义造成的。我进入源码发现是file_operation 文件操作函数类里的成员,猜测没有这个成员(映像中是有的)。定位到fi转载 2014-01-11 00:05:53 · 1332 阅读 · 2 评论 -
linux系统移植时出现问题记录
1、启动时提示tmp目录挂载不成功mount: mounting tmpfs on /tmp failed: Invalid argumentmount: mounting tmpfs on /dev failed: Invalid argumentmount: mounting var on /dev failed: Invalid argument问题由来:移植时通过m原创 2014-02-03 23:03:19 · 1398 阅读 · 0 评论