Commit Graph

9 Commits

Author SHA1 Message Date
HyperAssembler
8e8d089578 Finally, finished the most important hk_map_page function.
Note that this function assumes compact model: which means page tables are located continuously in memory and use at little memory as possible depending on the total memory size. I mean, why the hell would someone put page table all over the place?
This WILL be the memory model that HOS uses.
2015-02-06 00:21:11 -08:00
HyperAssembler
d0fe0da17d Use C11 standard.
Use string literal(graceful) instead of casting(ugly) for integer constants defined in macros.
2015-02-04 00:43:01 -08:00
HyperAssembler
c886d569cd Complete refactor of craps I wrote. Especially when constructing GDT / Page table.
Need:
1. Map page depending on current memory
2. ELF loader
2015-02-03 23:55:38 -08:00
HyperAssembler
7810a74741 That's it for today.... Need some rest. 2015-02-01 20:53:54 -08:00
HyperAssembler
ed9190db61 Wow.... We are indeed in long mode. Although the current implementation is ugly. Still historical!! 2015-02-01 14:14:44 -08:00
HyperAssembler
510fd9e116 Yay! Get compatibility mode working and everything setup except for just jumping to 64bit code segment. However elf32 cannot hold x64 code. Gonna go in x64 after implementing elf64 loader. 2015-02-01 02:31:36 -08:00
unknown
a40f0ffc0f Added System V ABI calling convention. 2015-01-30 10:19:28 -08:00
HyperAssembler
30460c80d9 Excited! Grub2 finally loads our kernel64.bin after this commit!! 2015-01-30 00:24:57 -08:00
HyperAssembler
7cc18fac3d So I figured that grub2 can do some fancy stuff about loading modules.
There we go! We will keep x86 and load x64 as a module and then jump to x64 from x86!!
2015-01-29 22:42:30 -08:00