Package com.sun.jna

# Class ELFAnalyser

java.lang.Object
com.sun.jna.ELFAnalyser

class ELFAnalyser extends Object
Analyse an ELF file for platform specific attributes.

Primary use-case: Detect whether the java binary is arm hardfloat or softfloat.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `(package private) static class`
  `ELFAnalyser.ArmAeabiAttributesTag`
  `(package private) static class`
  `ELFAnalyser.ELFSectionHeaderEntry`
  `(package private) static class`
  `ELFAnalyser.ELFSectionHeaders`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static ELFAnalyser`
  `analyse(String filename)`
  `String`
  `getFilename()`
  `boolean`
  `is64Bit()`
  `boolean`
  `isArm()`
  `boolean`
  `isArmEabiAapcsVfp()`
  `boolean`
  `isArmHardFloat()`
  `boolean`
  `isArmHardFloatFlag()`
  `boolean`
  `isArmSoftFloatFlag()`
  `boolean`
  `isBigEndian()`
  `boolean`
  `isELF()`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Method Details

  - ### analyse

    public static ELFAnalyser analyse(String filename) throws IOException
    Throws:
      `IOException`

  - ### isELF

    public boolean isELF()
    Returns:
      true if the parsed file was detected to be an ELF file

  - ### is64Bit

    public boolean is64Bit()
    Returns:
      true if the parsed file was detected to be for a 64bit architecture and pointers are expected to be 8byte wide

  - ### isBigEndian

    public boolean isBigEndian()
    Returns:
      true if the parsed file is detected to be big endian, false if the file is little endian

  - ### getFilename

    public String getFilename()
    Returns:
      filename of the parsed file

  - ### isArmHardFloat

    public boolean isArmHardFloat()

  - ### isArmEabiAapcsVfp

    public boolean isArmEabiAapcsVfp()
    Returns:
      true if file was detected to specify, that FP parameters/result passing conforms to AAPCS, VFP variant (hardfloat)

  - ### isArmHardFloatFlag

    public boolean isArmHardFloatFlag()
    Returns:
      true if file was detected to conform to the hardware floating-point procedure-call standard via ELF flags

  - ### isArmSoftFloatFlag

    public boolean isArmSoftFloatFlag()
    Returns:
      true if file was detected to conform to the software floating-point procedure-call standard via ELF flags

  - ### isArm

    public boolean isArm()
    Returns:
      true if the parsed file was detected to be build for the arm architecture