72 Commits

Author SHA1 Message Date
4ecec1eec6 Stupidly simple process memory manager with brk() 2018-03-29 19:36:33 +02:00
19d58ec71d Functions for copying stuff between kernel and user space 2018-03-29 19:36:33 +02:00
42baf14321 A bit of cleanup 2018-03-29 19:36:33 +02:00
68ec6fa575 Running in user mode 2018-03-29 19:36:32 +02:00
132645c0e6 Reload GDT from c 2018-03-29 19:36:32 +02:00
04f2123499 Move BootGDT definition to C 2018-03-29 19:36:32 +02:00
e868b83f50 At this point the threads are really processes... 2018-03-29 19:36:32 +02:00
6523b10984 Threads have isolated memory spaces 2018-03-29 19:36:32 +02:00
2d0f539e23 Create and load new page directories 2018-03-29 19:36:32 +02:00
a39fdcf3ce Adding a scheduler function and cleanup 2018-03-29 19:36:32 +02:00
b5f5a40fbc Further queue improvements 2018-03-21 23:12:43 +01:00
e5da45df2f Queue improvements 2018-03-21 23:12:43 +01:00
8af18644a3 Interface cleanup 2018-03-21 23:12:43 +01:00
024d772be8 Queues using some macro magic 2018-03-21 23:12:43 +01:00
fd0ca6f617 Rename some stuff - cleanup 2018-03-21 23:12:43 +01:00
13946b1758 Pass around tcbs instead of thread stacks 2018-03-21 23:12:43 +01:00
1fca5af522 Change interface for getting and setting current thread 2018-03-21 23:12:43 +01:00
c26434f814 Some threading code cleanup 2018-03-21 23:12:43 +01:00
251b5f71c9 Simple scheduler 2018-03-21 23:12:43 +01:00
1e2f81a5d8 Very simple threading and context switching. 2018-03-21 23:12:43 +01:00
fc6c7f3bc7 VMM -- Interface cleanup 2018-03-21 09:21:40 +01:00
9bc1abceff VMM -- Touch and set page in one operation 2018-03-20 14:11:22 +01:00
df0df93da7 Don't put multiboot data in page stack 2018-03-20 14:11:22 +01:00
36c517dd82 Use a direct address for P4 rather than a pointer 2018-03-20 14:11:22 +01:00
8711fee390 Interface cleanup 2018-03-20 14:11:22 +01:00
9a479b1132 Add a PAGE_GLOBAL flag for kernel pages 2018-03-20 14:11:22 +01:00
3a4136c225 PMM -- calloc function for getting cleared pages 2018-03-20 14:11:22 +01:00
5dc4e27392 Map all free memory pages and add to page stack 2018-03-20 14:11:22 +01:00
8ac8bc7b6c VMM -- adding interface to header file 2018-03-20 14:11:22 +01:00
1a7852de4d PMM -- finishing up and changing names, types 2018-03-20 14:11:21 +01:00
80cc165957 Read memory map tags from multiboot 2018-03-20 14:11:21 +01:00
73a33c23a4 Clean up header file for interrupts 2018-03-20 14:11:21 +01:00
6f0a745adc Ability to bind handler functions to interrupts 2018-03-20 14:11:21 +01:00
c1c3842ace Functions for reading/writing some special registers 2018-03-20 14:11:21 +01:00
96d2ebd977 Collect the cpu specific stuff 2018-03-20 14:11:21 +01:00
6cbdb8f7de Remove magic numbers 2018-03-20 14:11:21 +01:00
127d6ca5a4 Interrupt cleanup 2018-03-20 14:11:21 +01:00
e4e891bb86 Clean up interface 2018-03-20 14:11:21 +01:00
79ca4681ff Make tests independent of structures in header files 2018-03-20 14:11:21 +01:00
49f7738be2 Parse multiboot information 2018-03-20 14:11:21 +01:00
9e2483d78e Halt-And-Catch-Fire macro 2018-03-20 14:11:21 +01:00
2da088f031 Clean up interface 2018-03-20 14:11:21 +01:00
0659cf73f6 Some more debug macros 2018-03-20 14:11:21 +01:00
572bee19cc Add ability to disable debug printing and gdb symbols 2018-03-20 14:11:21 +01:00
a9831c1038 A macro for debug printing 2018-03-20 14:11:21 +01:00
a652bbb05e Remove magic numbers 2018-03-20 14:11:21 +01:00
4f00d428bf Writing (debug output) to screen 2018-03-20 14:11:21 +01:00
954696728c Add memory copy and move functions. Required by gcc, and we'll also use
them soon
2018-03-20 14:11:21 +01:00
034a870ac7 Sending data (debug printing) to serial port 2018-03-20 14:11:21 +01:00
d05ddfeab4 Debug printing functions 2018-03-20 14:11:21 +01:00