SysCheck-ModMii-Edition/include/sys.h
2013-10-12 18:38:34 +00:00

117 lines
2.2 KiB
C

#ifndef _TOOLS_H_
#define _TOOLS_H_
#define HAVE_AHBPROT ((*(vu32*)0xcd800064 == 0xFFFFFFFF) ? 1 : 0)
#define MEM_REG_BASE 0xd8b4000
#define MEM_PROT (MEM_REG_BASE + 0x20a)
#define HOLLYWOOD_VERSION (vu32*)0x80003138
#define LOADER_STUB (vu32*)0x80001800
enum {
APP_TITLE = 0,
APP_IOS,
BLANK_LINE,
TEXT_REGION,
SYSMENU,
PRIILOADER,
DVD,
HBC,
HBF,
HOLLYWOOD,
CONSOLE_ID,
COUNTRY,
BOOT2_VERSION,
NR_OF_TITLES,
NR_OF_IOS,
BLANK,
LAST
};
typedef struct {
s32 revision;
bool isStub;
bool infoFakeSignature;
bool infoESIdentify;
bool infoFlashAccess;
bool infoNANDAccess;
bool infoBoot2Access;
bool infoUSB2;
bool infoVersionPatch;
s32 baseIOS;
s32 mloadVersion;
char info[0x10];
u8 infoContent;
u32 titleID;
u8 num_contents;
} IOS;
typedef struct {
bool hasInfo;
u32 realRevision;
char info[0x10];
} sysMenu;
typedef struct _U8Header
{
u32 fcc;
u32 rootNodeOffset;
u32 headerSize;
u32 dataOffset;
u8 zeroes[16];
} __attribute__((packed)) U8Header;
typedef struct _U8Entry
{
struct
{
u32 fileType :8;
u32 nameOffset :24;
};
u32 fileOffset;
union
{
u32 fileLength;
u32 numEntries;
};
} __attribute__( ( packed ) ) U8Entry;
#ifdef __cplusplus
extern "C"
{
#endif
// Prototypes
bool GetCertificates(void);
u32 GetSysMenuVersion(void);
float GetSysMenuNintendoVersion(u32 sysVersion);
u32 GetBoot2Version(void);
u32 GetDeviceID(void);
bool CheckFakeSignature(void);
bool CheckESIdentify(void);
bool CheckFlashAccess(void);
bool CheckNANDAccess(void);
bool CheckBoot2Access(void);
bool CheckMload(void);
bool CheckUSB2(u32);
bool IsKnownStub(u32, s32);
s32 GetTMD(u64 TicketID, signed_blob **Output, u32 *Length);
char GetBootFilename(u64 titleId);
s32 read_file_from_nand(char *filepath, u8 **buffer, u32 *filesize);
int NandStartup();
void NandShutdown();
int checkSysLoader();
void transmitSyscheck(char ReportBuffer[200][100], int *lines);
u32 IOSPATCH_Apply();
s32 brute_tmd(tmd *p_tmd);
bool CheckVersionPatch(void);
bool checkISFSinRAM();
u32 es_set_ahbprot();
void *allocate_memory(u32 size);
void logfile(const char *format, ...);
s32 get_miosinfo(char *str);
#ifdef __cplusplus
}
#endif
#endif