Service de noyau geteblk
Objectif
Allère un tampon libre.
Syntaxe
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/buf.h> struct buf *geteblk ( )Descriptif
Le service de noyau Geteblk alloue un en-tête de tampon et de mémoire tampon et renvoie l'adresse de l'en-tête de la mémoire tampon. Si aucune mémoire tampon disponible n'est disponible, le service Geteblk attend que l'un soit disponible. Les pilotes de périphérique de bloc peuvent extraire des mémoires tampon à l'aide du service Geteblk .
Dans l'en-tête,b_forw,b_back,b_flags,b_bcount,b_devetb_unSont utilisés par le système et ne peuvent pas être modifiés par le pilote. :NONE.av_forwetav_backLes zones sont disponibles pour l'utilisateur du service Geteblk pour conserver une chaîne de mémoires tampons par l'utilisateur du service Geteblk . (Cet utilisateur peut être le système de fichiers du noyau ou un pilote de périphérique.) :NONE.b_blknoetb_residPeuvent être utilisés à n'importe quel but.
Le service Brelse est utilisé pour libérer ce type de mémoire tampon.
Le service Geteblk n'a pas de paramètres.
Environnement d'exécution
Le service de noyau Geteblk peut être appelé à partir de l'environnement de processus uniquement.
Valeurs renvoyées
Le service Geteblk renvoie un pointeur vers l'en-tête de la mémoire tampon. Il n'existe aucun code d'erreur car le service Geteblk attend qu'un en-tête de mémoire tampon soit disponible.
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 .