diff --git a/bootloader/gfx/gfx.c b/bootloader/gfx/gfx.c index 4a2095e..46551c9 100644 --- a/bootloader/gfx/gfx.c +++ b/bootloader/gfx/gfx.c @@ -19,6 +19,10 @@ #include #include "gfx.h" +// Global gfx console and context. +gfx_ctxt_t gfx_ctxt; +gfx_con_t gfx_con; + static const u8 _gfx_font[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 032 ( ) 0x00, 0x30, 0x30, 0x18, 0x18, 0x00, 0x0C, 0x00, // Char 033 (!) diff --git a/bootloader/gfx/gfx.h b/bootloader/gfx/gfx.h index 8916957..564b085 100644 --- a/bootloader/gfx/gfx.h +++ b/bootloader/gfx/gfx.h @@ -49,7 +49,7 @@ void gfx_set_rect_argb(const u32 *buf, u32 size_x, u32 size_y, u32 pos_x, u32 po void gfx_render_bmp_argb(const u32 *buf, u32 size_x, u32 size_y, u32 pos_x, u32 pos_y); // Global gfx console and context. -gfx_ctxt_t gfx_ctxt; -gfx_con_t gfx_con; +extern gfx_ctxt_t gfx_ctxt; +extern gfx_con_t gfx_con; #endif diff --git a/bootloader/hos/pkg2.c b/bootloader/hos/pkg2.c index 1512a2e..d85f937 100644 --- a/bootloader/hos/pkg2.c +++ b/bootloader/hos/pkg2.c @@ -36,6 +36,10 @@ extern hekate_config h_cfg; extern const u8 package2_keyseed[]; +u32 pkg2_newkern_ini1_val; +u32 pkg2_newkern_ini1_start; +u32 pkg2_newkern_ini1_end; + #ifdef KIP1_PATCH_DEBUG #include "../utils/util.h" #define DPRINTF(...) gfx_printf(__VA_ARGS__) diff --git a/bootloader/hos/pkg2.h b/bootloader/hos/pkg2.h index 891ab5d..3360247 100644 --- a/bootloader/hos/pkg2.h +++ b/bootloader/hos/pkg2.h @@ -30,9 +30,9 @@ #define PKG2_NEWKERN_GET_INI1_HEURISTIC 0xD2800015 // Offset of OP + 12 is the INI1 offset. #define PKG2_NEWKERN_START 0x800 -u32 pkg2_newkern_ini1_val; -u32 pkg2_newkern_ini1_start; -u32 pkg2_newkern_ini1_end; +extern u32 pkg2_newkern_ini1_val; +extern u32 pkg2_newkern_ini1_start; +extern u32 pkg2_newkern_ini1_end; typedef struct _kernel_patch_t { diff --git a/bootloader/mem/minerva.c b/bootloader/mem/minerva.c index adc87ee..2607c4b 100644 --- a/bootloader/mem/minerva.c +++ b/bootloader/mem/minerva.c @@ -27,6 +27,7 @@ #include "../soc/t210.h" extern volatile nyx_storage_t *nyx_str; +void (*minerva_cfg)(mtc_config_t *mtc_cfg, void *); u32 minerva_init() { diff --git a/bootloader/mem/minerva.h b/bootloader/mem/minerva.h index 00228f4..9be55c9 100644 --- a/bootloader/mem/minerva.h +++ b/bootloader/mem/minerva.h @@ -57,7 +57,7 @@ typedef enum FREQ_1600 = 1600000 } minerva_freq_t; -void (*minerva_cfg)(mtc_config_t *mtc_cfg, void *); +extern void (*minerva_cfg)(mtc_config_t *mtc_cfg, void *); u32 minerva_init(); void minerva_change_freq(minerva_freq_t freq); void minerva_periodic_training(); diff --git a/bootloader/storage/emummc.c b/bootloader/storage/emummc.c index 1d20ce1..4fffd6b 100644 --- a/bootloader/storage/emummc.c +++ b/bootloader/storage/emummc.c @@ -29,6 +29,8 @@ #include "../utils/types.h" extern hekate_config h_cfg; +emummc_cfg_t emu_cfg; + void emummc_load_cfg() { diff --git a/bootloader/storage/emummc.h b/bootloader/storage/emummc.h index 4887735..6175623 100644 --- a/bootloader/storage/emummc.h +++ b/bootloader/storage/emummc.h @@ -47,7 +47,7 @@ typedef struct _emummc_cfg_t int fs_ver; } emummc_cfg_t; -emummc_cfg_t emu_cfg; +extern emummc_cfg_t emu_cfg; void emummc_load_cfg(); bool emummc_set_path(char *path); diff --git a/bootloader/storage/nx_sd.c b/bootloader/storage/nx_sd.c index 9f9ce29..0a791ad 100644 --- a/bootloader/storage/nx_sd.c +++ b/bootloader/storage/nx_sd.c @@ -25,6 +25,11 @@ static bool sd_mounted = false; static u32 sd_mode = SD_UHS_SDR82; + +sdmmc_t sd_sdmmc; +sdmmc_storage_t sd_storage; +FATFS sd_fs; + u32 sd_get_mode() { return sd_mode; diff --git a/bootloader/storage/nx_sd.h b/bootloader/storage/nx_sd.h index 2447872..22e5f3b 100644 --- a/bootloader/storage/nx_sd.h +++ b/bootloader/storage/nx_sd.h @@ -30,9 +30,9 @@ enum SD_UHS_SDR82 = 3, }; -sdmmc_t sd_sdmmc; -sdmmc_storage_t sd_storage; -FATFS sd_fs; +extern sdmmc_t sd_sdmmc; +extern sdmmc_storage_t sd_storage; +extern FATFS sd_fs; u32 sd_get_mode(); int sd_init_retry(bool power_cycle); diff --git a/bootloader/storage/sdmmc.h b/bootloader/storage/sdmmc.h index 34f0d99..aacc26a 100644 --- a/bootloader/storage/sdmmc.h +++ b/bootloader/storage/sdmmc.h @@ -21,7 +21,7 @@ #include "../utils/types.h" #include "sdmmc_driver.h" -u32 sd_power_cycle_time_start; +extern u32 sd_power_cycle_time_start; typedef enum _sdmmc_type { diff --git a/bootloader/storage/sdmmc_driver.c b/bootloader/storage/sdmmc_driver.c index d77c579..8e32f5d 100644 --- a/bootloader/storage/sdmmc_driver.c +++ b/bootloader/storage/sdmmc_driver.c @@ -32,6 +32,8 @@ //#define DPRINTF(...) gfx_printf(__VA_ARGS__) #define DPRINTF(...) +u32 sd_power_cycle_time_start; + /*! SCMMC controller base addresses. */ static const u32 _sdmmc_bases[4] = { 0x700B0000, diff --git a/nyx/nyx_gui/frontend/gui.c b/nyx/nyx_gui/frontend/gui.c index c20587b..8e40a45 100644 --- a/nyx/nyx_gui/frontend/gui.c +++ b/nyx/nyx_gui/frontend/gui.c @@ -59,6 +59,28 @@ extern lv_res_t launch_payload(lv_obj_t *list); static bool disp_init_done = false; static bool do_reload = false; +lv_style_t hint_small_style; +lv_style_t hint_small_style_white; +lv_style_t monospace_text; + +lv_obj_t *payload_list; +lv_obj_t *autorcm_btn; +lv_obj_t *close_btn; + +lv_img_dsc_t *icon_switch; +lv_img_dsc_t *icon_payload; +lv_img_dsc_t *icon_lakka; + +lv_img_dsc_t *hekate_bg; + +lv_style_t btn_transp_rel, btn_transp_pr, btn_transp_tgl_rel, btn_transp_tgl_pr; +lv_style_t ddlist_transp_bg, ddlist_transp_sel; +lv_style_t tabview_btn_pr, tabview_btn_tgl_pr; + +lv_style_t mbox_darken; + +char *text_color; + typedef struct _gui_status_bar_ctx { lv_obj_t *mid; diff --git a/nyx/nyx_gui/frontend/gui.h b/nyx/nyx_gui/frontend/gui.h index ae3a9a8..126e6f1 100644 --- a/nyx/nyx_gui/frontend/gui.h +++ b/nyx/nyx_gui/frontend/gui.h @@ -34,27 +34,27 @@ typedef struct _emmc_tool_gui_t bool raw_emummc; } emmc_tool_gui_t; -lv_style_t hint_small_style; -lv_style_t hint_small_style_white; -lv_style_t monospace_text; +extern lv_style_t hint_small_style; +extern lv_style_t hint_small_style_white; +extern lv_style_t monospace_text; -lv_obj_t *payload_list; -lv_obj_t *autorcm_btn; -lv_obj_t *close_btn; +extern lv_obj_t *payload_list; +extern lv_obj_t *autorcm_btn; +extern lv_obj_t *close_btn; -lv_img_dsc_t *icon_switch; -lv_img_dsc_t *icon_payload; -lv_img_dsc_t *icon_lakka; +extern lv_img_dsc_t *icon_switch; +extern lv_img_dsc_t *icon_payload; +extern lv_img_dsc_t *icon_lakka; -lv_img_dsc_t *hekate_bg; +extern lv_img_dsc_t *hekate_bg; -lv_style_t btn_transp_rel, btn_transp_pr, btn_transp_tgl_rel, btn_transp_tgl_pr; -lv_style_t ddlist_transp_bg, ddlist_transp_sel; -lv_style_t tabview_btn_pr, tabview_btn_tgl_pr; +extern lv_style_t btn_transp_rel, btn_transp_pr, btn_transp_tgl_rel, btn_transp_tgl_pr; +extern lv_style_t ddlist_transp_bg, ddlist_transp_sel; +extern lv_style_t tabview_btn_pr, tabview_btn_tgl_pr; -lv_style_t mbox_darken; +extern lv_style_t mbox_darken; -char *text_color; +extern char *text_color; void reload_nyx(); lv_img_dsc_t *bmp_to_lvimg_obj(const char *path); diff --git a/nyx/nyx_gui/frontend/gui_emmc_tools.c b/nyx/nyx_gui/frontend/gui_emmc_tools.c index 39d4010..8a5e1ed 100644 --- a/nyx/nyx_gui/frontend/gui_emmc_tools.c +++ b/nyx/nyx_gui/frontend/gui_emmc_tools.c @@ -39,6 +39,8 @@ extern hekate_config h_cfg; extern void emmcsn_path_impl(char *path, char *sub_dir, char *filename, sdmmc_storage_t *storage); +lv_obj_t *ums_mbox; + typedef struct _emmc_backup_buttons_t { lv_obj_t *emmc_boot; diff --git a/nyx/nyx_gui/frontend/gui_tools.h b/nyx/nyx_gui/frontend/gui_tools.h index 7295488..d01ccef 100644 --- a/nyx/nyx_gui/frontend/gui_tools.h +++ b/nyx/nyx_gui/frontend/gui_tools.h @@ -19,7 +19,7 @@ #include "../libs/lvgl/lvgl.h" -lv_obj_t *ums_mbox; +extern lv_obj_t *ums_mbox; void create_tab_tools(lv_theme_t *th, lv_obj_t *parent); void nyx_run_ums(void *param); diff --git a/nyx/nyx_gui/gfx/gfx.c b/nyx/nyx_gui/gfx/gfx.c index 139259d..47a0a32 100644 --- a/nyx/nyx_gui/gfx/gfx.c +++ b/nyx/nyx_gui/gfx/gfx.c @@ -19,6 +19,10 @@ #include #include "gfx.h" +// Global gfx console and context. +gfx_ctxt_t gfx_ctxt; +gfx_con_t gfx_con; + static const u8 _gfx_font[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 032 ( ) 0x00, 0x30, 0x30, 0x18, 0x18, 0x00, 0x0C, 0x00, // Char 033 (!) diff --git a/nyx/nyx_gui/gfx/gfx.h b/nyx/nyx_gui/gfx/gfx.h index 4017ff1..2ed25aa 100644 --- a/nyx/nyx_gui/gfx/gfx.h +++ b/nyx/nyx_gui/gfx/gfx.h @@ -44,7 +44,7 @@ void gfx_set_rect_land_pitch(u32 *fb, const u32 *buf, u32 stride, u32 pos_x, u32 void gfx_set_rect_land_block(u32 *fb, const u32 *buf, u32 pos_x, u32 pos_y, u32 pos_x2, u32 pos_y2); // Global gfx console and context. -gfx_ctxt_t gfx_ctxt; -gfx_con_t gfx_con; +extern gfx_ctxt_t gfx_ctxt; +extern gfx_con_t gfx_con; #endif diff --git a/nyx/nyx_gui/hos/pkg2.c b/nyx/nyx_gui/hos/pkg2.c index 70b766c..c8382ae 100644 --- a/nyx/nyx_gui/hos/pkg2.c +++ b/nyx/nyx_gui/hos/pkg2.c @@ -30,6 +30,10 @@ extern const u8 package2_keyseed[]; +u32 pkg2_newkern_ini1_val; +u32 pkg2_newkern_ini1_start; +u32 pkg2_newkern_ini1_end; + /*#include "util.h" #define DPRINTF(...) gfx_printf(__VA_ARGS__) #define DEBUG_PRINTING*/ diff --git a/nyx/nyx_gui/hos/pkg2.h b/nyx/nyx_gui/hos/pkg2.h index 1a48f33..ffe97ac 100644 --- a/nyx/nyx_gui/hos/pkg2.h +++ b/nyx/nyx_gui/hos/pkg2.h @@ -30,9 +30,9 @@ #define PKG2_NEWKERN_GET_INI1_HEURISTIC 0xD2800015 // Offset of OP + 12 is the INI1 offset. #define PKG2_NEWKERN_START 0x800 -u32 pkg2_newkern_ini1_val; -u32 pkg2_newkern_ini1_start; -u32 pkg2_newkern_ini1_end; +extern u32 pkg2_newkern_ini1_val; +extern u32 pkg2_newkern_ini1_start; +extern u32 pkg2_newkern_ini1_end; typedef struct _pkg2_hdr_t { diff --git a/nyx/nyx_gui/mem/minerva.c b/nyx/nyx_gui/mem/minerva.c index a797435..71c9dbf 100644 --- a/nyx/nyx_gui/mem/minerva.c +++ b/nyx/nyx_gui/mem/minerva.c @@ -28,6 +28,8 @@ extern volatile nyx_storage_t *nyx_str; +void (*minerva_cfg)(mtc_config_t *mtc_cfg, void *); + u32 minerva_init() { u32 curr_ram_idx = 0; diff --git a/nyx/nyx_gui/mem/minerva.h b/nyx/nyx_gui/mem/minerva.h index 00228f4..9be55c9 100644 --- a/nyx/nyx_gui/mem/minerva.h +++ b/nyx/nyx_gui/mem/minerva.h @@ -57,7 +57,7 @@ typedef enum FREQ_1600 = 1600000 } minerva_freq_t; -void (*minerva_cfg)(mtc_config_t *mtc_cfg, void *); +extern void (*minerva_cfg)(mtc_config_t *mtc_cfg, void *); u32 minerva_init(); void minerva_change_freq(minerva_freq_t freq); void minerva_periodic_training(); diff --git a/nyx/nyx_gui/storage/nx_emmc.c b/nyx/nyx_gui/storage/nx_emmc.c index 3a37382..aa58d60 100644 --- a/nyx/nyx_gui/storage/nx_emmc.c +++ b/nyx/nyx_gui/storage/nx_emmc.c @@ -21,6 +21,10 @@ #include "../mem/heap.h" #include "../utils/list.h" +sdmmc_t emmc_sdmmc; +sdmmc_storage_t emmc_storage; +FATFS emmc_fs; + void nx_emmc_gpt_parse(link_t *gpt, sdmmc_storage_t *storage) { gpt_t *gpt_buf = (gpt_t *)calloc(NX_GPT_NUM_BLOCKS, NX_EMMC_BLOCKSIZE); diff --git a/nyx/nyx_gui/storage/nx_emmc.h b/nyx/nyx_gui/storage/nx_emmc.h index 1a9fd22..b3a90dc 100644 --- a/nyx/nyx_gui/storage/nx_emmc.h +++ b/nyx/nyx_gui/storage/nx_emmc.h @@ -36,9 +36,9 @@ typedef struct _emmc_part_t link_t link; } emmc_part_t; -sdmmc_t emmc_sdmmc; -sdmmc_storage_t emmc_storage; -FATFS emmc_fs; +extern sdmmc_t emmc_sdmmc; +extern sdmmc_storage_t emmc_storage; +extern FATFS emmc_fs; void nx_emmc_gpt_parse(link_t *gpt, sdmmc_storage_t *storage); void nx_emmc_gpt_free(link_t *gpt); diff --git a/nyx/nyx_gui/storage/nx_sd.c b/nyx/nyx_gui/storage/nx_sd.c index a6e3d61..97b36c9 100644 --- a/nyx/nyx_gui/storage/nx_sd.c +++ b/nyx/nyx_gui/storage/nx_sd.c @@ -27,6 +27,10 @@ static bool sd_init_done = false; static u16 sd_errors[3] = { 0 }; // Init and Read/Write errors. static u32 sd_mode = SD_UHS_SDR104; +sdmmc_t sd_sdmmc; +sdmmc_storage_t sd_storage; +FATFS sd_fs; + void sd_error_count_increment(u8 type) { switch (type) diff --git a/nyx/nyx_gui/storage/nx_sd.h b/nyx/nyx_gui/storage/nx_sd.h index dac90aa..45f0e57 100644 --- a/nyx/nyx_gui/storage/nx_sd.h +++ b/nyx/nyx_gui/storage/nx_sd.h @@ -38,9 +38,9 @@ enum SD_ERROR_RW_RETRY = 2 }; -sdmmc_t sd_sdmmc; -sdmmc_storage_t sd_storage; -FATFS sd_fs; +extern sdmmc_t sd_sdmmc; +extern sdmmc_storage_t sd_storage; +extern FATFS sd_fs; void sd_error_count_increment(u8 type); u16 *sd_get_error_count(); diff --git a/nyx/nyx_gui/storage/sdmmc.c b/nyx/nyx_gui/storage/sdmmc.c index 8ee27e3..9198fe3 100644 --- a/nyx/nyx_gui/storage/sdmmc.c +++ b/nyx/nyx_gui/storage/sdmmc.c @@ -28,6 +28,8 @@ //#define DPRINTF(...) gfx_printf(__VA_ARGS__) #define DPRINTF(...) +u32 sd_power_cycle_time_start; + static inline u32 unstuff_bits(u32 *resp, u32 start, u32 size) { const u32 mask = (size < 32 ? 1 << size : 0) - 1; diff --git a/nyx/nyx_gui/storage/sdmmc.h b/nyx/nyx_gui/storage/sdmmc.h index 34f0d99..aacc26a 100644 --- a/nyx/nyx_gui/storage/sdmmc.h +++ b/nyx/nyx_gui/storage/sdmmc.h @@ -21,7 +21,7 @@ #include "../utils/types.h" #include "sdmmc_driver.h" -u32 sd_power_cycle_time_start; +extern u32 sd_power_cycle_time_start; typedef enum _sdmmc_type {