fd is a handle you get back from ios on "open", and that you should pass back to all other calls --segher

Most non-trivial operations are performed by opening one of the below resources, then calling ioctl or ioctlv on it.

The Starlet kernel hands these calls over to the individual drivers / processes within the Starlet. The processes register themselves to handle requests by creating one or more queues and assigning them to handle requests from a particular /dev device.

For testing out IOS devices, you can use the EasyIOS application for the wii.