Не вдаваясь в подробности о том, почему я ищу чистый (максимально возможный) способ заменить функции ядра и системные вызовы из загружаемого модуля. Моя первоначальная идея заключалась в том, чтобы написать некоторый код, чтобы переопределить некоторые функции, которые возьмут исходную функцию (возможно, если это возможно, вызовите функцию), а затем добавьте часть моего собственного кода. Ключ состоит в том, что функция, которую я пишу, должна иметь имя исходной функции, поэтому другой код при попытке получить к нему доступ будет иметь доступ к мне.
Я могу (сравнительно) сделать это прямо в ядре, просто бросив свой код в соответствующие функции, но мне было интересно, знает ли кто-нибудь немного C-магии, которая не обязательно является ужасной практикой кодирования ядра (или C), которая может достичь того же результата.
Мысли о #defines и typedefs приходят на ум, но я не могу его взломать в голове.
Вкратце: кто-нибудь знает способ эффективного переопределения функций в ядре Linux (из модуля)?
EDIT: поскольку мне было предложено, я действительно хочу записать определенные функции (создание/удаление каталогов и т.д.) изнутри ядра, но для здравого смысла загружаемый модуль, похоже, имеет смысл, вместо того, чтобы писать большой патч к коду ядра и перекомпилировать при каждом изменении. Минимальное количество добавленного кода для ядра в порядке, но я хочу разгрузить большую часть работы в модуль.