My Project
Chargement...
Recherche...
Aucune correspondance
pagination.h
Aller à la documentation de ce fichier.
1/*----------------------------------------------------------------------------*/
2/* Définition des types et opérations spécifiques au mécanisme de */
3/* pagination. */
4/* */
5/* (C) Manu Chaput 2000 */
6/*----------------------------------------------------------------------------*/
7#ifndef PAGINATION_DEF
8#define PAGINATION_DEF
9
10#include <manux/types.h>
11
12/*
13 * Type d'une entrée dans un répertoire de pages (PDE pour
14 * "Page Directory Entry").
15 */
16typedef uint32_t PDE;
17
18/*
19 * Type d'une entrée dans un répertoire de tables (PTE pour
20 * "Page Table Entry").
21 */
22typedef uint32_t PTE;
23
24/*
25 * Un répertoire de pages est simplement un tableau de PDE
26 * (1024 max).
27 */
29
30/*
31 * Une table de pages est simplement un tableau de PTE
32 * (1024 max).
33 */
34typedef PTE * PageTable;
35
36/*
37 * Répertoire de pagination global au système. Le but est d'avoir une
38 * première configuration de la pagination, qui donne une vision "flat"
39 * de la mémoire.
40 */
42
43void creerTablePaginationDirecte(PageDirectory * repertoirePagination,
44 int tailleMemoireEtendue);
45/*
46 * Initialisation d'une table de pagination "directe", c'est à dire
47 * qui conserve les adresses physiques dans l'espace virtuel.
48 */
49
50void creerTablePagination(PageDirectory * repertoirePagination);
51/*
52 * Initialisation d'une table de pagination pour une nouvelle tâche.
53 * elle est créée dans la zone pointée par repertoirePagination et
54 * englobe les pages réservées au système.
55 */
56
57int ajouterPage(PageDirectory * repertoirePagination,
58 Page adressePhysique,
59 void * adresseVirtuelle);
60/*
61 * Ajout d'une page dans l'espace d'adressage virtuel d'une
62 * tâche à l'adresse voulue.
63 */
64
65int initialiserPagination(int tailleMemoireEtendue);
66/*
67 * Initialisation de la mémoire virtuelle
68 */
69
70#endif
unsigned long uint32_t
Definition types.h:20
void * Page
Definition types.h:66
uint32_t PTE
Definition pagination.h:22
void creerTablePaginationDirecte(PageDirectory *repertoirePagination, int tailleMemoireEtendue)
Definition pagination.c:18
int initialiserPagination(int tailleMemoireEtendue)
Definition pagination.c:167
PTE * PageTable
Definition pagination.h:34
int ajouterPage(PageDirectory *repertoirePagination, Page adressePhysique, void *adresseVirtuelle)
Definition pagination.c:133
void creerTablePagination(PageDirectory *repertoirePagination)
Definition pagination.c:74
PageDirectory repertoirePaginationSysteme
Definition pagination.c:16
PDE * PageDirectory
Definition pagination.h:28
uint32_t PDE
Definition pagination.h:16