/* !---- DO NOT EDIT: This file autogenerated by com/jogamp/gluegen/JavaEmitter.java on Thu Feb 07 17:54:18 CET 2013 ----! */


package jogamp.common.os.elf;

import com.jogamp.common.nio.*;
import jogamp.common.os.MachineDescriptionRuntime;


public class Ehdr {

  StructAccessor accessor;

  private static final int mdIdx = MachineDescriptionRuntime.getStatic().ordinal();

  private static final int[] Ehdr_size = new int[] { 52 /* ARMle_EABI */, 52 /* X86_32_UNIX */, 64 /* X86_64_UNIX */, 52 /* X86_32_MACOS */, 52 /* X86_32_WINDOWS */, 64 /* X86_64_WINDOWS */  };
  private static final int[] e_ident_offset = new int[] { 0 /* ARMle_EABI */, 0 /* X86_32_UNIX */, 0 /* X86_64_UNIX */, 0 /* X86_32_MACOS */, 0 /* X86_32_WINDOWS */, 0 /* X86_64_WINDOWS */ };
  private static final int[] e_type_offset = new int[] { 16 /* ARMle_EABI */, 16 /* X86_32_UNIX */, 16 /* X86_64_UNIX */, 16 /* X86_32_MACOS */, 16 /* X86_32_WINDOWS */, 16 /* X86_64_WINDOWS */ };
  private static final int[] e_machine_offset = new int[] { 18 /* ARMle_EABI */, 18 /* X86_32_UNIX */, 18 /* X86_64_UNIX */, 18 /* X86_32_MACOS */, 18 /* X86_32_WINDOWS */, 18 /* X86_64_WINDOWS */ };
  private static final int[] e_version_offset = new int[] { 20 /* ARMle_EABI */, 20 /* X86_32_UNIX */, 20 /* X86_64_UNIX */, 20 /* X86_32_MACOS */, 20 /* X86_32_WINDOWS */, 20 /* X86_64_WINDOWS */ };
  private static final int[] e_entry_offset = new int[] { 24 /* ARMle_EABI */, 24 /* X86_32_UNIX */, 24 /* X86_64_UNIX */, 24 /* X86_32_MACOS */, 24 /* X86_32_WINDOWS */, 24 /* X86_64_WINDOWS */ };
  private static final int[] e_phoff_offset = new int[] { 28 /* ARMle_EABI */, 28 /* X86_32_UNIX */, 32 /* X86_64_UNIX */, 28 /* X86_32_MACOS */, 28 /* X86_32_WINDOWS */, 32 /* X86_64_WINDOWS */ };
  private static final int[] e_shoff_offset = new int[] { 32 /* ARMle_EABI */, 32 /* X86_32_UNIX */, 40 /* X86_64_UNIX */, 32 /* X86_32_MACOS */, 32 /* X86_32_WINDOWS */, 40 /* X86_64_WINDOWS */ };
  private static final int[] e_flags_offset = new int[] { 36 /* ARMle_EABI */, 36 /* X86_32_UNIX */, 48 /* X86_64_UNIX */, 36 /* X86_32_MACOS */, 36 /* X86_32_WINDOWS */, 48 /* X86_64_WINDOWS */ };
  private static final int[] e_ehsize_offset = new int[] { 40 /* ARMle_EABI */, 40 /* X86_32_UNIX */, 52 /* X86_64_UNIX */, 40 /* X86_32_MACOS */, 40 /* X86_32_WINDOWS */, 52 /* X86_64_WINDOWS */ };
  private static final int[] e_phentsize_offset = new int[] { 42 /* ARMle_EABI */, 42 /* X86_32_UNIX */, 54 /* X86_64_UNIX */, 42 /* X86_32_MACOS */, 42 /* X86_32_WINDOWS */, 54 /* X86_64_WINDOWS */ };
  private static final int[] e_phnum_offset = new int[] { 44 /* ARMle_EABI */, 44 /* X86_32_UNIX */, 56 /* X86_64_UNIX */, 44 /* X86_32_MACOS */, 44 /* X86_32_WINDOWS */, 56 /* X86_64_WINDOWS */ };
  private static final int[] e_shentsize_offset = new int[] { 46 /* ARMle_EABI */, 46 /* X86_32_UNIX */, 58 /* X86_64_UNIX */, 46 /* X86_32_MACOS */, 46 /* X86_32_WINDOWS */, 58 /* X86_64_WINDOWS */ };
  private static final int[] e_shnum_offset = new int[] { 48 /* ARMle_EABI */, 48 /* X86_32_UNIX */, 60 /* X86_64_UNIX */, 48 /* X86_32_MACOS */, 48 /* X86_32_WINDOWS */, 60 /* X86_64_WINDOWS */ };
  private static final int[] e_shstrndx_offset = new int[] { 50 /* ARMle_EABI */, 50 /* X86_32_UNIX */, 62 /* X86_64_UNIX */, 50 /* X86_32_MACOS */, 50 /* X86_32_WINDOWS */, 62 /* X86_64_WINDOWS */ };

  public static int size() {
    return Ehdr_size[mdIdx];
  }

  public static Ehdr create() {
    return create(Buffers.newDirectByteBuffer(size()));
  }

  public static Ehdr create(final java.nio.ByteBuffer buf) {
      return new Ehdr(buf);
  }

  Ehdr(final java.nio.ByteBuffer buf) {
    accessor = new StructAccessor(buf);
  }

  public java.nio.ByteBuffer getBuffer() {
    return accessor.getBuffer();
  }

  public Ehdr setE_ident(final byte[] val) {
    accessor.setBytesAt(e_ident_offset[mdIdx], val);    return this;
  }

  public byte[] getE_ident() {
    return accessor.getBytesAt(e_ident_offset[mdIdx], new byte[16]); }

  public Ehdr setE_type(final short val) {
    accessor.setShortAt(e_type_offset[mdIdx], val);
    return this;
  }

  public short getE_type() {
    return accessor.getShortAt(e_type_offset[mdIdx]);
  }

  public Ehdr setE_machine(final short val) {
    accessor.setShortAt(e_machine_offset[mdIdx], val);
    return this;
  }

  public short getE_machine() {
    return accessor.getShortAt(e_machine_offset[mdIdx]);
  }

  public Ehdr setE_version(final int val) {
    accessor.setIntAt(e_version_offset[mdIdx], val);
    return this;
  }

  public int getE_version() {
    return accessor.getIntAt(e_version_offset[mdIdx]);
  }

  public Ehdr setE_entry(final long val) {
    accessor.setLongAt(e_entry_offset[mdIdx], val, MachineDescriptionRuntime.getStatic().md.longSizeInBytes());
    return this;
  }

  public long getE_entry() {
    return accessor.getLongAt(e_entry_offset[mdIdx], MachineDescriptionRuntime.getStatic().md.longSizeInBytes());
  }

  public Ehdr setE_phoff(final long val) {
    accessor.setLongAt(e_phoff_offset[mdIdx], val, MachineDescriptionRuntime.getStatic().md.longSizeInBytes());
    return this;
  }

  public long getE_phoff() {
    return accessor.getLongAt(e_phoff_offset[mdIdx], MachineDescriptionRuntime.getStatic().md.longSizeInBytes());
  }

  public Ehdr setE_shoff(final long val) {
    accessor.setLongAt(e_shoff_offset[mdIdx], val, MachineDescriptionRuntime.getStatic().md.longSizeInBytes());
    return this;
  }

  public long getE_shoff() {
    return accessor.getLongAt(e_shoff_offset[mdIdx], MachineDescriptionRuntime.getStatic().md.longSizeInBytes());
  }

  public Ehdr setE_flags(final int val) {
    accessor.setIntAt(e_flags_offset[mdIdx], val);
    return this;
  }

  public int getE_flags() {
    return accessor.getIntAt(e_flags_offset[mdIdx]);
  }

  public Ehdr setE_ehsize(final short val) {
    accessor.setShortAt(e_ehsize_offset[mdIdx], val);
    return this;
  }

  public short getE_ehsize() {
    return accessor.getShortAt(e_ehsize_offset[mdIdx]);
  }

  public Ehdr setE_phentsize(final short val) {
    accessor.setShortAt(e_phentsize_offset[mdIdx], val);
    return this;
  }

  public short getE_phentsize() {
    return accessor.getShortAt(e_phentsize_offset[mdIdx]);
  }

  public Ehdr setE_phnum(final short val) {
    accessor.setShortAt(e_phnum_offset[mdIdx], val);
    return this;
  }

  public short getE_phnum() {
    return accessor.getShortAt(e_phnum_offset[mdIdx]);
  }

  public Ehdr setE_shentsize(final short val) {
    accessor.setShortAt(e_shentsize_offset[mdIdx], val);
    return this;
  }

  public short getE_shentsize() {
    return accessor.getShortAt(e_shentsize_offset[mdIdx]);
  }

  public Ehdr setE_shnum(final short val) {
    accessor.setShortAt(e_shnum_offset[mdIdx], val);
    return this;
  }

  public short getE_shnum() {
    return accessor.getShortAt(e_shnum_offset[mdIdx]);
  }

  public Ehdr setE_shstrndx(final short val) {
    accessor.setShortAt(e_shstrndx_offset[mdIdx], val);
    return this;
  }

  public short getE_shstrndx() {
    return accessor.getShortAt(e_shstrndx_offset[mdIdx]);
  }
}
