Service de noyau de la broche

Objectif

Épingle la plage d'adresses dans l'espace du système (noyau).

Syntaxe

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/pin.h>
int pin ( addr,  length)
caddr_t  addr;
int length;

Paramètres

Article Descriptif
ADDR Indique l'adresse du premier octet à broche.
Length Indique le nombre d'octets à broche.

Descriptif

Le service Broche broches les pages de mémoire réelle touchées par la plage d'adresses spécifiée par les paramètres Adresse et Longueur dans l'espace adresse du système (noyau). Il épingle les pages de mémoire réelle pour s'assurer que les erreurs de page ne se produisent pas pour les références de mémoire dans cette plage d'adresses. Le service Broche incrémente le nombre de broches pour chaque page de mémoire réelle. Alors que le nombre de broches est différent de zéro, la page ne peut pas être paginée en mémoire réelle.

La routine Broche broches l'intégralité de la plage d'adresses ou aucune de celle-ci. Seul un nombre limité de pages peut être épingle dans le système. S'il n'y a pas suffisamment de pages non réservées dans le système, le service Broche renvoie un code d'erreur.

Remarque: Si la plage demandée n'est pas alignactivée sur une limite de page, la mémoire située en dehors de cette plage est également réservée. En effet, le système d'exploitation épingle uniquement des pages entières à la fois.

Le service Broche ne peut être appelé que pour les adresses dans l'espace adresse du système (noyau). Le service Xmempin doit être utilisé pour les adresses dans le noyau ou dans l'espace utilisateur.

Environnement d'exécution

Le service de noyau Broche peut être appelé à partir de Environnement de processus uniquement.

Valeurs renvoyées

Article Descriptif
0 % Indique que l'exécution a réussi.
EINVAL Indique que la valeur du paramètre Longueur est négative ou 0. Sinon, la zone de mémoire commençant à l'adresse du premier octet à broche (paramètre Adresse ) et s'étendant pour le nombre d'octets spécifié par le paramètre Longueur n'est pas définie.
EIO Indique qu'une erreur d'E-S permanente s'est produite lors du référencement des données.
ENOMEM Indique que le service Broche n'a pas pu épinglette en raison d'une mémoire réelle insuffisante ou du nombre d'épingles à l'échelle du système.
ENOSPC Indique que le système de fichiers ou l'espace de pagination est insuffisant.