Найдено 6 результатов

jcmvbkbc
08 окт 2015, 22:55
Форум: Linux изнутри
Тема: модификация системных вызовов
Ответы: 29
Просмотры: 18507

Re: модификация системных вызовов

Olej писал(а):Загружаться-выгружаться там нечему, потому что ничего не вызывается ;-) , но с компиляцией сяду посмотреть внимательнее.
Символы связываются, загрузка это тестирует.
jcmvbkbc
08 окт 2015, 22:51
Форум: Linux изнутри
Тема: модификация системных вызовов
Ответы: 29
Просмотры: 18507

Re: модификация системных вызовов

Я не знаю, кто вам это сказал, но это явная ошибка. Мне сказали это визуализаторы исходников ядра по проекту LXR (Linux Cross Reference), здесь и здесь Уточню, "явная ошибка" было сказано вот об этой фразе: arch/x86/include/asm/tlbflush.h - файл который отсутствует, недоступен при компиляции модуле...
jcmvbkbc
08 окт 2015, 22:33
Форум: Linux изнутри
Тема: модификация системных вызовов
Ответы: 29
Просмотры: 18507

Re: модификация системных вызовов

С чего бы? Конечно она доступна. Она будет встроена компилятором в место вызова, вне зависимости от того, модуль это или не модуль. Это было бы безусловно так (inline подстановка) если бы объявление это было в одном (любом) из хэдер файлов в /lib/module/`uname -r`/build/include ... но оно объявляет...
jcmvbkbc
08 окт 2015, 21:43
Форум: Linux изнутри
Тема: модификация системных вызовов
Ответы: 29
Просмотры: 18507

Re: модификация системных вызовов

Например так, если эти функции вызываются в атомарном контексте: Это возможно в виде патча, комита ... при сборке ядра. В коде динамического модуля это не сделаешь - я там выше дополнил почему ... но не успел ;-) Я там же выше дополнил, почему это возможно. В любом случае, как именно будет сброшен ...
jcmvbkbc
08 окт 2015, 21:34
Форум: Linux изнутри
Тема: модификация системных вызовов
Ответы: 29
Просмотры: 18507

Re: модификация системных вызовов

Например так, если эти функции вызываются в атомарном контексте: static void mem_setrw(void **table) { unsigned int l; pte_t *pte; pte = lookup_address((long unsigned int)table, &l); pte->pte |= _PAGE_RW; __flush_tlb_one((unsigned long)table); } static void mem_setro(void **table) { unsigned int l; ...
jcmvbkbc
08 окт 2015, 21:11
Форум: Linux изнутри
Тема: модификация системных вызовов
Ответы: 29
Просмотры: 18507

Re: модификация системных вызовов

В комментарии показан ещё интересный способ сделать страницу RAM записываемой: static void mem_setrw(void **table) { unsigned int l; pte_t *pte; pte = lookup_address((long unsigned int)table, &l); pte->pte |= _PAGE_RW; } static void mem_setro(void **table) { unsigned int l; pte_t *pte; pte = lookup...

Перейти к расширенному поиску