Commit Graph
518 Commits
Author SHA1 Message Date
perikiyoxd 73c768ba0e Merge branch 'master' into prcb-cpu-features 2023-11-26 18:53:01 +01:00
belliash e886baa0d8 Fix reading from and writting to APIC registers
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 26s
2023-11-26 16:57:40 +01:00
belliash 5b48525b1d Increase commit hash to 10 characters to match Gitea
Builds / ExectOS (amd64) (push) Successful in 26s
Builds / ExectOS (i686) (push) Successful in 27s
2023-11-26 16:26:22 +01:00
belliash 0e6844e2fa Fix page fault on accessing initial thread frame
Builds / ExectOS (amd64) (push) Successful in 27s
Builds / ExectOS (i686) (push) Successful in 24s
2023-11-26 14:14:54 +01:00
belliash 96a19d23b3 Fix i686 build by setting APIC transformation tables static
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 27s
2023-11-26 00:38:20 +01:00
belliash ba6e68e1b5 Fix a bug that caused overwritting a value read from CR8 with a default value
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Failing after 16s
2023-11-26 00:33:46 +01:00
belliash bed49fa0ac Fix function prototypes using fastcall and stdcall calling convensions
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Failing after 16s
2023-11-25 23:25:44 +01:00
belliash e245754d95 Add running level management support
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Failing after 14s
2023-11-25 23:14:15 +01:00
belliash 4701351bd7 Add missing SYNC_LEVEL definition
Builds / ExectOS (amd64) (push) Successful in 26s
Builds / ExectOS (i686) (push) Successful in 28s
2023-11-25 22:14:45 +01:00
belliash 5204d8bc2f Correct (A)PIC related source file description
Builds / ExectOS (amd64) (push) Successful in 27s
Builds / ExectOS (i686) (push) Successful in 28s
2023-11-25 19:23:18 +01:00
belliash 14a966043e Add missing Interrupt request level definitions
Builds / ExectOS (amd64) (push) Successful in 27s
Builds / ExectOS (i686) (push) Successful in 27s
2023-11-25 18:50:59 +01:00
belliash 0e6bf984a5 Add APIC vector definitions
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Successful in 27s
2023-11-25 18:33:01 +01:00
belliash 55cc62f5a0 Rename KIRQL to KRUNLEVEL type
Builds / ExectOS (amd64) (push) Successful in 27s
Builds / ExectOS (i686) (push) Successful in 27s
2023-11-25 00:32:55 +01:00
belliash 236927fba0 Move APIC related routines
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Successful in 28s
2023-11-24 22:45:29 +01:00
perikiyoxd a270c08dcf feat: Add CPU vendor and features identification
Add functionality to identify the CPU vendor and features using the CPUID instruction.
The CPU vendor information is stored in the Processor Control Block (PRCB),
including the vendor name and a corresponding enumeration.
CPU features are also retrieved and stored in the PRCB.
Previously, the CPU vendor was not properly stored in the PRCB, caused by a missing type cast.
Using Rtl functions to copy the CPU vendor name to the PRCB.

Details:
- Introduced functions `ArpSetCpuVendor` and `ArpSetCpuFeatures` to set CPU vendor and features, respectively.
- Modified `ArpIdentifyProcessor` to call the new functions for vendor and features identification.
- Added `CPU_FEATURES` structure to `KPROCESSOR_CONTROL_BLOCK` structure to store CPU features.

Tests:
- Tested x86_64 on QEMU. Verified that the CPU vendor and features are correctly identified and stored in the PRCB.
2023-11-23 23:26:39 +01:00
perikiyoxd 3c4ebe12e1 POSIX compliant stream redirection
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 25s
Reviewed-on: #1
Reviewed-by: Rafal Kupiec <belliash@noreply.codingworkshop.git>
Co-authored-by: Pedro Valadés <perikiyoxd@gmail.com>
Co-committed-by: Pedro Valadés <perikiyoxd@gmail.com>
2023-11-23 23:26:26 +01:00
perikiyoxd a01ccff6dc POSIX compliant stream redirection
Builds / ExectOS (amd64) (push) Successful in 31s
Builds / ExectOS (i686) (push) Successful in 26s
Reviewed-on: #1
Reviewed-by: Rafal Kupiec <belliash@noreply.codingworkshop.git>
Co-authored-by: PerikiyoXD <perikiyoxd@gmail.com>
Co-committed-by: PerikiyoXD <perikiyoxd@gmail.com>
2023-11-23 17:02:30 +01:00
belliash c526e63b7a Add EFI Framework MP services protocol related structures
Builds / ExectOS (amd64) (push) Successful in 46s
Builds / ExectOS (i686) (push) Successful in 29s
2023-11-23 15:38:32 +01:00
belliash 1cb21a81dd Rename HlInitializeDisplay() to HlInitializeFrameBuffer()
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 27s
2023-11-22 20:36:05 +01:00
belliash f28c870192 Implement KeHaltSystem() routine
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 44s
2023-11-22 19:24:14 +01:00
belliash d7e6d319cf Update XTOS ideas
Builds / ExectOS (amd64) (push) Successful in 31s
Builds / ExectOS (i686) (push) Successful in 31s
2023-11-22 19:22:51 +01:00
belliash d8403d01f5 Verify kernel and boot loader compatibility
Builds / ExectOS (amd64) (push) Successful in 33s
Builds / ExectOS (i686) (push) Successful in 31s
2023-11-22 17:22:57 +01:00
belliash c66ea77a8b Enable ASM, C and CXX compilers
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-20 23:52:49 +01:00
belliash c4143c63f9 Enable LLVM MASM Assembly
Builds / ExectOS (amd64) (push) Successful in 27s
Builds / ExectOS (i686) (push) Successful in 29s
2023-11-20 23:30:44 +01:00
belliash d2fb0a6830 Update ideas file
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-20 16:44:21 +01:00
belliash 1eecad21db Implement HlReadApicRegister() and HlWriteApicRegister() routines for basic APIC support
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 28s
2023-11-20 15:26:03 +01:00
belliash a3c28cee73 Initial XTLDR APIC support, finds and maps base APIC address for kernel
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-20 15:18:22 +01:00
belliash 3d0a48df26 Give qemu direct access to the terminal
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 27s
2023-11-19 20:41:21 +01:00
belliash 575b842d05 Add APIC Registers address map (APIC_REGISTER enumeration list)
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-19 00:57:27 +01:00
belliash 0c3268acd1 Export registers read/write related routines
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-19 00:46:51 +01:00
belliash 42b7c3698c Add missing I/O register routines forward references
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 28s
2023-11-19 00:41:21 +01:00
belliash 12f946c92d Fixes to I/O registers related routines
Builds / ExectOS (amd64) (push) Successful in 27s
Builds / ExectOS (i686) (push) Successful in 31s
2023-11-19 00:39:52 +01:00
belliash 71d0608643 Implement ArGetStackPointer() routine
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 28s
2023-11-19 00:09:16 +01:00
belliash 83c692bfcb Fix publishing artifacts
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 29s
2023-11-18 13:55:26 +01:00
belliash b2f0584cb9 Archive libraries and symbols
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 31s
2023-11-18 13:49:52 +01:00
belliash cb2ce9be83 Set libraries target directory
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-18 13:34:52 +01:00
belliash 64ffe0d7d7 Add EFI task priority levels
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-17 00:11:30 +01:00
belliash 71e7adadbd Correct typo
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-17 00:10:54 +01:00
belliash d083d00ab1 Add EFI MP services protocol structures
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 28s
2023-11-16 23:06:01 +01:00
belliash a2af4841da Move all globals into separate file
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-16 17:39:12 +01:00
belliash 1a932468a2 Add some DPC related stubs
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 29s
2023-11-16 14:53:54 +01:00
belliash ec4a0fcb70 Add missing KepRetireDpcList() routine forward reference
Builds / ExectOS (amd64) (push) Successful in 31s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-15 23:19:20 +01:00
belliash 5b6f3b0244 Mark user mode threads as not yet supported
Builds / ExectOS (amd64) (push) Successful in 31s
Builds / ExectOS (i686) (push) Successful in 29s
2023-11-15 20:41:28 +01:00
belliash 35aa26e0e9 Add missing documentation comment block
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 29s
2023-11-15 15:50:33 +01:00
belliash 5d27473bb0 Fix i686 build
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-15 15:34:04 +01:00
belliash d35dd4fce3 Save processor state during kernel initialization
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Failing after 16s
2023-11-15 15:00:38 +01:00
belliash ccd0514416 Implement more CPU-related routines
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Successful in 26s
2023-11-15 14:52:18 +01:00
belliash f0c20074c6 Prefer xbuild over ninja
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 28s
2023-11-14 15:35:07 +01:00
belliash e664b953a0 Take advantage of the 'xbuild' command (requires XTChain 2.8.5)
Builds / ExectOS (amd64) (push) Successful in 3m50s
Builds / ExectOS (i686) (push) Successful in 28s
2023-11-14 15:01:51 +01:00
belliash fc85e0674b Let KeGetCurrentProcessorControlBlock() use CurrentPrcb field and correct comments
Builds / ExectOS (amd64) (push) Successful in 31s
Builds / ExectOS (i686) (push) Successful in 28s
2023-11-13 15:36:50 +01:00