Package com.sun.jna

## Class ELFAnalyser

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

-     class ELFAnalyser
      extends java.lang.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

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static ELFAnalyser` | `analyse​(java.lang.String filename)` |
    `java.lang.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 Detail

    - #### analyse

          public static ELFAnalyser analyse​(java.lang.String filename)
                                     throws java.io.IOException

      Throws:
        `java.io.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 java.lang.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