In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Difference between revisions of "IOS"

From WiiBrew
Jump to navigation Jump to search
Line 14: Line 14:
  
 
Most non-trivial operations are performed by opening one of the below resources, then calling ioctl or ioctlv on it.
 
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.
  
 
== /dev tree ==
 
== /dev tree ==

Revision as of 05:36, 2 February 2008

IOS is the operating system that runs on the Starlet coprocessor inside the Hollywood package. It provides the services that are used by Wii code to access most of the system devices.

IPC

Communication with IOS from PPC code is done using an IPC mechanism. There are 7 calls that can be made using this system:

  1. open
  2. close
  3. read
  4. write
  5. seek
  6. ioctl
  7. ioctlv

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.

/dev tree

Known resources in the /dev tree:

  • /dev/aes
  • /dev/boot2
  • /dev/di
  • /dev/es
  • /dev/flash
  • /dev/fs
  • /dev/listen
  • /dev/net/ip/bottom
  • /dev/net/ip/top
  • /dev/net/kd/request
  • /dev/net/kd/time
  • /dev/net/ncd/manage
  • /dev/net/ssl
  • /dev/net/usbeth/top
  • /dev/net/wd/command
  • /dev/net/wd/top
  • /dev/printserver
  • /dev/sdio
  • /dev/sdio/slot0
  • /dev/sdio/slot1
  • /dev/sha
  • /dev/stm/eventhook
  • /dev/stm/immediate
  • /dev/usb
  • /dev/usb/ehc
  • /dev/usb/kbd
  • /dev/usb/oh0
  • /dev/usb/oh1
  • /dev/wl0