73c768ba0e
Merge branch 'master' into prcb-cpu-features
2023-11-26 18:53:01 +01:00
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
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
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
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
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
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
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
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
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
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
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
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
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
358b20f1a1
Reorder routines
ci/woodpecker/push/build Pipeline was successful
2023-04-04 22:35:06 +02:00
e6b64b741a
Initialize thread context for i686
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
ci/woodpecker/push/build Pipeline was successful
2023-03-15 22:19:18 +01:00
a8fa702b05
Unify KSWITCH_FRAME naming with AMD64
ci/woodpecker/push/build Pipeline was successful
2023-03-15 19:15:31 +01:00
10ccf67e8e
Add missing forward declarations
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
ci/woodpecker/push/build Pipeline was successful
2023-03-14 22:47:32 +01:00
70795ae57a
Add EFLAGS and THREAD_ENVIRONMENT_BLOCK for x86
ci/woodpecker/push/build Pipeline was successful
2023-03-05 18:11:57 +01:00
c5a9253ea8
Implement ArLoadLocalDescriptorTable() routine
ci/woodpecker/push/build Pipeline was successful
2023-03-02 23:04:36 +01:00
870a6680b0
Add thread information block
ci/woodpecker/push/build Pipeline was successful
2023-03-01 00:14:06 +01:00
3d42fcc0f5
Add KSWITCH_FRAME definition for i686 architecture
ci/woodpecker/push/build Pipeline was successful
2023-03-01 00:03:20 +01:00
ef23acc3bc
Add Deferred Procedure Call (DPC) and processor power state related structures
ci/woodpecker/push/build Pipeline was successful
2023-02-27 19:58:47 +01:00
e41de62dab
Implement ArYieldProcessor() routine
ci/woodpecker/push/build Pipeline was successful
2023-02-27 17:28:20 +01:00
c8428241dd
Add missing headers containing forward references of MM routines
ci/woodpecker/push/build Pipeline was successful
2023-02-20 22:22:32 +01:00
b1c2b209e3
Implement RtlGetStackLimits() routine
ci/woodpecker/push/build Pipeline was successful
2023-02-15 20:12:58 +01:00
18a39f95bc
Add floating save area structure definitions
ci/woodpecker/push/build Pipeline was successful
2023-02-15 20:07:17 +01:00
2e790bd9b2
Add pages related macros and definitions
ci/woodpecker/push/build Pipeline was successful
2023-02-13 23:01:20 +01:00
e94cb2d3a7
Processor identification structures
ci/woodpecker/push/build Pipeline was successful
2023-02-10 17:14:12 +01:00
e645cf664c
Set process and thread information in processor control block
ci/woodpecker/push/build Pipeline was successful
2023-02-09 17:30:24 +01:00
9132c47cd9
Initial process and thread related structures
ci/woodpecker/push/build Pipeline failed
2023-02-08 23:40:58 +01:00
a32e18b237
Implement ArReadFSDualWord() routine
ci/woodpecker/push/build Pipeline was successful
2023-02-07 23:19:22 +01:00
5eaf7d63a3
Initialize Page Attribute Table
ci/woodpecker/push/build Pipeline was successful
2023-02-05 00:14:34 +01:00
f37722b6e6
Distinguish ProcessorBlock and ProcessorControlBlock
ci/woodpecker/push/build Pipeline was successful
2023-02-03 19:28:03 +01:00
269214ed34
Another improvements to GDT
ci/woodpecker/push/build Pipeline was successful
2023-02-03 18:00:37 +01:00
dc1a94b982
This is 'Processor Block'
ci/woodpecker/push/build Pipeline was successful
2023-02-01 22:02:07 +01:00
21fbe6febe
Add IDT related definitions
ci/woodpecker/push/build Pipeline was successful
2023-02-01 20:14:10 +01:00
5bbda188c6
IDT access levels and gate types
ci/woodpecker/push/build Pipeline was successful
2023-02-01 00:51:13 +01:00
9a1e9b1084
Define TSS offsets
ci/woodpecker/push/build Pipeline was successful
2023-01-30 23:43:10 +01:00
a761d3125a
Architecture specific initialization prior to processor structures initialization
ci/woodpecker/push/build Pipeline was successful
2023-01-30 20:34:05 +01:00
6f068513cd
Initial processor block initialization
ci/woodpecker/push/build Pipeline was successful
2023-01-30 19:07:05 +01:00
ce4e590347
Add missing forward declaration of ArInitializeProcessor() routine
ci/woodpecker/push/build Pipeline was successful
2023-01-29 00:57:06 +01:00
900e71459a
Add missing x86 descriptor sizes
ci/woodpecker/push/build Pipeline was successful
2023-01-29 00:54:36 +01:00
27e2fdf4f2
Introduce architecture library as new kernel subsystem and move selected routines into new subsystem
ci/woodpecker/push/build Pipeline was successful
2023-01-28 10:34:55 +01:00
e94e50b5d9
Implement HlLoadInterruptDescriptorTable() intrinsics for loading IDT
ci/woodpecker/push/build Pipeline was successful
2023-01-26 20:08:57 +01:00
3ad3149f80
Add descriptor structure definition
ci/woodpecker/push/build Pipeline was successful
2023-01-25 17:42:35 +01:00
bfc9db8b6d
Unify KGDTENTRY and KIDTENTRY between architectures as much as possible
ci/woodpecker/push/build Pipeline was successful
2023-01-25 17:35:03 +01:00
3ee759cc27
i686 Interrupt request levels definitions
ci/woodpecker/push/build Pipeline was successful
2023-01-25 17:18:27 +01:00