summaryrefslogtreecommitdiff
path: root/arch/i386/include/kernel (follow)
Commit message (Collapse)AuthorAgeFilesLines
* arch: i386: kernel: add mostly finished PFA and paging systemDanny Holman2024-03-283-5/+52
| | | | | | | Add the mostly finished physical memory allocator and expose its functions to the paging system. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: cleanup everything and reorganizeDanny Holman2024-02-248-115/+98
| | | | | | | | | | Clean up everything in the i386 arch directory. This code has been in dire need of refactoring for a long while. All the inline assembly functions and the data structures related to the architecture should be placed into their own header file. Now the scheduler can access registers and ISRs without having to deal with arch-specific code. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: add basic keyboard driverDanny Holman2024-02-161-0/+33
| | | | | | | Add a basic driver for the PS/2 keyboard. This driver just prints whatever it receives back out to the framebuffer. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: roll physical memory control into VMMDanny Holman2024-02-162-31/+15
| | | | | | | The VMM should control the physical memory as well as paging. This allows the VMM to grab frames as it sees fit. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: move GDT definitions to their own headerDanny Holman2024-02-161-0/+55
| | | | | | | Move all the data structures required for operation of the GDT to their own header file. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: move IRQ functions to PIC driverDanny Holman2024-02-161-0/+2
| | | | | | | | Move all the functions that control IRQ lines to the PIC driver. This allows the IDT controller to handle only raw interrupts no matter where they come from. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: move raw assembly calls to their own headerDanny Holman2024-02-161-0/+19
| | | | | | | Move simple assembly calls to their own header. All one or two line assembly calls should be defined in a single place. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: syscall.c: add functions that dump dataDanny Holman2024-02-161-0/+2
| | | | | | | Add functions to the syscall handlers that dump registers and stack in case of catastrophic failure. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: add operations to control PIT timerDanny Holman2024-02-161-0/+9
| | | | | | | | Add a set of functions that control the programmable interrupt timer. This will be used as the primary means of preemption on this architecture. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: put framebuffer ops in own fileDanny Holman2024-02-161-0/+17
| | | | | | | Move all operations related to the x86 framebuffer into its own set of files. This makes the TTY layer more architecture agnostic. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: paging: add a proper paging APIDanny Holman2023-11-261-0/+52
| | | | | | | Add a proper page control API. These functions allow the kernel to directly map and unmap pages in the logical address space. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: alloc: add a physical memory managerDanny Holman2023-11-261-0/+13
| | | | | | Add a simple, bitmap-based physical memory management system. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: add multiboot supportDanny Holman2023-11-261-0/+104
| | | | | | | | Add support for the multiboot specification. These files will allow the kernel to read the multiboot header information as well as the provided memory map. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: syscall.h: define some example system callsDanny Holman2023-11-261-5/+22
| | | | | | | Define a few standard Unix system calls. These may change based on future needs. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: pic.h: make register_irq_handler accessibleDanny Holman2023-11-261-0/+2
| | | | | | Make the register_irq_function accessible from files including pic.h. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: pic.h: change all chars into uint8_tDanny Holman2023-11-261-1/+2
| | | | | | | Make all variables with char or char* type into uint8_t. This makes the system more consistent and issues fewer compiler warnings. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: idt.h: remove extern functionsDanny Holman2023-11-261-4/+1
| | | | | | | Remove references to extern functions. All the necessary functionality for this file is already contained. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: refactor the system call APIDanny Holman2022-03-222-2/+1
| | | | | | | The x86 system call/interrupt handlers should be refactored to be more readable. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: move non-critial files out of bootDanny Holman2022-01-212-0/+46
| | | | | | | Move all files not needed for the bootstrap process out of boot and into the main x86 source directory. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: fix coding style issueDanny Holman2022-01-151-2/+2
| | | | | | Make the inline assembly calls consistent across different i386 files. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: add support for IRQs and system callsDanny Holman2022-01-151-0/+19
| | | | | | Add support for rudementary system calls and IRQ interrupts. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: simplify IDT setupDanny Holman2022-01-152-3/+3
| | | | | | Simplify the interrupt descriptor table setup and frame assembly. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: include more information in IDTDanny Holman2021-10-092-11/+35
| | | | | | Include information about the current stack frame in the IDT handler(s). Signed-off-by: Danny Holman <dholman@gymli.xyz>
* arch: i386: add PIC register supportDanny Holman2021-09-281-0/+5
| | | | | | | Add functions that let the OS read the internal state registers of the 8259 PIC. Signed-off-by: Danny Holman <dholman@gymli.xyz>
* arch: i386: fix IDT exception handlerDanny Holman2021-09-282-0/+72
| | | | | | | Fix the i386's general exception handler to actually work. Fix provided by Jon Sanderson (jjs295356@gmail.com). Signed-off-by: Danny Holman <dholman@gymli.xyz>
* arch: i386: add support for 8259 PICDanny Holman2021-09-281-0/+45
Add support for the 8259 programmable interrupt controller. Signed-off-by: Danny Holman <dholman@gymli.xyz>