#A4#
#SimulatorController#
#global instance#
##
#m_Regs#
#RegisterManager*#
##
##
#m_Mem#
#MemoryManager*#
##
##
#m_EvList#
#EventList#
##
##
#m_Flows#
#CoroutineManager#
##
##
#m_SuppressedInterrupts#
#std::vector<unsigned>#
##
##
#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#
##
#fireTimer#
##
#void#
##
#timer#
#uint32_t#
##
##
#getRegisterManager#
##
#RegisterManager&#
##
#getRegisterManager#
##
#RegisterManager&#
##
#setRegisterManager#
##
##
##
#pReg#
#RegisterManager*#
##
##
#setMemoryManager#
##
#void#
##
#MemoryManager*#
#pMem#
##
##
#getMemoryManager#
##
#MemoryManager&#
##
#getMemoryManager#
##
#MemoryManager&#
##
#addEvent#
##
#EventId#
##
#ev#
#BaseEvent*#
##
##
#addEventAndWait#
##
#BaseEvent*#
##
#ev#
#BaseEvent#
##
##
#inject#
##
#EventId#
##
#job#
#FaultInjectionJob#
##
##
#removeEvent#
##
#void#
##
#ev#
#BaseEvent*#
##
##
#clearEvents#
##
#void#
##
#waitAny#
##
#BaseEvent*#
##
#getExperimentData#
##
#<template class T> T*#
##
#isSuppressedInterrupt#
##
#bool#
##
#interruptNum#
#unsigned#
##
##
#addSuppressedInterrupt#
##
#bool#
##
#interruptNum#
#unsigned#
##
##
#removeSuppressedInterrupt#
##
#bool#
##
#interruptNum#
#unsigned#
##
##
#onBreakpointEvent#
##
#void#
##
#instrPtr#
#address_t#
##
##
#onMemoryAccessEvent#
##
#void#
##
#addr#
#address_t#
##
##
#len#
#size_t#
##
##
#rw#
#bool#
##
##
#onInterruptEvent#
##
#void#
##
#type#
#unsigned#
##
##
#nmi#
#bool#
##
##
#onTrapEvent#
##
#void#
##
#type#
#unsigned#
##
##
#onGuestSystemEvent#
##
#void#
##
#data#
#char#
##
##
#port#
#unsigned#
##
##
#onJumpEvent#
##
#void#
##
#flagTriggered#
#bool#
##
##
#opcode#
#unsigned#
##
##
#cleanup#
##
#void#
##
#pExp#
#ExperimentFlow*#
##
##
#BochsController#
##
##
#m_Regularity#
#unsigned#
##
##ifdef DEBUG#
#m_Counter#
#unsigned#
##
##ifdef DEBUG#
#m_pDest#
#std::ostream*#
##
##ifdef DEBUG#
#m_CurrFlow#
#ExperimentFlow*#
##
##
#save#
##
#void#
##
#path#
#const string&#
##
##
#restore#
##
#void#
##
#path#
#const string&#
##
##
#reboot#
##
#void#
##
#rebootDone#
##
#void#
##
#onInstrPtrChanged#
##
#void#
##
#instrPtr#
#address_t#
##
##
#dbgEnableInstrPtrOutput#
##
#void#
##ifdef DEBUG#
#regularity#
#unsigned#
##
##
#dest#
#std::ostream*#
#&cout#
##
#restoreDone#
##
#void#
##
#saveDone#
##
#void#
##
#fireInterrupt#
##
#void#
##
#TODO#
#TODO#
##
##
##
##
#OVPController#
##
##
##
##
#EventList#
##
##
#m_pFired#
#BaseEvent*#
##
##
#m_BufferList#
#bufferlist_t#
##
##
#m_FireList#
#firelist_t#
##
##
#m_DeleteList#
#deletelist_t#
##
##
#add#
##
#EvendId#
##
#ev#
#BaseEvent*#
##
##
#pExp#
#ExperimentFlow*#
##
##
#remove#
##
#bool#
##
#ev#
#BaseEvent*#
##
##
#getEventFromId#
##
#BaseEvent*#
##
#id#
#EventId#
##
##
#getEventsOf#
##
#const eventlist_t*#
##
#pWhat#
#ExperimentFlow*#
##
##
#getContextCount#
##
#size_t#
##
#getLastFired#
##
#BaseEvent*#
##
#makeActive#
##
#void#
##
#ev#
#BaseEvent*#
##
##
#makeActive#
##
#iterator#
##
#it#
#iterator#
##
##
#getExperimentOf#
##
#ExperimentFlow*#
##
#pEv#
#BaseEvent*#
##
##
#getEventCount#
##
#size_t#
##
#m_remove#
##
#iterator#
##
#it#
#iterator#
##
##
#skip_deletelist#
#bool#
##
##
#remove#
##
#iterator#
##
#it#
#iterator #
##
##
#begin#
##
#iterator#
##
#end#
##
#iterator#
##
#fireActiveEvents#
##
#void#
##
##
##
##
##
##
#BaseEvent#
##
##
#m_Counter#
#EventId#
##
##
#m_Id#
#EventId#
##
##
#m_tStamp#
#time_t#
##
##
#m_OccCounter#
#unsigned int#
##
##
#m_Parent#
#ExperimentFlow*#
##
##
#getId#
##
#EvendId#
##
#getTime#
##
#time_t#
##
#decreaseCounter#
##
#void#
##
#setCounter#
##
#void#
##
#val#
#unsigned int#
#0#
##
#getCounter#
##
#unsigned int#
##
#updateTime#
##
#void#
##
#getParent#
##
#ExperimentFlow*#
##
#setParent#
##
#void#
##
#pFlow#
#ExperimentFlow*#
##
##
##
##
#1#
##
#*#
#BPEvent#
##
##
#m_WatchInstrPtr#
#address_t#
##
##
#m_TriggerInstrPtr#
#address_t#
##
##
#getWatchInstructionPointer#
##
#address_t#
##
#setWatchInstructionPointer#
##
#void#
##
#iptr#
#address_t#
##
##
#isMatching#
##
#bool#
##
#addr#
#address_t#
##
##
#getTriggerInstructionPointer#
##
#address_t#
##
#setTriggerInstructionPointer(#
##
#void#
##
#iptr#
#address_t#
##
##
##
##
#ExperimentFlow#
##
##
#run#
##
#bool#
##
#ped#
#ExperimentData*#
##
##
#coroutine_entry#
##
#void#
##
#FaultCoverageExperiment#
##
##
##
##
#MemAccessTracingCoExperiment#
##
##
##
##
##
##
#1#
##
#*#
#CampaignController#
##
##
#getSimulator#
##
#SimulatorController const *#
##
#Campaign#
##
##
#run#
##
#void#
##
##
##
#1#
##
#n#
#FaultCoverageCampaign#
##
##
##
##
#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#
##
#FaultCoverageExperimentData#
##
##
#ExperimentController::getExperimentData#
##
##
##
##
##
##
##
##
##
#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#
##
##
#FaultCoverageExperimentDataStorage#
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
#Register#
##
##
#m_Type#
#RegisterType#
##
##
#m_Width#
#regwidth_t#
##
##
#m_Assigned#
#bool#
##
##
#m_Index#
#size_t#
##
##
#m_Name#
#std::string#
##
##
#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#
##
#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#
##
##
#RegisterManager#
##
##
#m_Subsets#
#std::vector< UniformRegisterSet >#
##
##
#count#
##
#size_t#
##
#subsetCount#
##
#size_t#
##
#getSet#
##
#UniformRegisterSet&#
##
#i#
#size_t#
##
##
#getSetOfType#
##
#UniformRegisterSet&#
##
#t#
#RegisterType#
##
##
#add#
##
#void#
##
#reg#
#UniformRegisterSet&#
##
##
#clear#
##
#void#
##
#getInstructionPointer#
##
#address_t#
##
#getStackPointer#
##
#address_t#
##
#getBasePointer#
##
#address_t#
##
#RegisterIterator#
##
##
#m_RegIter#
#std::vector< Register* >::iterator#
##
##
#m_pSetRef#
#UniformRegisterSet*#
##
##
#m_SetIter#
#std::vector< UniformRegisterSet >::iterator#
##
##
#m_pManRef#
#RegisterManager*#
##
##
#m_End#
#bool#
##
##
#reset#
##
#void#
##
#next#
##
#Register*#
##
#hasMore#
##
#bool#
##
#UniformRegisterSet#
##
##
#m_Regs#
#std::vector< Register* >#
##
##
#m_Type#
#RegisterType#
##
##
#getType#
##
#RegisterType#
##
#count#
##
#size_t#
##
#getRegister#
##
#Register*#
##
#i#
#size_t#
##
##
#add#
##
#void#
##
#reg#
#Register*#
##
##
#clear#
##
#void#
##
##
##
##
##
#1..*#
##
##
##
##
#1..*#
##
##
##
##
##
##
##
##
##
##
##
##
##
##
#BochsRegister#
##
##
#m_pData#
#void*#
##
##
#BxGPReg#
##
##
##
##
#BxPCReg#
##
##
##
##
#BochsMemoryManager#
##
##
##
##
##
##
#BPRangeEvent#
##
##
#m_WatchStartAddr#
#address_t#
##
##
#m_WatchEndAddr#
#address_t#
##
##
#m_TriggerInstrPtr#
#address_t#
##
##
#setWatchInstructionPointerRange#
##
#void#
##
#start#
#address_t#
##
##
#end#
#address_t#
##
##
#isMatching#
##
#bool#
##
#addr#
#address_t#
##
##
#getTriggerInstructionPointer#
##
#address_t#
##
#setTriggerInstructionPointer#
##
#void#
##
#iptr#
#address_t#
##
##
#InterruptEvent#
##
##
#m_IsNMI#
#bool#
##
##
#isNMI#
##
#bool#
##
#setNMI#
##
##
##
#enabled#
#bool#
##
##
#TrapEvent#
##
##
##
##
##
##
#MemAccessEvent#
##
##
#m_WatchAddr#
#address_t #
##
##
#m_WatchType#
#accessType_t#
##
##
#m_TriggerAddr#
#sal::address_t#
##
##
#m_TriggerWidth#
#size_t#
##
##
#m_TriggerIP#
#address_t#
##
##
#m_AccessType#
#accessType_t#
##
##
#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#
##
#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*#
##
##
##
##
##
##
##
##
##
##
##
#BochsRegisterManager#
##
##
#getInstructionPointer#
##
#address_t#
##
#getStackPointer#
##
#address_t#
##
#getBasePointer#
##
#address_t#
##
##
##
#BxFlagsReg#
##
##
#getCarryFlag#
##
#bool#
##
#getParityFlag#
##
#bool#
##
#getZeroFlag#
##
#bool#
##
#getSignFlag#
##
#bool#
##
#getOverflowFlag#
##
#bool#
##
#setCarryFlag#
##
#void#
##
#bit#
#bool#
##
##
#setParityFlag#
##
#void#
##
#bit#
#booĺ#
##
##
#setZeroFlag#
##
#void#
##
#bit#
#bool#
##
##
#setSignFlag#
##
#void#
##
#bit#
#bool#
##
##
#setOverflowFlag#
##
#void#
##
#bit#
#bool#
##
##
##
##
#TroubleEvent#
##
##
#m_TriggerNumber#
#int#
##
##
#m_WatchNumbers#
#std::vector<unsigned>#
##
##
#addWatchNumber#
##
#bool#
##
#troubleNumber#
#unsigned#
##
##
#removeWatchNumber#
##
#bool#
##
#troubleNum#
#unsigned#
##
##
#getWatchNumbers#
##
#std::vector<unsigned>#
##
#isMatching#
##
#bool#
##
#troubleNum#
#unsigned#
##
##
#setTriggerNumber#
##
##
##
#troubleNum#
#unsigned#
##
##
#getTriggerNumber#
##
#unsigned#
##
##
##
##
##
#MemReadEvent#
##
##
#MemWriteEvent#
##
##
##
##
##
##
##
##
#GuestEvent#
##
##
#m_Data#
#char#
##
##
#m_Port#
#unsigned#
##
##
#getData#
##
#char#
##
#setData#
##
#void#
##
#data#
#char#
##
##
#getPort#
##
#unsigned#
##
#setPort#
##
#void#
##
#port#
#unsigned#
##
##
#JumpEvent#
##
##
#m_Opcode#
#unsigned#
##
##
#m_FlagTriggered#
#bool#
##
##
#getOpcode#
##
#unsigned#
##
#isRegisterTriggered#
##
#bool#
##
#setOpcode#
##
#void#
##
#oc#
#unsigned#
##
##
#setFlagTriggered#
##
#void#
##
#flagTriggered#
#bool#
##
##
##
##
##
##