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
|