98528dbc4a
Created x86/mp.h
2023-11-07 12:36:59 -06:00
b9208aceba
Created types/sigaction.h
2023-11-07 12:34:31 -06:00
aa77b0e7a2
Created sighandler.h
2023-11-07 12:34:06 -06:00
d4ed72cc46
Removed leading underscore from syscallarg.h
2023-11-07 12:33:42 -06:00
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