ref: c79199da3e3565e28c2220a8474712a9fabc76e4
dir: /src/libmach/coff32/coff32probe.c/
#include <stdio.h>
#include <scc/mach.h>
#include "../libmach.h"
#include "coff32.h"
struct arch {
char *name;
unsigned char magic[2];
int type;
};
static struct arch archs[] = {
"coff32-i386", "\x4c\x01", OBJ(COFF32, ARCH386, LITTLE_ENDIAN),
"coff32-z80", "\x5a\x80", OBJ(COFF32, ARCHZ80, LITTLE_ENDIAN),
NULL,
};
int
coff32probe(unsigned char *buf, char **name)
{
struct arch *ap;
for (ap = archs; ap->name; ap++) {
if (ap->magic[0] == buf[0] && ap->magic[1] == buf[1]) {
if (name)
*name = ap->name;
return ap->type;
}
}
return -1;
}