Commit Graph

503 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
1cb21a81dd
Rename HlInitializeDisplay() to HlInitializeFrameBuffer()
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 27s
2023-11-22 20:36:05 +01:00
f28c870192
Implement KeHaltSystem() routine
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 44s
2023-11-22 19:24:14 +01:00
d7e6d319cf
Update XTOS ideas
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 31s
Builds / ExectOS (i686) (push) Successful in 31s
2023-11-22 19:22:51 +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
c66ea77a8b
Enable ASM, C and CXX compilers
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-20 23:52:49 +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
d2fb0a6830
Update ideas file
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-20 16:44:21 +01:00
1eecad21db
Implement HlReadApicRegister() and HlWriteApicRegister() routines for basic APIC support
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 28s
2023-11-20 15:26:03 +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
0c3268acd1
Export registers read/write related routines
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-19 00:46:51 +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
12f946c92d
Fixes to I/O registers related routines
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 27s
Builds / ExectOS (i686) (push) Successful in 31s
2023-11-19 00:39:52 +01:00
71d0608643
Implement ArGetStackPointer() routine
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 28s
2023-11-19 00:09:16 +01:00
83c692bfcb
Fix publishing artifacts
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 29s
2023-11-18 13:55:26 +01:00
b2f0584cb9
Archive libraries and symbols
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 31s
2023-11-18 13:49:52 +01:00
cb2ce9be83
Set libraries target directory
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-18 13:34:52 +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
a2af4841da
Move all globals into separate file
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-16 17:39:12 +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
ec4a0fcb70
Add missing KepRetireDpcList() routine forward reference
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 31s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-15 23:19:20 +01:00
5b6f3b0244
Mark user mode threads as not yet supported
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 31s
Builds / ExectOS (i686) (push) Successful in 29s
2023-11-15 20:41:28 +01:00
35aa26e0e9
Add missing documentation comment block
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 29s
2023-11-15 15:50:33 +01:00
5d27473bb0
Fix i686 build
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-15 15:34:04 +01:00
d35dd4fce3
Save processor state during kernel initialization
Some checks failed
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Failing after 16s
2023-11-15 15:00:38 +01:00
ccd0514416
Implement more CPU-related routines
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Successful in 26s
2023-11-15 14:52:18 +01:00
f0c20074c6
Prefer xbuild over ninja
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 30s
Builds / ExectOS (i686) (push) Successful in 28s
2023-11-14 15:35:07 +01:00
e664b953a0
Take advantage of the 'xbuild' command (requires XTChain 2.8.5)
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 3m50s
Builds / ExectOS (i686) (push) Successful in 28s
2023-11-14 15:01:51 +01:00
fc85e0674b
Let KeGetCurrentProcessorControlBlock() use CurrentPrcb field and correct comments
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 31s
Builds / ExectOS (i686) (push) Successful in 28s
2023-11-13 15:36:50 +01:00
1d9a79736a
Allow to postpone thread startup
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 27s
Builds / ExectOS (i686) (push) Successful in 30s
2023-11-11 16:30:53 +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
38e6d950a0
Create build.arch file for xbuild
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 34s
Builds / ExectOS (i686) (push) Successful in 29s
2023-11-08 19:45:31 +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
07998cafd4
Update xtldr.ini to conform with changes in the code
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Successful in 28s
2023-11-08 15:37:25 +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
d9918f0380
Small correction in the readme
All checks were successful
Builds / ExectOS (i686) (push) Successful in 31s
Builds / ExectOS (amd64) (push) Successful in 27s
2023-11-03 19:51:01 +01:00
02f35dbd8c
Try to allocate new stack for a thread if needed
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 31s
Builds / ExectOS (i686) (push) Successful in 28s
2023-11-03 16:04:10 +01:00
a6c3924b56
Initialize Idle thread for i686 architecture
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 31s
Builds / ExectOS (i686) (push) Successful in 27s
2023-11-03 15:29:01 +01:00
63f8dbc59b
Initialize CPU power structures, idle process and idle thread
All checks were successful
Builds / ExectOS (i686) (push) Successful in 28s
Builds / ExectOS (amd64) (push) Successful in 29s
2023-11-02 23:07:11 +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