Commit Graph

76 Commits

Author SHA1 Message Date
8e64741a9e Created types/syscallret.h 2023-11-07 12:33:24 -06:00
4b7cf4e04a Removed leading underscore from syscallarg.h 2023-11-07 12:33:04 -06:00
58d50a5e9a Removed leading underscore from physaddr.h 2023-11-07 12:32:42 -06:00
669ab6ba8a Removed leading underscore from pid.h 2023-11-07 12:32:04 -06:00
185d3f6677 Added function to delete contents of AVL tree 2023-11-07 12:31:16 -06:00
85020f2254 Removed leading underscore in oid.h 2023-11-07 12:30:13 -06:00
a5ce86147d Created small static library to wrap system call ABI 2023-09-07 00:58:57 -05:00
43440310f2 Added type definitions for process and object IDs 2023-09-07 00:55:45 -05:00
29a528780b Added syscalls to map to particular physical address 2023-09-02 21:50:35 -05:00
75b7e08e96 Kernel page allocator and heap use new algorithms 2023-08-31 14:37:38 -05:00
035960f4d3 Added new linker symbol pointing to end of read-only data 2023-03-03 04:52:58 -06:00
6af84b247f Page allocation uses new external library, libmalloc 2023-01-09 01:56:09 -06:00
c069866bc7 Buncha changes and fixes 2022-12-30 17:11:42 -06:00
166841da51 Added usermode interrupt handling 2022-12-21 11:37:13 -06:00
bacedbea86 Rewrote physical memory allocator
The physical memory allocator now uses a buddy allocator instead of a stack.

Also moved some of the platform-independent context code to kernel.c.
2022-08-23 13:00:26 -05:00
2f7d39e679 Improved error handling in queue.c 2022-08-23 12:56:45 -05:00
9c37167c5e Changed #include guards in physaddr.h, added now error codes 2022-08-23 12:55:39 -05:00
f76b8cab43 Changed #include guards in physaddr.h 2022-08-23 12:55:07 -05:00
21509be9bc Added 'math.c' for optimized math and bit operations 2022-08-23 08:41:53 -05:00
c36f65ce97 Various renaming and refactoring 2022-08-19 22:34:45 -05:00
0337fca749 Moved syscall IDs to separate header 2022-08-19 06:06:48 -05:00
164fb9fcae Added simple IPC syscalls 2022-08-19 03:56:53 -05:00
0ae4f7995d Added basic IPC syscalls 2022-08-17 02:47:41 -05:00
bfb56fcbb3 Added functions to portably manipulate process context 2022-08-17 01:41:59 -05:00
bbf2325a60 Added constructor to queue 2022-08-17 01:41:19 -05:00
5b959c9763 Added queue structure 2022-08-15 20:20:31 -05:00
bdb0b753a3 Fixed multiple definition error 2022-07-23 04:03:00 -05:00
03968c33eb Redefined message struct 2022-07-23 02:22:18 -05:00
d84c9c86d0 Removed some unused code 2022-07-05 18:06:19 -05:00
5c7d002bbf Moved PCB for each process to kernel heap 2022-07-03 13:17:06 -05:00
e3026b2601 Removed unneeded #include from elf.h 2022-06-15 16:07:01 -05:00
38d9ee4737 Removed unneeded #include from heap.h 2022-06-15 16:05:40 -05:00
a52f06f81e Massive backlog of changes 2022-06-15 15:59:31 -05:00
c962a83ff0 WIP on kernel syscalls 2021-05-01 17:09:50 -05:00
7caf49065d page stack constructor takes stack base as argument
initialize() calls new constructors and fills in syscall table
2021-04-19 06:58:02 -05:00
c5ca5e82a7 Added more status codes 2021-04-19 06:56:12 -05:00
470e39e8e8 Added support for page types in mmgr 2021-04-19 06:55:27 -05:00
a5e9d852ab Implemented do_syscall()
Wrote constructor for kernel state
Added syscall table
2021-04-19 06:54:34 -05:00
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