summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/HALKit/AMD64/CPUID.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-03-25 15:35:28 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-03-25 15:35:28 +0100
commit0ead895f52d24dad009f738037a7795d4e3d840a (patch)
tree863fd1c881fc7bf26ab78b932421e6416bbef288 /dev/kernel/HALKit/AMD64/CPUID.h
parent59dbe4cffc7c633709ef8b45f49c46daf7f74e92 (diff)
kernel: Refactor AHCI I/O path, enhance memory allocators, and cleanup obsolete script
- Removed unused `build_gcc.sh` script. - Namespaced CPU feature flags under `NeOS` and transitioned from enum to unnamed enum for scoping. - Renamed `drv_std_input_output` to `drv_std_input_output_ahci` for clarity. - Improved AHCI driver documentation and added zeroing for read buffers. - Added optional `pad` parameter to memory allocators: `mm_alloc_bitmap`, `mm_new_heap`, `PageMgr::Request`, etc. - Updated bitmap allocator to correctly handle and align with padded sizes. - Added `fPad` field to memory header block. - Fixed `ATA-DMA` mode comment, corrected PRD usage and logic. - Improved code documentation and formatting in `UserProcessScheduler`, `PageMgr`, and related components. - Enhanced safety in process memory cleanup (e.g., `StackReserve` cleanup). Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/HALKit/AMD64/CPUID.h')
-rw-r--r--dev/kernel/HALKit/AMD64/CPUID.h131
1 files changed, 66 insertions, 65 deletions
diff --git a/dev/kernel/HALKit/AMD64/CPUID.h b/dev/kernel/HALKit/AMD64/CPUID.h
index 7f04ac27..6ea84106 100644
--- a/dev/kernel/HALKit/AMD64/CPUID.h
+++ b/dev/kernel/HALKit/AMD64/CPUID.h
@@ -15,72 +15,73 @@
#include <NewKit/Defines.h>
-enum CPUFeatureEnum
-{
- kCPUFeatureSSE3 = 1 << 0,
- kCPUFeaturePCLMUL = 1 << 1,
- kCPUFeatureDTES64 = 1 << 2,
- kCPUFeatureMONITOR = 1 << 3,
- kCPUFeatureDS_CPL = 1 << 4,
- kCPUFeatureVMX = 1 << 5,
- kCPUFeatureSMX = 1 << 6,
- kCPUFeatureEST = 1 << 7,
- kCPUFeatureTM2 = 1 << 8,
- kCPUFeatureSSSE3 = 1 << 9,
- kCPUFeatureCID = 1 << 10,
- kCPUFeatureSDBG = 1 << 11,
- kCPUFeatureFMA = 1 << 12,
- kCPUFeatureCX16 = 1 << 13,
- kCPUFeatureXTPR = 1 << 14,
- kCPUFeaturePDCM = 1 << 15,
- kCPUFeaturePCID = 1 << 17,
- kCPUFeatureDCA = 1 << 18,
- kCPUFeatureSSE4_1 = 1 << 19,
- kCPUFeatureSSE4_2 = 1 << 20,
- kCPUFeatureX2APIC = 1 << 21,
- kCPUFeatureMOVBE = 1 << 22,
- kCPUFeaturePOP3C = 1 << 23,
- kCPUFeatureECXTSC = 1 << 24,
- kCPUFeatureAES = 1 << 25,
- kCPUFeatureXSAVE = 1 << 26,
- kCPUFeatureOSXSAVE = 1 << 27,
- kCPUFeatureAVX = 1 << 28,
- kCPUFeatureF16C = 1 << 29,
- kCPUFeatureRDRAND = 1 << 30,
- kCPUFeatureHYPERVISOR = 1 << 31,
- kCPUFeatureFPU = 1 << 0,
- kCPUFeatureVME = 1 << 1,
- kCPUFeatureDE = 1 << 2,
- kCPUFeaturePSE = 1 << 3,
- kCPUFeatureEDXTSC = 1 << 4,
- kCPUFeatureMSR = 1 << 5,
- kCPUFeaturePAE = 1 << 6,
- kCPUFeatureMCE = 1 << 7,
- kCPUFeatureCX8 = 1 << 8,
- kCPUFeatureAPIC = 1 << 9,
- kCPUFeatureSEP = 1 << 11,
- kCPUFeatureMTRR = 1 << 12,
- kCPUFeaturePGE = 1 << 13,
- kCPUFeatureMCA = 1 << 14,
- kCPUFeatureCMOV = 1 << 15,
- kCPUFeaturePAT = 1 << 16,
- kCPUFeaturePSE36 = 1 << 17,
- kCPUFeaturePSN = 1 << 18,
- kCPUFeatureCLFLUSH = 1 << 19,
- kCPUFeatureDS = 1 << 21,
- kCPUFeatureACPI = 1 << 22,
- kCPUFeatureMMX = 1 << 23,
- kCPUFeatureFXSR = 1 << 24,
- kCPUFeatureSSE = 1 << 25,
- kCPUFeatureSSE2 = 1 << 26,
- kCPUFeatureSS = 1 << 27,
- kCPUFeatureHTT = 1 << 28,
- kCPUFeatureTM = 1 << 29,
- kCPUFeatureIA64 = 1 << 30,
- kCPUFeaturePBE = 1 << 31
-};
-
namespace NeOS
{
+
+ enum
+ {
+ kCPUFeatureSSE3 = 1 << 0,
+ kCPUFeaturePCLMUL = 1 << 1,
+ kCPUFeatureDTES64 = 1 << 2,
+ kCPUFeatureMONITOR = 1 << 3,
+ kCPUFeatureDS_CPL = 1 << 4,
+ kCPUFeatureVMX = 1 << 5,
+ kCPUFeatureSMX = 1 << 6,
+ kCPUFeatureEST = 1 << 7,
+ kCPUFeatureTM2 = 1 << 8,
+ kCPUFeatureSSSE3 = 1 << 9,
+ kCPUFeatureCID = 1 << 10,
+ kCPUFeatureSDBG = 1 << 11,
+ kCPUFeatureFMA = 1 << 12,
+ kCPUFeatureCX16 = 1 << 13,
+ kCPUFeatureXTPR = 1 << 14,
+ kCPUFeaturePDCM = 1 << 15,
+ kCPUFeaturePCID = 1 << 17,
+ kCPUFeatureDCA = 1 << 18,
+ kCPUFeatureSSE4_1 = 1 << 19,
+ kCPUFeatureSSE4_2 = 1 << 20,
+ kCPUFeatureX2APIC = 1 << 21,
+ kCPUFeatureMOVBE = 1 << 22,
+ kCPUFeaturePOP3C = 1 << 23,
+ kCPUFeatureECXTSC = 1 << 24,
+ kCPUFeatureAES = 1 << 25,
+ kCPUFeatureXSAVE = 1 << 26,
+ kCPUFeatureOSXSAVE = 1 << 27,
+ kCPUFeatureAVX = 1 << 28,
+ kCPUFeatureF16C = 1 << 29,
+ kCPUFeatureRDRAND = 1 << 30,
+ kCPUFeatureHYPERVISOR = 1 << 31,
+ kCPUFeatureFPU = 1 << 0,
+ kCPUFeatureVME = 1 << 1,
+ kCPUFeatureDE = 1 << 2,
+ kCPUFeaturePSE = 1 << 3,
+ kCPUFeatureEDXTSC = 1 << 4,
+ kCPUFeatureMSR = 1 << 5,
+ kCPUFeaturePAE = 1 << 6,
+ kCPUFeatureMCE = 1 << 7,
+ kCPUFeatureCX8 = 1 << 8,
+ kCPUFeatureAPIC = 1 << 9,
+ kCPUFeatureSEP = 1 << 11,
+ kCPUFeatureMTRR = 1 << 12,
+ kCPUFeaturePGE = 1 << 13,
+ kCPUFeatureMCA = 1 << 14,
+ kCPUFeatureCMOV = 1 << 15,
+ kCPUFeaturePAT = 1 << 16,
+ kCPUFeaturePSE36 = 1 << 17,
+ kCPUFeaturePSN = 1 << 18,
+ kCPUFeatureCLFLUSH = 1 << 19,
+ kCPUFeatureDS = 1 << 21,
+ kCPUFeatureACPI = 1 << 22,
+ kCPUFeatureMMX = 1 << 23,
+ kCPUFeatureFXSR = 1 << 24,
+ kCPUFeatureSSE = 1 << 25,
+ kCPUFeatureSSE2 = 1 << 26,
+ kCPUFeatureSS = 1 << 27,
+ kCPUFeatureHTT = 1 << 28,
+ kCPUFeatureTM = 1 << 29,
+ kCPUFeatureIA64 = 1 << 30,
+ kCPUFeaturePBE = 1 << 31
+ };
+
typedef Int64 CPUID;
} // namespace NeOS