XNU вклинивается в Kext

Я работаю над Kext, который должен иметь доступ к struct proc->p_pid поле. Проблема в том, что структура определяется только в источниках XNU, поэтому я столкнулся с incomplete definition of type 'struct proc' ошибка при компиляции.

С моей точки зрения, включение заголовков XNU в мой собственный проект - плохо пахнущее решение, но какова альтернатива? Это копировать и вставлять структуру в мой собственный код?

1 ответ

Решение

Вы должны использовать proc_pid(proc_t) за это. Структура должна быть непрозрачной, так как, если она изменяется между ревизиями ядра, ваш код может получить доступ к неправильному смещению.

Я бы включил определения для структур только в том случае, если я делаю что-то гнусное, иначе я бы искал функциональный интерфейс.

Другие вопросы по тегам