# This file was automatically generated by SWIG (http://www.swig.org).
# Version 1.3.40
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.
# This file is compatible with both classic and new-style classes.

from sys import version_info
if version_info >= (2,6,0):
    def swig_import_helper():
        from os.path import dirname
        import imp
        fp = None
        try:
            fp, pathname, description = imp.find_module('_simavr', [dirname(__file__)])
        except ImportError:
            import _simavr
            return _simavr
        if fp is not None:
            try:
                _mod = imp.load_module('_simavr', fp, pathname, description)
            finally:
                fp.close()
            return _mod
    _simavr = swig_import_helper()
    del swig_import_helper
else:
    import _simavr
del version_info
try:
    _swig_property = property
except NameError:
    pass # Python < 2.2 doesn't have 'property'.
def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
    if (name == "thisown"): return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'SwigPyObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name,None)
    if method: return method(self,value)
    if (not static) or hasattr(self,name):
        self.__dict__[name] = value
    else:
        raise AttributeError("You cannot add attributes to %s" % self)

def _swig_setattr(self,class_type,name,value):
    return _swig_setattr_nondynamic(self,class_type,name,value,0)

def _swig_getattr(self,class_type,name):
    if (name == "thisown"): return self.this.own()
    method = class_type.__swig_getmethods__.get(name,None)
    if method: return method(self)
    raise AttributeError(name)

def _swig_repr(self):
    try: strthis = "proxy of " + self.this.__repr__()
    except: strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)

try:
    _object = object
    _newclass = 1
except AttributeError:
    class _object : pass
    _newclass = 0



def AVR_IOCTL_IOPORT_GETIRQ(*args):
  return _simavr.AVR_IOCTL_IOPORT_GETIRQ(*args)
AVR_IOCTL_IOPORT_GETIRQ = _simavr.AVR_IOCTL_IOPORT_GETIRQ
IRQ_FLAG_NOT = _simavr.IRQ_FLAG_NOT
IRQ_FLAG_FILTERED = _simavr.IRQ_FLAG_FILTERED
IRQ_FLAG_ALLOC = _simavr.IRQ_FLAG_ALLOC
class avr_irq_pool_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_irq_pool_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_irq_pool_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["count"] = _simavr.avr_irq_pool_t_count_set
    __swig_getmethods__["count"] = _simavr.avr_irq_pool_t_count_get
    if _newclass:count = _swig_property(_simavr.avr_irq_pool_t_count_get, _simavr.avr_irq_pool_t_count_set)
    __swig_setmethods__["irq"] = _simavr.avr_irq_pool_t_irq_set
    __swig_getmethods__["irq"] = _simavr.avr_irq_pool_t_irq_get
    if _newclass:irq = _swig_property(_simavr.avr_irq_pool_t_irq_get, _simavr.avr_irq_pool_t_irq_set)
    def __init__(self): 
        this = _simavr.new_avr_irq_pool_t()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_irq_pool_t
    __del__ = lambda self : None;
avr_irq_pool_t_swigregister = _simavr.avr_irq_pool_t_swigregister
avr_irq_pool_t_swigregister(avr_irq_pool_t)

class avr_irq_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_irq_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_irq_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["pool"] = _simavr.avr_irq_t_pool_set
    __swig_getmethods__["pool"] = _simavr.avr_irq_t_pool_get
    if _newclass:pool = _swig_property(_simavr.avr_irq_t_pool_get, _simavr.avr_irq_t_pool_set)
    __swig_setmethods__["name"] = _simavr.avr_irq_t_name_set
    __swig_getmethods__["name"] = _simavr.avr_irq_t_name_get
    if _newclass:name = _swig_property(_simavr.avr_irq_t_name_get, _simavr.avr_irq_t_name_set)
    __swig_setmethods__["irq"] = _simavr.avr_irq_t_irq_set
    __swig_getmethods__["irq"] = _simavr.avr_irq_t_irq_get
    if _newclass:irq = _swig_property(_simavr.avr_irq_t_irq_get, _simavr.avr_irq_t_irq_set)
    __swig_setmethods__["value"] = _simavr.avr_irq_t_value_set
    __swig_getmethods__["value"] = _simavr.avr_irq_t_value_get
    if _newclass:value = _swig_property(_simavr.avr_irq_t_value_get, _simavr.avr_irq_t_value_set)
    __swig_setmethods__["flags"] = _simavr.avr_irq_t_flags_set
    __swig_getmethods__["flags"] = _simavr.avr_irq_t_flags_get
    if _newclass:flags = _swig_property(_simavr.avr_irq_t_flags_get, _simavr.avr_irq_t_flags_set)
    __swig_setmethods__["hook"] = _simavr.avr_irq_t_hook_set
    __swig_getmethods__["hook"] = _simavr.avr_irq_t_hook_get
    if _newclass:hook = _swig_property(_simavr.avr_irq_t_hook_get, _simavr.avr_irq_t_hook_set)
    def __init__(self): 
        this = _simavr.new_avr_irq_t()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_irq_t
    __del__ = lambda self : None;
avr_irq_t_swigregister = _simavr.avr_irq_t_swigregister
avr_irq_t_swigregister(avr_irq_t)


def avr_alloc_irq(*args):
  return _simavr.avr_alloc_irq(*args)
avr_alloc_irq = _simavr.avr_alloc_irq

def avr_free_irq(*args):
  return _simavr.avr_free_irq(*args)
avr_free_irq = _simavr.avr_free_irq

def avr_init_irq(*args):
  return _simavr.avr_init_irq(*args)
avr_init_irq = _simavr.avr_init_irq

def avr_raise_irq(*args):
  return _simavr.avr_raise_irq(*args)
avr_raise_irq = _simavr.avr_raise_irq

def avr_connect_irq(*args):
  return _simavr.avr_connect_irq(*args)
avr_connect_irq = _simavr.avr_connect_irq

def avr_irq_register_notify(*args):
  return _simavr.avr_irq_register_notify(*args)
avr_irq_register_notify = _simavr.avr_irq_register_notify
class avr_io_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_io_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_io_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["next"] = _simavr.avr_io_t_next_set
    __swig_getmethods__["next"] = _simavr.avr_io_t_next_get
    if _newclass:next = _swig_property(_simavr.avr_io_t_next_get, _simavr.avr_io_t_next_set)
    __swig_setmethods__["avr"] = _simavr.avr_io_t_avr_set
    __swig_getmethods__["avr"] = _simavr.avr_io_t_avr_get
    if _newclass:avr = _swig_property(_simavr.avr_io_t_avr_get, _simavr.avr_io_t_avr_set)
    __swig_setmethods__["kind"] = _simavr.avr_io_t_kind_set
    __swig_getmethods__["kind"] = _simavr.avr_io_t_kind_get
    if _newclass:kind = _swig_property(_simavr.avr_io_t_kind_get, _simavr.avr_io_t_kind_set)
    __swig_setmethods__["irq_names"] = _simavr.avr_io_t_irq_names_set
    __swig_getmethods__["irq_names"] = _simavr.avr_io_t_irq_names_get
    if _newclass:irq_names = _swig_property(_simavr.avr_io_t_irq_names_get, _simavr.avr_io_t_irq_names_set)
    __swig_setmethods__["irq_ioctl_get"] = _simavr.avr_io_t_irq_ioctl_get_set
    __swig_getmethods__["irq_ioctl_get"] = _simavr.avr_io_t_irq_ioctl_get_get
    if _newclass:irq_ioctl_get = _swig_property(_simavr.avr_io_t_irq_ioctl_get_get, _simavr.avr_io_t_irq_ioctl_get_set)
    __swig_setmethods__["irq_count"] = _simavr.avr_io_t_irq_count_set
    __swig_getmethods__["irq_count"] = _simavr.avr_io_t_irq_count_get
    if _newclass:irq_count = _swig_property(_simavr.avr_io_t_irq_count_get, _simavr.avr_io_t_irq_count_set)
    __swig_setmethods__["irq"] = _simavr.avr_io_t_irq_set
    __swig_getmethods__["irq"] = _simavr.avr_io_t_irq_get
    if _newclass:irq = _swig_property(_simavr.avr_io_t_irq_get, _simavr.avr_io_t_irq_set)
    __swig_setmethods__["reset"] = _simavr.avr_io_t_reset_set
    __swig_getmethods__["reset"] = _simavr.avr_io_t_reset_get
    if _newclass:reset = _swig_property(_simavr.avr_io_t_reset_get, _simavr.avr_io_t_reset_set)
    __swig_setmethods__["ioctl"] = _simavr.avr_io_t_ioctl_set
    __swig_getmethods__["ioctl"] = _simavr.avr_io_t_ioctl_get
    if _newclass:ioctl = _swig_property(_simavr.avr_io_t_ioctl_get, _simavr.avr_io_t_ioctl_set)
    __swig_setmethods__["dealloc"] = _simavr.avr_io_t_dealloc_set
    __swig_getmethods__["dealloc"] = _simavr.avr_io_t_dealloc_get
    if _newclass:dealloc = _swig_property(_simavr.avr_io_t_dealloc_get, _simavr.avr_io_t_dealloc_set)
    def __init__(self): 
        this = _simavr.new_avr_io_t()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_io_t
    __del__ = lambda self : None;
avr_io_t_swigregister = _simavr.avr_io_t_swigregister
avr_io_t_swigregister(avr_io_t)


def avr_register_io(*args):
  return _simavr.avr_register_io(*args)
avr_register_io = _simavr.avr_register_io

def avr_io_setirqs(*args):
  return _simavr.avr_io_setirqs(*args)
avr_io_setirqs = _simavr.avr_io_setirqs

def avr_register_io_read(*args):
  return _simavr.avr_register_io_read(*args)
avr_register_io_read = _simavr.avr_register_io_read

def avr_register_io_write(*args):
  return _simavr.avr_register_io_write(*args)
avr_register_io_write = _simavr.avr_register_io_write

def avr_ioctl(*args):
  return _simavr.avr_ioctl(*args)
avr_ioctl = _simavr.avr_ioctl

def avr_io_getirq(*args):
  return _simavr.avr_io_getirq(*args)
avr_io_getirq = _simavr.avr_io_getirq
AVR_IOMEM_IRQ_ALL = _simavr.AVR_IOMEM_IRQ_ALL

def avr_iomem_getirq(*args):
  return _simavr.avr_iomem_getirq(*args)
avr_iomem_getirq = _simavr.avr_iomem_getirq

def avr_deallocate_ios(*args):
  return _simavr.avr_deallocate_ios(*args)
avr_deallocate_ios = _simavr.avr_deallocate_ios
S_C = _simavr.S_C
S_Z = _simavr.S_Z
S_N = _simavr.S_N
S_V = _simavr.S_V
S_S = _simavr.S_S
S_H = _simavr.S_H
S_T = _simavr.S_T
S_I = _simavr.S_I
R_XL = _simavr.R_XL
R_XH = _simavr.R_XH
R_YL = _simavr.R_YL
R_YH = _simavr.R_YH
R_ZL = _simavr.R_ZL
R_ZH = _simavr.R_ZH
R_SPL = _simavr.R_SPL
R_SPH = _simavr.R_SPH
R_SREG = _simavr.R_SREG
MAX_IOs = _simavr.MAX_IOs
cpu_Limbo = _simavr.cpu_Limbo
cpu_Stopped = _simavr.cpu_Stopped
cpu_Running = _simavr.cpu_Running
cpu_Sleeping = _simavr.cpu_Sleeping
cpu_Step = _simavr.cpu_Step
cpu_StepDone = _simavr.cpu_StepDone
class avr_trace_data_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_trace_data_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_trace_data_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["codeline"] = _simavr.avr_trace_data_t_codeline_set
    __swig_getmethods__["codeline"] = _simavr.avr_trace_data_t_codeline_get
    if _newclass:codeline = _swig_property(_simavr.avr_trace_data_t_codeline_get, _simavr.avr_trace_data_t_codeline_set)
    __swig_setmethods__["old_pci"] = _simavr.avr_trace_data_t_old_pci_set
    __swig_getmethods__["old_pci"] = _simavr.avr_trace_data_t_old_pci_get
    if _newclass:old_pci = _swig_property(_simavr.avr_trace_data_t_old_pci_get, _simavr.avr_trace_data_t_old_pci_set)
    __swig_setmethods__["touched"] = _simavr.avr_trace_data_t_touched_set
    __swig_getmethods__["touched"] = _simavr.avr_trace_data_t_touched_get
    if _newclass:touched = _swig_property(_simavr.avr_trace_data_t_touched_get, _simavr.avr_trace_data_t_touched_set)
    __swig_getmethods__["old"] = _simavr.avr_trace_data_t_old_get
    if _newclass:old = _swig_property(_simavr.avr_trace_data_t_old_get)
    def __init__(self): 
        this = _simavr.new_avr_trace_data_t()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_trace_data_t
    __del__ = lambda self : None;
avr_trace_data_t_swigregister = _simavr.avr_trace_data_t_swigregister
avr_trace_data_t_swigregister(avr_trace_data_t)
OLD_PC_SIZE = _simavr.OLD_PC_SIZE

class avr_trace_data_t_old(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_trace_data_t_old, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_trace_data_t_old, name)
    __repr__ = _swig_repr
    __swig_setmethods__["pc"] = _simavr.avr_trace_data_t_old_pc_set
    __swig_getmethods__["pc"] = _simavr.avr_trace_data_t_old_pc_get
    if _newclass:pc = _swig_property(_simavr.avr_trace_data_t_old_pc_get, _simavr.avr_trace_data_t_old_pc_set)
    __swig_setmethods__["sp"] = _simavr.avr_trace_data_t_old_sp_set
    __swig_getmethods__["sp"] = _simavr.avr_trace_data_t_old_sp_get
    if _newclass:sp = _swig_property(_simavr.avr_trace_data_t_old_sp_get, _simavr.avr_trace_data_t_old_sp_set)
    def __init__(self): 
        this = _simavr.new_avr_trace_data_t_old()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_trace_data_t_old
    __del__ = lambda self : None;
avr_trace_data_t_old_swigregister = _simavr.avr_trace_data_t_old_swigregister
avr_trace_data_t_old_swigregister(avr_trace_data_t_old)

class avr_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["mmcu"] = _simavr.avr_t_mmcu_set
    __swig_getmethods__["mmcu"] = _simavr.avr_t_mmcu_get
    if _newclass:mmcu = _swig_property(_simavr.avr_t_mmcu_get, _simavr.avr_t_mmcu_set)
    __swig_setmethods__["ramend"] = _simavr.avr_t_ramend_set
    __swig_getmethods__["ramend"] = _simavr.avr_t_ramend_get
    if _newclass:ramend = _swig_property(_simavr.avr_t_ramend_get, _simavr.avr_t_ramend_set)
    __swig_setmethods__["flashend"] = _simavr.avr_t_flashend_set
    __swig_getmethods__["flashend"] = _simavr.avr_t_flashend_get
    if _newclass:flashend = _swig_property(_simavr.avr_t_flashend_get, _simavr.avr_t_flashend_set)
    __swig_setmethods__["e2end"] = _simavr.avr_t_e2end_set
    __swig_getmethods__["e2end"] = _simavr.avr_t_e2end_get
    if _newclass:e2end = _swig_property(_simavr.avr_t_e2end_get, _simavr.avr_t_e2end_set)
    __swig_setmethods__["vector_size"] = _simavr.avr_t_vector_size_set
    __swig_getmethods__["vector_size"] = _simavr.avr_t_vector_size_get
    if _newclass:vector_size = _swig_property(_simavr.avr_t_vector_size_get, _simavr.avr_t_vector_size_set)
    __swig_setmethods__["signature"] = _simavr.avr_t_signature_set
    __swig_getmethods__["signature"] = _simavr.avr_t_signature_get
    if _newclass:signature = _swig_property(_simavr.avr_t_signature_get, _simavr.avr_t_signature_set)
    __swig_setmethods__["fuse"] = _simavr.avr_t_fuse_set
    __swig_getmethods__["fuse"] = _simavr.avr_t_fuse_get
    if _newclass:fuse = _swig_property(_simavr.avr_t_fuse_get, _simavr.avr_t_fuse_set)
    __swig_setmethods__["rampz"] = _simavr.avr_t_rampz_set
    __swig_getmethods__["rampz"] = _simavr.avr_t_rampz_get
    if _newclass:rampz = _swig_property(_simavr.avr_t_rampz_get, _simavr.avr_t_rampz_set)
    __swig_setmethods__["eind"] = _simavr.avr_t_eind_set
    __swig_getmethods__["eind"] = _simavr.avr_t_eind_get
    if _newclass:eind = _swig_property(_simavr.avr_t_eind_get, _simavr.avr_t_eind_set)
    __swig_setmethods__["codeend"] = _simavr.avr_t_codeend_set
    __swig_getmethods__["codeend"] = _simavr.avr_t_codeend_get
    if _newclass:codeend = _swig_property(_simavr.avr_t_codeend_get, _simavr.avr_t_codeend_set)
    __swig_setmethods__["state"] = _simavr.avr_t_state_set
    __swig_getmethods__["state"] = _simavr.avr_t_state_get
    if _newclass:state = _swig_property(_simavr.avr_t_state_get, _simavr.avr_t_state_set)
    __swig_setmethods__["frequency"] = _simavr.avr_t_frequency_set
    __swig_getmethods__["frequency"] = _simavr.avr_t_frequency_get
    if _newclass:frequency = _swig_property(_simavr.avr_t_frequency_get, _simavr.avr_t_frequency_set)
    __swig_setmethods__["vcc"] = _simavr.avr_t_vcc_set
    __swig_getmethods__["vcc"] = _simavr.avr_t_vcc_get
    if _newclass:vcc = _swig_property(_simavr.avr_t_vcc_get, _simavr.avr_t_vcc_set)
    __swig_setmethods__["avcc"] = _simavr.avr_t_avcc_set
    __swig_getmethods__["avcc"] = _simavr.avr_t_avcc_get
    if _newclass:avcc = _swig_property(_simavr.avr_t_avcc_get, _simavr.avr_t_avcc_set)
    __swig_setmethods__["aref"] = _simavr.avr_t_aref_set
    __swig_getmethods__["aref"] = _simavr.avr_t_aref_get
    if _newclass:aref = _swig_property(_simavr.avr_t_aref_get, _simavr.avr_t_aref_set)
    __swig_setmethods__["cycle"] = _simavr.avr_t_cycle_set
    __swig_getmethods__["cycle"] = _simavr.avr_t_cycle_get
    if _newclass:cycle = _swig_property(_simavr.avr_t_cycle_get, _simavr.avr_t_cycle_set)
    __swig_setmethods__["init"] = _simavr.avr_t_init_set
    __swig_getmethods__["init"] = _simavr.avr_t_init_get
    if _newclass:init = _swig_property(_simavr.avr_t_init_get, _simavr.avr_t_init_set)
    __swig_setmethods__["special_init"] = _simavr.avr_t_special_init_set
    __swig_getmethods__["special_init"] = _simavr.avr_t_special_init_get
    if _newclass:special_init = _swig_property(_simavr.avr_t_special_init_get, _simavr.avr_t_special_init_set)
    __swig_setmethods__["special_deinit"] = _simavr.avr_t_special_deinit_set
    __swig_getmethods__["special_deinit"] = _simavr.avr_t_special_deinit_get
    if _newclass:special_deinit = _swig_property(_simavr.avr_t_special_deinit_get, _simavr.avr_t_special_deinit_set)
    __swig_setmethods__["reset"] = _simavr.avr_t_reset_set
    __swig_getmethods__["reset"] = _simavr.avr_t_reset_get
    if _newclass:reset = _swig_property(_simavr.avr_t_reset_get, _simavr.avr_t_reset_set)
    __swig_setmethods__["run"] = _simavr.avr_t_run_set
    __swig_getmethods__["run"] = _simavr.avr_t_run_get
    if _newclass:run = _swig_property(_simavr.avr_t_run_get, _simavr.avr_t_run_set)
    __swig_setmethods__["sleep"] = _simavr.avr_t_sleep_set
    __swig_getmethods__["sleep"] = _simavr.avr_t_sleep_get
    if _newclass:sleep = _swig_property(_simavr.avr_t_sleep_get, _simavr.avr_t_sleep_set)
    __swig_setmethods__["irq_pool"] = _simavr.avr_t_irq_pool_set
    __swig_getmethods__["irq_pool"] = _simavr.avr_t_irq_pool_get
    if _newclass:irq_pool = _swig_property(_simavr.avr_t_irq_pool_get, _simavr.avr_t_irq_pool_set)
    __swig_setmethods__["sreg"] = _simavr.avr_t_sreg_set
    __swig_getmethods__["sreg"] = _simavr.avr_t_sreg_get
    if _newclass:sreg = _swig_property(_simavr.avr_t_sreg_get, _simavr.avr_t_sreg_set)
    __swig_setmethods__["i_shadow"] = _simavr.avr_t_i_shadow_set
    __swig_getmethods__["i_shadow"] = _simavr.avr_t_i_shadow_get
    if _newclass:i_shadow = _swig_property(_simavr.avr_t_i_shadow_get, _simavr.avr_t_i_shadow_set)
    __swig_setmethods__["pc"] = _simavr.avr_t_pc_set
    __swig_getmethods__["pc"] = _simavr.avr_t_pc_get
    if _newclass:pc = _swig_property(_simavr.avr_t_pc_get, _simavr.avr_t_pc_set)
    __swig_setmethods__["io_shared_io_count"] = _simavr.avr_t_io_shared_io_count_set
    __swig_getmethods__["io_shared_io_count"] = _simavr.avr_t_io_shared_io_count_get
    if _newclass:io_shared_io_count = _swig_property(_simavr.avr_t_io_shared_io_count_get, _simavr.avr_t_io_shared_io_count_set)
    __swig_setmethods__["flash"] = _simavr.avr_t_flash_set
    __swig_getmethods__["flash"] = _simavr.avr_t_flash_get
    if _newclass:flash = _swig_property(_simavr.avr_t_flash_get, _simavr.avr_t_flash_set)
    __swig_setmethods__["data"] = _simavr.avr_t_data_set
    __swig_getmethods__["data"] = _simavr.avr_t_data_get
    if _newclass:data = _swig_property(_simavr.avr_t_data_get, _simavr.avr_t_data_set)
    __swig_setmethods__["io_port"] = _simavr.avr_t_io_port_set
    __swig_getmethods__["io_port"] = _simavr.avr_t_io_port_get
    if _newclass:io_port = _swig_property(_simavr.avr_t_io_port_get, _simavr.avr_t_io_port_set)
    __swig_setmethods__["cycle_timer_map"] = _simavr.avr_t_cycle_timer_map_set
    __swig_getmethods__["cycle_timer_map"] = _simavr.avr_t_cycle_timer_map_get
    if _newclass:cycle_timer_map = _swig_property(_simavr.avr_t_cycle_timer_map_get, _simavr.avr_t_cycle_timer_map_set)
    __swig_setmethods__["next_cycle_timer"] = _simavr.avr_t_next_cycle_timer_set
    __swig_getmethods__["next_cycle_timer"] = _simavr.avr_t_next_cycle_timer_get
    if _newclass:next_cycle_timer = _swig_property(_simavr.avr_t_next_cycle_timer_get, _simavr.avr_t_next_cycle_timer_set)
    __swig_setmethods__["vector"] = _simavr.avr_t_vector_set
    __swig_getmethods__["vector"] = _simavr.avr_t_vector_get
    if _newclass:vector = _swig_property(_simavr.avr_t_vector_get, _simavr.avr_t_vector_set)
    __swig_setmethods__["pending_wait"] = _simavr.avr_t_pending_wait_set
    __swig_getmethods__["pending_wait"] = _simavr.avr_t_pending_wait_get
    if _newclass:pending_wait = _swig_property(_simavr.avr_t_pending_wait_get, _simavr.avr_t_pending_wait_set)
    __swig_setmethods__["pending"] = _simavr.avr_t_pending_set
    __swig_getmethods__["pending"] = _simavr.avr_t_pending_get
    if _newclass:pending = _swig_property(_simavr.avr_t_pending_get, _simavr.avr_t_pending_set)
    __swig_setmethods__["trace"] = _simavr.avr_t_trace_set
    __swig_getmethods__["trace"] = _simavr.avr_t_trace_get
    if _newclass:trace = _swig_property(_simavr.avr_t_trace_get, _simavr.avr_t_trace_set)
    __swig_setmethods__["trace_data"] = _simavr.avr_t_trace_data_set
    __swig_getmethods__["trace_data"] = _simavr.avr_t_trace_data_get
    if _newclass:trace_data = _swig_property(_simavr.avr_t_trace_data_get, _simavr.avr_t_trace_data_set)
    __swig_setmethods__["vcd"] = _simavr.avr_t_vcd_set
    __swig_getmethods__["vcd"] = _simavr.avr_t_vcd_get
    if _newclass:vcd = _swig_property(_simavr.avr_t_vcd_get, _simavr.avr_t_vcd_set)
    __swig_setmethods__["gdb"] = _simavr.avr_t_gdb_set
    __swig_getmethods__["gdb"] = _simavr.avr_t_gdb_get
    if _newclass:gdb = _swig_property(_simavr.avr_t_gdb_get, _simavr.avr_t_gdb_set)
    __swig_setmethods__["gdb_port"] = _simavr.avr_t_gdb_port_set
    __swig_getmethods__["gdb_port"] = _simavr.avr_t_gdb_port_get
    if _newclass:gdb_port = _swig_property(_simavr.avr_t_gdb_port_get, _simavr.avr_t_gdb_port_set)
    __swig_getmethods__["cycle_timer"] = _simavr.avr_t_cycle_timer_get
    if _newclass:cycle_timer = _swig_property(_simavr.avr_t_cycle_timer_get)
    __swig_getmethods__["io_shared_io"] = _simavr.avr_t_io_shared_io_get
    if _newclass:io_shared_io = _swig_property(_simavr.avr_t_io_shared_io_get)
    __swig_getmethods__["io"] = _simavr.avr_t_io_get
    if _newclass:io = _swig_property(_simavr.avr_t_io_get)
    def __init__(self): 
        this = _simavr.new_avr_t()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_t
    __del__ = lambda self : None;
avr_t_swigregister = _simavr.avr_t_swigregister
avr_t_swigregister(avr_t)

class avr_t_cycle_timer(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_t_cycle_timer, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_t_cycle_timer, name)
    __repr__ = _swig_repr
    __swig_setmethods__["when"] = _simavr.avr_t_cycle_timer_when_set
    __swig_getmethods__["when"] = _simavr.avr_t_cycle_timer_when_get
    if _newclass:when = _swig_property(_simavr.avr_t_cycle_timer_when_get, _simavr.avr_t_cycle_timer_when_set)
    __swig_setmethods__["timer"] = _simavr.avr_t_cycle_timer_timer_set
    __swig_getmethods__["timer"] = _simavr.avr_t_cycle_timer_timer_get
    if _newclass:timer = _swig_property(_simavr.avr_t_cycle_timer_timer_get, _simavr.avr_t_cycle_timer_timer_set)
    __swig_setmethods__["param"] = _simavr.avr_t_cycle_timer_param_set
    __swig_getmethods__["param"] = _simavr.avr_t_cycle_timer_param_get
    if _newclass:param = _swig_property(_simavr.avr_t_cycle_timer_param_get, _simavr.avr_t_cycle_timer_param_set)
    def __init__(self): 
        this = _simavr.new_avr_t_cycle_timer()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_t_cycle_timer
    __del__ = lambda self : None;
avr_t_cycle_timer_swigregister = _simavr.avr_t_cycle_timer_swigregister
avr_t_cycle_timer_swigregister(avr_t_cycle_timer)

class avr_t_io_shared_io(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_t_io_shared_io, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_t_io_shared_io, name)
    __repr__ = _swig_repr
    __swig_setmethods__["used"] = _simavr.avr_t_io_shared_io_used_set
    __swig_getmethods__["used"] = _simavr.avr_t_io_shared_io_used_get
    if _newclass:used = _swig_property(_simavr.avr_t_io_shared_io_used_get, _simavr.avr_t_io_shared_io_used_set)
    __swig_getmethods__["io"] = _simavr.avr_t_io_shared_io_io_get
    if _newclass:io = _swig_property(_simavr.avr_t_io_shared_io_io_get)
    def __init__(self): 
        this = _simavr.new_avr_t_io_shared_io()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_t_io_shared_io
    __del__ = lambda self : None;
avr_t_io_shared_io_swigregister = _simavr.avr_t_io_shared_io_swigregister
avr_t_io_shared_io_swigregister(avr_t_io_shared_io)

class avr_t_io_shared_io_io(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_t_io_shared_io_io, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_t_io_shared_io_io, name)
    __repr__ = _swig_repr
    __swig_setmethods__["param"] = _simavr.avr_t_io_shared_io_io_param_set
    __swig_getmethods__["param"] = _simavr.avr_t_io_shared_io_io_param_get
    if _newclass:param = _swig_property(_simavr.avr_t_io_shared_io_io_param_get, _simavr.avr_t_io_shared_io_io_param_set)
    __swig_setmethods__["c"] = _simavr.avr_t_io_shared_io_io_c_set
    __swig_getmethods__["c"] = _simavr.avr_t_io_shared_io_io_c_get
    if _newclass:c = _swig_property(_simavr.avr_t_io_shared_io_io_c_get, _simavr.avr_t_io_shared_io_io_c_set)
    def __init__(self): 
        this = _simavr.new_avr_t_io_shared_io_io()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_t_io_shared_io_io
    __del__ = lambda self : None;
avr_t_io_shared_io_io_swigregister = _simavr.avr_t_io_shared_io_io_swigregister
avr_t_io_shared_io_io_swigregister(avr_t_io_shared_io_io)

class avr_t_io(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_t_io, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_t_io, name)
    __repr__ = _swig_repr
    __swig_setmethods__["irq"] = _simavr.avr_t_io_irq_set
    __swig_getmethods__["irq"] = _simavr.avr_t_io_irq_get
    if _newclass:irq = _swig_property(_simavr.avr_t_io_irq_get, _simavr.avr_t_io_irq_set)
    __swig_getmethods__["w"] = _simavr.avr_t_io_w_get
    if _newclass:w = _swig_property(_simavr.avr_t_io_w_get)
    __swig_getmethods__["r"] = _simavr.avr_t_io_r_get
    if _newclass:r = _swig_property(_simavr.avr_t_io_r_get)
    def __init__(self): 
        this = _simavr.new_avr_t_io()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_t_io
    __del__ = lambda self : None;
avr_t_io_swigregister = _simavr.avr_t_io_swigregister
avr_t_io_swigregister(avr_t_io)

class avr_t_io_w(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_t_io_w, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_t_io_w, name)
    __repr__ = _swig_repr
    __swig_setmethods__["param"] = _simavr.avr_t_io_w_param_set
    __swig_getmethods__["param"] = _simavr.avr_t_io_w_param_get
    if _newclass:param = _swig_property(_simavr.avr_t_io_w_param_get, _simavr.avr_t_io_w_param_set)
    __swig_setmethods__["c"] = _simavr.avr_t_io_w_c_set
    __swig_getmethods__["c"] = _simavr.avr_t_io_w_c_get
    if _newclass:c = _swig_property(_simavr.avr_t_io_w_c_get, _simavr.avr_t_io_w_c_set)
    def __init__(self): 
        this = _simavr.new_avr_t_io_w()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_t_io_w
    __del__ = lambda self : None;
avr_t_io_w_swigregister = _simavr.avr_t_io_w_swigregister
avr_t_io_w_swigregister(avr_t_io_w)

class avr_t_io_r(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_t_io_r, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_t_io_r, name)
    __repr__ = _swig_repr
    __swig_setmethods__["param"] = _simavr.avr_t_io_r_param_set
    __swig_getmethods__["param"] = _simavr.avr_t_io_r_param_get
    if _newclass:param = _swig_property(_simavr.avr_t_io_r_param_get, _simavr.avr_t_io_r_param_set)
    __swig_setmethods__["c"] = _simavr.avr_t_io_r_c_set
    __swig_getmethods__["c"] = _simavr.avr_t_io_r_c_get
    if _newclass:c = _swig_property(_simavr.avr_t_io_r_c_get, _simavr.avr_t_io_r_c_set)
    def __init__(self): 
        this = _simavr.new_avr_t_io_r()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_t_io_r
    __del__ = lambda self : None;
avr_t_io_r_swigregister = _simavr.avr_t_io_r_swigregister
avr_t_io_r_swigregister(avr_t_io_r)

class avr_kind_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_kind_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_kind_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["names"] = _simavr.avr_kind_t_names_set
    __swig_getmethods__["names"] = _simavr.avr_kind_t_names_get
    if _newclass:names = _swig_property(_simavr.avr_kind_t_names_get, _simavr.avr_kind_t_names_set)
    __swig_setmethods__["make"] = _simavr.avr_kind_t_make_set
    __swig_getmethods__["make"] = _simavr.avr_kind_t_make_get
    if _newclass:make = _swig_property(_simavr.avr_kind_t_make_get, _simavr.avr_kind_t_make_set)
    def __init__(self): 
        this = _simavr.new_avr_kind_t()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_kind_t
    __del__ = lambda self : None;
avr_kind_t_swigregister = _simavr.avr_kind_t_swigregister
avr_kind_t_swigregister(avr_kind_t)

class avr_symbol_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_symbol_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_symbol_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["symbol"] = _simavr.avr_symbol_t_symbol_set
    __swig_getmethods__["symbol"] = _simavr.avr_symbol_t_symbol_get
    if _newclass:symbol = _swig_property(_simavr.avr_symbol_t_symbol_get, _simavr.avr_symbol_t_symbol_set)
    __swig_setmethods__["addr"] = _simavr.avr_symbol_t_addr_set
    __swig_getmethods__["addr"] = _simavr.avr_symbol_t_addr_get
    if _newclass:addr = _swig_property(_simavr.avr_symbol_t_addr_get, _simavr.avr_symbol_t_addr_set)
    def __init__(self): 
        this = _simavr.new_avr_symbol_t()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_symbol_t
    __del__ = lambda self : None;
avr_symbol_t_swigregister = _simavr.avr_symbol_t_swigregister
avr_symbol_t_swigregister(avr_symbol_t)


def avr_make_mcu_by_name(*args):
  return _simavr.avr_make_mcu_by_name(*args)
avr_make_mcu_by_name = _simavr.avr_make_mcu_by_name

def avr_init(*args):
  return _simavr.avr_init(*args)
avr_init = _simavr.avr_init

def avr_reset(*args):
  return _simavr.avr_reset(*args)
avr_reset = _simavr.avr_reset

def avr_run(*args):
  return _simavr.avr_run(*args)
avr_run = _simavr.avr_run

def avr_terminate(*args):
  return _simavr.avr_terminate(*args)
avr_terminate = _simavr.avr_terminate

def avr_set_command_register(*args):
  return _simavr.avr_set_command_register(*args)
avr_set_command_register = _simavr.avr_set_command_register

def avr_set_console_register(*args):
  return _simavr.avr_set_console_register(*args)
avr_set_console_register = _simavr.avr_set_console_register

def avr_loadcode(*args):
  return _simavr.avr_loadcode(*args)
avr_loadcode = _simavr.avr_loadcode

def avr_core_watch_write(*args):
  return _simavr.avr_core_watch_write(*args)
avr_core_watch_write = _simavr.avr_core_watch_write

def avr_core_watch_read(*args):
  return _simavr.avr_core_watch_read(*args)
avr_core_watch_read = _simavr.avr_core_watch_read

def avr_sadly_crashed(*args):
  return _simavr.avr_sadly_crashed(*args)
avr_sadly_crashed = _simavr.avr_sadly_crashed

def avr_callback_sleep_gdb(*args):
  return _simavr.avr_callback_sleep_gdb(*args)
avr_callback_sleep_gdb = _simavr.avr_callback_sleep_gdb

def avr_callback_run_gdb(*args):
  return _simavr.avr_callback_run_gdb(*args)
avr_callback_run_gdb = _simavr.avr_callback_run_gdb

def avr_callback_sleep_raw(*args):
  return _simavr.avr_callback_sleep_raw(*args)
avr_callback_sleep_raw = _simavr.avr_callback_sleep_raw

def avr_callback_run_raw(*args):
  return _simavr.avr_callback_run_raw(*args)
avr_callback_run_raw = _simavr.avr_callback_run_raw
IOPORT_IRQ_PIN0 = _simavr.IOPORT_IRQ_PIN0
IOPORT_IRQ_PIN1 = _simavr.IOPORT_IRQ_PIN1
IOPORT_IRQ_PIN2 = _simavr.IOPORT_IRQ_PIN2
IOPORT_IRQ_PIN3 = _simavr.IOPORT_IRQ_PIN3
IOPORT_IRQ_PIN4 = _simavr.IOPORT_IRQ_PIN4
IOPORT_IRQ_PIN5 = _simavr.IOPORT_IRQ_PIN5
IOPORT_IRQ_PIN6 = _simavr.IOPORT_IRQ_PIN6
IOPORT_IRQ_PIN7 = _simavr.IOPORT_IRQ_PIN7
IOPORT_IRQ_PIN_ALL = _simavr.IOPORT_IRQ_PIN_ALL
IOPORT_IRQ_DIRECTION_ALL = _simavr.IOPORT_IRQ_DIRECTION_ALL
IOPORT_IRQ_COUNT = _simavr.IOPORT_IRQ_COUNT
class avr_ioport_getirq_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_ioport_getirq_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_ioport_getirq_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["bit"] = _simavr.avr_ioport_getirq_t_bit_set
    __swig_getmethods__["bit"] = _simavr.avr_ioport_getirq_t_bit_get
    if _newclass:bit = _swig_property(_simavr.avr_ioport_getirq_t_bit_get, _simavr.avr_ioport_getirq_t_bit_set)
    __swig_setmethods__["irq"] = _simavr.avr_ioport_getirq_t_irq_set
    __swig_getmethods__["irq"] = _simavr.avr_ioport_getirq_t_irq_get
    if _newclass:irq = _swig_property(_simavr.avr_ioport_getirq_t_irq_get, _simavr.avr_ioport_getirq_t_irq_set)
    def __init__(self): 
        this = _simavr.new_avr_ioport_getirq_t()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_ioport_getirq_t
    __del__ = lambda self : None;
avr_ioport_getirq_t_swigregister = _simavr.avr_ioport_getirq_t_swigregister
avr_ioport_getirq_t_swigregister(avr_ioport_getirq_t)

class avr_ioport_state_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_ioport_state_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_ioport_state_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["name"] = _simavr.avr_ioport_state_t_name_set
    __swig_getmethods__["name"] = _simavr.avr_ioport_state_t_name_get
    if _newclass:name = _swig_property(_simavr.avr_ioport_state_t_name_get, _simavr.avr_ioport_state_t_name_set)
    __swig_setmethods__["port"] = _simavr.avr_ioport_state_t_port_set
    __swig_getmethods__["port"] = _simavr.avr_ioport_state_t_port_get
    if _newclass:port = _swig_property(_simavr.avr_ioport_state_t_port_get, _simavr.avr_ioport_state_t_port_set)
    __swig_setmethods__["ddr"] = _simavr.avr_ioport_state_t_ddr_set
    __swig_getmethods__["ddr"] = _simavr.avr_ioport_state_t_ddr_get
    if _newclass:ddr = _swig_property(_simavr.avr_ioport_state_t_ddr_get, _simavr.avr_ioport_state_t_ddr_set)
    __swig_setmethods__["pin"] = _simavr.avr_ioport_state_t_pin_set
    __swig_getmethods__["pin"] = _simavr.avr_ioport_state_t_pin_get
    if _newclass:pin = _swig_property(_simavr.avr_ioport_state_t_pin_get, _simavr.avr_ioport_state_t_pin_set)
    def __init__(self): 
        this = _simavr.new_avr_ioport_state_t()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_ioport_state_t
    __del__ = lambda self : None;
avr_ioport_state_t_swigregister = _simavr.avr_ioport_state_t_swigregister
avr_ioport_state_t_swigregister(avr_ioport_state_t)

class avr_ioport_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_ioport_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_ioport_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["io"] = _simavr.avr_ioport_t_io_set
    __swig_getmethods__["io"] = _simavr.avr_ioport_t_io_get
    if _newclass:io = _swig_property(_simavr.avr_ioport_t_io_get, _simavr.avr_ioport_t_io_set)
    __swig_setmethods__["name"] = _simavr.avr_ioport_t_name_set
    __swig_getmethods__["name"] = _simavr.avr_ioport_t_name_get
    if _newclass:name = _swig_property(_simavr.avr_ioport_t_name_get, _simavr.avr_ioport_t_name_set)
    __swig_setmethods__["r_port"] = _simavr.avr_ioport_t_r_port_set
    __swig_getmethods__["r_port"] = _simavr.avr_ioport_t_r_port_get
    if _newclass:r_port = _swig_property(_simavr.avr_ioport_t_r_port_get, _simavr.avr_ioport_t_r_port_set)
    __swig_setmethods__["r_ddr"] = _simavr.avr_ioport_t_r_ddr_set
    __swig_getmethods__["r_ddr"] = _simavr.avr_ioport_t_r_ddr_get
    if _newclass:r_ddr = _swig_property(_simavr.avr_ioport_t_r_ddr_get, _simavr.avr_ioport_t_r_ddr_set)
    __swig_setmethods__["r_pin"] = _simavr.avr_ioport_t_r_pin_set
    __swig_getmethods__["r_pin"] = _simavr.avr_ioport_t_r_pin_get
    if _newclass:r_pin = _swig_property(_simavr.avr_ioport_t_r_pin_get, _simavr.avr_ioport_t_r_pin_set)
    __swig_setmethods__["pcint"] = _simavr.avr_ioport_t_pcint_set
    __swig_getmethods__["pcint"] = _simavr.avr_ioport_t_pcint_get
    if _newclass:pcint = _swig_property(_simavr.avr_ioport_t_pcint_get, _simavr.avr_ioport_t_pcint_set)
    __swig_setmethods__["r_pcint"] = _simavr.avr_ioport_t_r_pcint_set
    __swig_getmethods__["r_pcint"] = _simavr.avr_ioport_t_r_pcint_get
    if _newclass:r_pcint = _swig_property(_simavr.avr_ioport_t_r_pcint_get, _simavr.avr_ioport_t_r_pcint_set)
    def __init__(self): 
        this = _simavr.new_avr_ioport_t()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_ioport_t
    __del__ = lambda self : None;
avr_ioport_t_swigregister = _simavr.avr_ioport_t_swigregister
avr_ioport_t_swigregister(avr_ioport_t)


def avr_ioport_init(*args):
  return _simavr.avr_ioport_init(*args)
avr_ioport_init = _simavr.avr_ioport_init
ELF_SYMBOLS = _simavr.ELF_SYMBOLS
AVR_SEGMENT_OFFSET_FLASH = _simavr.AVR_SEGMENT_OFFSET_FLASH
AVR_SEGMENT_OFFSET_EEPROM = _simavr.AVR_SEGMENT_OFFSET_EEPROM
class elf_firmware_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, elf_firmware_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, elf_firmware_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["mmcu"] = _simavr.elf_firmware_t_mmcu_set
    __swig_getmethods__["mmcu"] = _simavr.elf_firmware_t_mmcu_get
    if _newclass:mmcu = _swig_property(_simavr.elf_firmware_t_mmcu_get, _simavr.elf_firmware_t_mmcu_set)
    __swig_setmethods__["frequency"] = _simavr.elf_firmware_t_frequency_set
    __swig_getmethods__["frequency"] = _simavr.elf_firmware_t_frequency_get
    if _newclass:frequency = _swig_property(_simavr.elf_firmware_t_frequency_get, _simavr.elf_firmware_t_frequency_set)
    __swig_setmethods__["vcc"] = _simavr.elf_firmware_t_vcc_set
    __swig_getmethods__["vcc"] = _simavr.elf_firmware_t_vcc_get
    if _newclass:vcc = _swig_property(_simavr.elf_firmware_t_vcc_get, _simavr.elf_firmware_t_vcc_set)
    __swig_setmethods__["avcc"] = _simavr.elf_firmware_t_avcc_set
    __swig_getmethods__["avcc"] = _simavr.elf_firmware_t_avcc_get
    if _newclass:avcc = _swig_property(_simavr.elf_firmware_t_avcc_get, _simavr.elf_firmware_t_avcc_set)
    __swig_setmethods__["aref"] = _simavr.elf_firmware_t_aref_set
    __swig_getmethods__["aref"] = _simavr.elf_firmware_t_aref_get
    if _newclass:aref = _swig_property(_simavr.elf_firmware_t_aref_get, _simavr.elf_firmware_t_aref_set)
    __swig_setmethods__["tracename"] = _simavr.elf_firmware_t_tracename_set
    __swig_getmethods__["tracename"] = _simavr.elf_firmware_t_tracename_get
    if _newclass:tracename = _swig_property(_simavr.elf_firmware_t_tracename_get, _simavr.elf_firmware_t_tracename_set)
    __swig_setmethods__["traceperiod"] = _simavr.elf_firmware_t_traceperiod_set
    __swig_getmethods__["traceperiod"] = _simavr.elf_firmware_t_traceperiod_get
    if _newclass:traceperiod = _swig_property(_simavr.elf_firmware_t_traceperiod_get, _simavr.elf_firmware_t_traceperiod_set)
    __swig_setmethods__["tracecount"] = _simavr.elf_firmware_t_tracecount_set
    __swig_getmethods__["tracecount"] = _simavr.elf_firmware_t_tracecount_get
    if _newclass:tracecount = _swig_property(_simavr.elf_firmware_t_tracecount_get, _simavr.elf_firmware_t_tracecount_set)
    __swig_setmethods__["command_register_addr"] = _simavr.elf_firmware_t_command_register_addr_set
    __swig_getmethods__["command_register_addr"] = _simavr.elf_firmware_t_command_register_addr_get
    if _newclass:command_register_addr = _swig_property(_simavr.elf_firmware_t_command_register_addr_get, _simavr.elf_firmware_t_command_register_addr_set)
    __swig_setmethods__["console_register_addr"] = _simavr.elf_firmware_t_console_register_addr_set
    __swig_getmethods__["console_register_addr"] = _simavr.elf_firmware_t_console_register_addr_get
    if _newclass:console_register_addr = _swig_property(_simavr.elf_firmware_t_console_register_addr_get, _simavr.elf_firmware_t_console_register_addr_set)
    __swig_setmethods__["flashbase"] = _simavr.elf_firmware_t_flashbase_set
    __swig_getmethods__["flashbase"] = _simavr.elf_firmware_t_flashbase_get
    if _newclass:flashbase = _swig_property(_simavr.elf_firmware_t_flashbase_get, _simavr.elf_firmware_t_flashbase_set)
    __swig_setmethods__["flash"] = _simavr.elf_firmware_t_flash_set
    __swig_getmethods__["flash"] = _simavr.elf_firmware_t_flash_get
    if _newclass:flash = _swig_property(_simavr.elf_firmware_t_flash_get, _simavr.elf_firmware_t_flash_set)
    __swig_setmethods__["flashsize"] = _simavr.elf_firmware_t_flashsize_set
    __swig_getmethods__["flashsize"] = _simavr.elf_firmware_t_flashsize_get
    if _newclass:flashsize = _swig_property(_simavr.elf_firmware_t_flashsize_get, _simavr.elf_firmware_t_flashsize_set)
    __swig_setmethods__["datasize"] = _simavr.elf_firmware_t_datasize_set
    __swig_getmethods__["datasize"] = _simavr.elf_firmware_t_datasize_get
    if _newclass:datasize = _swig_property(_simavr.elf_firmware_t_datasize_get, _simavr.elf_firmware_t_datasize_set)
    __swig_setmethods__["bsssize"] = _simavr.elf_firmware_t_bsssize_set
    __swig_getmethods__["bsssize"] = _simavr.elf_firmware_t_bsssize_get
    if _newclass:bsssize = _swig_property(_simavr.elf_firmware_t_bsssize_get, _simavr.elf_firmware_t_bsssize_set)
    __swig_setmethods__["eeprom"] = _simavr.elf_firmware_t_eeprom_set
    __swig_getmethods__["eeprom"] = _simavr.elf_firmware_t_eeprom_get
    if _newclass:eeprom = _swig_property(_simavr.elf_firmware_t_eeprom_get, _simavr.elf_firmware_t_eeprom_set)
    __swig_setmethods__["eesize"] = _simavr.elf_firmware_t_eesize_set
    __swig_getmethods__["eesize"] = _simavr.elf_firmware_t_eesize_get
    if _newclass:eesize = _swig_property(_simavr.elf_firmware_t_eesize_get, _simavr.elf_firmware_t_eesize_set)
    __swig_setmethods__["codeline"] = _simavr.elf_firmware_t_codeline_set
    __swig_getmethods__["codeline"] = _simavr.elf_firmware_t_codeline_get
    if _newclass:codeline = _swig_property(_simavr.elf_firmware_t_codeline_get, _simavr.elf_firmware_t_codeline_set)
    __swig_setmethods__["codesize"] = _simavr.elf_firmware_t_codesize_set
    __swig_getmethods__["codesize"] = _simavr.elf_firmware_t_codesize_get
    if _newclass:codesize = _swig_property(_simavr.elf_firmware_t_codesize_get, _simavr.elf_firmware_t_codesize_set)
    __swig_getmethods__["trace"] = _simavr.elf_firmware_t_trace_get
    if _newclass:trace = _swig_property(_simavr.elf_firmware_t_trace_get)
    def __init__(self): 
        this = _simavr.new_elf_firmware_t()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_elf_firmware_t
    __del__ = lambda self : None;
elf_firmware_t_swigregister = _simavr.elf_firmware_t_swigregister
elf_firmware_t_swigregister(elf_firmware_t)

class elf_firmware_t_trace(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, elf_firmware_t_trace, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, elf_firmware_t_trace, name)
    __repr__ = _swig_repr
    __swig_setmethods__["mask"] = _simavr.elf_firmware_t_trace_mask_set
    __swig_getmethods__["mask"] = _simavr.elf_firmware_t_trace_mask_get
    if _newclass:mask = _swig_property(_simavr.elf_firmware_t_trace_mask_get, _simavr.elf_firmware_t_trace_mask_set)
    __swig_setmethods__["addr"] = _simavr.elf_firmware_t_trace_addr_set
    __swig_getmethods__["addr"] = _simavr.elf_firmware_t_trace_addr_get
    if _newclass:addr = _swig_property(_simavr.elf_firmware_t_trace_addr_get, _simavr.elf_firmware_t_trace_addr_set)
    __swig_setmethods__["name"] = _simavr.elf_firmware_t_trace_name_set
    __swig_getmethods__["name"] = _simavr.elf_firmware_t_trace_name_get
    if _newclass:name = _swig_property(_simavr.elf_firmware_t_trace_name_get, _simavr.elf_firmware_t_trace_name_set)
    def __init__(self): 
        this = _simavr.new_elf_firmware_t_trace()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_elf_firmware_t_trace
    __del__ = lambda self : None;
elf_firmware_t_trace_swigregister = _simavr.elf_firmware_t_trace_swigregister
elf_firmware_t_trace_swigregister(elf_firmware_t_trace)


def elf_read_firmware(*args):
  return _simavr.elf_read_firmware(*args)
elf_read_firmware = _simavr.elf_read_firmware

def avr_load_firmware(*args):
  return _simavr.avr_load_firmware(*args)
avr_load_firmware = _simavr.avr_load_firmware

def avr_gdb_init(*args):
  return _simavr.avr_gdb_init(*args)
avr_gdb_init = _simavr.avr_gdb_init

def avr_gdb_processor(*args):
  return _simavr.avr_gdb_processor(*args)
avr_gdb_processor = _simavr.avr_gdb_processor
AVR_VCD_MAX_SIGNALS = _simavr.AVR_VCD_MAX_SIGNALS
AVR_VCD_LOG_SIZE = _simavr.AVR_VCD_LOG_SIZE
class avr_vcd_signal_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_vcd_signal_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_vcd_signal_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["irq"] = _simavr.avr_vcd_signal_t_irq_set
    __swig_getmethods__["irq"] = _simavr.avr_vcd_signal_t_irq_get
    if _newclass:irq = _swig_property(_simavr.avr_vcd_signal_t_irq_get, _simavr.avr_vcd_signal_t_irq_set)
    __swig_setmethods__["alias"] = _simavr.avr_vcd_signal_t_alias_set
    __swig_getmethods__["alias"] = _simavr.avr_vcd_signal_t_alias_get
    if _newclass:alias = _swig_property(_simavr.avr_vcd_signal_t_alias_get, _simavr.avr_vcd_signal_t_alias_set)
    __swig_setmethods__["size"] = _simavr.avr_vcd_signal_t_size_set
    __swig_getmethods__["size"] = _simavr.avr_vcd_signal_t_size_get
    if _newclass:size = _swig_property(_simavr.avr_vcd_signal_t_size_get, _simavr.avr_vcd_signal_t_size_set)
    __swig_setmethods__["name"] = _simavr.avr_vcd_signal_t_name_set
    __swig_getmethods__["name"] = _simavr.avr_vcd_signal_t_name_get
    if _newclass:name = _swig_property(_simavr.avr_vcd_signal_t_name_get, _simavr.avr_vcd_signal_t_name_set)
    def __init__(self): 
        this = _simavr.new_avr_vcd_signal_t()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_vcd_signal_t
    __del__ = lambda self : None;
avr_vcd_signal_t_swigregister = _simavr.avr_vcd_signal_t_swigregister
avr_vcd_signal_t_swigregister(avr_vcd_signal_t)

class avr_vcd_log_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_vcd_log_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_vcd_log_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["when"] = _simavr.avr_vcd_log_t_when_set
    __swig_getmethods__["when"] = _simavr.avr_vcd_log_t_when_get
    if _newclass:when = _swig_property(_simavr.avr_vcd_log_t_when_get, _simavr.avr_vcd_log_t_when_set)
    __swig_setmethods__["signal"] = _simavr.avr_vcd_log_t_signal_set
    __swig_getmethods__["signal"] = _simavr.avr_vcd_log_t_signal_get
    if _newclass:signal = _swig_property(_simavr.avr_vcd_log_t_signal_get, _simavr.avr_vcd_log_t_signal_set)
    __swig_setmethods__["value"] = _simavr.avr_vcd_log_t_value_set
    __swig_getmethods__["value"] = _simavr.avr_vcd_log_t_value_get
    if _newclass:value = _swig_property(_simavr.avr_vcd_log_t_value_get, _simavr.avr_vcd_log_t_value_set)
    def __init__(self): 
        this = _simavr.new_avr_vcd_log_t()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_vcd_log_t
    __del__ = lambda self : None;
avr_vcd_log_t_swigregister = _simavr.avr_vcd_log_t_swigregister
avr_vcd_log_t_swigregister(avr_vcd_log_t)

class avr_vcd_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, avr_vcd_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, avr_vcd_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["avr"] = _simavr.avr_vcd_t_avr_set
    __swig_getmethods__["avr"] = _simavr.avr_vcd_t_avr_get
    if _newclass:avr = _swig_property(_simavr.avr_vcd_t_avr_get, _simavr.avr_vcd_t_avr_set)
    __swig_setmethods__["filename"] = _simavr.avr_vcd_t_filename_set
    __swig_getmethods__["filename"] = _simavr.avr_vcd_t_filename_get
    if _newclass:filename = _swig_property(_simavr.avr_vcd_t_filename_get, _simavr.avr_vcd_t_filename_set)
    __swig_setmethods__["output"] = _simavr.avr_vcd_t_output_set
    __swig_getmethods__["output"] = _simavr.avr_vcd_t_output_get
    if _newclass:output = _swig_property(_simavr.avr_vcd_t_output_get, _simavr.avr_vcd_t_output_set)
    __swig_setmethods__["signal_count"] = _simavr.avr_vcd_t_signal_count_set
    __swig_getmethods__["signal_count"] = _simavr.avr_vcd_t_signal_count_get
    if _newclass:signal_count = _swig_property(_simavr.avr_vcd_t_signal_count_get, _simavr.avr_vcd_t_signal_count_set)
    __swig_setmethods__["signal"] = _simavr.avr_vcd_t_signal_set
    __swig_getmethods__["signal"] = _simavr.avr_vcd_t_signal_get
    if _newclass:signal = _swig_property(_simavr.avr_vcd_t_signal_get, _simavr.avr_vcd_t_signal_set)
    __swig_setmethods__["period"] = _simavr.avr_vcd_t_period_set
    __swig_getmethods__["period"] = _simavr.avr_vcd_t_period_get
    if _newclass:period = _swig_property(_simavr.avr_vcd_t_period_get, _simavr.avr_vcd_t_period_set)
    __swig_setmethods__["start"] = _simavr.avr_vcd_t_start_set
    __swig_getmethods__["start"] = _simavr.avr_vcd_t_start_get
    if _newclass:start = _swig_property(_simavr.avr_vcd_t_start_get, _simavr.avr_vcd_t_start_set)
    __swig_setmethods__["logindex"] = _simavr.avr_vcd_t_logindex_set
    __swig_getmethods__["logindex"] = _simavr.avr_vcd_t_logindex_get
    if _newclass:logindex = _swig_property(_simavr.avr_vcd_t_logindex_get, _simavr.avr_vcd_t_logindex_set)
    __swig_setmethods__["log"] = _simavr.avr_vcd_t_log_set
    __swig_getmethods__["log"] = _simavr.avr_vcd_t_log_get
    if _newclass:log = _swig_property(_simavr.avr_vcd_t_log_get, _simavr.avr_vcd_t_log_set)
    def __init__(self): 
        this = _simavr.new_avr_vcd_t()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _simavr.delete_avr_vcd_t
    __del__ = lambda self : None;
avr_vcd_t_swigregister = _simavr.avr_vcd_t_swigregister
avr_vcd_t_swigregister(avr_vcd_t)


def avr_vcd_init(*args):
  return _simavr.avr_vcd_init(*args)
avr_vcd_init = _simavr.avr_vcd_init

def avr_vcd_close(*args):
  return _simavr.avr_vcd_close(*args)
avr_vcd_close = _simavr.avr_vcd_close

def avr_vcd_add_signal(*args):
  return _simavr.avr_vcd_add_signal(*args)
avr_vcd_add_signal = _simavr.avr_vcd_add_signal

def avr_vcd_start(*args):
  return _simavr.avr_vcd_start(*args)
avr_vcd_start = _simavr.avr_vcd_start

def avr_vcd_stop(*args):
  return _simavr.avr_vcd_stop(*args)
avr_vcd_stop = _simavr.avr_vcd_stop

def avr_step_thread(*args):
  return _simavr.avr_step_thread(*args)
avr_step_thread = _simavr.avr_step_thread

def avr_pause_thread():
  return _simavr.avr_pause_thread()
avr_pause_thread = _simavr.avr_pause_thread

def avr_continue_thread():
  return _simavr.avr_continue_thread()
avr_continue_thread = _simavr.avr_continue_thread

def avr_start_thread(*args):
  return _simavr.avr_start_thread(*args)
avr_start_thread = _simavr.avr_start_thread

def avr_fpeek(*args):
  return _simavr.avr_fpeek(*args)
avr_fpeek = _simavr.avr_fpeek

def avr_peek(*args):
  return _simavr.avr_peek(*args)
avr_peek = _simavr.avr_peek

def get_irq_at(*args):
  return _simavr.get_irq_at(*args)
get_irq_at = _simavr.get_irq_at

def avr_thread_goto_cycle(*args):
  return _simavr.avr_thread_goto_cycle(*args)
avr_thread_goto_cycle = _simavr.avr_thread_goto_cycle

def avr_terminate_thread():
  return _simavr.avr_terminate_thread()
avr_terminate_thread = _simavr.avr_terminate_thread


