Linux | 数据结构之内核链表
2023-12-21 02:00:39
Linux | 数据结构之内核链表
时间:2023年12月20日15:42:45
文章目录
1.参考
1.数据结构与算法教程,数据结构C语言版教程! (biancheng.net)
2.双向链表及创建(C语言)详解 (biancheng.net)
3.内核数据结构 —— 内核链表_内核链表长度怎么表示-CSDN博客
6.structure/1_kernellist · cProgram/100Example - 码云 - 开源中国 (gitee.com)
2.内核链表
2-1.源码
[fly@752fac4b02e9 kernel]$ find ./ -name list.h ./include/linux/list.h ./include/config/debug/pi/list.h ./include/config/defconfig/list.h ./tools/perf/util/include/linux/list.h
#ifndef _LINUX_LIST_H
#define _LINUX_LIST_H
#ifndef ARCH_HAS_PREFETCH
#define ARCH_HAS_PREFETCH
static inline void prefetch(const void *x) {
;}
#endif
/*
* Simple doubly linked list implementation.
*
* Some of the internal functions ("__xxx") are useful when
* manipulating whole lists rather than single entries, as
* sometimes we already know the next/prev entries and we can
* generate better code by using them directly rather than
* using the generic single-entry routines.
*/
struct list_head {
struct list_head *next, *prev;
};
#define LIST_HEAD_INIT(name) {
&(name), &(name) }
#define LIST_HEAD(name) \
struct list_head name = LIST_HEAD_INIT(name)
#define INIT_LIST_HEAD(ptr) do {
\
(ptr)->next = (ptr); (ptr)->prev = (ptr); \
} while (0)
/*
* Insert a new entry between two known consecutive entries.
*
* This is only for internal list manipulation where we know
* the prev/next entries already!
*/
static inline void __list_add(struct list_head <
文章来源:https://blog.csdn.net/I_feige/article/details/135115655
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!