2010-01-30 4 views
1

Я пытаюсь перенести некоторый код из FreeBSD в OS X. Код довольно низкоуровневый и создает несколько специальных файлов устройств с использованием make_dev() и управляет функциями с использованием таких функций, как ioctl().Есть ли эквивалент OS X функции make_dev() FreeBSD?

В идеале я хотел бы, чтобы мой код был как можно ближе к оригиналу, поэтому я могу более легко объединить восходящие изменения в будущем: мой вопрос в том, есть ли способ создать такие файлы устройств на OS X? Согласно wikipedia, идиома поддерживается на платформе. Может ли кто-нибудь указать мне в правильном направлении?

+0

Вы пишете расширение ядра или переносите приложение userland? Что не так с mknod (2) для вашего использования? –

+0

Исходный код, который я пытаюсь выполнить с портом, является расширением ядра: если я могу работать в пользовательской области, хотя я бы предпочел. Кажется, что через IOKit я могу получить фактические данные устройства, которые мне нужны, поэтому, если я могу создать специальные файлы устройств в пользовательской среде, которые работают так же, как и устройства, созданные в/dev, с расширением ядра, это было бы хорошо. Так оно работает? – jkp

+0

Вы нашли/получили исходный код DVB? – t0mm13b

ответ

0

Я думаю, что я ответил на свой вопрос: кажется, что это нужно сделать, это devfs_make_node(). Я не могу найти справочную страницу, но это показано в некотором примере кода here.

0

За the docs, mknod действительно работает на OS X. Какие у вас проблемы с этим?

+0

Извините, это было поспешное редактирование: я не уверен, что mknod делает то же самое, что make_dev ... – jkp