У меня есть kext, который должен знать, на какой версии OS X он работает. CocoaDev имеет статью , в которой описывается, как получить информацию о версии OS X с помощью Gestalt (), но для кода требуется Cocoa.
Могу ли я позвонить в Гештальт () из кекста?
Если да, то что #include я могу использовать для его определения?
Если нет, есть ли другие решения?
Справочная информация:
Я хотел бы использовать одни и те же кекс-коды во всех версиях OS X с 10.4 до 10.7.
НО: kexts вызывает cdevsw_add
, который был изменен в Lion без обратной совместимости. Наряду с (очевидно) изменениями в некоторых программах ядра, которые его вызывают, эти изменения означают - согласно комментарию перед процедурой - что cdevsw_add
должен вызываться с другим первым аргументом в 10.7, чем в OS X 10.0–10.6. (-12 на Льве, -1 на более ранних версиях.)
Если кексы могут определить, на какой версии OS X они работают, это легко. (Если нет, это будет трудная задача - может быть, ужасный клочок, похожий на создание двух разных версий kexts и выбор кода загрузки kext, который нужно загрузить.)