Paging problem
Posted: Sun Jan 07, 2007 8:22 am
Hello,
I thougt my paging works well, but a few hours ago I noticed that my vmm is not able to remap a virtual address to a new physical address when the virtual page has been accessed already.
Example:
This works fine.
But if I access page 0x00400 before I remap it to 0x000B8000, it does not work anymore:
This does not work anymore.
I thought this could be because of caching or something like that, but I dunno what to do.
I thougt my paging works well, but a few hours ago I noticed that my vmm is not able to remap a virtual address to a new physical address when the virtual page has been accessed already.
Example:
Code: Select all
requestPageTable(0x001);
pageTable[0x00400] = 0x0080000 | 7;
/* now I want to map page 0x00400 to another physical page */
pageTable[0x00400] = 0x000B8000 | 7;
*(unsigned int*)0x00400000 = 0x0441;
But if I access page 0x00400 before I remap it to 0x000B8000, it does not work anymore:
Code: Select all
requestPageTable(0x001);
pageTable[0x00400] = 0x0080000 | 7;
*(unsigned int*)0x00400000 = 8;
/* now I want to map page 0x00400 to another physical page */
pageTable[0x00400] = 0x000B8000 | 7;
*(unsigned int*)0x00400000 = 0x0441;
I thought this could be because of caching or something like that, but I dunno what to do.