Service de noyau breada
Objectif
L'annonce dans le bloc spécifié, puis démarre les E-S sur le bloc en lecture anticipée.
Syntaxe
Paramètres
| Article | Descriptif |
|---|---|
| Unité | Indique le périphérique contenant le bloc à lire. |
| numéro de bloc | Indique le bloc à lire. |
| Rablkno | Indique le bloc de lecture anticipée à lire. |
Descriptif
Le service de noyau Breada affecte une mémoire tampon au bloc donné. Si le bloc spécifié se trouve déjà dans le cache de la mémoire tampon, le service Pain est appelé pour:
- Obtenir le bloc.
- Renvoie l'en-tête de la mémoire tampon.
Sinon, le service Getblk est appelé pour affecter une mémoire tampon libre au bloc spécifié et pour lire les données dans la mémoire tampon. Le service Breada attend que les E-S se terminent, puis renvoie l'en-tête de la mémoire tampon.
L'entrée-sortie est également démarrée sur le bloc de lecture anticipée spécifié si la liste libre n'est pas vide et que le bloc n'est pas déjà dans le cache. Toutefois, le service Breada n'attend pas que les E-S se terminent sur ce bloc en lecture anticipée.
Environnement d'exécution
Le service de noyau Breada peut être appelé à partir de l'environnement de processus uniquement.
Valeurs renvoyées
Le service Breada renvoie l'adresse de l'en-tête de la mémoire tampon sélectionnée. Une valeur différente de zéro pour B_ERROR dans leb_flagsDe l'en-tête de la mémoire tampon (structureF ) indique une erreur. Si cela se produit, l'appelant doit libérer la mémoire tampon associée au bloc à l'aide du service de noyau Brelse .
Sur une plateforme prenant en charge les clés de stockage, l'en-tête de la mémoire tampon est alloué à partir de la mémoire protégée par la clé de noyau KKEY_BLOCK_DEV .