My Project
Chargement...
Recherche...
Aucune correspondance
include
manux
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
*/
16
typedef
uint32_t
PDE
;
17
18
/*
19
* Type d'une entrée dans un répertoire de tables (PTE pour
20
* "Page Table Entry").
21
*/
22
typedef
uint32_t
PTE
;
23
24
/*
25
* Un répertoire de pages est simplement un tableau de PDE
26
* (1024 max).
27
*/
28
typedef
PDE
*
PageDirectory
;
29
30
/*
31
* Une table de pages est simplement un tableau de PTE
32
* (1024 max).
33
*/
34
typedef
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
*/
41
extern
PageDirectory
repertoirePaginationSysteme
;
42
43
void
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
50
void
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
57
int
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
65
int
initialiserPagination
(
int
tailleMemoireEtendue);
66
/*
67
* Initialisation de la mémoire virtuelle
68
*/
69
70
#endif
uint32_t
unsigned long uint32_t
Definition
types.h:20
Page
void * Page
Definition
types.h:66
PTE
uint32_t PTE
Definition
pagination.h:22
creerTablePaginationDirecte
void creerTablePaginationDirecte(PageDirectory *repertoirePagination, int tailleMemoireEtendue)
Definition
pagination.c:18
initialiserPagination
int initialiserPagination(int tailleMemoireEtendue)
Definition
pagination.c:167
PageTable
PTE * PageTable
Definition
pagination.h:34
ajouterPage
int ajouterPage(PageDirectory *repertoirePagination, Page adressePhysique, void *adresseVirtuelle)
Definition
pagination.c:133
creerTablePagination
void creerTablePagination(PageDirectory *repertoirePagination)
Definition
pagination.c:74
repertoirePaginationSysteme
PageDirectory repertoirePaginationSysteme
Definition
pagination.c:16
PageDirectory
PDE * PageDirectory
Definition
pagination.h:28
PDE
uint32_t PDE
Definition
pagination.h:16
Généré par
1.9.8