]> git.dujemihanovic.xyz Git - nameless-os.git/blob - include/arch/x86/mm/paging.h
7d5d13f7697874824e1710d5a8157f47327729ad
[nameless-os.git] / include / arch / x86 / mm / paging.h
1 #ifndef X86_PAGING_H
2 #define X86_PAGING_H
3
4 struct page_directory_entry {
5 unsigned p: 1,
6 rw: 1,
7 us: 1,
8 pwt: 1,
9 pcd: 1,
10 a: 1,
11 ignored: 1,
12 ps: 1,
13 ignored2: 4,
14 page_table_addr: 20;
15 } __attribute__((packed));
16
17 struct page_table_entry {
18 unsigned p: 1,
19 rw: 1,
20 us: 1,
21 pwt: 1,
22 pcd: 1,
23 a: 1,
24 d: 1,
25 pat: 1,
26 g: 1,
27 ignored: 3,
28 page_frame_addr: 20;
29 } __attribute__((packed));
30
31 struct pf_errcode {
32 unsigned p: 1, wr: 1, us: 1, rsvd: 1, id: 1, pk: 1, ss: 1, hlat: 1, reserved: 7, sgx: 1, reserved2: 15;
33 } __attribute__((packed));
34
35 extern inline void slice_linear_addr(void *address, short *pde, short *pte, short *offset);
36 extern inline void enable_paging();
37
38 #endif