| typedef struct Macho Macho; | 
 | typedef struct MachoCmd MachoCmd; | 
 |  | 
 | enum | 
 | { | 
 | 	MachoCpuVax = 1, | 
 | 	MachoCpu68000 = 6, | 
 | 	MachoCpu386 = 7, | 
 | 	MachoCpuMips = 8, | 
 | 	MachoCpu98000 = 10, | 
 | 	MachoCpuHppa = 11, | 
 | 	MachoCpuArm = 12, | 
 | 	MachoCpu88000 = 13, | 
 | 	MachoCpuSparc = 14, | 
 | 	MachoCpu860 = 15, | 
 | 	MachoCpuAlpha = 16, | 
 | 	MachoCpuPower = 18, | 
 |  | 
 | 	MachoCmdSegment = 1, | 
 | 	MachoCmdSymtab = 2, | 
 | 	MachoCmdSymseg = 3, | 
 | 	MachoCmdThread = 4, | 
 |  | 
 | 	MachoFileObject = 1, | 
 | 	MachoFileExecutable = 2, | 
 | 	MachoFileFvmlib = 3, | 
 | 	MachoFileCore = 4, | 
 | 	MachoFilePreload = 5 | 
 | }; | 
 |  | 
 | struct MachoCmd | 
 | { | 
 | 	int type; | 
 | 	ulong off; | 
 | 	ulong size; | 
 | 	struct { | 
 | 		char name[16+1]; | 
 | 		ulong vmaddr; | 
 | 		ulong vmsize; | 
 | 		ulong fileoff; | 
 | 		ulong filesz; | 
 | 		ulong maxprot; | 
 | 		ulong initprot; | 
 | 		ulong nsect; | 
 | 		ulong flags; | 
 | 	} seg; | 
 | 	struct { | 
 | 		ulong symoff; | 
 | 		ulong nsyms; | 
 | 		ulong stroff; | 
 | 		ulong strsize; | 
 | 	} sym; | 
 | }; | 
 |  | 
 | struct Macho | 
 | { | 
 | 	int fd; | 
 | 	uint cputype; | 
 | 	uint subcputype; | 
 | 	ulong filetype; | 
 | 	ulong flags; | 
 | 	MachoCmd *cmd; | 
 | 	uint ncmd; | 
 | 	u32int (*e4)(uchar*); | 
 | 	int (*coreregs)(Macho*, uchar**); | 
 | }; | 
 |  | 
 | Macho *machoopen(char*); | 
 | Macho *machoinit(int); | 
 | void machoclose(Macho*); | 
 | int coreregsmachopower(Macho*, uchar**); |