secXsQuared
6133063fb0
AVL tree apocalypse test
2016-05-23 12:36:41 -07:00
secXsQuared
05695f2626
Test Driver
...
Got a test driver for module tests. Gotta make sure the basic building blocks work first lol.
Will add salloc test soon.
2016-05-22 20:19:56 -07:00
secXsQuared
dddcd487a2
AVL Tree Test
...
1. Added test for avl insertion and deletion (core functionalities).
2. Suppressed GCC's retarded multiline comment warnings.
3. Increased kernel heap size from 4k to 8k.
TODO:
1. Write test for salloc.
2016-05-22 01:24:08 -07:00
secXsQuared
44602ecf29
1. Refactored the file structure.
...
2. Refactored all include directories.
3. The Integrated linked_list and salloc are working. Need to write test for AVL tree and salloc.
2016-05-21 18:54:29 -07:00
secXsQuared
cd5d08fa1d
Refactoring AVL tree to accept duplicate values so that it can be actually used as a priority queue.
2016-05-20 12:07:11 -07:00
secXsQuared
3bfa585967
Test now cleans up memory. Got rid of a redef of a macro.
2016-05-19 17:34:55 -07:00
secXsQuared
13843b16bc
Added linked_list_search API. Refactored linked list implementation and testing (now much better).
2016-05-19 17:18:27 -07:00
secXsQuared
d6f2342d05
Rewrite linked list library. Much more APIs, more graceful code and better test cases.
2016-05-17 22:43:48 -07:00
Siyao Zhao
9ca5b1aa16
Development:
...
1. Intergrated my salloc allocator
2. hal.c: Got rid of some gcc warnings, mainly int -> pointer.
3. entry.asm: 64-bit int immediate moved to a reg first then anded with another reg.
Refactoring:
1. Got rid of kernel_status_t, IN, OUT, OPT. secX does not have to be Windows does it?
2. Renamed _KERNEL_ABI to SAPI.
3. Refactored library functions / interfaces to as "static" and "_" as possible
4. Restructured "common" folder
2016-05-17 12:03:18 -07:00
secXsQuared
9e96b66a08
Proc control block
...
Primitive code for the allocation library
2016-05-16 00:34:41 -07:00
hyperassembler
d85a005411
ffff
2016-03-04 20:49:36 -05:00
hyperassembler
6088802c06
Linked list interface change
2016-03-04 17:20:48 -05:00
hyperassembler
93cd12690c
[IN PROGRESS] Added hal_interlocked_exchange and implemented spin locks in C code. Reverted some kernel_status_t changes.
2015-11-14 17:53:30 -05:00
hyperassembler
cce6d1558f
Windows kernel is well-thought. Refactoring...
2015-10-13 21:19:49 -04:00
hyperassembler
3a217327c9
Step up higher half kernel [In Progress]
2015-09-11 00:51:13 -04:00
hyperassembler
3efb2f7bbd
HAL now reports memory in unit of pages to kernel.
2015-09-05 17:14:04 -04:00
unknown
58c61bae3c
Physical memory manager [In Progress]
2015-09-04 15:04:22 -04:00
hyperassembler
a4411ce9a6
Fixed some bugs. Now 64 bits kernel can do it.
2015-09-03 21:49:37 -04:00
hyperassembler
454be49390
Screw mac os x and gui debugger.
2015-09-03 20:22:12 -04:00
unknown
a58d00f229
NASM's Align is a very good feature.
2015-09-03 17:24:54 -04:00
unknown
3cada2ce00
Kernel migration in progress.
2015-09-03 17:04:15 -04:00
unknown
01c7b53883
Separating x86 and x64 kernels in order to map kernel to higher half easily. [In Progress]
2015-09-03 16:38:24 -04:00
unknown
abacfc4914
Print information about modules
2015-09-03 11:46:02 -04:00
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
aa0a4483b8
Rewrite makefile and get it compiled.
2015-04-23 00:47:20 -07: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