19 int tailleMemoireEtendue)
39 tableCourante = *repertoirePagination;
42 nombrePages = (tailleMemoireEtendue + 1024)/ 4;
45 pageCourante = (
Page *)0;
47 for (i = 1; i < nombrePages; i++) {
50 indiceTable = ((
uint32_t)pageCourante >> 12) & 1023;
51 indiceDirectory = ((
uint32_t)pageCourante >> 22) & 1023;
57 tableCourante += 1024;
58 PDECourante = ((
uint32_t)tableCourante & 0xFFFFF000)
60 (*repertoirePagination)[indiceDirectory] = PDECourante;
64 PTECourante = ((
uint32_t)pageCourante & 0xFFFFF000)
66 tableCourante[indiceTable] = PTECourante;
95 for (i = 0; i < 1024; i++) {
96 (*repertoirePagination)[i] = (
PDE) 0;
100 pageCourante = (
Page)0;
107 indiceTable = ((
uint32_t)pageCourante >> 12) & 1023;
108 indiceDirectory = ((
uint32_t)pageCourante >> 22) & 1023;
114 for (i = 0; i < 1024; i++) {
115 tableCourante[i] = (
PTE)0;
117 PDECourante = ((
uint32_t)tableCourante & 0xFFFFF000)
119 (*repertoirePagination)[indiceDirectory] = PDECourante;
123 PTECourante = ((
uint32_t)pageCourante & 0xFFFFF000)
125 tableCourante[indiceTable] = PTECourante;
134 Page adressePhysique,
135 void * adresseVirtuelle)
146 indiceTable = ((
uint32_t)adresseVirtuelle >> 12) & 1023;
147 indiceDirectory = ((
uint32_t)adresseVirtuelle >> 22) & 1023;
150 if ((*repertoirePagination)[indiceDirectory] == 0) {
151 (*repertoirePagination)[indiceDirectory] =
157 tableCourante = (
PageTable)((*repertoirePagination)[indiceDirectory]
161 tableCourante[indiceTable] = ((
uint32_t)adressePhysique & 0xFFFFF000)