Как вы себе представляете это ? Что значит универсальнй механизм - что может быть общего между мышью, флэш накопителем и wi-fi сетевым адаптером кроме того что они подключены через usb ? Для консольных программ есть универсальное понятие терминала - там вообще не нужно знать по какому интерфейсу и через какой порт подключено устройство ввода, для мышей в терминале есть библиотека gpm, в x11 есть xlib, есть тулкиты и виджеты со своими абстракциями типа gtk, qt.
Думаю тучи вопросов не последует. Вы недооцениваете мои знания)
Под механизмом я понимаю примерную последовательность действий для достижения результата. Если такой не существует, то это наверное не есть хорошо.
Я тупо не пойму как из программы взаимодействовать с драйвером.
и наверное про иксы речь не идёт, хотя если там уже включена поддержка большинства устройств и "наш алгоритм" упрощается, то может стоит и Хы ставить
Если в ядре есть все необходимые модули - то именно так и будет - пользуйтесь всеми posix ф-ми ввода наздоровье. Все драйверы есть в ядре - их нужно только подключить/пересобрать ядро если этого еще не сделано (я например понятия не имею что есть в ашем ядре). Конкретно для usb клав, мышей нужно включить:
USB Human Interface Device (full HID) support
Location:
-> Device Drivers
-> HID Devices
еще рекомендую включить:
Event interface
Location:
-> Device Drivers
-> Input device support
это всё что я отыскал касаемо HID
думаю надо изменить следующим образом
остальное оставим без изменений
usb клавы пока не имею, она появиться попозже. О результатах испытаний отпишусь при наступлении таковых.
Мышь.
Предполагаю самый стандартный способ, который бы сработал для большого linux - использовать прерывания.
Алгоритм асм вставки для включения курсора:
-mov ax,1
-генерируем прерывание 33h
При переводе в Си алгоритм не канает(не компилится), так архитектура камня не имеет регистров ax и т.п. Полагаю номер прерывания тоже не тот