我如何遍历内核中的列表列表?

时间:2019-04-03 15:03:57

标签: c linux struct kernel

我有一个实现到另一个列表的列表,但是我不知道如何遍历它。你能帮我吗?

LIST_HEAD(first_list);
LIST_HEAD(second_list);

struct my_first_list {

  struct list_head next;

  int variable_a;

}


struct my_second_list {

  struct list_head next;

  int variable_b;

  struct my_first_list *my_list;

}

我这样填充my_first_list:

struct my_second_list *sec_list_element;

list_for_each(p, &second_list) {

  sec_list_element = list_entry(p, struct my_second_list, next);

  for(int i = 0; i < 10; i++) {

    sec_list->my_list->variable_a = 1;

    list_add(&sec_list_element->my_list->next, &first_list);

  }

}

现在,我不知道该如何取回元素。 我试图做类似的事情:

my_first_list *first_list_element;
my_second_list *sec_list_element;
list_for_each(p, &second_list) {

  sec_list_element = list_entry(p, struct my_second_list, next);

  list_for_each(q, &first_list) {

    first_list_element = list_entry ... // and here i'm not sure what to do

  }

}

谢谢!

0 个答案:

没有答案