mirror of
https://github.com/khanhduytran0/coruna.git
synced 2026-07-12 15:06:38 +02:00
Fix 14: krw const
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
/* 160 */
|
||||
enum CPUFamily : uint32_t
|
||||
{
|
||||
CPUFamily_ARM_CYCLONE = 0x37A09642,
|
||||
CPUFamily_A8 = 0x2C91A47E,
|
||||
CPUFamily_A9 = 0x92FB37C8,
|
||||
CPUFamily_A10 = 0x67CEEE93,
|
||||
@@ -24,6 +25,26 @@ enum CPUFamily : uint32_t
|
||||
CPUFamily_A15 = 0xDA33D83D,
|
||||
CPUFamily_A16 = 0x8765EDEA,
|
||||
CPUFamily_A17 = 0x2876F5B5,
|
||||
CPUFamily_ARM_TYPHOON = CPUFamily_A8,
|
||||
CPUFamily_ARM_TWISTER = CPUFamily_A9,
|
||||
CPUFamily_ARM_HURRICANE = CPUFamily_A10,
|
||||
CPUFamily_ARM_MONSOON_MISTRAL = CPUFamily_A11,
|
||||
CPUFamily_ARM_VORTEX_TEMPEST = CPUFamily_A12,
|
||||
CPUFamily_ARM_LIGHTNING_THUNDER = CPUFamily_A13,
|
||||
CPUFamily_ARM_FIRESTORM_ICESTORM = CPUFamily_A14,
|
||||
CPUFamily_ARM_BLIZZARD_AVALANCHE = CPUFamily_A15,
|
||||
CPUFamily_ARM_EVEREST_SAWTOOTH = CPUFamily_A16,
|
||||
CPUFamily_ARM_COLL = CPUFamily_A17,
|
||||
CPUFamily_ARM_IBIZA = 0xFA33415E,
|
||||
CPUFamily_ARM_PALMA = 0x72015832,
|
||||
CPUFamily_ARM_LOBOS = 0x5F4DEA93,
|
||||
CPUFamily_ARM_DONAN = 0x6F5129AC,
|
||||
CPUFamily_ARM_BRAVA = 0x17D5B93A,
|
||||
CPUFamily_ARM_TAHITI = 0x75D4ACB9,
|
||||
CPUFamily_ARM_TUPAI = 0x204526D0,
|
||||
CPUFamily_ARM_THERA = 0xAB345F09,
|
||||
CPUFamily_ARM_TILOS = 0x01D7A72B,
|
||||
CPUFamily_ARM_UNKNOWN_573B5EEC = 0x573B5EEC,
|
||||
};
|
||||
|
||||
/* 164 */
|
||||
@@ -155,10 +176,12 @@ enum krw_ctx_flags
|
||||
KRW_CTX_FLAG_KRW_METHODS_READY = 0x00010000,
|
||||
KRW_CTX_FLAG_CPU_A14 = 0x00080000,
|
||||
KRW_CTX_FLAG_CPU_A15 = 0x00100000,
|
||||
KRW_CTX_FLAG_CPU_A14_DMA_ALT = 0x00200000,
|
||||
// These two bits are queried by dmaFail, but no ctx setter has been found in this dylib.
|
||||
// The same numeric values also appear as 2 MiB / 32 MiB translation block sizes.
|
||||
KRW_CTX_FLAG_CPU_A14_DMA_ALT_UNSET = 0x00200000,
|
||||
KRW_CTX_FLAG_SELF_TASK_PORT_CLEARED = 0x00800000,
|
||||
KRW_CTX_FLAG_CPU_A16 = 0x01000000,
|
||||
KRW_CTX_FLAG_CPU_A15_DMA_ALT = 0x02000000,
|
||||
KRW_CTX_FLAG_CPU_A15_DMA_ALT_UNSET = 0x02000000,
|
||||
KRW_CTX_FLAG_CPU_A17 = 0x04000000,
|
||||
KRW_CTX_FLAG_SELF_TASK_IPC_SPACE_CLEARED = 0x08000000,
|
||||
KRW_CTX_FLAG_LOW_MEMORY_DEVICE = 0x10000000,
|
||||
@@ -169,7 +192,9 @@ enum krw_ctx_flags
|
||||
KRW_CTX_FLAG_CPU_A13_A14_MASK = KRW_CTX_FLAG_CPU_A13 | KRW_CTX_FLAG_CPU_A14,
|
||||
KRW_CTX_FLAG_CPU_A12_A13_A14_MASK = KRW_CTX_FLAG_CPU_A12 | KRW_CTX_FLAG_CPU_A13_A14_MASK,
|
||||
KRW_CTX_FLAG_CPU_A15_A16_MASK = KRW_CTX_FLAG_CPU_A15 | KRW_CTX_FLAG_CPU_A16,
|
||||
KRW_CTX_FLAG_CPU_A14_A15_DMA_ALT_MASK = KRW_CTX_FLAG_CPU_A14_DMA_ALT | KRW_CTX_FLAG_CPU_A15_DMA_ALT,
|
||||
KRW_CTX_FLAG_CPU_A14_DMA_ALT = KRW_CTX_FLAG_CPU_A14_DMA_ALT_UNSET,
|
||||
KRW_CTX_FLAG_CPU_A15_DMA_ALT = KRW_CTX_FLAG_CPU_A15_DMA_ALT_UNSET,
|
||||
KRW_CTX_FLAG_CPU_A14_A15_DMA_ALT_MASK = KRW_CTX_FLAG_CPU_A14_DMA_ALT_UNSET | KRW_CTX_FLAG_CPU_A15_DMA_ALT_UNSET,
|
||||
KRW_CTX_FLAG_CPU_A16_A17_MASK = KRW_CTX_FLAG_CPU_A16 | KRW_CTX_FLAG_CPU_A17,
|
||||
KRW_CTX_FLAG_CPU_A14_A15_A16_MASK = KRW_CTX_FLAG_CPU_A14 | KRW_CTX_FLAG_CPU_A15_A16_MASK,
|
||||
KRW_CTX_FLAG_CPU_A15_A16_A17_MASK = KRW_CTX_FLAG_CPU_A15_A16_MASK | KRW_CTX_FLAG_CPU_A17,
|
||||
|
||||
@@ -16806,7 +16806,7 @@ LABEL_27:
|
||||
{
|
||||
LABEL_54:
|
||||
if ( !strcmp(&v27->i8[8], "__KLD") )
|
||||
v31 = 1;
|
||||
v31 = KRW_CTX_FLAG_CPU_A12;
|
||||
}
|
||||
if ( v32 != 384 )
|
||||
{
|
||||
@@ -23767,16 +23767,11 @@ LABEL_33:
|
||||
// DONE: this matches the orig asm
|
||||
bool __fastcall dmaFail_map_dbgwrap(struct_krwCtx *a1, __int64 a2, _OWORD *a3)
|
||||
{
|
||||
int v5; // w21
|
||||
|
||||
a3[2] = 0u;
|
||||
a3[3] = 0u;
|
||||
*a3 = 0u;
|
||||
a3[1] = 0u;
|
||||
v5 = physmap_map_cached(a1, a2 + DMAFAIL_DBGWRAP_MAP_OFFSET, (__int64)a3);
|
||||
if ( v5 )
|
||||
physmap_unmap_cached((__int64)a1, (__int64)a3);
|
||||
return v5 == 0;
|
||||
bzero(a3, 64);
|
||||
int v5 = physmap_map_cached(a1, a2 + DMAFAIL_DBGWRAP_MAP_OFFSET, (__int64)a3);
|
||||
if ( v5 )
|
||||
physmap_unmap_cached((__int64)a1, (__int64)a3);
|
||||
return v5 == 0;
|
||||
}
|
||||
|
||||
//----- (0000000000023700) ----------------------------------------------------
|
||||
@@ -44537,7 +44532,7 @@ LABEL_17:
|
||||
cpuFamily = 0;
|
||||
if ( !(unsigned int)comm_page_get_cpu_family((_DWORD *)&cpuFamily) )
|
||||
return 0x28022;
|
||||
if ( (_DWORD)cpuFamily == 0x92FB37C8 || (_DWORD)cpuFamily == 0x37A09642 || (_DWORD)cpuFamily == 0x2C91A47E )
|
||||
if ( (_DWORD)cpuFamily == CPUFamily_A9 || (_DWORD)cpuFamily == CPUFamily_ARM_CYCLONE || (_DWORD)cpuFamily == CPUFamily_A8 )
|
||||
{
|
||||
if ( (*(_QWORD *)(commPageBase + COMM_PAGE_CPU_CAPABILITIES64_OFFSET) & 0x4000000) == 0 )
|
||||
goto LABEL_23;
|
||||
@@ -44575,7 +44570,7 @@ LABEL_33:
|
||||
{
|
||||
if ( (_DWORD)cpuFamily == CPUFamily_A12 )
|
||||
{
|
||||
v31 = 1;
|
||||
v31 = KRW_CTX_FLAG_CPU_A12;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -44583,16 +44578,16 @@ LABEL_33:
|
||||
goto LABEL_69;
|
||||
if ( (int)number_of_cpus() >= 8 && krwCtx->someLargeNumber >= 0x22580A06C00000LL )
|
||||
krw_ctx_set_flag(krwCtx, KRW_CTX_FLAG_CPU_HIGH_CORE_CLUSTER);
|
||||
v31 = 0x80000;
|
||||
v31 = KRW_CTX_FLAG_CPU_A14;
|
||||
}
|
||||
goto LABEL_68;
|
||||
}
|
||||
if ( (_DWORD)cpuFamily != CPUFamily_A11 )
|
||||
{
|
||||
v26 = -97304226;
|
||||
v26 = CPUFamily_ARM_IBIZA;
|
||||
goto LABEL_64;
|
||||
}
|
||||
v31 = 512;
|
||||
v31 = KRW_CTX_FLAG_CPU_A11;
|
||||
LABEL_68:
|
||||
krw_ctx_set_flag(krwCtx, v31);
|
||||
goto LABEL_69;
|
||||
@@ -44602,12 +44597,12 @@ LABEL_68:
|
||||
LABEL_65:
|
||||
if ( krwCtx->someLargeNumber > 0x2711FFFFFFFFFFLL )
|
||||
krw_ctx_set_flag(krwCtx, KRW_CTX_FLAG_PAC_KERNEL_LAYOUT);
|
||||
v31 = 0x1000000;
|
||||
v31 = KRW_CTX_FLAG_CPU_A16;
|
||||
goto LABEL_68;
|
||||
}
|
||||
if ( (_DWORD)cpuFamily == CPUFamily_A9 )
|
||||
{
|
||||
v31 = 0x2000;
|
||||
v31 = KRW_CTX_FLAG_CPU_A9;
|
||||
goto LABEL_68;
|
||||
}
|
||||
if ( (_DWORD)cpuFamily != CPUFamily_A15 )
|
||||
@@ -44618,17 +44613,17 @@ LABEL_65:
|
||||
{
|
||||
if ( someLargeNumber > 0x2711FFFFFFFFFFLL )
|
||||
{
|
||||
v30 = 32;
|
||||
v30 = KRW_CTX_FLAG_PAC_KERNEL_LAYOUT;
|
||||
goto LABEL_118;
|
||||
}
|
||||
}
|
||||
else if ( someLargeNumber >> 43 > 0x44A )
|
||||
{
|
||||
v30 = 8;
|
||||
v30 = KRW_CTX_FLAG_CPU_HIGH_CORE_CLUSTER;
|
||||
LABEL_118:
|
||||
krw_ctx_set_flag(krwCtx, v30);
|
||||
}
|
||||
v31 = 0x100000;
|
||||
v31 = KRW_CTX_FLAG_CPU_A15;
|
||||
goto LABEL_68;
|
||||
}
|
||||
if ( (int)cpuFamily <= 0x573B5EEB )
|
||||
@@ -44637,13 +44632,13 @@ LABEL_118:
|
||||
{
|
||||
case CPUFamily_A17:
|
||||
krw_ctx_set_flag(krwCtx, KRW_CTX_FLAG_PAC_KERNEL_LAYOUT);
|
||||
v31 = 0x4000000;
|
||||
v31 = KRW_CTX_FLAG_CPU_A17;
|
||||
break;
|
||||
case CPUFamily_A8:
|
||||
v31 = 0x8000;
|
||||
v31 = KRW_CTX_FLAG_CPU_A8;
|
||||
break;
|
||||
case CPUFamily_A13:
|
||||
v31 = 0x4000;
|
||||
v31 = KRW_CTX_FLAG_CPU_A13;
|
||||
break;
|
||||
default:
|
||||
goto LABEL_69;
|
||||
@@ -44654,18 +44649,18 @@ LABEL_118:
|
||||
{
|
||||
if ( (_DWORD)cpuFamily == CPUFamily_A10 )
|
||||
{
|
||||
v31 = 64;
|
||||
v31 = KRW_CTX_FLAG_CPU_A10;
|
||||
goto LABEL_68;
|
||||
}
|
||||
v26 = 1912690738;
|
||||
v26 = CPUFamily_ARM_PALMA;
|
||||
LABEL_64:
|
||||
if ( (_DWORD)cpuFamily != v26 )
|
||||
goto LABEL_69;
|
||||
goto LABEL_65;
|
||||
}
|
||||
if ( (_DWORD)cpuFamily != 1463508716 )
|
||||
if ( (_DWORD)cpuFamily != CPUFamily_ARM_UNKNOWN_573B5EEC )
|
||||
{
|
||||
v26 = 1598941843;
|
||||
v26 = CPUFamily_ARM_LOBOS;
|
||||
goto LABEL_64;
|
||||
}
|
||||
krw_ctx_set_flag(krwCtx, KRW_CTX_FLAG_CPU_A14);
|
||||
|
||||
Reference in New Issue
Block a user