Service de noyau ltpin

Objectif

Épingère la plage d'adresses dans l'espace du système (noyau) et libère l'espace de page pour les pages associées.

Syntaxe

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/pin.h>
int ltpin (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 de noyau Broche (à long terme) broche 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 de noyau Broche incrémente le nombre de broches à long terme pour chaque page de mémoire réelle. Tant que le nombre de broches à long terme ou à court terme est différent de zéro, la page ne peut pas être mise à l'écart de la mémoire réelle.

Le service de noyau Broche broches l'intégralité de la plage d'adresses ou aucune de celle-ci. Seul un nombre limité de pages sont réservées dans le système. S'il n'y a pas suffisamment de pages non réservées dans le système, le service de noyau Broche renvoie un code d'erreur. Le service de noyau Broche n'est pas une interface publiée.

Remarque: Le système d'exploitation épingle uniquement des pages entières à la fois. Par conséquent, 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.

Le service de noyau Broche ne peut être appelé que pour les adresses dans l'espace adresse du système (noyau).

Valeurs renvoyées

Article Descriptif
0 % Indique que l'exécution a réussi.
EINVAL Indique que le paramètre Longueur a une valeur négative. 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 de noyau Broche n'a pas pu épinglette en raison de la 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.