1// Pef.h
2
3#ifndef PEF_H
4#define PEF_H
5
6#include <SupportDefs.h>
7
8typedef char	PefOSType[4];
9
10// container header
11struct PEFContainerHeader {
12	PefOSType	tag1;
13	PefOSType	tag2;
14	PefOSType	architecture;
15	uint32		formatVersion;
16	uint32		dateTimeStamp;
17	uint32		oldDefVersion;
18	uint32		oldImpVersion;
19	uint32		currentVersion;
20	uint16		sectionCount;
21	uint16		instSectionCount;
22	uint32		reservedA;
23};
24
25const char	kPEFFileMagic1[4]		= { 'J', 'o', 'y', '!' };
26const char	kPEFFileMagic2[4]		= { 'p', 'e', 'f', 'f' };
27const char	kPEFArchitecturePPC[4]	= { 'p', 'w', 'p', 'c' };
28const char	kPEFContainerHeaderSize	= 40;
29
30// section header
31struct PEFSectionHeader {
32	int32	nameOffset;
33	uint32	defaultAddress;
34	uint32	totalSize;
35	uint32	unpackedSize;
36	uint32	packedSize;
37	uint32	containerOffset;
38	uint8	sectionKind;
39	uint8	shareKind;
40	uint8	alignment;
41	uint8	reservedA;
42};
43
44const uint32 kPEFSectionHeaderSize		= 28;
45
46
47
48#endif	// PEF_H
49