当前位置: 技术问答>linux和unix
list_for_each_entry在keil下编译出错
来源: 互联网 发布时间:2016-07-26
本文导语: 我将linux下一个程序移植到Keil for arm下. 遇到一个郁闷的问题就是在linux下一个宏 /** * list_for_each_entry - iterate over list of given type * @pos: the type * to use as a loop cursor. * @head: the head for your list. * @member:...
我将linux下一个程序移植到Keil for arm下. 遇到一个郁闷的问题就是在linux下一个宏
/**
* list_for_each_entry - iterate over list of given type
* @pos: the type * to use as a loop cursor.
* @head: the head for your list.
* @member: the name of the list_struct within the struct.
*/
#define list_for_each_entry(pos, head, member)
for (pos = list_entry((head)->next, typeof(*pos), member);
prefetch(pos->member.next), &pos->member != (head);
pos = list_entry(pos->member.next, typeof(*pos), member))
#define list_entry(ptr, type, member)
container_of(ptr, type, member)
#define container_of(obj, type, memb)
((type *)(((char *)obj) - offset_of(type, memb)))
#define offset_of(type, memb)
((unsigned long)(&((type *)0)->memb))
我在keil下用这个宏怎么写都出错. 即使我将嵌套的宏化简化成单独一个宏编译还是说类型匹配出错.
有没有这个函数的详细资料.
/**
* list_for_each_entry - iterate over list of given type
* @pos: the type * to use as a loop cursor.
* @head: the head for your list.
* @member: the name of the list_struct within the struct.
*/
#define list_for_each_entry(pos, head, member)
for (pos = list_entry((head)->next, typeof(*pos), member);
prefetch(pos->member.next), &pos->member != (head);
pos = list_entry(pos->member.next, typeof(*pos), member))
#define list_entry(ptr, type, member)
container_of(ptr, type, member)
#define container_of(obj, type, memb)
((type *)(((char *)obj) - offset_of(type, memb)))
#define offset_of(type, memb)
((unsigned long)(&((type *)0)->memb))
我在keil下用这个宏怎么写都出错. 即使我将嵌套的宏化简化成单独一个宏编译还是说类型匹配出错.
有没有这个函数的详细资料.
|
菜鸟帮顶
|
list_for_each_entry 用到了gcc的一个特性
能通过结构体里的一个元素得到结构体本身的首地址
最重要的是typeof ,这个是gcc的扩展
linux内核依赖gcc的特性,我只听说过似乎intel的编译器能编译linux内核
能通过结构体里的一个元素得到结构体本身的首地址
最重要的是typeof ,这个是gcc的扩展
linux内核依赖gcc的特性,我只听说过似乎intel的编译器能编译linux内核
|
上面的containerof宏 就是啊 问题不在这
prefetch(pos->member.next), 这个预取指令 可能就是问题所在
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。