2010-01-30 23 views
1

J'essaye de porter du code de FreeBSD vers OS X. Le code est assez bas niveau et il crée un certain nombre de fichiers de périphériques spéciaux en utilisant make_dev() et contrôle la fonctionnalité en utilisant des fonctions comme ioctl(). Idéalement, je voudrais garder mon code aussi proche que possible de l'original afin de pouvoir plus facilement fusionner les changements en amont dans le futur: ma question est, est-il possible de créer de tels fichiers sur OS X? Selon wikipedia l'idiome est pris en charge sur la plate-forme. Quelqu'un peut me diriger dans la bonne direction?Existe-t-il un équivalent OS X de la fonction make_dev() de FreeBSD?

+0

Est-ce que vous écrivez une extension de noyau, ou le portage d'une application d'utilisateur? Quel est le problème avec mknod (2) pour votre usage? –

+0

Le code source que j'essaye de porter est une extension de noyau: si je peux travailler dans l'utilisateur, je préfère. Il semble que via IOKit je peux obtenir les données de périphériques dont j'ai besoin, donc si je peux créer des fichiers de périphériques spéciaux dans le userland qui fonctionnent de la même manière que les périphériques créés dans/dev par une extension de noyau. Est-ce la façon dont cela fonctionne? – jkp

+0

Avez-vous trouvé/trouvé le code source DVB? – t0mm13b

Répondre

0

Je pense avoir répondu à ma propre question: il semble que la fonction soit devfs_make_node(). Je ne peux pas trouver une page de man, mais il est montré dans un exemple de code here.

0

Par the docs, mknod fonctionne sur OS X. Quels problèmes rencontrez-vous avec?

+0

Désolé, c'était un montage hâtif: je ne suis pas sûr que mknod fasse la même chose que make_dev ... – jkp