aboutsummaryrefslogtreecommitdiff
path: root/include/09.paging/paging.c
diff options
context:
space:
mode:
authorAleksa Vučković <aleksav013@gmail.com>2022-01-31 11:16:38 +0100
committerAleksa Vučković <aleksav013@gmail.com>2022-01-31 14:03:24 +0100
commit03035c98b4ba3297b837e96080e78e0aac1e86db (patch)
tree55b5f69f83bc8b77ec229062f702c0a4f960e87f /include/09.paging/paging.c
parent11e780fd0f7bed3594de9a7170fadc88c4d48be8 (diff)
Promene
Diffstat (limited to 'include/09.paging/paging.c')
-rw-r--r--include/09.paging/paging.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/include/09.paging/paging.c b/include/09.paging/paging.c
index f08530d..9c4875a 100644
--- a/include/09.paging/paging.c
+++ b/include/09.paging/paging.c
@@ -1,11 +1,12 @@
+#include<source/paging.h>
#include<types.h>
extern void loadPageDirectory(uint32_t*);
-extern void enablePaging();
+extern void enablePaging(void);
uint32_t page_directory[1024] __attribute__((aligned(4096)));
-void set_pd()
+void set_pd(void)
{
//set each entry to not present
for(size_t i=0;i<1024;i++)
@@ -22,22 +23,25 @@ uint32_t page_table[1024][1024] __attribute__((aligned(4096)));
void set_pt(size_t num,uint32_t address)
{
- // holds the physical address where we want to start mapping these pages to.
- // in this case, we want to map these pages to the very beginning of memory.
+ // holds the physical address where we want to start mapping these pages
+ // to.
+ // in this case, we want to map these pages to the very beginning of
+ // memory.
//we will fill all 1024 entries in the table, mapping 4 megabytes
for(size_t i=0;i<1024;i++)
{
// As the address is page aligned, it will always leave 12 bits zeroed.
// Those bits are used by the attributes ;)
- page_table[num][i] = (address + i * 0x1000) | 3; // attributes: supervisor level, read/write, present.
+ page_table[num][i] = (address + i * 0x1000) | 3; // attributes:
+ supervisor level, read/write, present.
}
page_directory[num] = ((uint32_t)page_table[num]) | 3;
// attributes: supervisor level, read/write, present
}
-void set_paging()
+void set_paging(void)
{
set_pd();
for(size_t i=0;i<1024;i++) set_pt(i,0x00400000 * i); // all 4GB mapped