152a38012Sejakowatz // Pef.h 252a38012Sejakowatz 382b75665STyler Dauwalder #ifndef _PEF_H 482b75665STyler Dauwalder #define _PEF_H 552a38012Sejakowatz 652a38012Sejakowatz #include <SupportDefs.h> 752a38012Sejakowatz 852a38012Sejakowatz typedef char PefOSType[4]; 952a38012Sejakowatz 1052a38012Sejakowatz // container header 1152a38012Sejakowatz struct PEFContainerHeader { 1252a38012Sejakowatz PefOSType tag1; 1352a38012Sejakowatz PefOSType tag2; 1452a38012Sejakowatz PefOSType architecture; 1552a38012Sejakowatz uint32 formatVersion; 1652a38012Sejakowatz uint32 dateTimeStamp; 1752a38012Sejakowatz uint32 oldDefVersion; 1852a38012Sejakowatz uint32 oldImpVersion; 1952a38012Sejakowatz uint32 currentVersion; 2052a38012Sejakowatz uint16 sectionCount; 2152a38012Sejakowatz uint16 instSectionCount; 2252a38012Sejakowatz uint32 reservedA; 2352a38012Sejakowatz }; 2452a38012Sejakowatz 2552a38012Sejakowatz const char kPEFFileMagic1[4] = { 'J', 'o', 'y', '!' }; 2652a38012Sejakowatz const char kPEFFileMagic2[4] = { 'p', 'e', 'f', 'f' }; 2752a38012Sejakowatz const char kPEFArchitecturePPC[4] = { 'p', 'w', 'p', 'c' }; 2852a38012Sejakowatz const char kPEFContainerHeaderSize = 40; 2952a38012Sejakowatz 3052a38012Sejakowatz // section header 3152a38012Sejakowatz struct PEFSectionHeader { 3252a38012Sejakowatz int32 nameOffset; 3352a38012Sejakowatz uint32 defaultAddress; 3452a38012Sejakowatz uint32 totalSize; 3552a38012Sejakowatz uint32 unpackedSize; 3652a38012Sejakowatz uint32 packedSize; 3752a38012Sejakowatz uint32 containerOffset; 3852a38012Sejakowatz uint8 sectionKind; 3952a38012Sejakowatz uint8 shareKind; 4052a38012Sejakowatz uint8 alignment; 4152a38012Sejakowatz uint8 reservedA; 4252a38012Sejakowatz }; 4352a38012Sejakowatz 4452a38012Sejakowatz const uint32 kPEFSectionHeaderSize = 28; 4552a38012Sejakowatz 4682b75665STyler Dauwalder #endif // _PEF_H 47*09d84e61STyler Dauwalder 48*09d84e61STyler Dauwalder 49