#A4# #SimulatorController# #global instance# ## #m_Regs# #RegisterManager*# ## ## #m_Mem# #MemoryManager*# ## ## #m_LstList# #ListenerManager# ## ## #m_Flows# #CoroutineManager# ## ## #m_SuppressedInterrupts# #std::vector<unsigned># ## ## #m_CPUs# #vector<ConcreteCPU*># ## ## #startup# ## #void# ## #initExperiments# ## #void# #empty hook for experiment instantiations# #addFlow# ## #void# ## #flow# #ExperimentFlow*# ## ## #removeFlow# ## #void# ## #flow# #ExperimentFlow*# ## ## #save# ## #void# ## #path# #const string&# ## ## #restore# ## #void# ## #path# #const string&# ## ## #reboot# ## #void# ## #terminate# ## #void# ## #exCode# #int# #EXIT_SUCCESS# ## #getRegisterManager# ## #RegisterManager&# ## #getRegisterManager# ## #RegisterManager&# ## #setRegisterManager# ## ## ## #pReg# #RegisterManager*# ## ## #setMemoryManager# ## #void# ## #MemoryManager*# #pMem# ## ## #getMemoryManager# ## #MemoryManager&# ## #getMemoryManager# ## #MemoryManager&# ## #addListener# ## #bool# ## #li# #BaseListener*# ## ## #addListenerAndResume# ## #BaseListener*# ## #li# #BaseListener*# ## ## #removeListener# ## #void# ## #li# #BaseListener*# ## ## #clearListeners# ## #void# ## #flow# #ExperimentFlow*# #NULL# ## #resume# ## #BaseListener*# ## #isSuppressedInterrupt# ## #bool# ## #interruptNum# #unsigned# ## ## #addSuppressedInterrupt# ## #bool# ## #interruptNum# #unsigned# ## ## #removeSuppressedInterrupt# ## #bool# ## #interruptNum# #unsigned# ## ## #onBreakpoint# ## #void# ## #cpu# #ConcreteCPU*# ## ## #instrPtr# #address_t# ## ## #address_space# #address_t# ## ## #onMemoryAccess# ## #void# ## #cpu# #ConcreteCPU*# ## ## #addr# #address_t# ## ## #len# #size_t# ## ## #is_write# #bool# ## ## #instrPtr# #addess_t# ## ## #onInterrupt# ## #void# ## #cpu# #ConcreteCPU*# ## ## #interruptNum# #unsigned# ## ## #nmi# #bool# ## ## #onTrap# ## #void# ## #cpu# #ConcreteCPU*# ## ## #trapNum# #unsigned# ## ## #onGuestSystem# ## #void# ## #data# #char# ## ## #port# #unsigned# ## ## #onJump# ## #void# ## #cpu# #ConcreteCPU*# ## ## #flagTriggered# #bool# ## ## #opcode# #unsigned# ## ## #cleanup# ## #void# ## #pExp# #ExperimentFlow*# ## ## #getListenerCount# ## #unsigned# ## #hasListeners# ## #bool# ## #addCPU# ## #void# ## #cpu# #ConcreteCPU*# ## ## #getCPU# ## #ConcreteCPU&# ## #id# #size_t# ## ## #dereference# ## #BaseListener*# ## #idx# #index_t# ## ## #toggle# ## #void# ## #pfl# #ExperimentFlow*# ## ## #BochsController# ## ## #m_Regularity# #unsigned# ## ##ifdef DEBUG# #m_Counter# #unsigned# ## ##ifdef DEBUG# #m_pDest# #std::ostream*# ## ##ifdef DEBUG# #m_CurrFlow# #ExperimentFlow*# ## ## #m_CPUContext# #BX_CPU_C*# ## ## #m_CacheEntry# #bxICacheEntry_c*# ## ## #rebootDone# ## #void# ## #restoreDone# ## #void# ## #saveDone# ## #void# ## #fireInterrupt# ## #void# ## #irq# #unsigned# ## ## #onTimerTrigger# ## #void# ## #thisPtr# #void*# ## ## #getMnemonic# ## #const string&# ## #onIOPortEvent# ## #void# ## #data# #unsigned char# ## ## #port# #unsigned# ## ## #out# #bool# ## ## #getICacheEntry# ## #bxICacheEntry_c*# ## #getCPUContext# ## #BX_CPU_C*# ## #updateBPEventInfo# ## #void# ## #context# #BX_CPU_C*# ## ## #cacheEntry# #bxICacheEntry_c*# ## ## ## ## #ListenerManager# ## ## #m_pFired# #BaseListener*# ## ## #m_BufferList# #bufferlist_t# ## ## #m_FireList# #firelist_t# ## ## #m_DeleteList# #deletelist_t# ## ## #add# ## #EvendId# ## #li# #BaseListener*# ## ## #flow# #ExperimentFlow*# ## ## #remove# ## #bool# ## #li# #BaseListener*# ## ## #getContextCount# ## #size_t# ## #getLastFired# ## #BaseListener*# ## #makeActive# ## #iterator# ## #it# #iterator# ## ## #getExperimentOf# ## #ExperimentFlow*# ## #li# #BaseListener*# ## ## #getListenerCount# ## #size_t# ## #m_remove# ## #void# ## #idx# #index_t# ## ## #remove# ## #void# ## #flow# #ExperimentFlow*# ## ## #begin# ## #iterator# ## #end# ## #iterator# ## #triggerActiveListeners# ## #void# ## #makeActive# ## #void# ## #pLi# #BaseListener*# ## ## #BaseListener# ## ## #m_tStamp# #time_t# ## ## #m_OccCounter# #unsigned int# ## ## #m_Parent# #ExperimentFlow*# ## ## #m_OccCounterInit# #unsigned int# ## ## #getTime# ## #time_t# ## #decreaseCounter# ## #void# ## #setCounter# ## #void# ## #val# #unsigned int# #1# ## #getCounter# ## #unsigned int# ## #updateTime# ## #void# ## #getParent# ## #ExperimentFlow*# ## #setParent# ## #void# ## #pFlow# #ExperimentFlow*# ## ## #resetCounter# ## #void# ## #onAddition# ## #bool# ## #onDeletion# ## #void# ## #onTrigger# ## #void# ## ## ## #1# ## #*# #BPSingleListener# ## ## #m_WatchInstrPtr# #address_t# ## ## #getWatchInstructionPointer# ## #address_t# ## #setWatchInstructionPointer# ## #void# ## #iptr# #address_t# ## ## #isMatching# ## #bool# ## #addr# #address_t# ## ## #aspace# #address_t# ## ## #ExperimentFlow# ## ## #run# ## #bool# ## #coroutine_entry# ## #void# ## #MyConcreteExperiment# ## #example# ## ## #TracingPlugin# ## #optional# ## ## ## ## #1# ## #*# #CampaignManager# ## ## #runCampaign# ## ## ## #getSimulator# ## #SimulatorController const *# ## #addParam# ## ## ## #getDone# ## ## ## #noMoreParameters# ## ## ## #done# ## ## ## #Campaign# ## ## #run# ## #void# ## ## ## #1# ## #n# #MyConcreteCampaign# ## #example# ## ## #ExperimentData# ## #Data structure for experiment input and output data# #msg# #google::protobuf::Message*# ## ## #m_workloadID# #uint32_t# ## ## #getMessage# ## #google::protobuf::Message&# ## #getWorkloadID# ## #uint32_t# ## #setWorkloadID# ## #void# ## #id# #uint32_t# ## ## #serialize# ## #bool# ## #output# #ostream*# ## ## #unserialize# ## #bool# ## #input# #istream*# ## ## #DebugString# ## #string# ## #MyConcreteExperimentData# ## #example# ## ## ## ## ## ## ## ## ## ## #ExperimentDataQueue# ## ## #m_queue# #dequeue<ExperimentData*># ## ## #getData# ## #ExperimentData*# ## #addData# ## #void# ## #exp# #ExperimentData*# ## ## ## ## #1# ## #*# ## ## ## ## ## #JobServer# ## ## #undoneJobs# #ExperimentDataQueue# ## ## #waitForConnections# ## #void# ## #sendPendingExperimentData# ## #bool# ## #dest_minion# #Minion# ## ## #receiveExperimentResults# ## #bool# ## #exp_results# #ExperimentData* # ## ## ## ## ## ## ## ## ## #MinionList# ## ## #minion_pool# #vector<Minion*># ## ## ## ## ## ## ## #Minion# ## ## #isWorking# #bool# ## ## #hostname# #string# ## ## #currentExperimentData# #ExperimentData *# ## ## #sockfd# #int# ## ## #getCurrentExperimentData# ## #ExperimentData*# ## #setCurrentExperimentData# ## #void# ## #exp# #ExperimentData*# ## ## #isBusy# ## #bool# ## #setBusy# ## ## ## #state# #bool# ## ## #getHostname# ## #string# ## #setHostname# ## ## ## #host# #string# ## ## #setSocketDescriptor# ## #void# ## #sock# #int# ## ## #getSocketDescriptor# ## #int# ## ## ## #1# ## #*# #ExperimentDataStorage# ## ## #MyConcreteExperimentDataStorage# ## #example# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #Register# ## ## #m_Type# #RegisterType# ## ## #m_Width# #regwidth_t# ## ## #m_Assigned# #bool# ## ## #m_Index# #size_t# ## ## #m_Name# #std::string# ## ## #m_Id# #unsigned int# ## ## #getType# ## #RegisterType# ## #getWidth# ## #regwidth_t# ## #getData# ## #regdata_t# ## #setData# ## #void# ## #data# #regdata_t# ## ## #setName# ## #void# ## #name# #const std::string&# ## ## #getName# ## #const std::string&# ## #getIndex# ## #size_t# ## #isAssigned# ## #bool# ## #getId# ## #unsigned int# ## #MemoryManager# ## ## #getPoolSize# ## #size_t# ## #getStartAddr# ## #host_address_t# ## #getByte# ## #byte_t# ## #addr# #guest_address_t# ## ## #getBytes# ## #void# ## #addr# #guest_address_t# ## ## #cnt# #size_t# ## ## #dest# #std::vector<byte_t>&# ## ## #setByte# ## #void# ## #addr# #guest_address_t# ## ## #data# #byte_t# ## ## #setBytes# ## #void# ## #addr# #guest_address_t# ## ## #data# #const std::vector<byte_t>&# ## ## #guestToHost# ## #host_address_t# ## #addr# #guest_address_t# ## ## #UniformRegisterSet# ## ## #m_Regs# #std::vector< Register* ># ## ## #m_Type# #RegisterType# ## ## #getType# ## #RegisterType# ## #count# ## #size_t# ## #getRegister# ## #Register*# ## #i# #size_t# ## ## #m_add# ## #void# ## #preg# #Register*# ## ## #begin# ## #iterator# ## #end# ## #iterator# ## #first# ## #Register*# ## ## ## ## ## #1..*# ## ## ## ## #1..*# ## ## ## ## ## #BochsMemoryManager# ## ## ## ## #BPRangeListener# ## ## #m_WatchStartAddr# #address_t# ## ## #m_WatchEndAddr# #address_t# ## ## #setWatchInstructionPointerRange# ## #void# ## #start# #address_t# ## ## #end# #address_t# ## ## #isMatching# ## #bool# ## #addr# #address_t# ## ## #aspace# #address_t# ## ## #InterruptListener# ## ## #m_Data# #InterruptEvent# ## ## #isNMI# ## #bool# ## #setNMI# ## ## ## #enabled# #bool# ## ## #TrapListener# ## ## ## ## ## ## #MemAccessListener# ## ## #m_WatchAddr# #address_t # ## ## #m_WatchType# #access_type_t# ## ## #m_WatchWidth# #size_t# ## ## #m_Data# #MemAccessEvent# ## ## #getWatchAddress# ## #address_t# ## #setWatchAddress# ## #void# ## #addr# #address_t# ## ## #isMatching# ## #bool# ## #addr# #address_t# ## ## #accessType# #accessType_t# ## ## #getTriggerAddress# ## #address_t# ## #getTriggerWidth# ## #size_t# ## #setTriggerWidth# ## #void# ## #width# #size_t# ## ## #getTriggerInstructionPointer# ## #address_t# ## #setTriggerInstructionPointer# ## #void# ## #addr# #address_t# ## ## #getTriggerAccessType# ## #accessType_t# ## #setTriggerAccessType# ## #void# ## #type# #accessType_t# ## ## #getWatchAccessType# ## #accessType_t# ## #setTriggerAddress# ## #void# ## #addr# #address_t# ## ## #CoroutineManager# ## ## #STACK_SIZE_DEFAULT# #const unsigned# #4096# ## #m_Flows# #std::map<ExperimentFlow*, corohandle_t># ## ## #m_simCoro# #corohandle_t# ## ## #m_togglerstack# #std::stack<corohandle_t># ## ## #SIM_FLOW# #const ExperimentFlow*# ## ## #m_invoke# ## #void# ## #pData# #void# ## ## #create# ## #void# ## #flow# #ExperimentFlow*# ## ## #data# #ExperimentData*# ## ## #toggle# ## #void# ## #flow# #ExperimentFlow*# ## ## #resume# ## #void# ## #getCurrent# ## #ExperimentFlow*# ## ## ## ## ## ## #TroubleListener# ## ## #m_WatchNumbers# #vector<unsigned># ## ## #m_Data# #TroubleEvent# ## ## #addWatchNumber# ## #bool# ## #troubleNumber# #unsigned# ## ## #removeWatchNumber# ## #bool# ## #troubleNum# #unsigned# ## ## #getWatchNumbers# ## #std::vector<unsigned># ## #isMatching# ## #bool# ## #troubleNum# #unsigned# ## ## #setTriggerNumber# ## ## ## #troubleNum# #unsigned# ## ## #getTriggerNumber# ## #unsigned# ## ## ## ## ## #MemReadListener# ## ## #MemWriteListener# ## ## ## ## ## ## #GuestListener# ## ## #m_Data# #GuestEvent# ## ## #getData# ## #char# ## #setData# ## #void# ## #data# #char# ## ## #getPort# ## #unsigned# ## #setPort# ## #void# ## #port# #unsigned# ## ## #JumpListener# ## ## #m_Data# #JumpEvent# ## ## #getOpcode# ## #unsigned# ## #isRegisterTriggered# ## #bool# ## #setOpcode# ## #void# ## #oc# #unsigned# ## ## #setFlagTriggered# ## #void# ## #flagTriggered# #bool# ## ## #isFlagTriggered# ## #bool# ## ## ## ## ## #TimerListener# ## ## #m_Timeout# #unsigned# ## ## #m_Data# #TimerEvent# ## ## #getId# ## #timer_id_t# ## #setId# ## #void# ## #id# #timer_id_t# ## ## #getTimeout# ## #unsigned# ## ## ## #BPListener# ## ## #m_CR3# #address_t# ## ## #m_Data# #BPEvent# ## ## #getCR3# ## #address_t# ## #setCR3# ## #void# ## #iptr# #address_t# ## ## #aspaceIsMatching# ## #bool# ## #address_space# #address_t# #ANY_ADDR# ## #isMatching# ## #bool# ## #addr# #address_t# #0# ## #address_space# #address_t# #ANY_ADDR# ## #getTriggerInstructionPointer# ## #address_t# ## #setTriggerInstructionPointer# ## #void# ## #iptr# #address_t# ## ## ## ## ## ## ## ## #BaseEvent# ## ## #BPEvent# ## ## #m_TriggerInstrPtr# #address_t# ## ## #getTriggerInstructionPointer# ## #address_t# ## #setTriggerInstructionPointer# ## #void# ## #iptr# #address_t# ## ## ## ## #MemAccessEvent# ## ## #m_TriggerAddr# #address_t# ## ## #m_TriggerWidth# #size_t# ## ## #m_TriggerIP# #address_t# ## ## #m_AccessType# #access_type_t# ## ## #getTriggerAddress# ## #address_t# ## #setTriggerAddress# ## #void# ## #addr# #address_t# ## ## #getTriggerWidth# ## #size_t# ## #setTriggerWidth# ## #void# ## #width# #size_t# ## ## #getTriggerInstructionPointer# ## #address_t# ## #setTriggerInstructionPointer# ## #void# ## #addr# #address_t# ## ## #getTriggerAccessType# ## #accessType_t# ## #setTriggerAccessType# ## #void# ## #type# #accessType_t# ## ## ## ## #TroubleEvent# ## ## #m_TriggerNumber# #int# ## ## #setTriggerNumber# ## ## ## #troubleNum# #unsigned# ## ## #getTriggerNumber# ## #unsigned# ## ## ## #InterruptEvent# ## ## #m_IsNMI# #bool# ## ## #isNMI# ## #bool# ## #setNMI# ## ## ## #enabled# #bool# ## ## ## ## #GuestEvent# ## ## #m_Data# #char# ## ## #m_Port# #unsigned# ## ## #getData# ## #char# ## #setData# ## #void# ## #data# #char# ## ## #getPort# ## #unsigned# ## #setPort# ## #void# ## #port# #unsigned# ## ## ## ## #IOPortListener# ## ## #m_Data# #IOPortEvent# ## ## #m_Port# #unsigned# ## ## #m_Out# #bool# ## ## #getData# ## #unsigned char# ## #setData# ## #void# ## #data# #unsigned char# ## ## #getPort# ## #unsigned# ## #setPort# ## #void# ## #port# #unsigned# ## ## #isMatching# ## #bool# ## #p# #unsigned# ## ## #out# #bool# ## ## #isOutListener# ## #bool# ## #setOut# ## #void# ## #out# #bool# ## ## ## ## #IOPortEvent# ## ## #m_Data# #unsigned char# ## ## #getData# ## #unsigned char# ## #setData# ## #void# ## #data# #unsigned char# ## ## ## ## #JumpListener# ## ## #m_OpcodeTrigger# #unsigned# ## ## #m_FlagTriggered# #bool# ## ## #getTriggerOpcode# ## #unsigned# ## #isRegisterTriggered# ## #bool# ## #setTriggerOpcode# ## #void# ## #oc# #unsigned# ## ## #setFlagTriggered# ## #void# ## #flagTriggered# #bool# ## ## #isFlagTriggered# ## #bool# ## ## ## #GenericTimerEvent# ## ## #m_Id# #timer_id_t# ## ## #getId# ## #timer_id_t# ## #setId# ## #void# ## #id# #timer_id_t# ## ## ## ## #Gem5Controller# ## #To-do!# ## ## ## ## ## ## ## #CPUArchitecture# ## ## #m_Registers# #vector<Register*># ## ## #m_RegisterSubsets# #vector<UniformRegisterSet*># ## ## #m_addRegister# ## #void# ## #reg# #Register*# ## ## #begin# ## #iterator# ## #end# ## #iterator# ## #registerCount# ## #size_t# ## #registerSubsetCount# ## #size_t# ## #getRegister# ## #Register*# ## #i# #size_t# ## ## #getRegisterSet# ## #UniformRegisterSet&# ## #i# #size_t# ## ## #getRegisterSetOfType# ## #UniformRegisterSet*# ## #t# #RegisterType# ## ## #CPUState# ## ## #m_SuppressedInterrupts;# #vector<unsigned># ## ## #getRegisterContent# ## #regdata_t# ## #reg# #Register*# ## ## #setRegisterContent# ## #void# ## #reg# #Register*# ## ## #value# #regdata_t# ## ## #getInstructionPointer# ## #address_t# ## #getStackPointer# ## #address_t# ## #isSuppressedInterrupt# ## #bool# ## #interruptNum# #unsigned# ## ## #addSuppressedInterrupt# ## #bool# ## #interruptNum# #unsigned# ## ## #removeSuppressedInterrupt# ## #bool# ## #interruptNum# #unsigned# ## ## #X86Architecture# ## ## #X86CPUState# ## ## #getBasePointer# ## #address_t# ## #getFlagsRegister# ## #regdata_t# ## ## ## ## ## #ArmCPUState# ## ## #getLinkRegister# ## #address_t# ## ## ## #ArmArchitecture# ## ## ## ## ## ## ## ## #1..*# #BochsCPU# ## ## #m_Id# #unsigned int# ## ## #getId# ## #unsigned int# ## #getCarryFlag# ## #bool# ## #getParityFlag# ## #bool# ## #getZeroFlag# ## #bool# ## #getSignFlag# ## #bool# ## #getOverflowFlag# ## #bool# ## #getTrapFlag# ## #bool# ## #getInterruptFlag# ## #bool# ## #getDirectionFlag# ## #bool# ## #getIOPrivilegeLevel# ## #unsigned# ## #getNestedTaskFlag# ## #bool# ## #getVMFlag# ## #bool# ## #getResumeFlag# ## #bool# ## #getAlignmentCheckFlag# ## #bool# ## #getVInterruptFlag# ## #bool# ## #getVInterruptPendingFlag# ## #bool# ## #getIdentificationFlag# ## #bool# ## #setCarryFlag# ## #void# ## #bit# #bool# ## ## #setParityFlag# ## #void# ## #bit# #bool# ## ## #setZeroFlag# ## #void# ## #bit# #bool# ## ## #setSignFlag# ## #void# ## #bit# #bool# ## ## #setOverflowFlag# ## #void# ## #bit# #bool# ## ## #setTrapFlag# ## #void# ## #bit# #bool# ## ## #setInterruptFlag# ## #void# ## #bit# #bool# ## ## #setDirectionFlag# ## #void# ## #bit# #bool# ## ## #setIOPrivilegeLevel# ## #void# ## #lvl# #unsigned# ## ## #setNestedTaskFlag# ## #void# ## #bit# #bool# ## ## #setResumeFlag# ## #void# ## #bit# #bool# ## ## #setVMFlag# ## #void# ## #bit# #bool# ## ## #setAlignmentCheckFlag# ## #void# ## #bit# #bool# ## ## #setVInterruptFlag# ## #void# ## #bit# #bool# ## ## #setVInterruptPendingFlag# ## #void# ## #bit# #bool# ## ## #setIdentificationFlag# ## #void# ## #bit# #bool# ## ## ## ## ## ## #Gem5ArmCPU# ## ## #m_Id# #unsigned int# ## ## #m_System# #System*# ## ## #getId# ## #unsigned int# ## ## ## ## ## ## ##