Commit Graph

  • c39cbb79cd Task contexts now load segment registers correctly Interrupt enable bit set in saved EFLAGS register ngiddings 2021-04-18 02:10:03 -05:00
  • 1171aa2ca3 Spurious interrupt vector set to 0xFF ngiddings 2021-04-18 02:07:45 -05:00
  • 0b84658a61 TSS is created and TR loaded in initialize_gdt() ngiddings 2021-04-18 02:07:00 -05:00
  • 979344e942 next_process() checks if a next process exists Panics if not ngiddings 2021-04-17 06:30:00 -05:00
  • b615a8d286 More process in initialize() Function now constructs kernel state and enters a process ngiddings 2021-04-17 06:27:55 -05:00
  • 461194fdfd Fixed initialize_context() Function did not take 'popal' instruction into account when initializing stack ngiddings 2021-04-17 06:26:56 -05:00
  • a68a4dff11 Added new 'null pointer' status code ngiddings 2021-04-17 06:26:03 -05:00
  • 7dd19d0c2a Added constructors for heap and resource table ngiddings 2021-04-17 06:25:46 -05:00
  • 291ed65248 Fixed wrong pointer type in load_module() Kernel passed a pointer to its own state to get_free_resource_slot(), causing its state to be corrupted. next_process() also now loads the address space of the next process before entering it. ngiddings 2021-04-17 06:25:11 -05:00
  • 2a5dcd4a0f Improved get_free_resource_slot() Table now tries to expand itself when no available slots are left ngiddings 2021-04-17 04:59:39 -05:00
  • a28e586139 Fixed missing return in free_page() Method would report "out of memory" when that was not the case ngiddings 2021-04-17 04:58:02 -05:00
  • 7c0c5cd8ce Fixed calculation of kernel binary size in initialize() ngiddings 2021-04-17 04:57:12 -05:00
  • 55c5db056e Fixed crash in initialize_context() Function tried to dereference a physical address, causing page fault ngiddings 2021-04-17 04:56:22 -05:00
  • 5c4a756176 Fixed fatal error while loading modules strcpy() was called with a char instead of a char*, obviously causing a crash ngiddings 2021-04-17 04:24:23 -05:00
  • d0f9d026cc Merge pull request #5 from ngiddings/pre-alpha Nathan Giddings 2021-04-17 03:46:34 -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 ngiddings 2021-04-17 03:45:45 -05:00
  • b141582f40 Added very simple kernel memory allocator ngiddings 2021-04-17 01:18:14 -05:00
  • b582c39ff8 Started work on process management ngiddings 2021-04-17 01:00:28 -05:00
  • ce6371f0c3 Added ISR for preemption of processes ngiddings 2021-04-17 00:59:15 -05:00
  • 4bbe63819a Added page_table firld to process_t ngiddings 2021-04-17 00:58:10 -05:00
  • db280f3fad Added new source files to Makefile.am ngiddings 2021-04-17 00:57:50 -05:00
  • cb6d2681ef Started code to manage kernel resource table ngiddings 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 ngiddings 2021-04-17 00:56:44 -05:00
  • 2d6fa0d163 Added functions to create and load process contexts ngiddings 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 ngiddings 2021-04-17 00:52:16 -05:00
  • 6c047c6343 Remvoed unused dymamic memory allocator ngiddings 2021-04-17 00:49:38 -05:00
  • 8896c4313f Fixed glitch in trim_map() Entries were not modified properly; only removals worked correctly. ngiddings 2021-04-17 00:45:24 -05:00
  • 6138766c49 Added sequence to remap PIC Wrote GDT code in C Added routines to initialize GDT and IDT ngiddings 2021-04-16 01:45:40 -05:00
  • 8e6589b472 Added some test code to setup a timer ngiddings 2021-04-15 07:23:19 -05:00
  • 3e73c7c0ac Fixed APIC register mapping ngiddings 2021-04-15 07:22:58 -05:00
  • 0c5d18ddc0 Added enum for timer interrupt vector ngiddings 2021-04-15 07:22:26 -05:00
  • 50fcaa2673 Added timer ISR ngiddings 2021-04-15 07:22:01 -05:00
  • d72c108f1b Merge pull request #4 from ngiddings/pre-alpha Nathan Giddings 2021-04-15 05:56:49 -05:00
  • 83abc11b09 Formatted header in README.md properly ngiddings 2021-04-15 05:54:57 -05:00
  • a42577d60e Merge pull request #3 from ngiddings/migrate-to-c Nathan Giddings 2021-04-15 05:53:07 -05:00
  • 3229f55164 Added some code in initialize() to test interrupts ngiddings 2021-04-15 05:49:40 -05:00
  • c5e38801f3 Fixed the idt_info_t struct and lidt() Info was not loaded properly, causing crash ngiddings 2021-04-15 05:49:11 -05:00
  • 923057ee1c Removed 'interrupt' attribute from isr_ap_start() Added message to division by 0 exception ngiddings 2021-04-15 04:55:28 -05:00
  • ac0e5261ba Implemented apic_send_ipi() ngiddings 2021-04-15 04:51:57 -05:00
  • 1e6b888515 Added msr.c to Makefile.am ngiddings 2021-04-15 04:51:37 -05:00
  • d2617e4488 Wrote new ISR for AP entry ngiddings 2021-04-15 04:51:23 -05:00
  • 8eafcf899b Wrote some simple MSR code ngiddings 2021-04-15 04:44:41 -05:00
  • c47a3dd73b Added apic.c to Makefile.am ngiddings 2021-04-14 20:23:30 -05:00
  • 8851243f19 Wrote empty definitions for some APIC functions Started x86 interrupt setup code ngiddings 2021-04-14 20:23:13 -05:00
  • 3130b07fd1 Removed generic_isr() definition ngiddings 2021-04-14 03:39:25 -05:00
  • 48c042ca5f Added declaration for panic() function ngiddings 2021-04-14 03:39:07 -05:00
  • 507b0fa53e Renamed ISR functions to fit convention ngiddings 2021-04-14 03:25:55 -05:00
  • eef1741e16 Added enum listing x86 exception codes ngiddings 2021-04-14 03:25:21 -05:00
  • 29544b0eb8 Moved interrupt code to separate file. Added new source file to Makefile.am ngiddings 2021-04-14 02:46:04 -05:00
  • 4a8ca81a10 Started header for APIC structures ngiddings 2021-04-14 02:25:57 -05:00
  • 9f0867393f Some cleanup in quark_x86.c ngiddings 2021-04-14 00:52:56 -05:00
  • 6f625451ca Added new source files to Makefile.am ngiddings 2021-04-14 00:52:29 -05:00
  • 4c2ded8676 Fixed missing includes for multiboot2 files ngiddings 2021-04-14 00:52:12 -05:00
  • 61a50fef10 Inproved formatting on struct initializer ngiddings 2021-04-14 00:12:02 -05:00
  • 4e6f487a0a Moved ISRs and multiboot2 code to separate files ngiddings 2021-04-14 00:11:44 -05:00
  • dd188132b9 Moved x86 ISR stubs to quark_x86.c ngiddings 2021-04-13 00:26:59 -05:00
  • 4900febfd9 Fixed wraparound problem in compare_regions() ngiddings 2021-04-13 00:25:34 -05:00
  • e6a417c822 Changed formatting flag used to print memory map ngiddings 2021-04-13 00:21:36 -05:00
  • 302ed3b816 Fixed issues with tabs and newlines in putchar() ngiddings 2021-04-13 00:21:08 -05:00
  • c6467e20d8 Wrote partial printf implementation ngiddings 2021-04-13 00:20:45 -05:00
  • e9ffd9d85c Fixed incorrect memory type enum ngiddings 2021-04-13 00:20:19 -05:00
  • cb7df05625 Added line to print character to screen after initializing ngiddings 2021-04-12 15:52:32 -05:00
  • 8d784364f8 Fixed value of pointer to video memory ngiddings 2021-04-12 15:52:03 -05:00
  • 2f7300fbf8 Fixed infinite loop when interting into memory map ngiddings 2021-04-12 15:51:25 -05:00
  • f2c19bd4c4 Turned module_limit into a macro ngiddings 2021-04-12 15:28:37 -05:00
  • 20b718c935 Implemented bare-bones putchar() and puts() ngiddings 2021-04-12 15:28:03 -05:00
  • c94a4a692b Updated stdio.h include in quark_x86.c ngiddings 2021-04-12 02:22:06 -05:00
  • e2562c9a4e Fixed invlpg instruction in create_address_space() ngiddings 2021-04-12 02:21:29 -05:00
  • 5006addfb5 Fixed formatting in mmgr.c ngiddings 2021-04-12 01:52:33 -05:00
  • 47a591fe7c Fixed missing include search path in Makefile.am ngiddings 2021-04-12 01:50:08 -05:00
  • d415fb232e Added missing stdint.h include to physaddr.h ngiddings 2021-04-12 01:49:45 -05:00
  • 470f6b2d99 Updated autotools config ngiddings 2021-04-12 01:44:38 -05:00
  • dc4d3c0165 Added isr type enum to quark_x86.c ngiddings 2021-04-12 01:44:17 -05:00
  • 0b302c5759 Started main kernel functions ngiddings 2021-04-12 01:43:47 -05:00
  • ca0d09d9b5 Removed load_elf_executable() declaration ngiddings 2021-04-12 01:43:14 -05:00
  • e84a2fadd3 Added stubs for stdio.h functions putchar() and puts() are platform-dependent ngiddings 2021-04-12 01:42:53 -05:00
  • b3b2921b7e Renamed tty.h to stdio.h Added puts() declaration ngiddings 2021-04-12 01:41:52 -05:00
  • 1f7ef81149 Renamed module_t::string to module_t::str ngiddings 2021-04-12 01:22:31 -05:00
  • 74fe6e1a58 Moved ELF structures to C header ngiddings 2021-04-12 01:21:59 -05:00
  • e235e9bad2 Moved memory type enum to memorymap.h Deleted memorytype.h ngiddings 2021-04-12 01:21:18 -05:00
  • 7255f89646 Removed old kernel C++ files ngiddings 2021-04-12 01:05:26 -05:00
  • 781a115128 Renamed initialize.c to quark_x86.x ngiddings 2021-04-12 01:04:32 -05:00
  • 2d1d6574af Removed old C++ screen printing code ngiddings 2021-04-12 01:02:53 -05:00
  • bde2725b8f Removed old syscall WIP ngiddings 2021-04-12 01:01:39 -05:00
  • 558874b5ed Added stdarg include to tty.h ngiddings 2021-04-12 00:59:14 -05:00
  • 4a0f8e4f78 Implemented multiboot2 in initialize.c Removed multiboot2 C++ code ngiddings 2021-04-12 00:58:46 -05:00
  • 7888c9df30 Added header for module struct ngiddings 2021-04-12 00:34:43 -05:00
  • 41d21bd636 Added function to construct page stack from membory map ngiddings 2021-04-12 00:09:23 -05:00
  • 48e6f907a1 Committing old file deletion ngiddings 2021-04-12 00:08:38 -05:00
  • 259aa3fabc Rewrote x86 initialize program in C ngiddings 2021-04-11 17:20:57 -05:00
  • e16cbd4ec9 Added C header for memory type enum, removed C++ ngiddings 2021-04-11 17:04:18 -05:00
  • 7fc6c40c54 Wrote memory map in C, removed C++ code ngiddings 2021-04-11 04:04:09 -05:00
  • 557f3194ed Reduced number of statically allocated page tables ngiddings 2021-04-10 21:15:32 -05:00
  • 1f4fb5dd0b Removed old unused source file ngiddings 2021-04-10 21:13:58 -05:00
  • 1661abee79 Removed more useless C++ files ngiddings 2021-04-10 21:13:15 -05:00
  • 62a0bb2d57 Removed some useless C++ files ngiddings 2021-04-10 20:46:02 -05:00
  • 68166e58ca Implemented C x86 paging, removed C++ code ngiddings 2021-04-10 20:43:01 -05:00
  • 6a4f777340 Created string.h header; moved code to string.c ngiddings 2021-04-10 20:15:23 -05:00
  • a57d841085 Implemented priority queue in C; removed C++ heap ngiddings 2021-04-10 19:42:16 -05:00
  • 93d8c06d2f Added out of bounds status enum ngiddings 2021-04-10 19:41:17 -05:00