headers/bsd: Add sys/queue.h.
[haiku.git] / src / system / kernel / arch / x86 / paging / pae / X86PagingStructuresPAE.h
blob8c91e7438c583e61e26237e5fac9b0b1985cbe04
1 /*
2 * Copyright 2010, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5 #ifndef KERNEL_ARCH_X86_PAGING_PAE_X86_PAGING_STRUCTURES_PAE_H
6 #define KERNEL_ARCH_X86_PAGING_PAE_X86_PAGING_STRUCTURES_PAE_H
9 #include "paging/pae/paging.h"
10 #include "paging/X86PagingStructures.h"
13 #if B_HAIKU_PHYSICAL_BITS == 64
16 struct X86PagingStructuresPAE : X86PagingStructures {
17 X86PagingStructuresPAE();
18 virtual ~X86PagingStructuresPAE();
20 void Init(pae_page_directory_pointer_table_entry*
21 virtualPDPT,
22 phys_addr_t physicalPDPT, void* pdptHandle,
23 pae_page_directory_entry* const*
24 virtualPageDirs,
25 const phys_addr_t* physicalPageDirs);
27 virtual void Delete();
29 pae_page_directory_entry* const* VirtualPageDirs() const
30 { return fVirtualPageDirs; }
32 private:
33 pae_page_directory_pointer_table_entry* fPageDirPointerTable;
34 void* fPageDirPointerTableHandle;
35 pae_page_directory_entry* fVirtualPageDirs[4];
36 phys_addr_t fPhysicalPageDirs[4];
40 #endif // B_HAIKU_PHYSICAL_BITS == 64
43 #endif // KERNEL_ARCH_X86_PAGING_PAE_X86_PAGING_STRUCTURES_PAE_H