Service de noyau uwritec
Objectif
Extrait un caractère d'une mémoire tampon décrite par un Structure Uio.
Syntaxe
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/uio.h> struct uio *uiop;
Paramètre
| Article | Descriptif |
|---|---|
| Uiop | Pointe vers une structure Uio décrivant la mémoire tampon à partir de laquelle lire un caractère. |
Descriptif
Le service de noyau Uwritec lit un caractère à partir d'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 Uwritec pour transférer des données à partir d'une zone utilisateur. La méthodologie uio_resid et uio_iovcntLes zones de la structure Uio doivent être supérieures à 0 ou une erreur est renvoyée.
La méthodologie uio_segflgLa zone de la structure Uio indique si les données sont lues à partir d'une zone de données utilisateur ou noyau. Cette zone indique également si l'appelant a besoin d'opérations de mémoire croisée et a fourni les descripteurs de mémoire croisée requis. Les valeurs de cet indicateur sont définies dans le fichier /usr/include/sys/uio.h .
Si les données sont lues correctement, 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é à laquelle les données sont écrites. |
| uio_resid | Indique le nombre total de caractères restants dans la zone de données décrite par la structure Uio . |
| 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 des données restantes dans la mémoire tampon décrite par le présentiovec. |
Environnement d'exécution
Le service de noyau Uwritec peut être appelé à partir de Environnement de processus uniquement.
Valeurs renvoyées
Une fois l'opération terminée, le service Uwritec renvoie le caractère qu'il a été envoyé à extraire.
| Article | Descriptif |
|---|---|
| -1 | Indique que la mémoire tampon est vide ou que l'emplacement de l'utilisateur n'est pas valide pour l'une des trois raisons suivantes:
|