| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | #------------------------------------------------------------------------------# mach file description## Since Java bytecode and Mach-O fat-files have the same magic number the test# must be preformed in the same "magic" sequence to get both right.  The long# at offset 4 in a fat file tells the number of architectures.  The short at# offset 4 in a Java bytecode file is the compiler minor version and the# short at offset 6 is the compiler major version.  Since there are only # only 18 labeled Mach-O architectures at current, and the first released # Java class format was version 43.0, we can safely choose any number# between 18 and 39 to test the number of architectures against# (and use as a hack).#0	belong		0xcafebabe>4	belong		>19		compiled Java class data,>>6     beshort		x	        version %d.>>4     beshort		x       	\b%d>4	belong		1		Mach-O fat file with 1 architecture>4	belong		>1# The following is necessary to support java class files.>>4	belong		<20		Mach-O fat file with %ld architectures#>>4	belong		<0xffff		Mach-O fat file with %ld architectures#0	lelong&0xfeffffff	0xfeedface	Mach-O>0	byte		0xcf		64-bit>12	lelong		1		object>12	lelong		2		executable>12	lelong		3		fixed virtual memory shared library>12	lelong		4		core>12	lelong		5		preload executable>12	lelong		6		dynamically linked shared library>12	lelong		7		dynamic linker>12	lelong		8		bundle>12	lelong		9		dynamically linked shared library stub>12	lelong		>9>>12	lelong		x		filetype=%ld>4	lelong		<0>>4	lelong		x		architecture=%ld>4	lelong		1		vax>4	lelong		2		romp>4	lelong		3		architecture=3>4	lelong		4		ns32032>4	lelong		5		ns32332>4	lelong		6		m68k>4	lelong		7		i386>4	lelong		8		mips>4	lelong		9		ns32532>4	lelong		10		architecture=10>4	lelong		11		hppa>4	lelong		12		acorn>4	lelong		13		m88k>4	lelong		14		sparc>4	lelong		15		i860-big>4	lelong		16		i860>4	lelong		17		rs6000>4	lelong		18		ppc>4	lelong		16777234	ppc64>4	lelong		>16777234>>4	lelong		x		architecture=%ld#0	belong&0xfffffffe	0xfeedface	Mach-O>3	byte		0xcf		64-bit>12	belong		1		object>12	belong		2		executable>12	belong		3		fixed virtual memory shared library>12	belong		4		core>12	belong		5		preload executable>12	belong		6               dynamically linked shared library>12	belong		7               dynamic linker>12	belong		8		bundle>12	belong		9		dynamically linked shared library stub>12	belong		>9>>12	belong		x		filetype=%ld>4	belong		<0>>4	belong		x		architecture=%ld>4	belong		1		vax>4	belong		2		romp>4	belong		3		architecture=3>4	belong		4		ns32032>4	belong		5		ns32332>4	belong		6		for m68k architecture# from NeXTstep 3.0 <mach/machine.h># i.e. mc680x0_all, ignore# >>8	belong		1		(mc68030)>>8	belong		2		(mc68040)>>8	belong		3		(mc68030 only)>4	belong		7		i386>4	belong		8		mips>4	belong		9		ns32532>4	belong		10		architecture=10>4	belong		11		hppa>4	belong		12		acorn>4	belong		13		m88k>4	belong		14		sparc>4	belong		15		i860-big>4	belong		16		i860>4	belong		17		rs6000>4	belong		18		ppc>4	belong		16777234	ppc64>4	belong		>16777234>>4	belong		x		architecture=%ld
 |