IOS/fr
This is an old revision of this page, as edited by Cortes48 (talk | contribs) at 19:51, 7 July 2008. It may differ significantly from the current revision. |
Learn more This article is in the process of translating from English to French.
Please help translate this article if you can. |
IOS est le systeme d' exploitation qui tourne sur le coprossesseur Starlet à l' interieur du processeur principale Hollywood. Il fournit les services qui sont employé par le systeme de la wii pour accéder à la plupart des dispositifs du systeme.
See also: IOS/QA
IPC
La communication avec l' IOS depuis du code PPC est possible avec un mecanisme IPC (Instruction Per Cycle) qui est la fréquence des actions exécuter par cycle . Il existe 7 actions :
- open
- close
- read
- write
- seek
- ioctl
- ioctlv
Here is a sample implementation, not guaranteed to work: ipc.c
ipc struct size = 40, aligned to 20 00: cmd // 1=open 2=close 3=read 4=write 5=seek 6=ioctl 7=ioctlv 04: ret 08: fd 0c: arg[5] 20: async1 24: async2 28: 0 40: relaunch, used for ioctlvreboot open: fd = 0 arg0, arg1: name, mode (1=read 2=write) close: fd read: fd arg0, arg1: addr, len write: fd arg0, arg1: addr, len seek: fd arg0, arg1: where, whence ioctl: fd arg0: ioctl # arg1, arg2: addr, len arg3, arg4: addr, len ioctlv: fd arg0: ioctl # arg1: # in arg2: # out (or in-out) arg3: pointer to # in plus # out pairs of (addr, len)
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.
/dev tree
Known resources in the /dev tree:
- /dev/aes
- /dev/boot2
- /dev/di
- /dev/es
- /dev/hmac
- /dev/flash
- /dev/fs
- /dev/listen
- /dev/net/ip/bottom
- /dev/net/ip/top - TCP/IP Socket operations
- /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/sdio/slotw
- /dev/sha
- /dev/stm/eventhook
- /dev/stm/immediate
- /dev/usb
- /dev/usb/ehc
- /dev/usb/kbd
- /dev/usb/oh0
- /dev/usb/oh1
- /dev/wl0