Difference between revisions of "IOS/fr"

From WiiBrew
< IOS
Jump to navigation Jump to search
m (Fr:IOS moved to IOS/fr over redirect)
Line 16: Line 16:
 
# ioctlv
 
# ioctlv
  
Here is a sample implementation, not guaranteed to work: [[ipc.c]]
+
Voici un exemple d'implémentation, sans garantie de fonctionnement : [[ipc.c]]
  
 
  ipc struct size = 40, aligned to 20
 
  ipc struct size = 40, aligned to 20
Line 54: Line 54:
 
         arg3: pointer to # in plus # out pairs of (addr, len)
 
         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
+
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
  
Most non-trivial operations are performed by opening one of the below resources, then calling ioctl or ioctlv on it.
+
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.
  
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.
+
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.
  
For testing out IOS devices, you can use the [http://wiibrew.org/index.php?title=Image:EasyIOS.tgz EasyIOS] application for the wii.
+
Pour tester ces périphériques IOS, vous pouvez utiliser l'application [http://wiibrew.org/index.php?title=Image:EasyIOS.tgz EasyIOS] pour Wii.
  
 
== /dev tree ==
 
== /dev tree ==

Revision as of 00:18, 3 September 2008

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 :

  1. open
  2. close
  3. read
  4. write
  5. seek
  6. ioctl
  7. 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

Known resources in the /dev tree: