I want to reach bluetooth, wifi, usb, firewire and other communication interfaces on mac. I want to also doing authentication for bluetooth and wifi. Which kernel extension I must use Generic kernel extension or I/O Driver extension?
1 Answers
1
votes
- The Airport (Wifi) drivers don't have public kernel APIs.
- The public bluetooth APIs mostly live in user space, not the kernel.
- USB and Firewire device families are managed by the I/O Kit and have public APIs in both the kernel and user space.
- By "other communication" I assume you mean networking? Network card device drivers are built around the kernel I/O Kit APIs, sockets and packet filtering etc. live in the BSD portion of the kernel.
So overall, if you need to get at the objects representing devices, you will need to use the I/O Kit - either from an I/O Kit kext or from userspace. If you're using the network (Ethernet, IP) APIs, you'll want a Generic kext.