XNU вклинивается в Kext
Я работаю над Kext, который должен иметь доступ к struct proc->p_pid
поле. Проблема в том, что структура определяется только в источниках XNU, поэтому я столкнулся с incomplete definition of type 'struct proc'
ошибка при компиляции.
С моей точки зрения, включение заголовков XNU в мой собственный проект - плохо пахнущее решение, но какова альтернатива? Это копировать и вставлять структуру в мой собственный код?
1 ответ
Решение
Вы должны использовать proc_pid(proc_t)
за это. Структура должна быть непрозрачной, так как, если она изменяется между ревизиями ядра, ваш код может получить доступ к неправильному смещению.
Я бы включил определения для структур только в том случае, если я делаю что-то гнусное, иначе я бы искал функциональный интерфейс.