marship 发表于 2005-12-25 21:46:30

关于LIST_ENTRY的实现

今天看了看2.6内核的list.h文件,发现LIST_ENTRY的实现和以前不一样了,现在是
#define list_entry(ptr, type, member) \
        container_of(ptr, type, member)
而对container_of的定义只在aio.h找到 下面的
#define io_wait_to_kiocb(wait) container_of(wait, struct kiocb, ki_wait)

还是没有具体的实现,请问具体实现在哪里,谢谢!

zyzii 发表于 2005-12-26 16:22:35

在kernel.h文件中:

#define container_of(ptr, type, member) ({                        \
      const typeof( ((type *)0)->member ) *__mptr = (ptr);        \
      (type *)( (char *)__mptr - offsetof(type,member) );})

marship 发表于 2005-12-28 17:57:16

谢谢,能解释一下 const typeof( ((type *)0)->member )什么意思吗?
页: [1]
查看完整版本: 关于LIST_ENTRY的实现