From 592b0484b9c1e943093dd93b720428ebfaa116d2 Mon Sep 17 00:00:00 2001 From: aerosoul94 Date: Sun, 9 Apr 2017 00:35:32 -0500 Subject: Add Wii U RPX/RPL loader src. Some bug fixes. --- src/wiiu/cafe.h | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 src/wiiu/cafe.h (limited to 'src/wiiu/cafe.h') diff --git a/src/wiiu/cafe.h b/src/wiiu/cafe.h new file mode 100644 index 0000000..8645426 --- /dev/null +++ b/src/wiiu/cafe.h @@ -0,0 +1,84 @@ + +#ifndef CAFE_H +#define CAFE_H + +#define ELF_IDENT_OS_CAFE 0xCA +#define ELF_IDENT_ABI_CAFE_RPL 0xFE + +#define ELF_FILETYPE_CAFE_RPL 0xfe01 + +#define ELF_SECTIONFLAGEX_CAFE_RPL_COMPZ 0x08000000 + +#define ELF_SECTIONTYPE_CAFE_RPL_EXPORTS 0x80000001 +#define ELF_SECTIONTYPE_CAFE_RPL_IMPORTS 0x80000002 +#define ELF_SECTIONTYPE_CAFE_RPL_CRCS 0x80000003 +#define ELF_SECTIONTYPE_CAFE_RPL_FILEINFO 0x80000004 + +typedef struct _CAFE_RPL_FILE_INFO_3_0 +{ + Elf32_Word mVersion; /* CAFE_RPL_FILE_INFO_VERSION */ + Elf32_Word mRegBytes_Text; + Elf32_Word mRegBytes_TextAlign; + Elf32_Word mRegBytes_Data; + Elf32_Word mRegBytes_DataAlign; + Elf32_Word mRegBytes_Read; + Elf32_Word mRegBytes_ReadAlign; + Elf32_Word mRegBytes_Temp; + Elf32_Word mTrampAdj; + Elf32_Word mSDABase; + Elf32_Word mSDA2Base; + Elf32_Word mSizeCoreStacks; + Elf32_Word mSrcFileNameOffset; /* from start of FILE_INFO */ + Elf32_Word mReserved[3]; +} CAFE_RPL_FILE_INFO_3_0; + +typedef struct _CAFE_RPL_FILE_INFO_4_1 +{ + Elf32_Word mVersion; + Elf32_Word mRegBytes_Text; + Elf32_Word mRegBytes_TexAlign; + Elf32_Word mRegBytes_Data; + Elf32_Word mRegBytes_DataAlign; + Elf32_Word mRegBytes_LoaderInfo; + Elf32_Word mRegBytes_LoaderInfoAlign; + Elf32_Word mRegBytes_Temp; + Elf32_Word mTrampAdj; + Elf32_Word mSDABase; + Elf32_Word mSDA2Base; + Elf32_Word mSizeCoreStacks; + Elf32_Word mSrcFileNameOffset; + Elf32_Word mFlags; + Elf32_Word mSysHeapBytes; + Elf32_Word mTagsOffset; +} CAFE_RPL_FILE_INFO_4_1; + +typedef struct _CAFE_RPL_FILE_INFO_4_2 +{ + Elf32_Word mVersion; + Elf32_Word mRegBytes_Text; + Elf32_Word mRegBytes_TextAlign; + Elf32_Word mRegBytes_Data; + Elf32_Word mRegBytes_DataAlign; + Elf32_Word mRegBytes_LoaderInfo; + Elf32_Word mRegBytes_LoaderInfoAlign; + Elf32_Word mRegBytes_Temp; + Elf32_Word mTrampAdj; + Elf32_Word mSDABase; + Elf32_Word mSDA2Base; + Elf32_Word mSizeCoreStacks; + Elf32_Word mSrcFileNameOffset; + Elf32_Word mFlags; + Elf32_Word mSysHeapBytes; + Elf32_Word mTagsOffset; + Elf32_Word mRPLMinSDKVersion; + Elf32_Word mCompressionLevel; + Elf32_Word mTrampAddition; + Elf32_Word mFileInfoPad; + Elf32_Word mSDKVersion; + Elf32_Word mSDKRevision; + Elf32_Word mTLSModuleIndex; + Elf32_Half mTLSAlignShift; + Elf32_Half mRuntimeFileInfoSize; +} CAFE_RPL_FILE_INFO_4_2; + +#endif /* CAFE_H */ \ No newline at end of file -- cgit v1.3.1