mirror of
https://github.com/CTCaer/hekate
synced 2024-12-22 19:31:12 +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);
|
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 fs_ids_cnt;
|
||||||
u32 sha_buf[32 / sizeof(u32)];
|
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))
|
if (!memcmp(sha_buf, kip_ids[fs_idx].hash, 8))
|
||||||
{
|
{
|
||||||
// Check if it's 5.1.0.
|
// HOS Api special handling.
|
||||||
if ((fs_idx & ~1) == 16)
|
if ((fs_idx & ~1) == 16) // Check if it's 5.1.0.
|
||||||
*fs_is_510 = true;
|
*hos_revision = 1;
|
||||||
|
else if ((fs_idx & ~1) == 34) // Check if it's 10.2.0.
|
||||||
|
*hos_revision = 2;
|
||||||
|
|
||||||
// Check if FAT32-only.
|
// Check if FAT32-only.
|
||||||
if (!(fs_idx & 1))
|
if (!(fs_idx & 1))
|
||||||
|
@ -827,7 +829,7 @@ int hos_launch(ini_sec_t *cfg)
|
||||||
config_kip1patch(&ctxt, "nogc");
|
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.
|
// Check if secmon is exosphere.
|
||||||
if (ctxt.secmon)
|
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.
|
// 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))
|
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)
|
if (sd_fs.fs_type == FS_EXFAT && !exfat_compat)
|
||||||
{
|
{
|
||||||
|
|
|
@ -49,7 +49,7 @@
|
||||||
|
|
||||||
typedef struct _exo_ctxt_t
|
typedef struct _exo_ctxt_t
|
||||||
{
|
{
|
||||||
bool fs_is_510;
|
u32 hos_revision;
|
||||||
bool no_user_exceptions;
|
bool no_user_exceptions;
|
||||||
bool user_pmu;
|
bool user_pmu;
|
||||||
bool *usb3_force;
|
bool *usb3_force;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2018-2020 CTCaer
|
* Copyright (c) 2018-2021 CTCaer
|
||||||
* Copyright (c) 2019 Atmosphère-NX
|
* Copyright (c) 2019 Atmosphère-NX
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
* 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))
|
#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_fw_no = 0;
|
||||||
u32 exo_flags = 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++;
|
exo_fw_no++;
|
||||||
|
|
||||||
// Feed old exosphere target versioning to new.
|
// Feed old exosphere target versioning to new.
|
||||||
if (exo_new)
|
switch (exo_fw_no)
|
||||||
{
|
{
|
||||||
switch (exo_fw_no)
|
case 1 ... 4:
|
||||||
{
|
case 6:
|
||||||
case 1 ... 4:
|
exo_fw_no = EXO_FW_VER(exo_fw_no, 0, 0);
|
||||||
case 6:
|
break;
|
||||||
exo_fw_no = EXO_FW_VER(exo_fw_no, 0, 0);
|
case 5:
|
||||||
break;
|
exo_fw_no = EXO_FW_VER(5, ctxt->exo_ctx.hos_revision, 0);
|
||||||
case 5:
|
break;
|
||||||
if (!ctxt->exo_ctx.fs_is_510)
|
case 7:
|
||||||
exo_fw_no = EXO_FW_VER(5, 0, 0);
|
exo_fw_no = EXO_FW_VER(6, 2, 0);
|
||||||
else
|
break;
|
||||||
exo_fw_no = EXO_FW_VER(5, 1, 0);
|
case 8 ... 9:
|
||||||
break;
|
exo_fw_no = EXO_FW_VER(exo_fw_no - 1, 0, 0);
|
||||||
case 7:
|
break;
|
||||||
exo_fw_no = EXO_FW_VER(6, 2, 0);
|
case 10:
|
||||||
break;
|
exo_fw_no = EXO_FW_VER(8, 1, 0);
|
||||||
case 8 ... 9:
|
break;
|
||||||
exo_fw_no = EXO_FW_VER(exo_fw_no - 1, 0, 0);
|
case 11:
|
||||||
break;
|
exo_fw_no = EXO_FW_VER(9, 0, 0);
|
||||||
case 10:
|
break;
|
||||||
exo_fw_no = EXO_FW_VER(8, 1, 0);
|
case 12:
|
||||||
break;
|
exo_fw_no = EXO_FW_VER(9, 1, 0);
|
||||||
case 11:
|
break;
|
||||||
exo_fw_no = EXO_FW_VER(9, 0, 0);
|
case 13 ... 15:
|
||||||
break;
|
exo_fw_no = EXO_FW_VER(exo_fw_no - 3, ctxt->exo_ctx.hos_revision, 0);
|
||||||
case 12:
|
break;
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse exosphere.ini.
|
// 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
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
* under the terms and conditions of the GNU General Public License,
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
#include <utils/types.h>
|
#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();
|
void secmon_exo_check_panic();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue