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
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 .