当前位置:   article > 正文

【Linux高级编译】Linux内核的list.h的高效应用----单向链表和双向链表的实现_linuxlist.h 封装单向链表类

linuxlist.h 封装单向链表类

Linux内核中,有许许多多的精妙设计,比如在内核代码中,运用到了大量的【链表】这种数据结构,而在Linux内核中,针对如此多的链表要进行操作,他们分别是如何定义和管理的呢?本文将给你展示,Linux内核中list.h的高效应用。

通过本文的阅读,你将了解到以下内容:

  • list.h的全貌
  • 如何使用list.h创建单向链表并实现链表的基本操作?
  • 如何使用list.h创建双向链表并实现链表的基本操作?

list.h的全貌


以下就是它的全部内容,可能不同版本的linux有些许的差异,但精髓都在这:

  1. #ifndef _LINUX_LIST_H
  2. #define _LINUX_LIST_H
  3. /********** include/linux/list.h **********/
  4. /*
  5. * These are non-NULL pointers that will result in page faults
  6. * under normal circumstances, used to verify that nobody uses
  7. * non-initialized list entries.
  8. */
  9. #define LIST_POISON1 ((void *) 0x00100100)
  10. #define LIST_POISON2 ((void *) 0x00200200)
  11. #ifndef ARCH_HAS_PREFETCH
  12. #define ARCH_HAS_PREFET
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号