Commit Graph

260 Commits

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