#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#
##
##
##
##
##
##
##