aboutsummaryrefslogtreecommitdiff
path: root/mirai/drivers
AgeCommit message (Collapse)AuthorFilesLines
2026-03-27Refactor and implement interrupt handling and PIT driverBobby5-0/+77
- Refactored CPU context structure for better readability. - Enhanced corpse and exception structures with clearer formatting. - Improved frame structure for consistency. - Added interrupt flag operations for enabling and disabling interrupts. - Implemented IDT (Interrupt Descriptor Table) operations including loading and setting gates. - Created PIC (Programmable Interrupt Controller) initialization and masking functions. - Developed PIT (Programmable Interval Timer) driver with initialization and handler functions. - Established common interrupt handler structure and exception handling stubs. - Added hardware IRQ handling for IRQs 0-15. - Introduced IDT entry and gate descriptor types for better organization. - Ensured proper handling of interrupt and exception vectors.
2026-02-25Add Global Descriptor Table (GDT) and Task State Segment (TSS) implementationBobby2-48/+78
- Introduced GDT constants, including selectors, access rights, and flags. - Created GDT entry structures for kernel and user segments, along with TSS descriptors. - Implemented GDT initialization and loading functions. - Developed boot sequence phases for CPU and memory initialization. - Added boot information structure to manage memory regions and kernel details. - Implemented TSS management, including core-specific TSS setup and stack allocation. - Established state management for boot sequence phases and TSS.
2026-02-25feat: Add common constants, errors, and serial driver functionalityBobby4-0/+134
2026-02-24Bunch of stuff moved as .old for new arch changeBobby12-979/+0
2026-02-24commit for arch changeBobby1-3/+3
2026-02-23feat: Enhance Kata state management with new states and deferred cleanup for ↵Bobby1-2/+51
page tables
2026-02-20feat: Refactor path handling to use location utilities and update related ↵Bobby1-5/+6
structures - Replaced path references with location in various modules for consistency. - Updated attachment management to use location instead of path. - Enhanced I/O operations to handle location parameters. - Removed deprecated path utilities and integrated location utilities. - Adjusted limits and parameters for kata and attachment management.
2026-02-20feat: Implement CMOS/RTC and CPUID operations, add PIT driver, and enhance ↵Bobby1-0/+12
AFS with disk info retrieval
2026-02-15Refactor Kata Memory Management and SchedulerBobby1-1/+1
- Updated memory management in `memory.zig` to improve virtual buffer allocation and deallocation. - Removed `sensei.zig` and refactored scheduling logic into new files: `queue.zig`, `sensei.zig`, and `waker.zig`. - Introduced `attachment.zig` for managing attachments with new constants and limits. - Created `pool.zig` for managing the Kata pool, including creation and dissolution of Katas. - Enhanced `types.zig` to define new structures and enums for Katas and their states. - Improved context switching in `shift.zig` to streamline Kata execution state management. - Updated file references and imports across the codebase to reflect new structure.
2026-02-15Refactor I/O operations and update driver importsBobby3-0/+139
- Renamed I/O port functions for clarity: `write_port_byte` to `out_byte`, `read_port_byte` to `in_byte`, `write_port_word` to `out_word`, `read_port_word` to `in_word`, `write_port_long` to `out_long`, and `read_port_long` to `in_long`. - Updated import paths for serial, ahci, ata, gpt, keyboard, terminal, and other drivers to reflect new directory structure. - Replaced instances of `read_file_by_path` with `view_unit_at` in various files for consistency. - Added new utility functions for AHCI FIS setup and defined types for AHCI and PCI. - Introduced string copy utilities for handling strings from Kata pointers.
2026-02-15Add drivers and constants for ATA, AHCI, PCI, Keyboard, Serial, and VGABobby14-965/+778
- Introduced ATA constants and limits for commands, status registers, and device signatures. - Added keyboard constants and limits for scancodes and buffer size. - Implemented PCI configuration constants and limits for device enumeration. - Created I/O port constants for serial communication and keyboard interaction. - Developed AHCI driver for SATA devices, including port operations and command handling. - Implemented ATA PIO block device driver for reading sectors. - Added PS/2 keyboard driver with scancode handling and input buffering. - Created serial port driver for outputting data and formatted printing. - Developed VGA text mode driver for character display and screen management.
2026-01-28refactor: Replace inline assembly with I/O functions in ATA, keyboard, and ↵Bobby3-84/+20
PCI drivers
2026-01-28refactor: Replace inline assembly with I/O functions for serial port operationsBobby1-24/+11
2026-01-27Refactor memory management and system constantsBobby1-2/+2
- Moved memory-related constants from `constants.zig` to `system/constants.zig` for better organization. - Introduced `system/limits.zig` to centralize system-wide limits and constants. - Updated various modules to use the new `system` module for accessing constants and limits. - Added validation functions for user pointers and memory ranges in `system/limits.zig`. - Enhanced file handling in `afs.zig` with a new function to get file size by path. - Improved error handling and validation in various invocations and memory management functions. - Marked the end of the kernel in the linker script for memory management.
2026-01-23feat: Integrate memory constants across modules for improved configuration ↵Bobby1-1/+2
management
2026-01-23refactor: Reorder and organize import statements across multiple files for ↵Bobby1-2/+2
improved readability
2026-01-23feat: Remove debug print statements across various modules to clean up outputBobby2-32/+0
2026-01-22feat: Implement keyboard input handling and shell functionalityBobby1-34/+33
- Added framebuffer initialization and retrieval functions in multiboot2.zig. - Integrated framebuffer support into the boot sequence. - Refactored keyboard driver to use a circular buffer for input and added blocking behavior for kata waiting on keyboard input. - Enhanced kata management to support blocking and waking katas based on keyboard input. - Introduced a new invocation for reading a character from the keyboard (getkeychar). - Implemented a simple shell (ash) that reads user input and echoes it back. - Updated syscall handling to include the new getkeychar invocation. - Improved memory management for loading programs and handling user/kernel stacks. - Added functionality to wake katas waiting for specific events, such as the dissolution of other katas.
2025-12-30feat: improve panic diagnostics, memory paging, and system task loadingBobby1-30/+42
2025-12-12file descriptors, IO, and more invocationsBobby1-0/+69
2025-12-08move device finder to ahciBobby1-0/+18
2025-12-01implement GPT parser, ACHI and PCI drivers, update AFS to use AHCIBobby2-0/+602
2025-11-28bring framebuffer and terminal backBobby1-1/+6
2025-11-28improved IDT and keyboard driversBobby1-43/+71
2025-11-27akiba shell (ash) with mi (mité) commandBobby1-5/+2
2025-11-27add ps/2 keyboard driver, interrupts for keyboard and basic terminalBobby1-0/+152
2025-11-27add akiba filesystem with ata, serial, and vga driversBobby3-0/+191