mirror of
https://github.com/CTCaer/hekate.git
synced 2024-11-09 20:11:50 +00:00
hos: Fix compilation
This commit is contained in:
parent
f5ec4a3a37
commit
063abb3e23
4 changed files with 39 additions and 43 deletions
|
@ -691,7 +691,7 @@ static void _free_launch_components(launch_ctxt_t *ctxt)
|
|||
free(ctxt->kip1_patches);
|
||||
}
|
||||
|
||||
static bool _get_fs_exfat_compatible(link_t *info, bool *fs_is_510)
|
||||
static bool _get_fs_exfat_compatible(link_t *info, u32 *hos_revision)
|
||||
{
|
||||
u32 fs_ids_cnt;
|
||||
u32 sha_buf[32 / sizeof(u32)];
|
||||
|
@ -711,9 +711,11 @@ static bool _get_fs_exfat_compatible(link_t *info, bool *fs_is_510)
|
|||
{
|
||||
if (!memcmp(sha_buf, kip_ids[fs_idx].hash, 8))
|
||||
{
|
||||
// Check if it's 5.1.0.
|
||||
if ((fs_idx & ~1) == 16)
|
||||
*fs_is_510 = true;
|
||||
// HOS Api special handling.
|
||||
if ((fs_idx & ~1) == 16) // Check if it's 5.1.0.
|
||||
*hos_revision = 1;
|
||||
else if ((fs_idx & ~1) == 34) // Check if it's 10.2.0.
|
||||
*hos_revision = 2;
|
||||
|
||||
// Check if FAT32-only.
|
||||
if (!(fs_idx & 1))
|
||||
|
@ -827,7 +829,7 @@ int hos_launch(ini_sec_t *cfg)
|
|||
config_kip1patch(&ctxt, "nogc");
|
||||
}
|
||||
|
||||
gfx_puts("Loaded config, pkg1 and keyblob\n");
|
||||
gfx_printf("Loaded config and pkg1\n%s mode\n", ctxt.stock ? "Stock" : "CFW");
|
||||
|
||||
// Check if secmon is exosphere.
|
||||
if (ctxt.secmon)
|
||||
|
@ -1005,7 +1007,7 @@ int hos_launch(ini_sec_t *cfg)
|
|||
// Check if FS is compatible with exFAT and if 5.1.0.
|
||||
if (!ctxt.stock && (sd_fs.fs_type == FS_EXFAT || kb == KB_FIRMWARE_VERSION_500))
|
||||
{
|
||||
bool exfat_compat = _get_fs_exfat_compatible(&kip1_info, &ctxt.exo_ctx.fs_is_510);
|
||||
bool exfat_compat = _get_fs_exfat_compatible(&kip1_info, &ctxt.exo_ctx.hos_revision);
|
||||
|
||||
if (sd_fs.fs_type == FS_EXFAT && !exfat_compat)
|
||||
{
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
|
||||
typedef struct _exo_ctxt_t
|
||||
{
|
||||
bool fs_is_510;
|
||||
u32 hos_revision;
|
||||
bool no_user_exceptions;
|
||||
bool user_pmu;
|
||||
bool *usb3_force;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2018-2020 CTCaer
|
||||
* Copyright (c) 2018-2021 CTCaer
|
||||
* Copyright (c) 2019 Atmosphère-NX
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
|
@ -149,7 +149,7 @@ typedef struct _atm_fatal_error_ctx
|
|||
|
||||
#define EXO_FW_VER(mj, mn, rv) (((mj) << 24) | ((mn) << 16) | ((rv) << 8))
|
||||
|
||||
void config_exosphere(launch_ctxt_t *ctxt, u32 warmboot_base, bool exo_new)
|
||||
void config_exosphere(launch_ctxt_t *ctxt, u32 warmboot_base)
|
||||
{
|
||||
u32 exo_fw_no = 0;
|
||||
u32 exo_flags = 0;
|
||||
|
@ -175,39 +175,33 @@ void config_exosphere(launch_ctxt_t *ctxt, u32 warmboot_base, bool exo_new)
|
|||
exo_fw_no++;
|
||||
|
||||
// Feed old exosphere target versioning to new.
|
||||
if (exo_new)
|
||||
switch (exo_fw_no)
|
||||
{
|
||||
switch (exo_fw_no)
|
||||
{
|
||||
case 1 ... 4:
|
||||
case 6:
|
||||
exo_fw_no = EXO_FW_VER(exo_fw_no, 0, 0);
|
||||
break;
|
||||
case 5:
|
||||
if (!ctxt->exo_ctx.fs_is_510)
|
||||
exo_fw_no = EXO_FW_VER(5, 0, 0);
|
||||
else
|
||||
exo_fw_no = EXO_FW_VER(5, 1, 0);
|
||||
break;
|
||||
case 7:
|
||||
exo_fw_no = EXO_FW_VER(6, 2, 0);
|
||||
break;
|
||||
case 8 ... 9:
|
||||
exo_fw_no = EXO_FW_VER(exo_fw_no - 1, 0, 0);
|
||||
break;
|
||||
case 10:
|
||||
exo_fw_no = EXO_FW_VER(8, 1, 0);
|
||||
break;
|
||||
case 11:
|
||||
exo_fw_no = EXO_FW_VER(9, 0, 0);
|
||||
break;
|
||||
case 12:
|
||||
exo_fw_no = EXO_FW_VER(9, 1, 0);
|
||||
break;
|
||||
case 13 ... 15:
|
||||
exo_fw_no = EXO_FW_VER(exo_fw_no - 3, 0, 0);
|
||||
break;
|
||||
}
|
||||
case 1 ... 4:
|
||||
case 6:
|
||||
exo_fw_no = EXO_FW_VER(exo_fw_no, 0, 0);
|
||||
break;
|
||||
case 5:
|
||||
exo_fw_no = EXO_FW_VER(5, ctxt->exo_ctx.hos_revision, 0);
|
||||
break;
|
||||
case 7:
|
||||
exo_fw_no = EXO_FW_VER(6, 2, 0);
|
||||
break;
|
||||
case 8 ... 9:
|
||||
exo_fw_no = EXO_FW_VER(exo_fw_no - 1, 0, 0);
|
||||
break;
|
||||
case 10:
|
||||
exo_fw_no = EXO_FW_VER(8, 1, 0);
|
||||
break;
|
||||
case 11:
|
||||
exo_fw_no = EXO_FW_VER(9, 0, 0);
|
||||
break;
|
||||
case 12:
|
||||
exo_fw_no = EXO_FW_VER(9, 1, 0);
|
||||
break;
|
||||
case 13 ... 15:
|
||||
exo_fw_no = EXO_FW_VER(exo_fw_no - 3, ctxt->exo_ctx.hos_revision, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
// Parse exosphere.ini.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2018-2019 CTCaer
|
||||
* Copyright (c) 2018-2021 CTCaer
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
|
@ -19,7 +19,7 @@
|
|||
|
||||
#include <utils/types.h>
|
||||
|
||||
void config_exosphere(launch_ctxt_t *ctxt, u32 warmboot_base, bool exo_new);
|
||||
void config_exosphere(launch_ctxt_t *ctxt, u32 warmboot_base);
|
||||
void secmon_exo_check_panic();
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue