дык проверьте флаг и верните EIO или что-нибудь в этом духе.
смущает. попробуйте инвалидейтить кеш-линейки с буфера данных перед чтением флешки и сбрасывать их после записи
после компиляции ядра обычно остается фигова туча файлов *.mod.c выглядят они как ...... struct module __this_module...
в принципе тебе никто не мешает: 1) взять какой-нибудь ccc.mod.c (в *.mod.c находится объявление и инициализация структуры module для этого...
размер сектора флешки и величина константы FLASH_SEC_SIZE точно 512 байт? как она инитится?
мне кажется, что исходник ваших функций чтения/записи/probe а так же название флеша заметно бы оживили дискуссию
скорее всего какой-нибудь ARM9
Если речь идет о ядре Linux 2.6.x, то тебе возможно подошли бы completion`s (см include/linux/completion.h) один поток ждет события по...
про FreeBSD сказать ничего не могу, однако в Linux есть binfmt_misс, который позволяет создавать ассоциации между какими-то эвристиками файла...
если для вас это еще актуально, то вот пример модуля ядра, который это делает: #define __KERNEL__ #define MODULE #include <linux/kernel.h>...
в Linux есть такая гранулярность (см mm/mmap.c sys_brk(), kernel 2.2/2.4/2.6 ). фактически brk() это просто обертка над mmap(). но это нас увело...
именно. одна команда sidt, потом все можно писать на чистом С.под black assembly magic подразумевалось то, что вы написали в set_handler()
естественно можно - ведь это сводится только к записи в idt (фактически в какую-то область памяти)
ещё одно замечание: зачем для установки шлюза прерывания использовать gcc black assembly magic?
похоже,что у вас проблемы со сборкой. как вы собираете модуль, какие пути к includам прописываете? возможно так же имеет смысл переустановить...
Имена участников (разделяйте запятой).