Service de noyau ureadc
Objectif
Ecrit un caractère dans une mémoire tampon décrite par un Structure Uio.
Syntaxe
Paramètres
| Article | Descriptif |
|---|---|
| c | Indique un caractère à écrire dans la mémoire tampon. |
| Uiop | Pointe vers une structure Uio décrivant la mémoire tampon dans laquelle placer un caractère. |
Descriptif
Le service de noyau Ureadc écrit un caractère dans une mémoire tampon décrite par un Structure Uio. Les routines demi supérieures du pilote de périphérique, en particulier les pilotes de périphérique de type caractères, utilisent fréquemment le service de noyau Ureadc pour transférer des données dans une zone utilisateur.
La méthodologie uio_resid et uio_iovcntLes zones de la structure Uio décrivant la zone de données doivent être supérieures à 0. Si ces zones ne sont pas supérieures à 0, une erreur est renvoyée. La méthodologie uio_segflgLa zone de la structure Uio est utilisée pour indiquer si les données sont écrites dans une zone de données utilisateur ou noyau. Il est également utilisé pour indiquer si l'appelant a besoin d'opérations intermémoire et a fourni les descripteurs de mémoire croisée requis. Les valeurs de l'indicateur sont définies dans le fichier /usr/include/sys/uio.h .
Si les données sont écrites avec succès, les zones suivantes de la structure Uio sont mises à jour:
| Zone | Descriptif |
|---|---|
| uio_iov | Indique l'adresse du courantiovecélément à utiliser. |
| uio_xmem | Indique l'adresse du courantxmemélément à utiliser (utilisé pour la copie intermémoire). |
| uio_iovcnt | Indique le nombre deiovecéléments. |
| uio_iovdcnt | Indique le nombre deiovecéléments déjà traités. |
| uio_offset | Indique le décalage de caractère sur l'unité à partir de laquelle les données sont lues. |
| uio_resid | Indique le nombre total de caractères restants dans la zone de donnéesuioStructure. |
| iov_base | Indique l'adresse du prochain caractère disponible dans la zone de données décrite par le présentiovec. |
| iov_len | Indique la longueur de la zone de données restante dans la mémoire tampon décrite par le courantiovec. |
Environnement d'exécution
Le service de noyau Ureadc peut être appelé à partir de Environnement de processus uniquement.
Valeurs renvoyées
| Article | Descriptif |
|---|---|
| 0 % | Indique que l'exécution a réussi. |
| ENOMEM | Indique qu'il n'y a pas de place dans la mémoire tampon. |
| EDÉFAUT | Indique que l'emplacement utilisateur n'est pas valide pour l'une des raisons suivantes:
|