But, the tutorial that this page suggests: http://wiki.osdev.org/Tutorials (JamesM's tutorial to be exact)
defines a page directory like so:
Code: Select all
typedef struct page_directory
{
/**
Array of pointers to pagetables.
**/
page_table_t *tables[1024];
/**
Array of pointers to the pagetables above, but gives their *physical*
location, for loading into the CR3 register.
**/
u32int tablesPhysical[1024];
/**
The physical address of tablesPhysical. This comes into play
when we get our kernel heap allocated and the directory
may be in a different location in virtual memory.
**/
u32int physicalAddr;
} page_directory_t;
Also, that frame address should be "4kb aligned" as talked about earlier. Here it's just a regular address. I am thoroughly confused, since this seems to be one of the two tutorials that I've seen pop up the most (this and this one: http://www.brokenthorn.com/Resources/OSDev18.html ) and I would assume with users who follow it (and a link from this wiki) that it would be correct.
Now, granted, I have been staring at this for 2 days, but I think I'm reading it correctly. lol
If I have just been starring at it too long, smack me, turn me in the right direction, and disregard this post lol