дык проверьте флаг и верните 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ам прописываете? возможно так же имеет смысл переустановить...
а почему бы в библиотеке просто и тупо не выделять память на стеке? кроме того в библиотеке можно mmapить /dev/zero (ala SystemV) (память на...
1) вы неправильно объявили структуру idt - надо так typedef struct {...
можно увидеть список инклудов вашего модуля? попробуйте также пройтись grep по /usr/src/linux/include/linux на предмет __build_read_lock
1) конфликта быть не должно 2) насколько я знаю, размер области памяти, выделенной через mmap() можно изменить через mmap(), указав в качестве...
стек обычно начинается от 0xc0000000, однако всегда можно получить копию регистров трассируемого процесса с помощью PTRACE_GETREGS (дабы вытащить...
Имена участников (разделяйте запятой).