diff options
| author | Amlal <amlal@zka.com> | 2024-07-12 01:03:21 +0200 |
|---|---|---|
| committer | Amlal <amlal@zka.com> | 2024-07-12 01:03:21 +0200 |
| commit | a268a7d3551523fb82b1495808f3ea2516b6fdaa (patch) | |
| tree | 0a7fab583aafca52bccf5bac143517f559b3a247 /Kernel/HALKit | |
| parent | 0a076b2bcc21d4fc94b83569e1b5198f9e4acd0b (diff) | |
[IMP && FIX] Various patches and implementations.
Most importantly:
- JSON parser.
Signed-off-by: Amlal <amlal@zka.com>
Diffstat (limited to 'Kernel/HALKit')
| -rw-r--r-- | Kernel/HALKit/AMD64/HalAPIC.cxx | 4 | ||||
| -rw-r--r-- | Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cxx | 4 | ||||
| -rw-r--r-- | Kernel/HALKit/AMD64/HalDescriptorLoader.cxx (renamed from Kernel/HALKit/AMD64/HalDescriptorLoader.cpp) | 0 | ||||
| -rw-r--r-- | Kernel/HALKit/AMD64/HalHart.cxx (renamed from Kernel/HALKit/AMD64/HalHart.cpp) | 0 | ||||
| -rw-r--r-- | Kernel/HALKit/AMD64/HalProcessor.cxx | 16 | ||||
| -rw-r--r-- | Kernel/HALKit/AMD64/HalTimer.cxx | 2 | ||||
| -rw-r--r-- | Kernel/HALKit/AMD64/Processor.hxx | 2 | ||||
| -rw-r--r-- | Kernel/HALKit/ARM64/HalTimer.cxx | 2 | ||||
| -rw-r--r-- | Kernel/HALKit/POWER/Processor.hxx | 10 | ||||
| -rw-r--r-- | Kernel/HALKit/POWER/ppc-cpu.h | 130 | ||||
| -rw-r--r-- | Kernel/HALKit/POWER/ppc-mmu.h | 12 |
11 files changed, 89 insertions, 93 deletions
diff --git a/Kernel/HALKit/AMD64/HalAPIC.cxx b/Kernel/HALKit/AMD64/HalAPIC.cxx index 5e91659f..34ec7494 100644 --- a/Kernel/HALKit/AMD64/HalAPIC.cxx +++ b/Kernel/HALKit/AMD64/HalAPIC.cxx @@ -9,8 +9,8 @@ namespace Kernel::HAL { - /// @brief Read from APIC controller. - /// @param reg register. + /// @brief Read from APIC controller. + /// @param reg register. UInt32 APICController::Read(UInt32 reg) noexcept { MUST_PASS(this->fApic); diff --git a/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cxx b/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cxx index 233a6647..48d737fe 100644 --- a/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cxx +++ b/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cxx @@ -61,7 +61,7 @@ namespace Kernel::HAL } Selector; }; - STATIC VoidPtr kApicMadt = nullptr; + STATIC VoidPtr kApicMadt = nullptr; STATIC const Char* kApicSignature = "APIC"; /// @brief Multiple APIC Descriptor Table. @@ -172,7 +172,7 @@ namespace Kernel::HAL /// @internal EXTERN_C Void hal_apic_acknowledge(Void) { - kcout << "newoskrnl: acknowledge APIC.\r"; + kcout << "newoskrnl: acknowledge APIC.\r"; } /// @internal diff --git a/Kernel/HALKit/AMD64/HalDescriptorLoader.cpp b/Kernel/HALKit/AMD64/HalDescriptorLoader.cxx index d0ac4e12..d0ac4e12 100644 --- a/Kernel/HALKit/AMD64/HalDescriptorLoader.cpp +++ b/Kernel/HALKit/AMD64/HalDescriptorLoader.cxx diff --git a/Kernel/HALKit/AMD64/HalHart.cpp b/Kernel/HALKit/AMD64/HalHart.cxx index adbf148c..adbf148c 100644 --- a/Kernel/HALKit/AMD64/HalHart.cpp +++ b/Kernel/HALKit/AMD64/HalHart.cxx diff --git a/Kernel/HALKit/AMD64/HalProcessor.cxx b/Kernel/HALKit/AMD64/HalProcessor.cxx index 1f4fb4fd..2eb2d693 100644 --- a/Kernel/HALKit/AMD64/HalProcessor.cxx +++ b/Kernel/HALKit/AMD64/HalProcessor.cxx @@ -13,7 +13,7 @@ namespace Kernel::HAL { - void Out8(UInt16 port, UInt8 value) + Void Out8(UInt16 port, UInt8 value) { asm volatile("outb %%al, %1" : @@ -21,7 +21,7 @@ namespace Kernel::HAL : "memory"); } - void Out16(UInt16 port, UInt16 value) + Void Out16(UInt16 port, UInt16 value) { asm volatile("outw %%ax, %1" : @@ -29,7 +29,7 @@ namespace Kernel::HAL : "memory"); } - void Out32(UInt16 port, UInt32 value) + Void Out32(UInt16 port, UInt32 value) { asm volatile("outl %%eax, %1" : @@ -70,27 +70,27 @@ namespace Kernel::HAL return value; } - void rt_halt() + Void rt_halt() { asm volatile("hlt"); } - void rt_cli() + Void rt_cli() { asm volatile("cli"); } - void rt_sti() + Void rt_sti() { asm volatile("sti"); } - void rt_cld() + Void rt_cld() { asm volatile("cld"); } - void rt_std() + Void rt_std() { asm volatile("std"); } diff --git a/Kernel/HALKit/AMD64/HalTimer.cxx b/Kernel/HALKit/AMD64/HalTimer.cxx index b7015091..e893198f 100644 --- a/Kernel/HALKit/AMD64/HalTimer.cxx +++ b/Kernel/HALKit/AMD64/HalTimer.cxx @@ -8,7 +8,7 @@ Revision History:
07/07/24: Added file (amlel)
-
+
------------------------------------------- */
#include <ArchKit/ArchKit.hpp>
\ No newline at end of file diff --git a/Kernel/HALKit/AMD64/Processor.hxx b/Kernel/HALKit/AMD64/Processor.hxx index 1d2f5597..9571cbfe 100644 --- a/Kernel/HALKit/AMD64/Processor.hxx +++ b/Kernel/HALKit/AMD64/Processor.hxx @@ -281,7 +281,7 @@ namespace Kernel::HAL { /** @brief Global descriptor table entry, either null, code or data. - */ + */ struct PACKED NewOSGDTRecord final { diff --git a/Kernel/HALKit/ARM64/HalTimer.cxx b/Kernel/HALKit/ARM64/HalTimer.cxx index ac9413e6..63e924c3 100644 --- a/Kernel/HALKit/ARM64/HalTimer.cxx +++ b/Kernel/HALKit/ARM64/HalTimer.cxx @@ -8,7 +8,7 @@ Revision History: 07/07/24: Added file (amlel) - + ------------------------------------------- */ #include <ArchKit/ArchKit.hpp> diff --git a/Kernel/HALKit/POWER/Processor.hxx b/Kernel/HALKit/POWER/Processor.hxx index 03b630a5..b2186aa7 100644 --- a/Kernel/HALKit/POWER/Processor.hxx +++ b/Kernel/HALKit/POWER/Processor.hxx @@ -11,7 +11,7 @@ #include <NewKit/Defines.hpp> #include <NewKit/Utils.hpp> -#define NoOp() asm volatile("mr 0, 0") +#define NoOp() asm volatile("mr 0, 0") #define kHalPPCAlignment __attribute__((aligned(4))) namespace Kernel::HAL @@ -47,14 +47,10 @@ EXTERN_C Kernel::Void int_handle_math(Kernel::UIntPtr sp); EXTERN_C Kernel::Void int_handle_pf(Kernel::UIntPtr sp); /// @brief Set TLB. -Kernel::Bool hal_set_tlb(Kernel::UInt8 tlb, Kernel::UInt32 epn, - Kernel::UInt64 rpn, Kernel::UInt8 perms, - Kernel::UInt8 wimge, Kernel::UInt8 ts, - Kernel::UInt8 esel, Kernel::UInt8 tsize, Kernel::UInt8 iprot); +Kernel::Bool hal_set_tlb(Kernel::UInt8 tlb, Kernel::UInt32 epn, Kernel::UInt64 rpn, Kernel::UInt8 perms, Kernel::UInt8 wimge, Kernel::UInt8 ts, Kernel::UInt8 esel, Kernel::UInt8 tsize, Kernel::UInt8 iprot); /// @brief Write TLB. -Kernel::Void hal_write_tlb(Kernel::UInt32 mas0, Kernel::UInt32 mas1, - Kernel::UInt32 mas2, Kernel::UInt32 mas3, Kernel::UInt32 mas7); +Kernel::Void hal_write_tlb(Kernel::UInt32 mas0, Kernel::UInt32 mas1, Kernel::UInt32 mas2, Kernel::UInt32 mas3, Kernel::UInt32 mas7); /// @brief Flush TLB. EXTERN_C Kernel::Void hal_flush_tlb(); diff --git a/Kernel/HALKit/POWER/ppc-cpu.h b/Kernel/HALKit/POWER/ppc-cpu.h index 3855b85c..46979e5f 100644 --- a/Kernel/HALKit/POWER/ppc-cpu.h +++ b/Kernel/HALKit/POWER/ppc-cpu.h @@ -141,36 +141,36 @@ struct pt_regs #define SPRN_DBCR 0x3F2 /* Debug Control Regsiter */ #define DBCR_EDM 0x80000000 #define DBCR_IDM 0x40000000 -#define DBCR_RST(x) (((x)&0x3) << 28) +#define DBCR_RST(x) (((x) & 0x3) << 28) #define DBCR_RST_NONE 0 #define DBCR_RST_CORE 1 #define DBCR_RST_CHIP 2 #define DBCR_RST_SYSTEM 3 -#define DBCR_IC 0x08000000 /* Instruction Completion Debug Evnt */ -#define DBCR_BT 0x04000000 /* Branch Taken Debug Event */ -#define DBCR_EDE 0x02000000 /* Exception Debug Event */ -#define DBCR_TDE 0x01000000 /* TRAP Debug Event */ -#define DBCR_FER 0x00F80000 /* First Events Remaining Mask */ -#define DBCR_FT 0x00040000 /* Freeze Timers on Debug Event */ -#define DBCR_IA1 0x00020000 /* Instr. Addr. Compare 1 Enable */ -#define DBCR_IA2 0x00010000 /* Instr. Addr. Compare 2 Enable */ -#define DBCR_D1R 0x00008000 /* Data Addr. Compare 1 Read Enable */ -#define DBCR_D1W 0x00004000 /* Data Addr. Compare 1 Write Enable */ -#define DBCR_D1S(x) (((x)&0x3) << 12) /* Data Adrr. Compare 1 Size */ +#define DBCR_IC 0x08000000 /* Instruction Completion Debug Evnt */ +#define DBCR_BT 0x04000000 /* Branch Taken Debug Event */ +#define DBCR_EDE 0x02000000 /* Exception Debug Event */ +#define DBCR_TDE 0x01000000 /* TRAP Debug Event */ +#define DBCR_FER 0x00F80000 /* First Events Remaining Mask */ +#define DBCR_FT 0x00040000 /* Freeze Timers on Debug Event */ +#define DBCR_IA1 0x00020000 /* Instr. Addr. Compare 1 Enable */ +#define DBCR_IA2 0x00010000 /* Instr. Addr. Compare 2 Enable */ +#define DBCR_D1R 0x00008000 /* Data Addr. Compare 1 Read Enable */ +#define DBCR_D1W 0x00004000 /* Data Addr. Compare 1 Write Enable */ +#define DBCR_D1S(x) (((x) & 0x3) << 12) /* Data Adrr. Compare 1 Size */ #define DAC_BYTE 0 #define DAC_HALF 1 #define DAC_WORD 2 #define DAC_QUAD 3 -#define DBCR_D2R 0x00000800 /* Data Addr. Compare 2 Read Enable */ -#define DBCR_D2W 0x00000400 /* Data Addr. Compare 2 Write Enable */ -#define DBCR_D2S(x) (((x)&0x3) << 8) /* Data Addr. Compare 2 Size */ -#define DBCR_SBT 0x00000040 /* Second Branch Taken Debug Event */ -#define DBCR_SED 0x00000020 /* Second Exception Debug Event */ -#define DBCR_STD 0x00000010 /* Second Trap Debug Event */ -#define DBCR_SIA 0x00000008 /* Second IAC Enable */ -#define DBCR_SDA 0x00000004 /* Second DAC Enable */ -#define DBCR_JOI 0x00000002 /* JTAG Serial Outbound Int. Enable */ -#define DBCR_JII 0x00000001 /* JTAG Serial Inbound Int. Enable */ +#define DBCR_D2R 0x00000800 /* Data Addr. Compare 2 Read Enable */ +#define DBCR_D2W 0x00000400 /* Data Addr. Compare 2 Write Enable */ +#define DBCR_D2S(x) (((x) & 0x3) << 8) /* Data Addr. Compare 2 Size */ +#define DBCR_SBT 0x00000040 /* Second Branch Taken Debug Event */ +#define DBCR_SED 0x00000020 /* Second Exception Debug Event */ +#define DBCR_STD 0x00000010 /* Second Trap Debug Event */ +#define DBCR_SIA 0x00000008 /* Second IAC Enable */ +#define DBCR_SDA 0x00000004 /* Second DAC Enable */ +#define DBCR_JOI 0x00000002 /* JTAG Serial Outbound Int. Enable */ +#define DBCR_JII 0x00000001 /* JTAG Serial Inbound Int. Enable */ #ifndef CONFIG_BOOKE #define SPRN_DBCR0 0x3F2 /* Debug Control Register 0 */ #else @@ -395,27 +395,27 @@ struct pt_regs #define TCR_WP(x) (((64 - x) & 0x3) << 30) | \ (((64 - x) & 0x3c) << 15) /* WDT Period 2^x clocks*/ #else -#define TCR_WP(x) (((x)&0x3) << 30) /* WDT Period */ -#define WP_2_17 0 /* 2^17 clocks */ -#define WP_2_21 1 /* 2^21 clocks */ -#define WP_2_25 2 /* 2^25 clocks */ -#define WP_2_29 3 /* 2^29 clocks */ -#endif /* CONFIG_E500 */ -#define TCR_WRC(x) (((x)&0x3) << 28) /* WDT Reset Control */ -#define WRC_NONE 0 /* No reset will occur */ -#define WRC_CORE 1 /* Core reset will occur */ -#define WRC_CHIP 2 /* Chip reset will occur */ -#define WRC_SYSTEM 3 /* System reset will occur */ -#define TCR_WIE 0x08000000 /* WDT Interrupt Enable */ -#define TCR_PIE 0x04000000 /* PIT Interrupt Enable */ -#define TCR_FP(x) (((x)&0x3) << 24) /* FIT Period */ -#define FP_2_9 0 /* 2^9 clocks */ -#define FP_2_13 1 /* 2^13 clocks */ -#define FP_2_17 2 /* 2^17 clocks */ -#define FP_2_21 3 /* 2^21 clocks */ -#define TCR_FIE 0x00800000 /* FIT Interrupt Enable */ -#define TCR_ARE 0x00400000 /* Auto Reload Enable */ -#define SPRN_THRM1 0x3FC /* Thermal Management Register 1 */ +#define TCR_WP(x) (((x) & 0x3) << 30) /* WDT Period */ +#define WP_2_17 0 /* 2^17 clocks */ +#define WP_2_21 1 /* 2^21 clocks */ +#define WP_2_25 2 /* 2^25 clocks */ +#define WP_2_29 3 /* 2^29 clocks */ +#endif /* CONFIG_E500 */ +#define TCR_WRC(x) (((x) & 0x3) << 28) /* WDT Reset Control */ +#define WRC_NONE 0 /* No reset will occur */ +#define WRC_CORE 1 /* Core reset will occur */ +#define WRC_CHIP 2 /* Chip reset will occur */ +#define WRC_SYSTEM 3 /* System reset will occur */ +#define TCR_WIE 0x08000000 /* WDT Interrupt Enable */ +#define TCR_PIE 0x04000000 /* PIT Interrupt Enable */ +#define TCR_FP(x) (((x) & 0x3) << 24) /* FIT Period */ +#define FP_2_9 0 /* 2^9 clocks */ +#define FP_2_13 1 /* 2^13 clocks */ +#define FP_2_17 2 /* 2^17 clocks */ +#define FP_2_21 3 /* 2^21 clocks */ +#define TCR_FIE 0x00800000 /* FIT Interrupt Enable */ +#define TCR_ARE 0x00400000 /* Auto Reload Enable */ +#define SPRN_THRM1 0x3FC /* Thermal Management Register 1 */ #define THRM1_TIN (1 << 0) #define THRM1_TIV (1 << 1) #define THRM1_THRES (0x7f << 2) @@ -429,26 +429,26 @@ struct pt_regs #ifndef CONFIG_BOOKE #define SPRN_TSR 0x3D8 /* Timer Status Register */ #else -#define SPRN_TSR 0x150 /* Book E Timer Status Register */ -#endif /* CONFIG_BOOKE */ -#define TSR_ENW 0x80000000 /* Enable Next Watchdog */ -#define TSR_WIS 0x40000000 /* WDT Interrupt Status */ -#define TSR_WRS(x) (((x)&0x3) << 28) /* WDT Reset Status */ -#define WRS_NONE 0 /* No WDT reset occurred */ -#define WRS_CORE 1 /* WDT forced core reset */ -#define WRS_CHIP 2 /* WDT forced chip reset */ -#define WRS_SYSTEM 3 /* WDT forced system reset */ -#define TSR_PIS 0x08000000 /* PIT Interrupt Status */ -#define TSR_FIS 0x04000000 /* FIT Interrupt Status */ -#define SPRN_UMMCR0 0x3A8 /* User Monitor Mode Control Register 0 */ -#define SPRN_UMMCR1 0x3AC /* User Monitor Mode Control Register 0 */ -#define SPRN_UPMC1 0x3A9 /* User Performance Counter Register 1 */ -#define SPRN_UPMC2 0x3AA /* User Performance Counter Register 2 */ -#define SPRN_UPMC3 0x3AD /* User Performance Counter Register 3 */ -#define SPRN_UPMC4 0x3AE /* User Performance Counter Register 4 */ -#define SPRN_USIA 0x3AB /* User Sampled Instruction Address Register */ -#define SPRN_XER 0x001 /* Fixed Point Exception Register */ -#define SPRN_ZPR 0x3B0 /* Zone Protection Register */ +#define SPRN_TSR 0x150 /* Book E Timer Status Register */ +#endif /* CONFIG_BOOKE */ +#define TSR_ENW 0x80000000 /* Enable Next Watchdog */ +#define TSR_WIS 0x40000000 /* WDT Interrupt Status */ +#define TSR_WRS(x) (((x) & 0x3) << 28) /* WDT Reset Status */ +#define WRS_NONE 0 /* No WDT reset occurred */ +#define WRS_CORE 1 /* WDT forced core reset */ +#define WRS_CHIP 2 /* WDT forced chip reset */ +#define WRS_SYSTEM 3 /* WDT forced system reset */ +#define TSR_PIS 0x08000000 /* PIT Interrupt Status */ +#define TSR_FIS 0x04000000 /* FIT Interrupt Status */ +#define SPRN_UMMCR0 0x3A8 /* User Monitor Mode Control Register 0 */ +#define SPRN_UMMCR1 0x3AC /* User Monitor Mode Control Register 0 */ +#define SPRN_UPMC1 0x3A9 /* User Performance Counter Register 1 */ +#define SPRN_UPMC2 0x3AA /* User Performance Counter Register 2 */ +#define SPRN_UPMC3 0x3AD /* User Performance Counter Register 3 */ +#define SPRN_UPMC4 0x3AE /* User Performance Counter Register 4 */ +#define SPRN_USIA 0x3AB /* User Sampled Instruction Address Register */ +#define SPRN_XER 0x001 /* Fixed Point Exception Register */ +#define SPRN_ZPR 0x3B0 /* Zone Protection Register */ /* Book E definitions */ #define SPRN_DECAR 0x036 /* Decrementer Auto Reload Register */ @@ -853,7 +853,7 @@ struct pt_regs #define IOCR_PTD 0x00000400 #define IOCR_ARE 0x00000080 #define IOCR_DRC 0x00000020 -#define IOCR_RDM(x) (((x)&0x3) << 3) +#define IOCR_RDM(x) (((x) & 0x3) << 3) #define IOCR_TCS 0x00000004 #define IOCR_SCS 0x00000002 #define IOCR_SPC 0x00000001 @@ -1252,7 +1252,7 @@ int fsl_qoriq_dsp_core_to_cluster(unsigned int core); #if defined(CONFIG_MPC83xx) #define CPU_TYPE_ENTRY(x) \ { \ -#x, SPR_##x \ + #x, SPR_##x \ } #endif #endif diff --git a/Kernel/HALKit/POWER/ppc-mmu.h b/Kernel/HALKit/POWER/ppc-mmu.h index 8546b0fb..8e4b3595 100644 --- a/Kernel/HALKit/POWER/ppc-mmu.h +++ b/Kernel/HALKit/POWER/ppc-mmu.h @@ -411,7 +411,7 @@ extern void print_bats(void); #define MAS0_TLBSEL(x) (((x) << 28) & MAS0_TLBSEL_MSK) #define MAS0_ESEL_MSK 0x0FFF0000 #define MAS0_ESEL(x) (((x) << 16) & MAS0_ESEL_MSK) -#define MAS0_NV(x) ((x)&0x00000FFF) +#define MAS0_NV(x) ((x) & 0x00000FFF) #define MAS1_VALID 0x80000000 #define MAS1_IPROT 0x40000000 @@ -468,9 +468,9 @@ extern void print_bats(void); (((ts) << 12) & MAS1_TS) | \ (MAS1_TSIZE(tsize))) #define FSL_BOOKE_MAS2(epn, wimge) \ - (((epn)&MAS3_RPN) | (wimge)) + (((epn) & MAS3_RPN) | (wimge)) #define FSL_BOOKE_MAS3(rpn, user, perms) \ - (((rpn)&MAS3_RPN) | (user) | (perms)) + (((rpn) & MAS3_RPN) | (user) | (perms)) #define FSL_BOOKE_MAS7(rpn) \ (((uint64_t)(rpn)) >> 32) @@ -638,10 +638,10 @@ extern int num_tlb_entries; /* Some handy macros */ -#define EPN(e) ((e)&0xfffffc00) +#define EPN(e) ((e) & 0xfffffc00) #define TLB0(epn, sz) ((EPN((epn)) | (sz) | TLB_VALID)) -#define TLB1(rpn, erpn) (((rpn)&0xfffffc00) | (erpn)) -#define TLB2(a) ((a)&0x00000fbf) +#define TLB1(rpn, erpn) (((rpn) & 0xfffffc00) | (erpn)) +#define TLB2(a) ((a) & 0x00000fbf) #define tlbtab_start \ mflr r1; \ |
