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**); |