Service de noyau init_heap

Objectif

Initialise un nouveau segment de mémoire à utiliser avec les services de gestion de la mémoire du noyau.

Syntaxe

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/xmalloc.h>
#include <sys/malloc.h>
heapaddr_t init_heap ( area,  size,  heapp )
caddr_t area;
int size;
]heapaddr_t *heapp;

Paramètres

Article Descriptif
zone Indique l'adresse de mémoire virtuelle utilisée pour définir la zone de mémoire de départ du segment de mémoire. Cette adresse doit être aligné sur les pages.
Taille Indique la taille du segment de mémoire en octets. Cette valeur doit être un nombre entier de pages système.
Heapp Pointe vers le descripteur de segment de mémoire externe. Cette valeur doit avoir une valeur NULL. Le noyau de base utilise cette zone pour spécifier des caractéristiques de segment de mémoire spéciales qui ne sont pas disponibles pour les extensions de noyau.

Descriptif

Le service de noyau init_heap est le plus souvent utilisé par un processus de noyau pour initialiser et gérer une zone de mémoire virtuelle en tant que segment de mémoire privé. Une fois que ce service a créé un segment de mémoire privé, la valeur heapaddr_t renvoyée peut être utilisée avec le service xmalloc ou xmfree pour allouer ou désallouer de la mémoire du segment de mémoire privé. Les segments de mémoire peuvent être créés dans d'autres segments de mémoire, dans une région privée de processus de noyau ou même dans une pile.

Peu d'extensions de noyau nécessitent le service init_heap car les kernel_heap et pinned_heap globales exportées sont normalement utilisées pour l'allocation de mémoire au sein du noyau. Toutefois, les processus de noyau peuvent utiliser le service init_heap pour créer des segments de mémoire non lobaux privés dans leur région privée de processus afin de contrôler l'accès du noyau au segment de mémoire et éventuellement pour des raisons de performances.

Environnement d'exécution

Le service de noyau init_heap ne peut être appelé qu'à partir de l' environnement de processus .