Здравствуйте, форумчане!
Разбираюсь с написанием LKM.
Все ничего вроде. Но дана мне задачка, в ней среди прочего значится:
- Внутри модуля N буферов для чтения/записи данных из пространства пользователя, каждый буфер размером M байт.
- При выполнении open (/dev/chrdev) из пользовательского процесса последнему назначается буфер (один из N, для последующей записи в него) с наименьшим свободным номером. В случае, если свободных буферов нет — выдается соотв код ошибки. Буфер при этом переходит в состоянии «занят». При выполнении close(/dev/chrdev) буфер становится свободным для использования в других процессах.
Соответственно вопрос:
- Как лучше заявить эти буферы и как назначить буферам номера, искать среди них наименьший?
Заранее спасибо!