LINUX.ORG.RU

Список объектов примитиного типа в ядре

 , , , ,


0

1

Вопрос для тех, кто сечет в разработке ядра.

Как реализовать в ядре динамический список объектов определенного типа (int, float и т.д.), не структур? То есть это список объектов, который можно динамически расширять, проверять на вхождение, удалять и проходиться по элементам. Что-то типа kfifo. Есть ли какая-то готовая реализация в ядре? list_head не предлагать, так как применим только для структур.



Последнее исправление: vedro (всего исправлений: 2)

Структура из объекта нужного тебе примитивного типа и list_head'а. AFAIK, связный список в ядре один.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

Думал про этот вариант-обертку, но выглядит это уж как-то неочень. Просто такое ощущение, что где-то видел решение для таких типов, но найти не могу. Спасибо за предложение.

vedro
() автор топика
Ответ на: комментарий от i82

эм... да, каюсь, про размер фигню спорол с недосыпу %)

но тем не менее...

metawishmaster ★★★★★
()

list_head абсолютно монопенисуален «типу», просто он «интрузивный» и в этом его сила (позволяет хранить разные «типы» в одном списке, если кто-то посчитал, что они как-то связаны, и там, где они были созданы, как и один элемент — в разных списках). А то что вы хотите — это «неинтрузивный» список (на самом деле — вырожденный случай, получается из листхеда хранением в нем оберток для примитивного типа — просто добавляется «уровень абстракции» и «индирекции» — хранится не сам примитивный тип «число» или «флаг», а «указатель на переменную примитивного типа»), но в классических реализациях структурки под элементы тоже никуда не делись (просто спрятаны под капотом), еще и заморочки с самостоятельным обслуживанием памяти под них — вот это вот «То есть это список объектов, который можно динамически расширять» — как раз заморочки с пулом структурок, хранящих указатели на переменные примитивного типа :)

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 1)
Ответ на: комментарий от slackwarrior

Вы специально старались выразить свою мысль как можно сложнее?)) Безусловно, list_head - это самое простое решение задачи, которое может придти в голову. Просто думал, что в ядре есть механизмы для хранения таких видов данных, пускай даже нединамически.

Еще надо про flex_array почитать, как посоветовали выше, пока не успел.

vedro
() автор топика

Решил, буду использовать flex_array. На крайний случай есть list_head. Всем, кто откликнулся, спасибо.

vedro
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.