Commit Graph
363 Commits
Author SHA1 Message Date
harraiken d7552f1dce Fix race condition in HlComPortReadLsr
The static local variable RingFlag in HlComPortReadLsr caused shared state across multiple calls and ports, leading to race conditions and incorrect behavior.
2025-08-06 09:01:47 +02:00
harraiken ff41b0d4f7 Fix incorrect TSS descriptor limit according to architecture specification 2025-07-28 18:25:47 +02:00
harraiken 6130a34587 Align stack as required by the ABI 2025-07-28 17:57:16 +02:00
harraiken da3e039a05 Use correct address when clearing COM port buffer
The code was reading from Port->Address to clear the RBR before the field was initialized.
2025-07-20 14:53:04 +02:00
harraiken e778a95a01 Use portable affinity mask for the idle process 2025-07-20 12:34:20 +02:00
harraiken 24b6cc2250 Use portable affinity mask for the idle process
The hardcoded value 0xFFFFFFFF restricted the idle process to the first 32 processors on 64-bit system.
2025-07-20 12:33:10 +02:00
harraiken fdf649fcec Correctly initialize the boot stack pointer, as the stack grows downwards 2025-07-19 17:41:38 +02:00
harraiken dcb0b8fb4b Initialize UBSAN mismatch data without relying on memset() 2025-07-09 10:40:15 +02:00
belliash 2e7793dc2b Implement HlpGetCpuApicId() routine 2024-07-22 23:31:20 +02:00
belliash 2c5b680426 Implement HlpSendIpi() routine 2024-07-22 23:23:55 +02:00
belliash 626ece8046 HlReadApicRegister() should return and HlWriteApicRegister() should take ULONGLONG value 2024-07-16 22:36:45 +02:00
belliash 088940424d Fix data types and rename some fields to avoid confusion 2024-07-16 16:28:12 +02:00
belliash 7abd0f3017 Revert unintentional change 2024-07-14 12:13:56 +02:00
belliash f8519ec09d Rename HlpAcpiSystemInfo global variable to HlpSystemInfo 2024-07-14 12:11:39 +02:00
belliash 3bda67be0a Basic ACPI system info initialization code for traversing MADT tables 2024-07-13 21:08:58 +02:00
belliash cb64235953 Use PHYSICAL_ADDRESS data type in MmAllocateHardwareMemory() routine as it is used in MmMapHardwareMemory() as well to avoid the need of data conversion 2024-07-13 15:54:10 +02:00
belliash 801cf64f45 Update kernel readme 2024-07-10 16:10:48 +02:00
belliash f52c50242a Correct comment 2024-07-09 22:57:02 +02:00
belliash 3f10e1b59e Fix page fault when trying to find ACPI table 2024-07-09 22:47:26 +02:00
belliash 47219585d4 Fix pointer operation overflow 2024-07-09 22:40:32 +02:00
belliash e46f2e6116 Ensure that table header is not set before attempting to find ACPI table 2024-07-09 22:36:40 +02:00
belliash cc0edeeb47 Add missing forward reference update to fix build 2024-06-22 19:16:00 +02:00
belliash 156cb7bcac Refactor system resources to be able to distinguish if requested resource does not exist or if it is locked and cannot be reused 2024-06-22 18:54:34 +02:00
belliash c2db94125d Add appropriate crediting for Minoca authors for the System Resources component 2024-06-21 17:00:20 +02:00
belliash 330d3fa72e Fix routines order for better maintainability 2024-06-21 16:50:05 +02:00
belliash 712107ae10 Simplify XTOS library 2024-06-12 18:40:52 +02:00
belliash 906e09fd9f Refactor COM port support, to get rid of global variables in library 2024-06-12 18:02:29 +02:00
belliash 91e8a86ee2 Implement kernel undefined behavior sanitizer support 2024-06-12 16:19:24 +02:00
belliash 2f16f4f613 Traverse Local x2APIC structures to find all processors 2024-06-07 23:05:12 +02:00
belliash f36b59c961 Store processor identities in system info structure 2024-06-07 20:19:56 +02:00
belliash 86bc2042e5 Cleanup XTDK headers 2024-06-06 23:09:03 +02:00
belliash 658cb2d3c8 Get system information based on the ACPI (currently only number of CPUs) 2024-06-06 22:05:32 +02:00
belliash 829fc49aac Fix ACPI cache causing some undefined behavior 2024-06-06 21:52:41 +02:00
belliash 92e861ebae Cleanup APIC related headers 2024-06-06 21:50:20 +02:00
belliash 4212453cf5 Fix APIC initialization code 2024-06-06 16:49:08 +02:00
belliash ef65bceccd Initialize legacy PIC and mask all interrupts 2024-06-05 16:08:54 +02:00
belliash b061c87fc9 Fix routines with no prototype using XTAPI calling convention compiler warnings 2024-06-04 21:41:16 +02:00
belliash 8a4caba26f Fix routine with no prototype using XTAPI calling convention compiler warning 2024-06-04 21:39:10 +02:00
belliash 76e1fc6099 Enable hardware layer initialization code 2024-06-04 21:36:09 +02:00
belliash 7b29897efb Initialize ACPI Timer 2024-06-04 21:04:09 +02:00
belliash 7704e5d399 Initial kernel ACPI support 2024-06-04 16:24:13 +02:00
belliash c289dab514 Add ACPI resource type 2024-06-02 21:36:59 +02:00
belliash 6176ca38a8 Cleanup hardware allocation memory pool related code 2024-06-02 17:29:31 +02:00
belliash abb65b99fe HlPool manages hardware related memory 2024-06-02 17:01:45 +02:00
belliash a7c4f6c2aa Fix MmMapHalMemory() not using the ReturnAddress for calculating virtual address 2024-05-26 10:50:31 +02:00
belliash 4a275b3dec Just skip unsupported system resources 2024-05-26 00:09:31 +02:00
belliash 94a40501d4 Mask APIC ICR0 and disable APIC interrupts for initialization time by raising APIC TPR 2024-05-24 23:39:06 +02:00
belliash b4588d5b4c Make ExectOS only run on processors which support PAE 2024-05-24 16:30:39 +02:00
belliash 5221db2e63 Rename LOADER_MEMORY_MAPPING structure to more meaningful LOADER_MEMORY_DESCRIPTOR 2024-05-23 19:00:50 +02:00
belliash edbc2cc045 Initialize architecture specific hardware extensions 2024-05-22 22:53:29 +02:00