关于task_struct 中*pidhash_next和**hash_prev的详细图解

来源:互联网 发布:mac怎么制作iphone铃声 编辑:程序博客网 时间:2024/06/08 09:51

 

 在linux2.4内核源码中,关于task_struct有一部分关于hash表的结构,大略的定义如下:
哈希表定义
extern struct task-struct *pidhash[HASH_SZ];

struct task_struct{
  ......
  struct task_struct *pidhash_next;
  struct task-struct **pidhash_prev; 
}
//struct task-struct **pidhash_prev; 指向前一个结点pidhash_next的地址,而该pidhash_next是下一个结点的地址

 

 

static inline void unhash_pid(struct task_struct *p){
  if(p->pidhash_next) //存在hash冲突

   p->pidhash_next->pidhash_prev = p->pidhash_prev;
  *(p->pidhash_prev) = p->pidhash_next;  
}

 

 

 

 

原创粉丝点击