OSDN Git Service

SimpleHTMLEditorを追加。
[chnosproject/CHNOSProject.git] / CHNOSProject / chnos / tolset_chn_000 / chnos_009 / chnos / paging.c
diff --git a/CHNOSProject/chnos/tolset_chn_000/chnos_009/chnos/paging.c b/CHNOSProject/chnos/tolset_chn_000/chnos_009/chnos/paging.c
deleted file mode 100644 (file)
index 6cf00aa..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-\r
-#include "core.h"\r
-\r
-uint *ADR_Paging_Directory;\r
-\r
-void Initialise_Paging(void *vram, uint xsize, uint ysize, uint bpp)\r
-{\r
-       uint i, j, k, l, m, n, o, cr0;\r
-       uint *page;\r
-\r
-       j = (System_MemoryControl_FullSize() + 0x003FFFFF) >> 22;\r
-       l = (((j << 22) - System_MemoryControl_FullSize()) + 0xFFF) >> 12;\r
-       ADR_Paging_Directory = (uint *)System_MemoryControl_Allocate_Page();\r
-\r
-       for(i = 0; i < 1024; i++){\r
-               page = (uint *)System_MemoryControl_Allocate_Page();\r
-               Paging_Set_Entry_Directory(&ADR_Paging_Directory[i], page, PG_NOTPRESENT, 0x00000000);\r
-               for(k = 0; k < 1024; k++){\r
-                       Paging_Set_Entry_Table(&(Paging_Get_Entry_Setting_Address(ADR_Paging_Directory[i])[k]), (uint *)((i << 22) + (k * 1024 * 4)), PG_NOTPRESENT, 0x00000000);\r
-               }\r
-       }\r
-\r
-Emergency_Out("Mem-Paging:Tables-Initialized");\r
-\r
-       for(i = 0; i < j; i++){\r
-               Paging_Set_Entry_Directory(&ADR_Paging_Directory[i], Paging_Get_Entry_Setting_Address(ADR_Paging_Directory[i]), PG_PRESENT | PG_WRITABLE | PG_USER | PG_WRITEBACK | PG_CACHE_ENABLE | PG_NOTACCESSED | PG_NOTWRITTEN | PG_4KBPAGE | PG_NOTGLOBAL, 0x00000000);\r
-               if(i == j - 1 && l != 0){\r
-                       for(k = 0; k < l; k++){\r
-                               Paging_Set_Entry_Table(&(Paging_Get_Entry_Setting_Address(ADR_Paging_Directory[i])[k]), (uint *)((i << 22) + (k * 1024 * 4)), PG_PRESENT | PG_WRITABLE | PG_USER | PG_WRITEBACK | PG_CACHE_ENABLE | PG_NOTACCESSED | PG_NOTWRITTEN | PG_4KBPAGE | PG_NOTGLOBAL, 0x00000000);\r
-                       }\r
-               } else{\r
-                       for(k = 0; k < 1024; k++){\r
-                               Paging_Set_Entry_Table(&(Paging_Get_Entry_Setting_Address(ADR_Paging_Directory[i])[k]), (uint *)((i << 22) + (k * 1024 * 4)), PG_PRESENT | PG_WRITABLE | PG_USER | PG_WRITEBACK | PG_CACHE_ENABLE | PG_NOTACCESSED | PG_NOTWRITTEN | PG_4KBPAGE | PG_NOTGLOBAL, 0x00000000);\r
-                       }\r
-               }\r
-       }\r
-\r
-Emergency_Out("Mem-Paging:PhisMemory-Initialized");\r
-\r
-       m = (uint)vram >> 22;\r
-       n = xsize * ysize * (bpp >> 3);\r
-       o = n >> 12;\r
-       if(n != (o << 12)) o++;\r
-       j = (o + 1023) >> 10;\r
-       l = o - ((j - 1) << 10);\r
-\r
-       for(i = 0; i < j; i++){\r
-               Paging_Set_Entry_Directory(&ADR_Paging_Directory[m + i], Paging_Get_Entry_Setting_Address(ADR_Paging_Directory[m + i]), PG_PRESENT | PG_WRITABLE | PG_SUPERVISOR | PG_WRITEBACK | PG_CACHE_ENABLE | PG_NOTACCESSED | PG_NOTWRITTEN | PG_4KBPAGE | PG_NOTGLOBAL, 0x00000000);\r
-               if(i == j - 1 && l != 0){\r
-                       for(k = 0; k < l; k++){\r
-                               Paging_Set_Entry_Table(&(Paging_Get_Entry_Setting_Address(ADR_Paging_Directory[m + i])[k]), (uint *)(((m + i) << 22) + (k * 1024 * 4)), PG_PRESENT | PG_WRITABLE | PG_SUPERVISOR | PG_WRITEBACK | PG_CACHE_ENABLE | PG_NOTACCESSED | PG_NOTWRITTEN | PG_4KBPAGE | PG_NOTGLOBAL, 0x00000000);\r
-                       }\r
-               } else{\r
-                       for(k = 0; k < 1024; k++){\r
-                               Paging_Set_Entry_Table(&(Paging_Get_Entry_Setting_Address(ADR_Paging_Directory[m + i])[k]), (uint *)(((m + i) << 22) + (k * 1024 * 4)), PG_PRESENT | PG_WRITABLE | PG_SUPERVISOR | PG_WRITEBACK | PG_CACHE_ENABLE | PG_NOTACCESSED | PG_NOTWRITTEN | PG_4KBPAGE | PG_NOTGLOBAL, 0x00000000);\r
-                       }\r
-               }\r
-       }\r
-\r
-Emergency_Out("Mem-Paging:VideoMemory-Initialized");\r
-\r
-       Store_CR3((uint)ADR_Paging_Directory);\r
-       cr0 = Load_CR0();\r
-       cr0 |= CR0_PAGING + CR0_PROTECTIONENABLE;\r
-       Store_CR0(cr0);\r
-\r
-Emergency_Out("Mem-Paging:Paging-Enabled");\r
-\r
-       return;\r
-}\r
-\r
-void Paging_Set_Entry_Directory(uint *dir_entry, uint *table_base, uint attribute, uint available)\r
-{\r
-       uint entry;\r
-\r
-       if(attribute & PG_PRESENT){\r
-               entry = ((uint)table_base & 0xfffff000);\r
-               entry |= (attribute & 0x000001ff);\r
-               entry |= ((available & 0x00000007) << 9);\r
-       } else{\r
-               entry = ((uint)table_base & 0xfffff000);\r
-               entry |= ((available & 0x00000007) << 9);\r
-               entry &= 0xfffffffe;\r
-       }\r
-       *dir_entry = entry;\r
-\r
-       return;\r
-}\r
-\r
-void Paging_Set_Entry_Table(uint *table_entry, uint *page_base, uint attribute, uint available)\r
-{\r
-       uint entry;\r
-\r
-       if(attribute & PG_PRESENT){\r
-               entry = ((uint)page_base & 0xfffff000);\r
-               entry |= (attribute & 0x000001ff);\r
-               entry |= ((available & 0x00000007) << 9);       \r
-       } else{\r
-               entry = (available << 1);\r
-               entry &= 0xfffffffe;\r
-       }\r
-       *table_entry = entry;\r
-       return;\r
-}\r
-\r
-uint *Paging_Get_Entry_Setting_Address(uint entry)\r
-{\r
-       return (uint *)(entry & 0xFFFFF000);\r
-}\r