Commit Graph

34 Commits

Author SHA1 Message Date
unknown
b116eb040a Code Cleanup 2015-09-03 11:18:56 -04:00
unknown
d84ceb592d Assertion and Kernel Modules 2015-09-03 10:45:28 -04:00
hyperassembler
17d1b499bd Fix output 2015-09-02 21:43:43 -04:00
unknown
48f892d1df Distinguishing between HAL and Kernel 2015-09-02 17:37:15 -04:00
hyperassembler
2d96ad7370 Fix output. 2015-09-01 19:31:38 -04:00
unknown
5aa762e101 Added magic macro 2015-09-01 16:43:04 -04:00
unknown
4ee70bf53c Adding memory descriptor 2015-09-01 13:37:58 -04:00
HyperAssembler
0805a76f81 Temp branch for merging 2015-07-17 00:41:53 -04:00
HyperAssembler
c2a9e43ad3 Interrupt stuff 2015-04-22 01:06:15 -07:00
unknown
056a79709d Refactor_2 2015-04-20 17:19:06 -07:00
HyperAssembler
6321366a24 Refactoring_1 2015-04-19 23:39:33 -07:00
HyperAssembler
d5912f4a7a Hal/ kernel/ common/ util/ they are now separated 2015-04-18 02:34:32 -07:00
HyperAssembler
13b8912474 Detect APIC 2015-04-16 21:40:57 -07:00
unknown
3628eeb97c Added cpuid. 2015-04-16 14:46:54 -07:00
HyperAssembler
7db4e9cf35 Changed the interface for linked list and avl tree to a much more flexible one. The previous one was utter crap.. 2015-03-21 14:17:38 -07:00
HyperAssembler
ab103126b6 Added linkedlist implmentation. 2015-03-17 00:21:42 -07:00
HyperAssembler
c5b4193e56 A better generic tree interface. 2015-03-15 19:02:45 -07:00
hyperassembler
8a3354f88c Get it compiling under new ubuntu. 2015-03-06 23:06:33 -08:00
HyperAssembler
f4995007c1 Complete and nicely-interfaced generic avl tree implementation. 2015-03-01 01:11:58 -08:00
HyperAssembler
3f7297a2a7 Just renaming some functions. 2015-02-21 18:38:23 -08:00
HyperAssembler
efb2ea6a60 Added generic AVL tree implementation.
Changed calling convention to NATIVEXX(XX = 64/32)
Changed ignore file to not ignore stuff in x64.
2015-02-21 02:47:24 -08:00
HyperAssembler
4271c61388 Added kernel size and kernel heap management 2015-02-08 00:18:22 -08:00
HyperAssembler
3dd081316b Nothing much seriously. Prepare for interrupt handling in long mode. 2015-02-07 16:26:20 -08:00
HyperAssembler
56375a5253 So kernel 64 can set up itself now. (Requires 1GB page size. But just for temporary setup, in the kernel we will still stick to 4KB page.) 2015-02-07 15:34:26 -08:00
HyperAssembler
57b0f4a8f1 Implemented hk_printf and made everything else implicit.
Ahmmm. Also made 64 bit kernel independent(you can call that thing to enter 64 bit kernel as long as you are in protected mode (no setup required.))(not working but will soon work).
2015-02-07 04:10:50 -08:00
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