/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 2.0.0
 *
 * Do not make changes to this file unless you know what you are doing--modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- */

package de.blichmann.idajava.natives;

public class processor_t {
  private long swigCPtr;
  protected boolean swigCMemOwn;

  public processor_t(long cPtr, boolean cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = cPtr;
  }

  public static long getCPtr(processor_t obj) {
    return (obj == null) ? 0 : obj.swigCPtr;
  }

  protected void finalize() {
    delete();
  }

  public synchronized void delete() {
    if (swigCPtr != 0) {
      if (swigCMemOwn) {
        swigCMemOwn = false;
        IdaJavaJNI.delete_processor_t(swigCPtr);
      }
      swigCPtr = 0;
    }
  }

  public void setVersion(int value) {
    IdaJavaJNI.processor_t_version_set(swigCPtr, this, value);
  }

  public int getVersion() {
    return IdaJavaJNI.processor_t_version_get(swigCPtr, this);
  }

  public void setId(int value) {
    IdaJavaJNI.processor_t_id_set(swigCPtr, this, value);
  }

  public int getId() {
    return IdaJavaJNI.processor_t_id_get(swigCPtr, this);
  }

  public void setFlag(long value) {
    IdaJavaJNI.processor_t_flag_set(swigCPtr, this, value);
  }

  public long getFlag() {
    return IdaJavaJNI.processor_t_flag_get(swigCPtr, this);
  }

  public boolean has_segregs() {
    return IdaJavaJNI.processor_t_has_segregs(swigCPtr, this);
  }

  public boolean use32() {
    return IdaJavaJNI.processor_t_use32(swigCPtr, this);
  }

  public boolean use64() {
    return IdaJavaJNI.processor_t_use64(swigCPtr, this);
  }

  public boolean ti() {
    return IdaJavaJNI.processor_t_ti(swigCPtr, this);
  }

  public boolean stkup() {
    return IdaJavaJNI.processor_t_stkup(swigCPtr, this);
  }

  public boolean use_tbyte() {
    return IdaJavaJNI.processor_t_use_tbyte(swigCPtr, this);
  }

  public int get_segm_bitness() {
    return IdaJavaJNI.processor_t_get_segm_bitness(swigCPtr, this);
  }

  public void setCnbits(int value) {
    IdaJavaJNI.processor_t_cnbits_set(swigCPtr, this, value);
  }

  public int getCnbits() {
    return IdaJavaJNI.processor_t_cnbits_get(swigCPtr, this);
  }

  public void setDnbits(int value) {
    IdaJavaJNI.processor_t_dnbits_set(swigCPtr, this, value);
  }

  public int getDnbits() {
    return IdaJavaJNI.processor_t_dnbits_get(swigCPtr, this);
  }

  public int cbsize() {
    return IdaJavaJNI.processor_t_cbsize(swigCPtr, this);
  }

  public int dbsize() {
    return IdaJavaJNI.processor_t_dbsize(swigCPtr, this);
  }

  public void setPsnames(SWIGTYPE_p_p_char value) {
    IdaJavaJNI.processor_t_psnames_set(swigCPtr, this, SWIGTYPE_p_p_char.getCPtr(value));
  }

  public SWIGTYPE_p_p_char getPsnames() {
    long cPtr = IdaJavaJNI.processor_t_psnames_get(swigCPtr, this);
    return (cPtr == 0) ? null : new SWIGTYPE_p_p_char(cPtr, false);
  }

  public void setPlnames(SWIGTYPE_p_p_char value) {
    IdaJavaJNI.processor_t_plnames_set(swigCPtr, this, SWIGTYPE_p_p_char.getCPtr(value));
  }

  public SWIGTYPE_p_p_char getPlnames() {
    long cPtr = IdaJavaJNI.processor_t_plnames_get(swigCPtr, this);
    return (cPtr == 0) ? null : new SWIGTYPE_p_p_char(cPtr, false);
  }

  public void setAssemblers(SWIGTYPE_p_p_asm_t value) {
    IdaJavaJNI.processor_t_assemblers_set(swigCPtr, this, SWIGTYPE_p_p_asm_t.getCPtr(value));
  }

  public SWIGTYPE_p_p_asm_t getAssemblers() {
    long cPtr = IdaJavaJNI.processor_t_assemblers_get(swigCPtr, this);
    return (cPtr == 0) ? null : new SWIGTYPE_p_p_asm_t(cPtr, false);
  }

  public int get_stkvar_scale() {
    return IdaJavaJNI.processor_t_get_stkvar_scale(swigCPtr, this);
  }

  public void setRegsNum(int value) {
    IdaJavaJNI.processor_t_regsNum_set(swigCPtr, this, value);
  }

  public int getRegsNum() {
    return IdaJavaJNI.processor_t_regsNum_get(swigCPtr, this);
  }

  public void setRegNames(SWIGTYPE_p_p_char value) {
    IdaJavaJNI.processor_t_regNames_set(swigCPtr, this, SWIGTYPE_p_p_char.getCPtr(value));
  }

  public SWIGTYPE_p_p_char getRegNames() {
    long cPtr = IdaJavaJNI.processor_t_regNames_get(swigCPtr, this);
    return (cPtr == 0) ? null : new SWIGTYPE_p_p_char(cPtr, false);
  }

  public void setRFiles(int value) {
    IdaJavaJNI.processor_t_rFiles_set(swigCPtr, this, value);
  }

  public int getRFiles() {
    return IdaJavaJNI.processor_t_rFiles_get(swigCPtr, this);
  }

  public void setRFnames(SWIGTYPE_p_p_char value) {
    IdaJavaJNI.processor_t_rFnames_set(swigCPtr, this, SWIGTYPE_p_p_char.getCPtr(value));
  }

  public SWIGTYPE_p_p_char getRFnames() {
    long cPtr = IdaJavaJNI.processor_t_rFnames_get(swigCPtr, this);
    return (cPtr == 0) ? null : new SWIGTYPE_p_p_char(cPtr, false);
  }

  public void setRFdescs(SWIGTYPE_p_rginfo value) {
    IdaJavaJNI.processor_t_rFdescs_set(swigCPtr, this, SWIGTYPE_p_rginfo.getCPtr(value));
  }

  public SWIGTYPE_p_rginfo getRFdescs() {
    long cPtr = IdaJavaJNI.processor_t_rFdescs_get(swigCPtr, this);
    return (cPtr == 0) ? null : new SWIGTYPE_p_rginfo(cPtr, false);
  }

  public void setCPUregs(SWIGTYPE_p_WorkReg value) {
    IdaJavaJNI.processor_t_CPUregs_set(swigCPtr, this, SWIGTYPE_p_WorkReg.getCPtr(value));
  }

  public SWIGTYPE_p_WorkReg getCPUregs() {
    long cPtr = IdaJavaJNI.processor_t_CPUregs_get(swigCPtr, this);
    return (cPtr == 0) ? null : new SWIGTYPE_p_WorkReg(cPtr, false);
  }

  public void setRegFirstSreg(int value) {
    IdaJavaJNI.processor_t_regFirstSreg_set(swigCPtr, this, value);
  }

  public int getRegFirstSreg() {
    return IdaJavaJNI.processor_t_regFirstSreg_get(swigCPtr, this);
  }

  public void setRegLastSreg(int value) {
    IdaJavaJNI.processor_t_regLastSreg_set(swigCPtr, this, value);
  }

  public int getRegLastSreg() {
    return IdaJavaJNI.processor_t_regLastSreg_get(swigCPtr, this);
  }

  public void setSegreg_size(int value) {
    IdaJavaJNI.processor_t_segreg_size_set(swigCPtr, this, value);
  }

  public int getSegreg_size() {
    return IdaJavaJNI.processor_t_segreg_size_get(swigCPtr, this);
  }

  public void setRegCodeSreg(int value) {
    IdaJavaJNI.processor_t_regCodeSreg_set(swigCPtr, this, value);
  }

  public int getRegCodeSreg() {
    return IdaJavaJNI.processor_t_regCodeSreg_get(swigCPtr, this);
  }

  public void setRegDataSreg(int value) {
    IdaJavaJNI.processor_t_regDataSreg_set(swigCPtr, this, value);
  }

  public int getRegDataSreg() {
    return IdaJavaJNI.processor_t_regDataSreg_get(swigCPtr, this);
  }

  public void setCodestart(bytes_t value) {
    IdaJavaJNI.processor_t_codestart_set(swigCPtr, this, bytes_t.getCPtr(value), value);
  }

  public bytes_t getCodestart() {
    long cPtr = IdaJavaJNI.processor_t_codestart_get(swigCPtr, this);
    return (cPtr == 0) ? null : new bytes_t(cPtr, false);
  }

  public void setRetcodes(bytes_t value) {
    IdaJavaJNI.processor_t_retcodes_set(swigCPtr, this, bytes_t.getCPtr(value), value);
  }

  public bytes_t getRetcodes() {
    long cPtr = IdaJavaJNI.processor_t_retcodes_get(swigCPtr, this);
    return (cPtr == 0) ? null : new bytes_t(cPtr, false);
  }

  public void setInstruc_start(int value) {
    IdaJavaJNI.processor_t_instruc_start_set(swigCPtr, this, value);
  }

  public int getInstruc_start() {
    return IdaJavaJNI.processor_t_instruc_start_get(swigCPtr, this);
  }

  public void setInstruc_end(int value) {
    IdaJavaJNI.processor_t_instruc_end_set(swigCPtr, this, value);
  }

  public int getInstruc_end() {
    return IdaJavaJNI.processor_t_instruc_end_get(swigCPtr, this);
  }

  public boolean is_canon_insn(int itype) {
    return IdaJavaJNI.processor_t_is_canon_insn(swigCPtr, this, itype);
  }

  public void setInstruc(instruc_t value) {
    IdaJavaJNI.processor_t_instruc_set(swigCPtr, this, instruc_t.getCPtr(value), value);
  }

  public instruc_t getInstruc() {
    long cPtr = IdaJavaJNI.processor_t_instruc_get(swigCPtr, this);
    return (cPtr == 0) ? null : new instruc_t(cPtr, false);
  }

  public void setTbyte_size(long value) {
    IdaJavaJNI.processor_t_tbyte_size_set(swigCPtr, this, value);
  }

  public long getTbyte_size() {
    return IdaJavaJNI.processor_t_tbyte_size_get(swigCPtr, this);
  }

  public void setReal_width(String value) {
    IdaJavaJNI.processor_t_real_width_set(swigCPtr, this, value);
  }

  public String getReal_width() {
    return IdaJavaJNI.processor_t_real_width_get(swigCPtr, this);
  }

  public void setIcode_return(int value) {
    IdaJavaJNI.processor_t_icode_return_set(swigCPtr, this, value);
  }

  public int getIcode_return() {
    return IdaJavaJNI.processor_t_icode_return_get(swigCPtr, this);
  }

  public void setMvm(SWIGTYPE_p_mvm_t value) {
    IdaJavaJNI.processor_t_mvm_set(swigCPtr, this, SWIGTYPE_p_mvm_t.getCPtr(value));
  }

  public SWIGTYPE_p_mvm_t getMvm() {
    long cPtr = IdaJavaJNI.processor_t_mvm_get(swigCPtr, this);
    return (cPtr == 0) ? null : new SWIGTYPE_p_mvm_t(cPtr, false);
  }

  public void setHigh_fixup_bits(int value) {
    IdaJavaJNI.processor_t_high_fixup_bits_set(swigCPtr, this, value);
  }

  public int getHigh_fixup_bits() {
    return IdaJavaJNI.processor_t_high_fixup_bits_get(swigCPtr, this);
  }

  public processor_t() {
    this(IdaJavaJNI.new_processor_t(), true);
  }

  public enum cust_fix {
    cf_base,
    cf_size,
    cf_desc,
    cf_apply,
    cf_move;

    public final int swigValue() {
      return swigValue;
    }

    public static cust_fix swigToEnum(int swigValue) {
      cust_fix[] swigValues = cust_fix.class.getEnumConstants();
      if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue)
        return swigValues[swigValue];
      for (cust_fix swigEnum : swigValues)
        if (swigEnum.swigValue == swigValue)
          return swigEnum;
      throw new IllegalArgumentException("No enum " + cust_fix.class + " with value " + swigValue);
    }

    @SuppressWarnings("unused")
    private cust_fix() {
      this.swigValue = SwigNext.next++;
    }

    @SuppressWarnings("unused")
    private cust_fix(int swigValue) {
      this.swigValue = swigValue;
      SwigNext.next = swigValue+1;
    }

    @SuppressWarnings("unused")
    private cust_fix(cust_fix swigEnum) {
      this.swigValue = swigEnum.swigValue;
      SwigNext.next = this.swigValue+1;
    }

    private final int swigValue;

    private static class SwigNext {
      private static int next = 0;
    }
  }

}
