Commit Graph
100 Commits
Author SHA1 Message Date
belliash 0439d9526b Use %S when printing wide string value 2026-07-27 21:35:04 +02:00
belliash bbad4bf8f4 Compare exact string length to match EOL as well 2026-07-27 21:30:06 +02:00
belliash 4cb5b12e68 Declare context switching routines 2026-05-06 22:28:36 +02:00
belliash 9761569e06 Implement SwitchContext() and SwitchThreadStack() routines 2026-05-06 22:25:39 +02:00
belliash 6cbda52d6b Extract Dispatcher class from KThread 2026-04-29 20:31:34 +02:00
belliash f03515b0eb Refactor KE::KernelInit::SwitchBootStack() inline assembly 2026-04-29 20:23:01 +02:00
belliash 9935d2d26b Update CPU identification code 2026-04-06 21:17:58 +02:00
belliash 7144242613 Maintain sequence counter 2026-02-24 17:40:45 +01:00
belliash 7e62919c6b Rework singly linked list API 2026-02-24 14:49:56 +01:00
belliash 2bbc21b667 Implement singly linked list support 2026-02-22 12:25:51 +01:00
belliash 70d758ec5b Improve comments 2026-02-22 12:21:43 +01:00
belliash d1553ff84a Add SHA-1 hashing support 2026-02-19 18:49:29 +01:00
belliash 94a8917c5c Revert RTL::LinkedList::RemoveEntryList() routine signature and extend RTL::LinkedList API 2026-02-16 15:43:00 +01:00
belliash 2af94a1c3b Use RTL::LinkedList::ListEmpty() routine to check if list is empty after removal 2026-02-11 19:15:57 +01:00
belliash 4b5188260f Fix build 2026-02-11 17:43:07 +01:00
belliash 47ec89a85e Forgotten to change signature in bootloader 2026-02-10 18:26:50 +01:00
belliash edb40dd62b Change RTL::LinkedList::RemoveEntryList() routine signature 2026-02-10 18:24:26 +01:00
belliash 646e246ec6 Improve emulation targets and add BIOS variants 2025-10-01 18:26:27 +02:00
belliash ae941d2761 Make use of 'diskimg' tool. This breaks compatibility with older versions of xtchain 2025-10-01 16:05:48 +02:00
belliash b40db0d1dd Cleanup cmake functions 2025-09-29 20:05:14 +02:00
belliash cf4c17df22 Switch bochs to use BIOS 2025-09-29 19:55:34 +02:00
belliash f152e2bac7 Move MBR boot code to common, arch-independent place 2025-09-27 14:10:13 +02:00
belliash f81e895fe1 Add MBR boot code 2025-09-27 14:07:17 +02:00
belliash 4696faf86d Add support for building flat bootsector binaries 2025-09-25 18:32:27 +02:00
belliash 7b8f4f15cc Add APIC Logical Destination Register (LDR) shifts and correct APIC delivery mode values 2024-07-23 20:14:06 +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 ceb36ae8ec Add PAGES_TO_SIZE macro definition 2024-07-13 15:39:08 +02:00
belliash 94076b7471 Separate image base address per architecture 2024-07-10 22:42:48 +02:00
belliash ebc2607446 Update compiler optimization flags 2024-07-10 17:57:29 +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 3804786e89 All ACPI related structures should be packed 2024-07-07 22:13:34 +02:00
belliash 6bcf3e134f Unify naming convention and switch to ULONG in memory map related routines 2024-07-06 22:59:10 +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 6b70074ec6 Update Discord badge 2024-06-14 16:33:16 +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 c7e96184e6 Correct typo 2024-06-12 16:11:38 +02:00
belliash 3c1eea33d9 Update ideas 2024-06-10 18:40:33 +02:00
belliash bfe3d4b18a Fix pointer overflow 2024-06-10 16:01:19 +02:00
belliash bd7d4f5a0d Fix function type mismatch undefined behavior when calling through a pointer 2024-06-09 22:26:01 +02:00
belliash 3097ff6250 Get rid of NULL pointer dereference 2024-06-09 12:45:01 +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 db5d6c42c9 Rework AcpChecksumTable() routine into AcpValidateAcpiTable() 2024-06-03 23:31:33 +02:00
belliash 54b7e46f1b Simplify AcGetAcpiTable() routine a bit 2024-06-03 23:24:54 +02:00
belliash de709162e3 ACPI_RSDT structure does not need to be packed 2024-06-03 22:27:36 +02:00
belliash 5d2d409d0f Add more XTSTATUS status codes 2024-06-03 22:14:58 +02:00
belliash f265810a5c Fix AcGetAcpiTable() routine failing to validate FADT checksum on some ACPI 2.0 and older machines 2024-06-03 21:58:19 +02:00
belliash 9124574bc5 Fixes and improvements to ACPI related structures and definitions 2024-06-03 21:17:31 +02:00
belliash 7f922dd864 Let XTLDR provide ACPI system resource 2024-06-02 22:30:52 +02:00
belliash c289dab514 Add ACPI resource type 2024-06-02 21:36:59 +02:00
belliash 29ff9e114e Mark XtMapHardwareMemoryPool() routine private 2024-06-02 17:34:30 +02:00
belliash c1ab5fe98d Cleanup hardware allocation memory pool related code for i686 2024-06-02 17:32:39 +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 6b1ccc4ce5 Do not hardcode PML shift values 2024-05-27 22:26:05 +02:00
belliash f968eb21fd Cleanup the code 2024-05-27 22:20:53 +02:00
belliash 7f8846f23d Map memory for hardware layer on i686 2024-05-27 22:17:30 +02:00
belliash ae243a9d07 Map memory for hardware layer on amd64 2024-05-27 21:54:21 +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 70d1295919 Do not support non-PAE systems 2024-05-24 23:47:29 +02:00
belliash 03ba3b5583 Add missing forward references for APIC related structures 2024-05-24 23:41:27 +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 143803aad9 PPE needs PAE on i686 2024-05-22 23:09:30 +02:00
belliash edbc2cc045 Initialize architecture specific hardware extensions 2024-05-22 22:53:29 +02:00
belliash 609538b9be Implement MmpGetPdeAddress() and MmpGetPteAddress() routines for i686 architecture as well as MmpMemoryExtensionEnabled() for checking PAE/LA57 support 2024-05-22 22:47:28 +02:00
belliash 4db5425238 Add PHYSICAL_ADDRESS type definition 2024-05-22 18:52:57 +02:00
belliash 03727a61d3 Implement hardware layer pool memory management 2024-05-22 18:51:09 +02:00
belliash 28903e0c10 Add missing forward reference for AcGetAcpiTable() routine 2024-05-20 15:34:49 +02:00
belliash 500498508e Rename PACK definition 2024-05-20 15:34:15 +02:00
belliash ac33b86c3d Implement AcGetAcpiTable() routine 2024-05-19 23:45:28 +02:00