1、struct inode──字符设备驱动相关的重要结构介绍 内核中用inode结构表示具体的文件,而用file结构表示打开的文件描述符。Linux2.6.27内核中,inode结构体具体定义如下: structinode{structhlist_nodei_hash;structlist_headi_list;structlist_headi_sb_list;structlist_headi_dentry;unsignedlongi_ino;atomic_ti_coun...
struct hlist_node hash_node; /* PL: unbound_pool_hash node */ //用于添加到unbound_pool_hash中 ... } ___cacheline_aligned_in_smp; 2.6 pool_workqueue pool_workqueue充当纽带的作用,用于将workqueue和worker_pool关联起来; 关键字段描述如下: struct pool_workqueue { struct worker_pool *pool; /*...
1、struct inode──字符设备驱动相关的重要结构介绍 内核中用inode结构表示具体的文件,而用file结构表示打开的文件描述符。Linux2.6.27内核中,inode结构体具体定义如下: struct inode{ struct hlist_node i_hash; struct list_head i_list; struct list_head i_sb_list; struct list_head i_dentry; unsigned lo...
//哈希表头节点 struct hlist_head { struct hlist_node *first; }; struct hlist_node { struct hlist_node *next, **pprev; }; //hlist_first_rcu(head)是取到哈希表的头指针的头节点 #define hlist_first_rcu(head) (*((struct hlist_node __rcu **)(&(head)->first))) //通过member来获取...
struct hlist_node *next; //下一个节点 struct hlist_node **pprev; //上一个节点的next指针的地址 }; ``` 使用hlist_head结构体的步骤如下: 1.声明一个hlist_head结构体变量,作为哈希链表的头结点。 2.使用INIT_HLIST_HEAD宏初始化hlist_head结构体变量,将其first成员置空。 示例代码如下: ``` #incl...
structhlist_nodetb_hlist; u32 tb_id; inttb_default; inttb_num_default; unsignedlongtb_data[0]; }; 所有的路由表都通过一个 hash - fib_table_hash 来组织和管理。它是放在网络命名空间 net 下的。这也就说明每个命名空间都有自己独立的路由表。
struct hlist_node index_hlist; //用于将每一个网络设备加入到一个网络命名空间中的网络设备双链表中 struct list_head dev_list; //网络设备接口的标识符,其状态类型被定义在<linux/if.h>之中; unsigned int flags; //网络设备接口的标识符,但对用户空间不可见; ...
/* PID/PID hash table linkage. */structpid*thread_pid;structhlist_nodepid_links[PIDTYPE_MAX];structlist_headthread_group;structlist_headthread_node; structcompletion*vfork_done; /* CLONE_CHILD_SETTID: */int__user *set_child_tid;
{//用于存放网络设备的设备名称;charname[IFNAMSIZ];//网络设备的别名;char*ifalias;//网络设备的接口索引值,独一无二的网络设备标识符;intifindex;//这个字段用于构建网络设备名的哈希散列表,而struct net中的//name_hlist就指向每个哈希散列表的链表头;structhlist_node name_hlist;//用于构建网络设备的接口索...
structhlist_nodei_hash; structlist_headi_io_list;/* backing dev IO list */ structlist_headi_lru;/* inode LRU list */ structlist_headi_sb_list; structlist_headi_wb_list;/* backing dev writeback list */ union{ structhlist_headi_dentry; ...