Top Description Fields Constructors Methods
jogamp.common.os.elf

public Class ElfHeaderPart1

extends Object
Class Inheritance
Imports
java.io.IOException, .RandomAccessFile, java.nio.ByteBuffer, jogamp.common.Debug, jogamp.common.os.MachineDataInfoRuntime, com.jogamp.common.os.MachineDataInfo, .Platform.ABIType, .Platform.CPUType, .Platform.OSType

ELF ABI Header Part-1

Part-1 can be read w/o knowledge of CPUType!

References:

Field Summary

Modifier and TypeField and Description
public final Platform.ABIType
public final String
cpuName

Lower case CPUType name

public final Platform.CPUType
pack-priv static final boolean
private final byte[]
public static final int
EI_ABIVERSION

ident byte #8

This byte identifies the version of the ABI to which the object is targeted.

public static final int
EI_CLASS

ident byte #4

public static final int
EI_DATA

ident byte #5

public static int
EI_NIDENT

Size of e_ident array -

public static final int
EI_OSABI

ident byte #7

public static final int
EI_PAD

ident byte #9 ..

public static final int
EI_VERSION

ident byte #6

public static final byte
public static final byte
public static final byte
public static final byte
public static final byte
public static final byte
public static final byte
ELFMAG0

ident byte #0 -

public static final byte
ELFMAG1

ident byte #1 -

public static final byte
ELFMAG2

ident byte #2 -

public static final byte
ELFMAG3

ident byte #3 -

public static final byte
ELFOSABI_ARM

ARM architecture ABI -

public static final byte
ELFOSABI_AROS

Amiga Research OS ABI -

public static final byte
ELFOSABI_FENIXOS

The FenixOS highly scalable multi-core OS 64-255 Architecture-specific value range -

public static final byte
ELFOSABI_FREEBSD

FreeBSD ABI -

public static final byte
ELFOSABI_HPUX

HP-UX ABI -

public static final byte
ELFOSABI_IRIX

IRIX ABI -

public static final byte
ELFOSABI_LINUX

Linux ABI -

public static final byte
ELFOSABI_MODESTO

Novell Modesto ABI -

public static final byte
ELFOSABI_NETBSD

NetBSD ABI -

public static final byte
public static final byte
ELFOSABI_NSK

Hewlett-Packard Non-Stop Kernel ABI -

public static final byte
ELFOSABI_OPENBSD

Open BSD ABI -

public static final byte
ELFOSABI_OPENVMS

Open VMS ABI -

public static final byte
ELFOSABI_SOLARIS

Solaris ABI -

public static final byte
ELFOSABI_STANDALONE

Stand-alone (embedded) ABI -

public static final byte
ELFOSABI_SYSV

Unix System V ABI -

public static final byte
ELFOSABI_TRU64

TRU64 UNIX ABI -

public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
ET_CORE

A core file -

public static final short
ET_DYN

A shared object -

public static final short
ET_EXEC

An executable file -

public static final short
ET_NONE

An unknown type -

public static final short
ET_REL

A relocatable file -

public static final byte
public static final byte
public final MachineDataInfo.StaticConfig
public final Ehdr_p1
raw

Public access to the raw elf header part-1 (CPU/ABI independent read)

Constructor Summary

AccessConstructor and Description
pack-priv
ElfHeaderPart1(final Platform.OSType
TODO
osType
,
final RandomAccessFile
ELF Header bytes
in
)

Method Summary

Modifier and TypeMethod and Description
public final int
getArchClassBits()

Returns the architecture class in bits, 32 for ELFCLASS32, 64 for ELFCLASS64 and 0 for ELFCLASSNONE.

public final byte
getDataEncodingMode()

Returns the processor's data encoding, i.e. ELFDATA2LSB, ELFDATA2MSB or ELFDATANONE;

public final short
getMachine()

Returns the required architecture for the file, e.g. EM_386, ..

public final byte
getOSABI()

Returns the operating system and ABI for this file, 3 == Linux.

public final byte
getOSABIVersion()

Returns the version of the OSABI for this file.

public final short
getType()

Returns the object file type, e.g. ET_EXEC, ..

public final byte
getVersion()

Returns the ELF file version, should be EV_CURRENT.

public final boolean
isBigEndian()

Returns whether the processor's data encoding is ELFDATA2MSB.

public static final boolean
isIdentityValid(final byte[] ident)

public final boolean
isLittleEndian()

Returns whether the processor's data encoding is ELFDATA2LSB.

public final boolean
isNoneEndian()

Returns whether the processor's data encoding is ELFDATANONE.

public static ElfHeaderPart1
read(final Platform.OSType
TODO
osType
,
final RandomAccessFile
input stream of a binary file at position zero
in
)

Note

The input stream shall stay untouch to be able to read sections!

public final String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAllwaitwaitwait

Field Detail

abiTypeback to summary
public final Platform.ABIType abiType
cpuNameback to summary
public final String cpuName

Lower case CPUType name

cpuTypeback to summary
public final Platform.CPUType cpuType
DEBUGback to summary
pack-priv static final boolean DEBUG
E_identback to summary
private final byte[] E_ident
EI_ABIVERSIONback to summary
public static final int EI_ABIVERSION

ident byte #8

This byte identifies the version of the ABI to which the object is targeted. This field is used to distinguish among incompatible versions of an ABI. The interpretation of this version number is dependent on the ABI identified by the EI_OSABI field. Applications conforming to this specification use the value 0.

EI_CLASSback to summary
public static final int EI_CLASS

ident byte #4

EI_DATAback to summary
public static final int EI_DATA

ident byte #5

EI_NIDENTback to summary
public static int EI_NIDENT

Size of e_ident array -

EI_OSABIback to summary
public static final int EI_OSABI

ident byte #7

EI_PADback to summary
public static final int EI_PAD

ident byte #9 .. ?

Start of padding. These bytes are reserved and set to zero. Programs which read them should ignore them. The value for EI_PAD will change in the future if currently unused bytes are given meanings.

EI_VERSIONback to summary
public static final int EI_VERSION

ident byte #6

ELFCLASS32back to summary
public static final byte ELFCLASS32
ELFCLASS64back to summary
public static final byte ELFCLASS64
ELFCLASSNONEback to summary
public static final byte ELFCLASSNONE
ELFDATA2LSBback to summary
public static final byte ELFDATA2LSB
ELFDATA2MSBback to summary
public static final byte ELFDATA2MSB
ELFDATANONEback to summary
public static final byte ELFDATANONE
ELFMAG0back to summary
public static final byte ELFMAG0

ident byte #0 -

ELFMAG1back to summary
public static final byte ELFMAG1

ident byte #1 -

ELFMAG2back to summary
public static final byte ELFMAG2

ident byte #2 -

ELFMAG3back to summary
public static final byte ELFMAG3

ident byte #3 -

ELFOSABI_ARMback to summary
public static final byte ELFOSABI_ARM

ARM architecture ABI -

ELFOSABI_AROSback to summary
public static final byte ELFOSABI_AROS

Amiga Research OS ABI -

ELFOSABI_FENIXOSback to summary
public static final byte ELFOSABI_FENIXOS

The FenixOS highly scalable multi-core OS 64-255 Architecture-specific value range -

ELFOSABI_FREEBSDback to summary
public static final byte ELFOSABI_FREEBSD

FreeBSD ABI -

ELFOSABI_HPUXback to summary
public static final byte ELFOSABI_HPUX

HP-UX ABI -

ELFOSABI_IRIXback to summary
public static final byte ELFOSABI_IRIX

IRIX ABI -

ELFOSABI_LINUXback to summary
public static final byte ELFOSABI_LINUX

Linux ABI -

ELFOSABI_MODESTOback to summary
public static final byte ELFOSABI_MODESTO

Novell Modesto ABI -

ELFOSABI_NETBSDback to summary
public static final byte ELFOSABI_NETBSD

NetBSD ABI -

ELFOSABI_NONEback to summary
public static final byte ELFOSABI_NONE
ELFOSABI_NSKback to summary
public static final byte ELFOSABI_NSK

Hewlett-Packard Non-Stop Kernel ABI -

ELFOSABI_OPENBSDback to summary
public static final byte ELFOSABI_OPENBSD

Open BSD ABI -

ELFOSABI_OPENVMSback to summary
public static final byte ELFOSABI_OPENVMS

Open VMS ABI -

ELFOSABI_SOLARISback to summary
public static final byte ELFOSABI_SOLARIS

Solaris ABI -

ELFOSABI_STANDALONEback to summary
public static final byte ELFOSABI_STANDALONE

Stand-alone (embedded) ABI -

ELFOSABI_SYSVback to summary
public static final byte ELFOSABI_SYSV

Unix System V ABI -

ELFOSABI_TRU64back to summary
public static final byte ELFOSABI_TRU64

TRU64 UNIX ABI -

EM_386back to summary
public static final short EM_386
EM_486back to summary
public static final short EM_486
EM_68HC05back to summary
public static final short EM_68HC05
EM_68HC08back to summary
public static final short EM_68HC08
EM_68HC11back to summary
public static final short EM_68HC11
EM_68HC12back to summary
public static final short EM_68HC12
EM_68HC16back to summary
public static final short EM_68HC16
EM_68Kback to summary
public static final short EM_68K
EM_8051back to summary
public static final short EM_8051
EM_860back to summary
public static final short EM_860
EM_88Kback to summary
public static final short EM_88K
EM_960back to summary
public static final short EM_960
EM_AARCH64back to summary
public static final short EM_AARCH64
EM_ALTERA_NIOS2back to summary
public static final short EM_ALTERA_NIOS2
EM_ARCback to summary
public static final short EM_ARC
EM_ARC_A5back to summary
public static final short EM_ARC_A5
EM_ARCAback to summary
public static final short EM_ARCA
EM_ARMback to summary
public static final short EM_ARM
EM_ARM184back to summary
public static final short EM_ARM184
EM_AVRback to summary
public static final short EM_AVR
EM_AVR32back to summary
public static final short EM_AVR32
EM_BLACKFINback to summary
public static final short EM_BLACKFIN
EM_C166back to summary
public static final short EM_C166
EM_CEback to summary
public static final short EM_CE
EM_COLDFIREback to summary
public static final short EM_COLDFIRE
EM_CRback to summary
public static final short EM_CR
EM_CR16back to summary
public static final short EM_CR16
EM_CRAYNV2back to summary
public static final short EM_CRAYNV2
EM_CRISback to summary
public static final short EM_CRIS
EM_CRXback to summary
public static final short EM_CRX
EM_CUDAback to summary
public static final short EM_CUDA
EM_CYPRESS_M8Cback to summary
public static final short EM_CYPRESS_M8C
EM_D10Vback to summary
public static final short EM_D10V
EM_D30Vback to summary
public static final short EM_D30V
EM_DSP24back to summary
public static final short EM_DSP24
EM_DSPIC30Fback to summary
public static final short EM_DSPIC30F
EM_DXPback to summary
public static final short EM_DXP
EM_ECOG1back to summary
public static final short EM_ECOG1
EM_ECOG16back to summary
public static final short EM_ECOG16
EM_ECOG1Xback to summary
public static final short EM_ECOG1X
EM_ECOG2back to summary
public static final short EM_ECOG2
EM_ETPUback to summary
public static final short EM_ETPU
EM_EXCESSback to summary
public static final short EM_EXCESS
EM_F2MC16back to summary
public static final short EM_F2MC16
EM_FIREPATHback to summary
public static final short EM_FIREPATH
EM_FR20back to summary
public static final short EM_FR20
EM_FR30back to summary
public static final short EM_FR30
EM_FX66back to summary
public static final short EM_FX66
EM_H8_300back to summary
public static final short EM_H8_300
EM_H8_300Hback to summary
public static final short EM_H8_300H
EM_H8_500back to summary
public static final short EM_H8_500
EM_H8Sback to summary
public static final short EM_H8S
EM_HUANYback to summary
public static final short EM_HUANY
EM_IA_64back to summary
public static final short EM_IA_64
EM_INTEL181back to summary
public static final short EM_INTEL181
EM_INTEL182back to summary
public static final short EM_INTEL182
EM_IP2Kback to summary
public static final short EM_IP2K
EM_JAVELINback to summary
public static final short EM_JAVELIN
EM_L1OMback to summary
public static final short EM_L1OM
EM_LATTICEMICO32back to summary
public static final short EM_LATTICEMICO32
EM_M16Cback to summary
public static final short EM_M16C
EM_M32back to summary
public static final short EM_M32
EM_M32Cback to summary
public static final short EM_M32C
EM_M32Rback to summary
public static final short EM_M32R
EM_MANIKback to summary
public static final short EM_MANIK
EM_MAXback to summary
public static final short EM_MAX
EM_MAXQ30back to summary
public static final short EM_MAXQ30
EM_MCOREback to summary
public static final short EM_MCORE
EM_MCST_ELBRUSback to summary
public static final short EM_MCST_ELBRUS
EM_ME16back to summary
public static final short EM_ME16
EM_METAGback to summary
public static final short EM_METAG
EM_MICROBLAZEback to summary
public static final short EM_MICROBLAZE
EM_MIPSback to summary
public static final short EM_MIPS
EM_MIPS_RS3_LEback to summary
public static final short EM_MIPS_RS3_LE
EM_MIPS_Xback to summary
public static final short EM_MIPS_X
EM_MMAback to summary
public static final short EM_MMA
EM_MMDSP_PLUSback to summary
public static final short EM_MMDSP_PLUS
EM_MMIXback to summary
public static final short EM_MMIX
EM_MN10200back to summary
public static final short EM_MN10200
EM_MN10300back to summary
public static final short EM_MN10300
EM_MSP430back to summary
public static final short EM_MSP430
EM_NCPUback to summary
public static final short EM_NCPU
EM_NDR1back to summary
public static final short EM_NDR1
EM_NDS32back to summary
public static final short EM_NDS32
EM_NONEback to summary
public static final short EM_NONE
EM_NS32Kback to summary
public static final short EM_NS32K
EM_OLD_ALPHAback to summary
public static final short EM_OLD_ALPHA
EM_OPENRISCback to summary
public static final short EM_OPENRISC
EM_PARISCback to summary
public static final short EM_PARISC
EM_PCPback to summary
public static final short EM_PCP
EM_PDP10back to summary
public static final short EM_PDP10
EM_PDP11back to summary
public static final short EM_PDP11
EM_PDSPback to summary
public static final short EM_PDSP
EM_PJback to summary
public static final short EM_PJ
EM_PPCback to summary
public static final short EM_PPC
EM_PPC64back to summary
public static final short EM_PPC64
EM_PRISMback to summary
public static final short EM_PRISM
EM_QDSP6back to summary
public static final short EM_QDSP6
EM_R32Cback to summary
public static final short EM_R32C
EM_RCEback to summary
public static final short EM_RCE
EM_res016back to summary
public static final short EM_res016
EM_res133back to summary
public static final short EM_res133
EM_RH32back to summary
public static final short EM_RH32
EM_RS08back to summary
public static final short EM_RS08
EM_RXback to summary
public static final short EM_RX
EM_S370back to summary
public static final short EM_S370
EM_S390back to summary
public static final short EM_S390
EM_SCOREback to summary
public static final short EM_SCORE
EM_SCORE7back to summary
public static final short EM_SCORE7
EM_SE_C17back to summary
public static final short EM_SE_C17
EM_SE_C33back to summary
public static final short EM_SE_C33
EM_SEPback to summary
public static final short EM_SEP
EM_SHback to summary
public static final short EM_SH
EM_SLE9Xback to summary
public static final short EM_SLE9X
EM_SNP1Kback to summary
public static final short EM_SNP1K
EM_SPARCback to summary
public static final short EM_SPARC
EM_SPARC32PLUSback to summary
public static final short EM_SPARC32PLUS
EM_SPARCV9back to summary
public static final short EM_SPARCV9
EM_SPUback to summary
public static final short EM_SPU
EM_ST100back to summary
public static final short EM_ST100
EM_ST19back to summary
public static final short EM_ST19
EM_ST200back to summary
public static final short EM_ST200
EM_ST7back to summary
public static final short EM_ST7
EM_ST9PLUSback to summary
public static final short EM_ST9PLUS
EM_STARCOREback to summary
public static final short EM_STARCORE
EM_STM8back to summary
public static final short EM_STM8
EM_STXP7Xback to summary
public static final short EM_STXP7X
EM_SVXback to summary
public static final short EM_SVX
EM_TI_C2000back to summary
public static final short EM_TI_C2000
EM_TI_C5500back to summary
public static final short EM_TI_C5500
EM_TI_C6000back to summary
public static final short EM_TI_C6000
EM_TILE64back to summary
public static final short EM_TILE64
EM_TILEPROback to summary
public static final short EM_TILEPRO
EM_TINYJback to summary
public static final short EM_TINYJ
EM_TMM_GPPback to summary
public static final short EM_TMM_GPP
EM_TPCback to summary
public static final short EM_TPC
EM_TRICOREback to summary
public static final short EM_TRICORE
EM_TRIMEDIAback to summary
public static final short EM_TRIMEDIA
EM_TSK3000back to summary
public static final short EM_TSK3000
EM_UNICOREback to summary
public static final short EM_UNICORE
EM_V800back to summary
public static final short EM_V800
EM_V850back to summary
public static final short EM_V850
EM_VAXback to summary
public static final short EM_VAX
EM_VIDEOCOREback to summary
public static final short EM_VIDEOCORE
EM_VIDEOCORE3back to summary
public static final short EM_VIDEOCORE3
EM_VPP550back to summary
public static final short EM_VPP550
EM_X86_64back to summary
public static final short EM_X86_64
EM_XGATEback to summary
public static final short EM_XGATE
EM_XIMO16back to summary
public static final short EM_XIMO16
EM_XTENSAback to summary
public static final short EM_XTENSA
EM_ZSPback to summary
public static final short EM_ZSP
ET_COREback to summary
public static final short ET_CORE

A core file -

ET_DYNback to summary
public static final short ET_DYN

A shared object -

ET_EXECback to summary
public static final short ET_EXEC

An executable file -

ET_NONEback to summary
public static final short ET_NONE

An unknown type -

ET_RELback to summary
public static final short ET_REL

A relocatable file -

EV_CURRENTback to summary
public static final byte EV_CURRENT
EV_NONEback to summary
public static final byte EV_NONE
machDescback to summary
public final MachineDataInfo.StaticConfig machDesc
rawback to summary
public final Ehdr_p1 raw

Public access to the raw elf header part-1 (CPU/ABI independent read)

Constructor Detail

ElfHeaderPart1back to summary
pack-priv ElfHeaderPart1(final Platform.OSType osType, final RandomAccessFile in) throws IllegalArgumentException, IOException
Parameters
osType:Platform.OSType

TODO

in:RandomAccessFile

ELF Header bytes

Exceptions
IllegalArgumentException:
if the given buffer does not represent an ELF Header

Method Detail

getArchClassBitsback to summary
public final int getArchClassBits()

Returns the architecture class in bits, 32 for ELFCLASS32, 64 for ELFCLASS64 and 0 for ELFCLASSNONE.

getDataEncodingModeback to summary
public final byte getDataEncodingMode()

Returns the processor's data encoding, i.e. ELFDATA2LSB, ELFDATA2MSB or ELFDATANONE;

getMachineback to summary
public final short getMachine()

Returns the required architecture for the file, e.g. EM_386, ..

getOSABIback to summary
public final byte getOSABI()

Returns the operating system and ABI for this file, 3 == Linux.

Note

Often not used.

getOSABIVersionback to summary
public final byte getOSABIVersion()

Returns the version of the OSABI for this file.

getTypeback to summary
public final short getType()

Returns the object file type, e.g. ET_EXEC, ..

getVersionback to summary
public final byte getVersion()

Returns the ELF file version, should be EV_CURRENT.

isBigEndianback to summary
public final boolean isBigEndian()

Returns whether the processor's data encoding is ELFDATA2MSB.

isIdentityValidback to summary
public static final boolean isIdentityValid(final byte[] ident)
isLittleEndianback to summary
public final boolean isLittleEndian()

Returns whether the processor's data encoding is ELFDATA2LSB.

isNoneEndianback to summary
public final boolean isNoneEndian()

Returns whether the processor's data encoding is ELFDATANONE.

readback to summary
public static ElfHeaderPart1 read(final Platform.OSType osType, final RandomAccessFile in) throws IOException, IllegalArgumentException

Note

The input stream shall stay untouch to be able to read sections!

Parameters
osType:Platform.OSType

TODO

in:RandomAccessFile

input stream of a binary file at position zero

Exceptions
IOException:
if reading from the given input stream fails or less then ELF Header size bytes
IllegalArgumentException:
if the given input stream does not represent an ELF Header
toStringback to summary
public final String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object.

Returns:String

a string representation of the object

Annotations
@Override