IOS/fr
This is an old revision of this page, as edited by Minimalist (talk | contribs) at 13:00, 4 September 2008. It may differ significantly from the current revision. |
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
Voici un exemple d'implémentation, sans garantie de fonctionnement : 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 est un handle que vous récupérez d'ios avec "open" et que vous devriez passer en retour à tous les autres appels --segher
La plupart des opérations non triviales sont effectuées par l'ouverture d'une des ressources ci-dessous, puis par un appel à ioctl ou ioctlv sur celles-ci.
Le noyau du Starlet distribue ces appels aux drivers et processus individuels au sein du Starlet. Les processus s'enregistrent eux-même pour prendre en compte des requêtes en créant une ou plusieurs files et en leur assignant la prise en compte de requêtes provenant d'un périphérique /dev particulier.
Pour tester ces périphériques IOS, vous pouvez utiliser l'application EasyIOS pour Wii.
/dev tree
Ressources connues de l'arborescence /dev :
- /dev/aes
- /dev/boot2
- /dev/di
- /dev/es
- /dev/hmac
- /dev/flash
- /dev/fs
- /dev/listen
- /dev/net/ip/bottom
- /dev/net/ip/top - opérations sur Socket TCP/IP
- /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