mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2024-11-18 18:06:40 +00:00
e8306361f0
start.s, init.c, linker.ld and linker.specs are meant to be re-used by user applications, should they remove the defines from init.c and the .chainloader* sections from the linker script
43 lines
1 KiB
C
43 lines
1 KiB
C
#ifndef FUSEE_LOADER_H
|
|
#define FUSEE_LOADER_H
|
|
|
|
#include "utils.h"
|
|
#include "chainloader.h"
|
|
|
|
typedef struct {
|
|
char path[0x100];
|
|
const char *key;
|
|
uintptr_t load_address;
|
|
size_t load_size;
|
|
} load_file_t;
|
|
|
|
typedef struct {
|
|
const char *bct0;
|
|
uintptr_t chainload_entrypoint;
|
|
size_t file_id_of_entrypoint;
|
|
size_t nb_files;
|
|
load_file_t package2_loadfile;
|
|
load_file_t exosphere_loadfile;
|
|
load_file_t tsecfw_loadfile;
|
|
load_file_t warmboot_loadfile;
|
|
char custom_splash_path[0x100];
|
|
char file_paths[CHAINLOADER_MAX_ENTRIES][0x100];
|
|
} loader_ctx_t;
|
|
|
|
#define LOADER_ENTRYPOINT_KEY "entrypoint"
|
|
#define LOADER_LOADLIST_KEY "loadlist"
|
|
#define LOADER_CUSTOMSPLASH_KEY "custom_splash"
|
|
|
|
#define LOADER_PACKAGE2_KEY "package2"
|
|
#define LOADER_EXOSPHERE_KEY "exosphere"
|
|
#define LOADER_TSECFW_KEY "tsecfw"
|
|
#define LOADER_WARMBOOT_KEY "warmboot"
|
|
|
|
/* TODO: Should we allow files bigger than 16 MB? */
|
|
//#define LOADER_FILESIZE_MAX 0x01000000
|
|
|
|
loader_ctx_t *get_loader_ctx(void);
|
|
|
|
void load_payload(const char *bct0);
|
|
|
|
#endif
|