summaryrefslogtreecommitdiff
path: root/src/wiiu/cafe.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wiiu/cafe.h')
-rw-r--r--src/wiiu/cafe.h84
1 files changed, 84 insertions, 0 deletions
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