Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Desde la interrupción de clock, antes de realizar el jmp far, recorremos el sistema
- // de apginación revisando las paginas que esten presentes, correspondan a usuario
- //(osea pd entry y pt entry tienen bit dpl en 1)
- //y el bit de Acceced en 1. al mismo tiempo de contarlas, reseteamos el bit
- //de acceced.
- tarea_offset: dd 0x00
- tarea_selector: dw 0x00
- //clk
- _isr32:
- pushad
- call contar_pags
- push eax
- call saveCount
- pop eax
- call prox_indice
- mov [tarea_selector],ax
- jmp far [tarea_offset]
- popad
- iret
- int contar pags(){
- int res=0;
- (PD*) basePD= (PD*)(rcr3()>>12)<<12;
- for(int=0;int<1024;i++){
- if (basePD[i]->bit_p !=0 && basePD[i]->dpl=1){
- if (basePD[i]->bit_a!=0){
- basePD[i]->bit_a = 1;
- (PT*) badePT=(PT*) badePD[i]->base<<12;
- for (int j = 0; i < 1024; ++j){
- if (badePT[i]->bit_p ==1 && basePT[i]->bit_a==1){
- if(basePT[i]->dpl=1){
- badePT[i]->bit_a=0;
- res++;
- }
- }
- }
- }
- }
- }
- return res;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement