perikiyoxd
323c173abe
Merge branch 'master' into prcb-cpu-features
2023-11-27 19:11:34 +01:00
belliash
4ca4e298f0
Add more PIC/APIC related definitions
Builds / ExectOS (amd64) (push) Successful in 29s
Builds / ExectOS (i686) (push) Successful in 26s
2023-11-26 23:35:14 +01:00
perikiyoxd
73c768ba0e
Merge branch 'master' into prcb-cpu-features
2023-11-26 18:53:01 +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
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
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
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
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
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
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
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
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
358b20f1a1
Reorder routines
ci/woodpecker/push/build Pipeline was successful
2023-04-04 22:35:06 +02:00
belliash
10ccf67e8e
Add missing forward declarations
ci/woodpecker/push/build Pipeline was successful
2023-03-14 22:50: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
belliash
fd8eec1d86
Add EFLAGS and THREAD_ENVIRONMENT_BLOCK for amd64
ci/woodpecker/push/build Pipeline was successful
2023-03-05 19:03:34 +01:00
belliash
c5a9253ea8
Implement ArLoadLocalDescriptorTable() routine
ci/woodpecker/push/build Pipeline was successful
2023-03-02 23:04:36 +01:00
belliash
870a6680b0
Add thread information block
ci/woodpecker/push/build Pipeline was successful
2023-03-01 00:14:06 +01:00
belliash
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
belliash
e41de62dab
Implement ArYieldProcessor() routine
ci/woodpecker/push/build Pipeline was successful
2023-02-27 17:28:20 +01:00
belliash
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
belliash
b1c2b209e3
Implement RtlGetStackLimits() routine
ci/woodpecker/push/build Pipeline was successful
2023-02-15 20:12:58 +01:00
belliash
2e790bd9b2
Add pages related macros and definitions
ci/woodpecker/push/build Pipeline was successful
2023-02-13 23:01:20 +01:00
belliash
e94cb2d3a7
Processor identification structures
ci/woodpecker/push/build Pipeline was successful
2023-02-10 17:14:12 +01:00
belliash
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
belliash
9132c47cd9
Initial process and thread related structures
ci/woodpecker/push/build Pipeline failed
2023-02-08 23:40:58 +01:00
belliash
c6cadbd655
Initialize MXCSR register
ci/woodpecker/push/build Pipeline was successful
2023-02-05 00:30:12 +01:00
belliash
5eaf7d63a3
Initialize Page Attribute Table
ci/woodpecker/push/build Pipeline was successful
2023-02-05 00:14:34 +01:00
belliash
55cdae7c83
Initialize AMD64 processor registers
ci/woodpecker/push/build Pipeline was successful
2023-02-04 23:40:03 +01:00
belliash
269214ed34
Another improvements to GDT
ci/woodpecker/push/build Pipeline was successful
2023-02-03 18:00:37 +01:00
belliash
19f34d4b17
Cleanup the code
ci/woodpecker/push/build Pipeline was successful
2023-02-02 19:42:57 +01:00
belliash
715f875c4f
Set alignment and packing properly
ci/woodpecker/push/build Pipeline was successful
2023-02-02 17:01:18 +01:00
belliash
73fc7607cd
There is no need to specify alignment of the structure in the forward reference
ci/woodpecker/push/build Pipeline was successful
2023-02-02 15:37:57 +01:00
belliash
21fbe6febe
Add IDT related definitions
ci/woodpecker/push/build Pipeline was successful
2023-02-01 20:14:10 +01:00
belliash
a761d3125a
Architecture specific initialization prior to processor structures initialization
ci/woodpecker/push/build Pipeline was successful
2023-01-30 20:34:05 +01:00
belliash
6f068513cd
Initial processor block initialization
ci/woodpecker/push/build Pipeline was successful
2023-01-30 19:07:05 +01:00
belliash
ebe6792f2b
Add MSR (Model Specific Registers) values
ci/woodpecker/push/build Pipeline was successful
2023-01-30 17:59:00 +01:00
belliash
7bf4a9ab8d
Initialize boot CPU structures inside kernel on AMD64
ci/woodpecker/push/build Pipeline was successful
2023-01-29 00:45:17 +01:00
belliash
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
belliash
e94e50b5d9
Implement HlLoadInterruptDescriptorTable() intrinsics for loading IDT
ci/woodpecker/push/build Pipeline was successful
2023-01-26 20:08:57 +01:00
belliash
3ad3149f80
Add descriptor structure definition
ci/woodpecker/push/build Pipeline was successful
2023-01-25 17:42:35 +01:00
belliash
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
belliash
a366de618f
AMD64 Interrupt request levels definitions
ci/woodpecker/push/build Pipeline was successful
2023-01-25 17:08:42 +01:00
belliash
8f348c3954
Add GDT and Segments related definitions for AMD64
ci/woodpecker/push/build Pipeline was successful
2023-01-25 17:05:15 +01:00
belliash
707dc37868
Fix type of Source parameter in HlLoadSegment() routine
ci/woodpecker/push/build Pipeline was successful
2023-01-24 23:08:48 +01:00