Как я могу перебрать список списка в ядре? - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть список, реализованный в другом списке, но я не знаю, как его перебрать. Не могли бы вы помочь мне с этим?

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

  }

}

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...