#------------------------------------------------------------------------------
# $File: netbsd,v 1.26 2019/01/01 03:11:23 christos Exp $
# netbsd: file(1) magic for NetBSD objects
#
# All new-style magic numbers are in network byte order.
# The old-style magic numbers are indistinguishable from the same magic
# numbers used in other systems, and are handled, for all those systems,
# in aout.
#
0 name netbsd-detail
>20 lelong x @%#x
>4 lelong >0 \b+T=%d
>8 lelong >0 \b+D=%d
>12 lelong >0 \b+B=%d
>16 lelong >0 \b+S=%d
>24 lelong >0 \b+TR=%d
>28 lelong >0 \b+TD=%d
0 name netbsd-4096
>0 byte &0x80
>>20 lelong <4096 shared library
>>20 lelong =4096 dynamically linked executable
>>20 lelong >4096 dynamically linked executable
>0 byte ^0x80 executable
>16 lelong >0 not stripped
0 name netbsd-8192
>0 byte &0x80
>>20 lelong <8192 shared library
>>20 lelong =8192 dynamically linked executable
>>20 lelong >8192 dynamically linked executable
>0 byte ^0x80 executable
>16 lelong >0 not stripped
>0 use netbsd-detail
0 name netbsd-normal
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80
>>0 byte &0x40 position independent
>>20 lelong !0 executable
>>20 lelong =0 object file
>16 lelong >0 not stripped
>0 use netbsd-detail
0 name netbsd-pure
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80 executable
>16 lelong >0 not stripped
>0 use netbsd-detail
0 name netbsd-core
>12 string >\0 from '%s'
>32 lelong !0 (signal %d)
0 belong&0377777777 041400413 a.out NetBSD/i386 demand paged
>0 use netbsd-4096
0 belong&0377777777 041400410 a.out NetBSD/i386 pure
>0 use netbsd-pure
0 belong&0377777777 041400407 a.out NetBSD/i386
>0 use netbsd-normal
0 belong&0377777777 041400507 a.out NetBSD/i386 core
>0 use netbsd-core
0 belong&0377777777 041600413 a.out NetBSD/m68k demand paged
>0 use \^netbsd-8192
0 belong&0377777777 041600410 a.out NetBSD/m68k pure
>0 use \^netbsd-pure
0 belong&0377777777 041600407 a.out NetBSD/m68k
>0 use \^netbsd-normal
0 belong&0377777777 041600507 a.out NetBSD/m68k core
>0 use \^netbsd-core
0 belong&0377777777 042000413 a.out NetBSD/m68k4k demand paged
>0 use \^netbsd-4096
0 belong&0377777777 042000410 a.out NetBSD/m68k4k pure
>0 use \^netbsd-pure
0 belong&0377777777 042000407 a.out NetBSD/m68k4k
>0 use \^netbsd-normal
0 belong&0377777777 042000507 a.out NetBSD/m68k4k core
>0 use \^netbsd-core
0 belong&0377777777 042200413 a.out NetBSD/ns32532 demand paged
>0 use netbsd-4096
0 belong&0377777777 042200410 a.out NetBSD/ns32532 pure
>0 use netbsd-pure
0 belong&0377777777 042200407 a.out NetBSD/ns32532
>0 use netbsd-normal
0 belong&0377777777 042200507 a.out NetBSD/ns32532 core
>0 use netbsd-core
0 belong&0377777777 045200507 a.out NetBSD/powerpc core
>0 use netbsd-core
0 belong&0377777777 042400413 a.out NetBSD/SPARC demand paged
>0 use \^netbsd-8192
0 belong&0377777777 042400410 a.out NetBSD/SPARC pure
>0 use \^netbsd-pure
0 belong&0377777777 042400407 a.out NetBSD/SPARC
>0 use \^netbsd-normal
0 belong&0377777777 042400507 a.out NetBSD/SPARC core
>0 use \^netbsd-core
0 belong&0377777777 042600413 a.out NetBSD/pmax demand paged
>0 use netbsd-4096
0 belong&0377777777 042600410 a.out NetBSD/pmax pure
>0 use \^netbsd-pure
0 belong&0377777777 042600407 a.out NetBSD/pmax
>0 use netbsd-normal
0 belong&0377777777 042600507 a.out NetBSD/pmax core
>0 use netbsd-core
0 belong&0377777777 043000413 a.out NetBSD/vax 1k demand paged
>0 use netbsd-4096
0 belong&0377777777 043000410 a.out NetBSD/vax 1k pure
>0 use netbsd-pure
0 belong&0377777777 043000407 a.out NetBSD/vax 1k
>0 use netbsd-normal
0 belong&0377777777 043000507 a.out NetBSD/vax 1k core
>0 use netbsd-core
0 belong&0377777777 045400413 a.out NetBSD/vax 4k demand paged
>0 use netbsd-4096
0 belong&0377777777 045400410 a.out NetBSD/vax 4k pure
>0 use netbsd-pure
0 belong&0377777777 045400407 a.out NetBSD/vax 4k
>0 use netbsd-normal
0 belong&0377777777 045400507 a.out NetBSD/vax 4k core
>0 use netbsd-core
# NetBSD/alpha does not support (and has never supported) a.out objects,
# so no rules are provided for them. NetBSD/alpha ELF objects are
# dealt with in "elf".
0 lelong 0x00070185 ECOFF NetBSD/alpha binary
>10 leshort 0x0001 not stripped
>10 leshort 0x0000 stripped
0 belong&0377777777 043200507 a.out NetBSD/alpha core
>12 string >\0 from '%s'
>32 lelong !0 (signal %d)
0 belong&0377777777 043400413 a.out NetBSD/mips demand paged
>0 use \^netbsd-8192
>16 belong >0 not stripped
0 belong&0377777777 043400410 a.out NetBSD/mips pure
>0 use netbsd-pure
0 belong&0377777777 043400407 a.out NetBSD/mips
>0 use netbsd-normal
0 belong&0377777777 043400507 a.out NetBSD/mips core
>0 use netbsd-core
0 belong&0377777777 043600413 a.out NetBSD/arm32 demand paged
>0 use netbsd-4096
0 belong&0377777777 043600410 a.out NetBSD/arm32 pure
>0 use netbsd-pure
0 belong&0377777777 043600407 a.out NetBSD/arm32
>0 use netbsd-normal
# NetBSD/arm26 has always used ELF objects, but it shares a core file
# format with NetBSD/arm32.
0 belong&0377777777 043600507 a.out NetBSD/arm core
>0 use netbsd-core
# Kernel core dump format
0 belong&0x0000ffff 0x00008fca NetBSD kernel core file
>0 belong&0x03ff0000 0x00000000 \b, Unknown
>0 belong&0x03ff0000 0x00010000 \b, sun 68010/68020
>0 belong&0x03ff0000 0x00020000 \b, sun 68020
>0 belong&0x03ff0000 0x00640000 \b, 386 PC
>0 belong&0x03ff0000 0x00860000 \b, i386 BSD
>0 belong&0x03ff0000 0x00870000 \b, m68k BSD (8K pages)
>0 belong&0x03ff0000 0x00880000 \b, m68k BSD (4K pages)
>0 belong&0x03ff0000 0x00890000 \b, ns32532 BSD
>0 belong&0x03ff0000 0x008a0000 \b, SPARC/32 BSD
>0 belong&0x03ff0000 0x008b0000 \b, pmax BSD
>0 belong&0x03ff0000 0x008c0000 \b, vax BSD (1K pages)
>0 belong&0x03ff0000 0x008d0000 \b, alpha BSD
>0 belong&0x03ff0000 0x008e0000 \b, mips BSD (Big Endian)
>0 belong&0x03ff0000 0x008f0000 \b, arm6 BSD
>0 belong&0x03ff0000 0x00900000 \b, m68k BSD (2K pages)
>0 belong&0x03ff0000 0x00910000 \b, sh3 BSD
>0 belong&0x03ff0000 0x00950000 \b, ppc BSD (Big Endian)
>0 belong&0x03ff0000 0x00960000 \b, vax BSD (4K pages)
>0 belong&0x03ff0000 0x00970000 \b, mips1 BSD
>0 belong&0x03ff0000 0x00980000 \b, mips2 BSD
>0 belong&0x03ff0000 0x00990000 \b, m88k BSD
>0 belong&0x03ff0000 0x00920000 \b, parisc BSD
>0 belong&0x03ff0000 0x009b0000 \b, sh5/64 BSD
>0 belong&0x03ff0000 0x009c0000 \b, SPARC/64 BSD
>0 belong&0x03ff0000 0x009d0000 \b, amd64 BSD
>0 belong&0x03ff0000 0x009e0000 \b, sh5/32 BSD
>0 belong&0x03ff0000 0x009f0000 \b, ia64 BSD
>0 belong&0x03ff0000 0x00b70000 \b, aarch64 BSD
>0 belong&0x03ff0000 0x00b80000 \b, or1k BSD
>0 belong&0x03ff0000 0x00b90000 \b, Risk-V BSD
>0 belong&0x03ff0000 0x00c80000 \b, hp200 BSD
>0 belong&0x03ff0000 0x012c0000 \b, hp300 BSD
>0 belong&0x03ff0000 0x020b0000 \b, hp800 HP-UX
>0 belong&0x03ff0000 0x020c0000 \b, hp200/hp300 HP-UX
>0 belong&0xfc000000 0x04000000 \b, CPU
>0 belong&0xfc000000 0x08000000 \b, DATA
>0 belong&0xfc000000 0x10000000 \b, STACK
>4 leshort x \b, (headersize = %d
>6 leshort x \b, segmentsize = %d
>8 lelong x \b, segments = %d)
# little endian only for now.
0 name ktrace
>4 leshort 7
>>6 leshort <3 NetBSD ktrace file version %d
>>>12 string x from %s
>>>56 string x \b, emulation %s
>>>8 lelong <65536 \b, pid=%d
56 string netbsd
>0 use ktrace
56 string linux
>0 use ktrace
56 string sunos
>0 use ktrace
56 string hpux
>0 use ktrace