Commit Graph

38 Commits

Author SHA1 Message Date
6df3f203b8 Added source file for syscalls 2021-04-19 06:51:48 -05:00
5efc389935 Finished basic task switching mechansim
PCB is local to a process's address space.
Context switches are written in assembly.
Moved x86 headers to include/x86
2021-04-19 03:40:33 -05:00
c39cbb79cd Task contexts now load segment registers correctly
Interrupt enable bit set in saved EFLAGS register
2021-04-18 02:10:03 -05:00
b615a8d286 More process in initialize()
Function now constructs kernel state and enters a process
2021-04-17 06:27:55 -05:00
a68a4dff11 Added new 'null pointer' status code 2021-04-17 06:26:03 -05:00
7dd19d0c2a Added constructors for heap and resource table 2021-04-17 06:25:46 -05:00
2a5dcd4a0f Improved get_free_resource_slot()
Table now tries to expand itself when no available slots are left
2021-04-17 04:59:39 -05:00
961139df9e Improved kernel memory usage
Moved base linear address to 0xFF800000
Kernel only reserves the page frames it actually needs
Memory for multiboot2 headers is freed
Video memory and APIC registers are dynamically mapped into linear addresses
2021-04-17 03:45:45 -05:00
b141582f40 Added very simple kernel memory allocator 2021-04-17 01:18:14 -05:00
b582c39ff8 Started work on process management 2021-04-17 01:00:28 -05:00
4bbe63819a Added page_table firld to process_t 2021-04-17 00:58:10 -05:00
cb6d2681ef Started code to manage kernel resource table 2021-04-17 00:57:37 -05:00
9630d0a396 Added load_program() function
Builds program image from ELF file in memory
Fixed multiple definition error caused by constant in elf.h:
moved contant to elf.c
2021-04-17 00:56:44 -05:00
2d6fa0d163 Added functions to create and load process contexts 2021-04-17 00:55:05 -05:00
fdcdb9acab Updated virtual memory manager
Added page flags
Added function current_address_space()
Fixed create_address_space()
Renamed some fields in page_table_entry_t to fit naming scheme
2021-04-17 00:52:16 -05:00
48c042ca5f Added declaration for panic() function 2021-04-14 03:39:07 -05:00
e9ffd9d85c Fixed incorrect memory type enum 2021-04-13 00:20:19 -05:00
d415fb232e Added missing stdint.h include to physaddr.h 2021-04-12 01:49:45 -05:00
0b302c5759 Started main kernel functions 2021-04-12 01:43:47 -05:00
ca0d09d9b5 Removed load_elf_executable() declaration 2021-04-12 01:43:14 -05:00
b3b2921b7e Renamed tty.h to stdio.h
Added puts() declaration
2021-04-12 01:41:52 -05:00
1f7ef81149 Renamed module_t::string to module_t::str 2021-04-12 01:22:31 -05:00
74fe6e1a58 Moved ELF structures to C header 2021-04-12 01:21:59 -05:00
e235e9bad2 Moved memory type enum to memorymap.h
Deleted memorytype.h
2021-04-12 01:21:18 -05:00
558874b5ed Added stdarg include to tty.h 2021-04-12 00:59:14 -05:00
7888c9df30 Added header for module struct 2021-04-12 00:34:43 -05:00
41d21bd636 Added function to construct page stack from membory map 2021-04-12 00:09:23 -05:00
259aa3fabc Rewrote x86 initialize program in C 2021-04-11 17:20:57 -05:00
e16cbd4ec9 Added C header for memory type enum, removed C++ 2021-04-11 17:04:18 -05:00
7fc6c40c54 Wrote memory map in C, removed C++ code 2021-04-11 04:04:09 -05:00
68166e58ca Implemented C x86 paging, removed C++ code 2021-04-10 20:43:01 -05:00
6a4f777340 Created string.h header; moved code to string.c 2021-04-10 20:15:23 -05:00
a57d841085 Implemented priority queue in C; removed C++ heap 2021-04-10 19:42:16 -05:00
93d8c06d2f Added out of bounds status enum 2021-04-10 19:41:17 -05:00
7c3a40bc47 Added declaration for page count function 2021-04-10 19:15:59 -05:00
6ee078e6fe Added C header for page table management 2021-04-10 19:15:37 -05:00
8210d25c93 Added a C header for a page allocator. 2021-04-10 17:57:10 -05:00
505213b7dc Started writing C headers 2021-04-10 17:37:05 -05:00