Commit Graph
260 Commits
Author SHA1 Message Date
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 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 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 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 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 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 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 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 67496bef28 Add KLOCK_QUEUE_HANDLE structure definition
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 28s
2023-11-11 11:36:22 +01:00
belliash 91d65bb937 Define max ULONG type limit
Builds / ExectOS (amd64) (push) Successful in 33s
Builds / ExectOS (i686) (push) Successful in 29s
2023-11-11 09:41:44 +01:00
belliash 83c0accc5f Update EFLAGS masks
Builds / ExectOS (amd64) (push) Successful in 33s
Builds / ExectOS (i686) (push) Successful in 28s
2023-11-09 16:12:24 +01:00
belliash 641b34b119 Fixes in i686 version of KepInitializeThreadContext()
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 27s
2023-11-08 16:06:01 +01:00
belliash 362eefc2b3 Fixes in AMD64 version of KepInitializeThreadContext() to get rid of PageFault exception
Builds / ExectOS (amd64) (push) Successful in 58s
Builds / ExectOS (i686) (push) Successful in 31s
2023-11-07 15:34:49 +01:00
belliash 91ce0f9947 Compensate missing return address, which is a 4-byte on i686 and an 8-byte on amd64
Builds / ExectOS (i686) (push) Successful in 32s
Builds / ExectOS (amd64) (push) Successful in 28s
2023-11-05 20:07:13 +01:00
belliash ba833422b0 Implement ExCompleteRundownProtection() and ExReInitializeRundownProtection() routines and add stub for ExWaitForRundownProtectionRelease()
Builds / ExectOS (amd64) (push) Successful in 31s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-05 09:50:04 +01:00
belliash e11ef2f008 Use correct calling convention for a deferred routine
Builds / ExectOS (i686) (push) Successful in 26s
Builds / ExectOS (amd64) (push) Successful in 26s
2023-10-30 15:28:00 +01:00
belliash aa17be6eb3 Implement KeSetTargetProcessorDpc() routine
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 28s
2023-10-29 19:59:21 +01:00
belliash be7981f614 Implement KeInitializeThreadedDpc() and export it together with KeInitializeDpc()
Builds / ExectOS (i686) (push) Successful in 27s
Builds / ExectOS (amd64) (push) Successful in 27s
2023-10-29 19:45:45 +01:00
belliash f05a262da2 Cleanup XTDK and XTOSKRNL headers
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 28s
2023-10-29 09:58:47 +01:00
belliash 841a6b304b Cleanup KE subsystem headers
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 29s
2023-10-29 09:14:46 +01:00
belliash 798e4c1d22 Cleanup MM subsystem headers
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 27s
2023-10-29 00:52:05 +02:00
belliash cc3e9eb5e6 Add routines used by XTLDR
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 27s
2023-10-29 00:31:57 +02:00
belliash 600c86949b Cleanup RTL subsystem headers
Builds / ExectOS (amd64) (push) Failing after 15s
Builds / ExectOS (i686) (push) Failing after 15s
2023-10-29 00:14:01 +02:00
belliash d920cae481 Fix build by defining more routines used by XTLDR
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 26s
2023-10-28 23:41:52 +02:00
belliash ad15c55a39 Cleanup AR subsystem headers
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Failing after 13s
2023-10-28 23:35:34 +02:00
belliash d55946c3cf Cleanup HL subsystem headers
Builds / ExectOS (i686) (push) Successful in 26s
Builds / ExectOS (amd64) (push) Successful in 29s
2023-10-28 22:56:04 +02:00
belliash ebb740b0e7 Add more readmes to describe XTOS components and source code tree directories
ci/woodpecker/push/build Pipeline was successful
2023-05-18 21:24:33 +02:00
belliash e11d9dcfad Make a place for XTBK
ci/woodpecker/push/build Pipeline was successful
2023-05-18 21:11:36 +02:00
belliash 42669bcfb3 Import readme for XTDK
ci/woodpecker/push/build Pipeline was successful
2023-05-18 21:00:35 +02:00
belliash 9a059b407e The declspec 'naked' attribute is not supported on 'x86_64', use attribute instead
ci/woodpecker/push/build Pipeline was successful
2023-04-12 20:50:42 +02:00
belliash 358b20f1a1 Reorder routines
ci/woodpecker/push/build Pipeline was successful
2023-04-04 22:35:06 +02:00
belliash 4073b1589d Rename endian conversion routines to match naming convention
ci/woodpecker/push/build Pipeline was successful
2023-04-04 21:02:14 +02:00
belliash 2257ad1567 Add XTASSEMBLY routine modifier to instruct compiler to generate code without prolog and epilog
ci/woodpecker/push/build Pipeline was successful
2023-03-28 17:33:38 +02:00
belliash bf3d56385f Add missing forward declarations
ci/woodpecker/push/build Pipeline was successful
2023-03-24 15:39:07 +01:00
belliash 6402a0d0a4 Update EDK2 OVMF firmware
ci/woodpecker/push/build Pipeline was successful
2023-03-20 22:28:43 +01:00
belliash 2827bb400f Implement ExAcquireRundownProtection() and ExReleaseRundownProtection() routines
ci/woodpecker/push/build Pipeline was successful
2023-03-18 11:11:06 +01:00
belliash 1f8026db2f Implement RtlInterlockedCompareExchangePointer() and RtlInterlockedDecrementLongPtr() atomic routines
ci/woodpecker/push/build Pipeline was successful
2023-03-17 18:06:53 +01:00
belliash 934dba37a1 Initial kernel events support
ci/woodpecker/push/build Pipeline was successful
2023-03-17 16:46:18 +01:00
belliash e0778d0a12 Introduce kernel executive
ci/woodpecker/push/build Pipeline was successful
2023-03-16 23:40:38 +01:00
belliash e6b64b741a Initialize thread context for i686
ci/woodpecker/push/build Pipeline was successful
2023-03-15 23:05:18 +01:00
belliash 3afbc7e419 Introduce SIMD save area in place of FN/FX and use anonymous union inside FX_SAVE_AREA structure
ci/woodpecker/push/build Pipeline was successful
2023-03-15 22:19:18 +01:00
belliash a8fa702b05 Unify KSWITCH_FRAME naming with AMD64
ci/woodpecker/push/build Pipeline was successful
2023-03-15 19:15:31 +01:00
belliash 10ccf67e8e Add missing forward declarations
ci/woodpecker/push/build Pipeline was successful
2023-03-14 22:50:32 +01:00
belliash cec8a13e4c Add context control flags and thread frames for i686 architecture
ci/woodpecker/push/build Pipeline was successful
2023-03-14 22:47:32 +01:00
belliash 5677719038 Initialize thread context for AMD64
ci/woodpecker/push/build Pipeline was successful
2023-03-14 17:37:20 +01:00