Commit Graph
100 Commits
Author SHA1 Message Date
harraiken 689951cfde Update timer subsystem with multi-backend dispatch table 2026-05-07 19:50:37 +02:00
harraiken 100b58312f Drop unnecessary ULL qualifiers 2026-05-06 20:09:54 +02:00
harraiken c5b0d15830 Zero-initialize register before bitfield assignment 2026-05-06 19:58:17 +02:00
harraiken 8107692d83 Enable allocated APIC interrupt and validate IO APIC mapping 2026-05-06 19:50:54 +02:00
harraiken 3262ad78c1 Move timer initialization 2026-05-06 19:48:05 +02:00
harraiken 85fb08b3d4 Change timer file descriptions 2026-05-06 19:43:06 +02:00
harraiken 0952dd80b2 Export KeSetTimeIncrement 2026-05-06 19:38:36 +02:00
harraiken a3178e94bd Implement clock interrupt handling and time increment configuration 2026-05-06 19:32:00 +02:00
harraiken f7554e0e24 Implement KE::Dispatcher::UpdateRunTime stub 2026-05-05 23:22:55 +02:00
harraiken 27440aefc4 Add TickCount to Kernel Shared Data 2026-05-05 22:47:32 +02:00
harraiken ba85c88544 Export ACPI timer information 2026-05-04 16:02:59 +02:00
harraiken b417f84492 Fix MADT subtable traversal 2026-05-04 15:02:39 +02:00
harraiken 48ef4bcdca Clear input key buffer before read and propagate EFI_STATUS from ReadKeyStroke 2026-05-04 14:09:30 +02:00
harraiken 7a28cf1c0a Change edit menu boot key binding 2026-05-04 13:57:17 +02:00
harraiken 1050ddea8a Implement framebuffer double buffering 2026-05-04 11:51:52 +02:00
harraiken a7151dbc89 Fix boot stack initialization by returning the highest address 2026-05-03 18:49:51 +02:00
harraiken d532303b7f Fix incorrect SystemTime reference in KE::SharedData::GetInterruptTime function 2026-05-03 14:39:14 +02:00
harraiken 7017985682 Register APIC error handler and stub broadcast IPI for uniprocessor 2026-05-03 13:12:29 +02:00
harraiken 7aba8aa4ec Fix ACPI FADT timer masks 2026-05-03 02:04:29 +02:00
harraiken d1eed619a7 Extend KSD with InterruptTime 2026-04-30 13:00:59 +02:00
harraiken 03a9907bee Update parameter name 2026-04-29 13:19:54 +02:00
harraiken 49fde5adbd Add hardware timer definitions for PIT and ACPI PM 2026-04-28 12:28:33 +02:00
harraiken 165e82f78b Fix HPET definitions 2026-04-28 11:01:42 +02:00
harraiken 3ad10b8b07 Add definitions for High Precision Event Timer 2026-04-28 10:48:16 +02:00
harraiken e2e2b05bc6 Integrate systime module to build 2026-04-27 23:11:19 +02:00
harraiken 98733aa62b Implement system time management functions 2026-04-27 23:02:15 +02:00
harraiken 58deafb1d8 Add support for sending broadcast IPIs 2026-04-27 22:11:30 +02:00
harraiken 88d1f6f2ae Implement system interrupt prologue and epilogue functions 2026-04-27 20:22:28 +02:00
harraiken 6a983fe33c Add helper to translate run level to software interrupt vector 2026-04-27 20:17:57 +02:00
harraiken 8d58a7fcc1 Ensure consistent delivery mode for allocated system interrupts 2026-04-27 20:01:45 +02:00
harraiken 13cf7b5fe7 Fix SendSelfIpi to write ICR1/ICR0 sequentially and validate vector in IRR 2026-04-27 20:00:22 +02:00
harraiken 6a46dad9c5 Fix incorrect filename reference 2026-04-26 23:12:41 +02:00
harraiken 534aaba27e Declare compiler intrinsics with proper symbol names 2026-04-26 23:10:42 +02:00
harraiken 119679c996 Mask the APIC Timer 2026-04-26 22:14:07 +02:00
harraiken b1d013977f Add compiler intrinsic support functions for 64-bit arithmetic 2026-04-26 17:50:21 +02:00
harraiken 4d12f7ac01 Implement inverse time conversion functions for Unix and XT epochs 2026-04-25 23:32:07 +02:00
harraiken 439ea891ca Replace lookup-based time logic with direct epoch calculation formulas 2026-04-24 23:27:25 +02:00
harraiken 8ab3ddb8eb Define time constants and refactor time routines to use them 2026-04-24 18:38:07 +02:00
harraiken 4afe678667 Update build configuration 2026-04-24 17:52:12 +02:00
harraiken 3b76146d53 Implement time conversion routines for Unix and XT epoch formats 2026-04-24 17:48:44 +02:00
harraiken 341759a325 Implement Kernel Shared Data management and initialization 2026-04-24 13:58:33 +02:00
harraiken 122bae21a2 Add virtual address definition for KSD 2026-04-24 12:15:19 +02:00
harraiken 5dc782ca24 Allocate and map the Kernel Shared Data page at startup 2026-04-24 12:12:23 +02:00
harraiken f2baa765b4 Use constants for CMOS port selection 2026-04-24 09:55:36 +02:00
harraiken 2dd1fdf869 Implement RTC support 2026-04-24 09:52:07 +02:00
harraiken b1e849a251 Add BCD to decimal conversion macros 2026-04-24 07:26:22 +02:00
harraiken 58010c27f4 Implement CMOS register access functions 2026-04-23 19:13:56 +02:00
harraiken 98f2f449f9 Add wrapper for RDTSCP instruction 2026-04-22 22:58:17 +02:00
harraiken 76ee56c762 Add 'insmod' and 'lsmod' shell commands 2026-04-20 20:26:35 +02:00
harraiken ba41ad8f0b Implement command history and advanced line editing 2026-04-20 20:17:08 +02:00
harraiken a217391338 Register and implement command 2026-04-20 13:19:40 +02:00
harraiken 5824e9d366 Remove unused variables 2026-04-20 13:07:30 +02:00
harraiken 57bd3d505e Avoid modifying command line string during argument count phase 2026-04-20 12:45:50 +02:00
harraiken d6c2dabcbb Fix dangling pointer bug in LoadModule 2026-04-20 12:13:51 +02:00
harraiken 1f733c120c Implement extensible shell interface in the bootloader 2026-04-20 00:15:32 +02:00
harraiken 735ccd96a6 Initialize I/O APIC 2026-04-18 18:15:57 +02:00
harraiken cd4e905054 Add support for I/O APIC controllers and interrupt override handling 2026-04-18 00:04:12 +02:00
harraiken 715419abe7 Introduce ACPI table structures for HPET and IOAPIC 2026-04-17 23:58:24 +02:00
harraiken d37f2e3827 Implement GetKernelParameterValue to parse and extract boot option values 2026-04-13 19:18:04 +02:00
harraiken cec5e8b16b Implement detection of timer capabilities 2026-04-12 23:58:48 +02:00
harraiken a08e07e515 Refactor ACPI table caching to use a static array 2026-04-12 18:16:33 +02:00
harraiken d7f390b236 Harden ACPI initialization and fix MADT traversal for malformed tables 2026-04-12 17:42:15 +02:00
harraiken 55cb12c978 Ensure APIC idle state before sending self-IPI 2026-04-09 23:51:13 +02:00
harraiken 7d8bfa8f0a Implement support for APIC Self-InterProcessor Interrupts (SIPI) 2026-04-09 20:25:55 +02:00
harraiken d00e96baa4 Invoke APIC timer initialization 2026-04-09 16:17:08 +02:00
harraiken 17f044cb3f Apply consistent coding style 2026-04-09 11:42:41 +02:00
harraiken 1fa6e90439 Hook up profile interrupt handler 2026-04-08 23:16:03 +02:00
harraiken f15790e25b Initialize unhandled interrupt routine in early boot phase 2026-04-08 20:49:05 +02:00
harraiken 53c5946c04 Clean up APIC timer initialization 2026-04-08 20:23:37 +02:00
harraiken 9ffb03217a Implement software interrupt dispatch table and secondary handler lookup 2026-04-08 20:13:35 +02:00
harraiken 4f65773aa9 Unify trap handler naming and remove unused kernel mode stack setup 2026-04-08 19:52:55 +02:00
harraiken f1476912f3 Add definitions for PIT ports and APIC timer divisor configuration 2026-04-08 07:21:40 +02:00
harraiken adb591f8c7 Implement APIC timer initialization and calibration 2026-04-08 00:15:03 +02:00
harraiken 4ef068dadc Add documentation for the ROM BIOS image 2026-04-07 23:10:14 +02:00
harraiken a0d5ee17c2 Replace trap dispatch wrappers with direct symbol mapping 2026-04-07 12:56:33 +02:00
harraiken 9eff9874c5 Synchronize headers with merged assembly code 2026-04-02 15:16:21 +02:00
harraiken 09516835d0 Consolidate boot and architecture support code into a single assembly file 2026-04-02 15:08:12 +02:00
harraiken 2a24ce9a35 Refactor spurious interrupt handling to use assembly routine 2026-04-02 13:14:49 +02:00
harraiken 9ea79c92a6 Refactor assembly includes and delete manual offset definitions 2026-04-02 10:50:00 +02:00
harraiken c30df8e5b5 Ensure correct argument parsing when passing source file to compiler 2026-04-02 10:07:06 +02:00
harraiken 397d0a9f29 Fix invalid member access in i686 ADK generation 2026-04-02 09:18:45 +02:00
harraiken 0fa23ccf40 Automate generation of assembly offsets from C structures via XTADK 2026-04-02 09:07:01 +02:00
harraiken 87a91bfeb1 Make XTDK headers assembly-safe 2026-04-01 16:05:34 +02:00
harraiken 232b92fd7e Implement spurious interrupt handler 2026-04-01 13:03:46 +02:00
harraiken d88f9f0a15 Remove erroneous swapgs and implement proper segment setting 2026-04-01 11:18:28 +02:00
harraiken 154b2062ba Unify GDT selector naming convention 2026-04-01 11:02:05 +02:00
harraiken 38d49eece4 Add definition for the kernel compatibility mode code selector 2026-04-01 10:48:24 +02:00
harraiken d00577ac8d Fix previous mode detection by reading CS from the trap frame 2026-03-31 23:10:45 +02:00
harraiken 620fc24cd2 Fix previous mode detection by reading CS from the trap frame and sanitize segment restoration 2026-03-31 20:38:21 +02:00
harraiken 494b615dc2 Fix x64 ABI compliance by aligning stack and reserving shadow space 2026-03-31 20:06:25 +02:00
harraiken d834b7e0c8 Correct kernel stack base calculation for downward growing stacks 2026-03-31 18:59:59 +02:00
harraiken 987b8f45d7 Unify trap handler macro name 2026-03-31 15:53:11 +02:00
harraiken 52ecbdeaff Add missing TrapVector constant 2026-03-31 13:02:53 +02:00
harraiken 121f461491 Refactor trap handling to support task gates 2026-03-31 12:58:46 +02:00
harraiken f4b189adef Fix incorrect descriptor type used for NMI TSS 2026-03-30 22:20:09 +02:00
harraiken 40c4860548 Refine LDT setup and restore critical TSS fields for hardware exceptions 2026-03-30 20:29:43 +02:00
harraiken d2a7ae46ac Fix hardware task gate configuration 2026-03-30 20:16:44 +02:00
harraiken 8a02a5aca3 Explicitly load GS and SS registers during segment initialization 2026-03-30 18:43:52 +02:00
harraiken 96df5a80b8 Set CR3 field in TSS to ensure correct page table context on task switches 2026-03-30 14:56:41 +02:00
harraiken 489ef8a514 Update IDT gate types for i686 exception handlers 2026-03-30 13:31:20 +02:00