2018-02-21 18:57:51 +00:00
|
|
|
#ifndef EXOSPHERE_BOOTCONFIG_H
|
|
|
|
#define EXOSPHERE_BOOTCONFIG_H
|
|
|
|
|
2018-02-24 20:46:57 +00:00
|
|
|
#include <stdbool.h>
|
2018-02-21 18:57:51 +00:00
|
|
|
#include <stdint.h>
|
|
|
|
|
|
|
|
/* This provides management for Switch BootConfig. */
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
uint8_t unsigned_config[0x200];
|
|
|
|
uint8_t signature[0x100];
|
2018-02-21 19:52:39 +00:00
|
|
|
uint8_t signed_config[0x100];
|
|
|
|
uint8_t unknown_config[0x240];
|
2018-02-21 18:57:51 +00:00
|
|
|
} bootconfig_t;
|
|
|
|
|
2018-02-21 19:52:39 +00:00
|
|
|
void bootconfig_load_and_verify(const bootconfig_t *bootconfig);
|
2018-02-21 18:57:51 +00:00
|
|
|
void bootconfig_clear(void);
|
|
|
|
|
2018-02-21 19:52:39 +00:00
|
|
|
/* Actual configuration getters. */
|
2018-02-23 03:58:39 +00:00
|
|
|
bool bootconfig_is_package2_plaintext(void);
|
|
|
|
bool bootconfig_is_package2_unsigned(void);
|
2018-02-24 15:25:38 +00:00
|
|
|
bool bootconfig_disable_program_verification(void);
|
2018-02-25 09:21:52 +00:00
|
|
|
bool bootconfig_is_debug_mode(void);
|
|
|
|
|
|
|
|
uint64_t bootconfig_get_memory_arrangement(void);
|
|
|
|
uint64_t bootconfig_get_kernel_memory_configuration(void);
|
2018-02-21 19:52:39 +00:00
|
|
|
|
2018-02-21 18:57:51 +00:00
|
|
|
#endif
|