PROLEAD
A Probing-Based Leakage Detection Tool for Hardware and Software
Loading...
Searching...
No Matches
Functions
Software::Probing Namespace Reference

Functions

void GetProbingSets (Software::ThreadSimulationStruct &ThreadSimulation, SettingsStruct &Settings, Software::TestStruct &Test, std::vector< std::tuple< uint32_t, uint32_t > > &OrderOverTwoCombination, std::vector< std::vector< uint32_t > > &ProbeInfoToStandardProbe, uint64_t SimulationIndex)
 Generate probing sets from single probes, does it for any order and univariate and multivariate.
 
void GetMultivariateProbingSets (std::vector< std::vector< Software::ProbesStruct > > &OneSimulationStandardProbes, SettingsStruct &Settings, Software::TestStruct &Test, std::vector< std::tuple< uint32_t, uint32_t > > &OrderOverTwoCombination, std::vector< std::vector< uint32_t > > &ProbeInfoToStandardProbe, uint32_t ThreadIndex, uint32_t SimulationIndex)
 Get the Multivariate Probing Sets object.
 
bool InDistance (Software::SettingsStruct &Settings, std::vector< Software::ProbesStruct > &ProbingSet)
 
uint32_t MemoryConsumption ()
 
void CreateNormalProbe (std::vector< uint8_t > &NormalProbesRegister, std::vector< Software::ProbesStruct > &StandardProbes, std::vector< std::vector< uint8_t > > &ProbeValueRegister, uint32_t &ProbeIndex, uint64_t &ProbeInfo, uint32_t RegisterTransitionCycle, uint32_t InstrNr, uint64_t SimulationIdx, uint32_t DestinationRegisterValue, uint8_t RegNr)
 Create a Normal Probe object.
 
void CreateHorizontalProbe (std::vector< Software::ProbesStruct > &StandardProbes, uint32_t RegisterTransitionCycle, uint8_t ExtensionSize, uint32_t &ProbeIndex, uint32_t InstrNr, uint8_t RegisterNumber)
 Create a Horizontal Probe.
 
void CreateLargeVerticalProbe (std::vector< Software::ProbesStruct > &StandardProbes, uint64_t &ProbeInfo, uint32_t &ProbeIndex, uint32_t TransCycleRegNr, uint32_t TransCyclePartnerRegNr)
 Create a Large Vertical Probe.
 
void CreateSmallVerticalProbe (std::vector< Software::ProbesStruct > &StandardProbes, uint64_t &ProbeInfo, uint32_t &ProbeIndex, uint32_t TransCycleRegNr, uint32_t CyclePartnerRegNr)
 Create a Small Vertical Probe.
 
void CreateLargeFullHorizontalProbe (std::vector< Software::ProbesStruct > &StandardProbes, uint64_t &ProbeInfo, uint32_t &ProbeIndex, uint32_t TransCycleRegNr, uint32_t TransCyclePartnerRegNr)
 Create a Large Full Horizontal Probe.
 
void CreateSmallFullHorizontalProbe (std::vector< Software::ProbesStruct > &StandardProbes, uint64_t &ProbeInfo, uint32_t &ProbeIndex, uint32_t TransCycleRegNr, uint32_t CyclePartnerRegNr)
 Create a Small Full Horizontal Probe.
 
void CreateLargeFullVerticalProbe (std::vector< Software::ProbesStruct > &StandardProbes, std::vector< uint8_t > &FullVerticalProbes, uint8_t BitIdx, uint8_t RegNr, uint32_t &ProbeIndex, uint64_t ProbeInfo, std::vector< uint32_t > &RegisterValues, uint32_t TransValueRegNr, uint32_t TransValuePC, uint32_t TransValuePSR)
 Create a Large Full Vertical Probe.
 
void CreateSmallFullVerticalProbe (std::vector< Software::ProbesStruct > &StandardProbes, std::vector< uint8_t > &FullVerticalProbes, uint8_t BitIdx, uint8_t RegNr1, uint8_t RegNr2, uint32_t &ProbeIndex, uint64_t ProbeInfo, std::vector< uint32_t > &RegisterValues, uint32_t TransValueReg1, uint32_t TransValueReg2)
 Create a Small Full Vertical Probe object.
 
void CreateOneRegisterOnlyFullVerticalProbe (std::vector< Software::ProbesStruct > &StandardProbes, std::vector< uint8_t > &FullVerticalProbes, uint8_t BitIdx, uint8_t RegNr1, uint32_t &ProbeIndex, uint64_t ProbeInfo, std::vector< uint32_t > &RegisterValues, uint32_t TransValueRegNr)
 Create a One Register Only Full Vertical Probe object.
 
void CreateDSPLargeFullVerticalProbe (std::vector< Software::ProbesStruct > &StandardProbes, std::vector< uint8_t > &FullVerticalProbes, uint8_t BitIdx, uint8_t low_RegNr, uint8_t high_RegNr, uint32_t &ProbeIndex, uint64_t ProbeInfo, std::vector< uint32_t > &RegisterValues, uint32_t TransValueLowRegNr, uint32_t TransValueHighRegNr, uint32_t TransValuePC, uint32_t TransValuePSR)
 
void CreateDSPSmallFullVerticalProbe (std::vector< Software::ProbesStruct > &StandardProbes, std::vector< uint8_t > &FullVerticalProbes, uint8_t BitIdx, uint8_t low_RegNr, uint8_t high_RegNr, uint32_t &ProbeIndex, uint64_t ProbeInfo, std::vector< uint32_t > &RegisterValues, uint32_t TransValueLowRegNr, uint32_t TransValueHighRegNr, uint32_t TransValuePC)
 Create a.
 
void CreateMemoryProbe ()
 
void CreateMemShadowProbe (std::vector< Software::ProbesStruct > &StandardProbes, std::vector< uint8_t > &MemoryShadowRegisterProbesIncluded, uint64_t ProbeInfo, uint32_t &ProbeIndex, uint32_t memory_shadow_register, uint32_t next_shadow_register_value, uint32_t TransitionCycle)
 Create a Mem Shadow Probe probe.
 
void CreateSeperateLoadStoreMemShadowProbe (std::vector< Software::ProbesStruct > &StandardProbes, std::vector< uint8_t > &MemoryShadowRegisterProbesIncluded, uint32_t RegNr, uint32_t InstrNr, uint32_t &ProbeIndex, uint32_t load_store_memory_shadow_register, uint32_t next_load_store_shadow_register_value, uint32_t TransitionCycle, uint32_t ExtensionSize, uint32_t LoadStoreFlag)
 Create a Seperate Load Store Mem Shadow Probe probe.
 
void CreateHorizontalMemShadowProbe (std::vector< Software::ProbesStruct > &StandardProbes, uint32_t InstrNr, uint32_t &ProbeIndex, uint8_t RegNr, uint32_t memory_shadow_register, uint32_t next_shadow_register_value, uint32_t TransitionCycle, uint32_t ExtensionSize)
 Create a Horizontal Mem Shadow Probe probe.
 
void CreatePipelineForwardingProbe (std::vector< Software::ProbesStruct > &StandardProbes, std::vector< uint8_t > &PipelineForwardingProbes, uint8_t BitIdx, uint32_t &ProbeIndex, uint64_t ProbeInfo, uint32_t NrOfPipelineStages, std::vector<::mulator::CPU_State > &pipeline_cpu_states)
 Create a Pipeline Forwarding Probe probe.
 
void ExtractAllProbeInfo (uint8_t &Register, uint8_t &Id, uint8_t &PartnerRegister, uint32_t &Cycle, uint8_t &Bit, uint16_t &ExtensionSize, uint8_t &Dependency, Software::ProbesStruct &ProbeFromProbingSet)
 extract all informations from probe info
 
void ExtractBitProbeInfo (uint8_t &Bit, Software::ProbesStruct &ProbeFromProbingSet)
 extract bit index from probe info
 
void ExtractCycleProbeInfo (uint32_t &Cycle, Software::ProbesStruct &ProbeFromProbingSet)
 extract cycle from probe info
 
void ExtractIdProbeInfo (uint8_t &Id, Software::ProbesStruct &ProbeFromProbingSet)
 extract id from probe info
 
void ExtractRegisterProbeInfo (uint8_t &Register, Software::ProbesStruct &ProbeFromProbingSet)
 extract register from probe info
 
void ExtractDependencyProbeInfo (uint8_t &Dependency, Software::ProbesStruct &ProbeFromProbingSet)
 Extract the dependency from probe info.
 
void ExtractExtensionSizeProbeInfo (uint16_t &ExtensionSize, Software::ProbesStruct &ProbeFromProbingSet)
 Extract the extension size from probe info.
 
void FillHigherOrderRedundantCases (std::vector< std::vector< uint32_t > > &)
 
void RedundancyNormalProbe (std::vector< std::vector< uint32_t > > &)
 
void RedundancyHorizontalProbe (std::vector< std::vector< uint32_t > > &)
 
void RedundancyVerticalProbe (std::vector< std::vector< uint32_t > > &)
 
void RedundancyFullHorizontalProbe (std::vector< std::vector< uint32_t > > &)
 
void RedundancyFullVerticalProbe (std::vector< std::vector< uint32_t > > &)
 
void ProbeInfoToStandardProbeMapping (std::vector< std::vector< uint32_t > > &ProbeMapping, Software::HelperStruct &Helper, Software::SettingsStruct &Setting)
 
void Univariate_AddCombinationToProbingSet (Software::ProbingSetStruct &ProbingSet, std::vector< Software::ProbesStruct > &Combination, std::vector< std::tuple< uint32_t, uint32_t > > &OrderOverTwoCombination, std::vector< std::vector< uint32_t > > &ProbeMapping, std::vector< std::vector< uint32_t > > &ResolvedProbes, uint32_t TestOrder)
 
void Multivariate_AddCombinationToProbingSet (Software::ProbingSetStruct &ProbingSet, std::vector< Software::ProbesStruct > &Combination, std::vector< std::tuple< uint32_t, uint32_t > > &OrderOverTwoCombination, std::vector< std::vector< uint32_t > > &ProbeMapping, std::vector< std::vector< uint32_t > > &ResolvedProbes, uint32_t TestOrder)
 

Function Documentation

◆ CreateDSPLargeFullVerticalProbe()

void Software::Probing::CreateDSPLargeFullVerticalProbe ( std::vector< Software::ProbesStruct > &  StandardProbes,
std::vector< uint8_t > &  FullVerticalProbes,
uint8_t  BitIdx,
uint8_t  low_RegNr,
uint8_t  high_RegNr,
uint32_t &  ProbeIndex,
uint64_t  ProbeInfo,
std::vector< uint32_t > &  RegisterValues,
uint32_t  TransValueLowRegNr,
uint32_t  TransValueHighRegNr,
uint32_t  TransValuePC,
uint32_t  TransValuePSR 
)
Parameters
StandardProbeslist of generated probes
FullVerticalProbesall register indices that are used in the probe
BitIdxbit index of probed register
low_RegNrlower register number of dsp instruction
high_RegNrhigher register number of dsp instruction
ProbeIndexindex of probe in list of standard probes where new probe will be inserted
ProbeInfoprobe information of ProbesStruct that will be filled
RegisterValuesvalues of all probed registers for this probe
TransValueLowRegNrold value of lower register
TransValueHighRegNrold value of higher register
TransValuePCold value of pc register
TransValuePSRold value of psr register

◆ CreateDSPSmallFullVerticalProbe()

void Software::Probing::CreateDSPSmallFullVerticalProbe ( std::vector< Software::ProbesStruct > &  StandardProbes,
std::vector< uint8_t > &  FullVerticalProbes,
uint8_t  BitIdx,
uint8_t  low_RegNr,
uint8_t  high_RegNr,
uint32_t &  ProbeIndex,
uint64_t  ProbeInfo,
std::vector< uint32_t > &  RegisterValues,
uint32_t  TransValueLowRegNr,
uint32_t  TransValueHighRegNr,
uint32_t  TransValuePC 
)

Create a.

Parameters
StandardProbeslist of generated probes
FullVerticalProbesall register indices that are used in the probe
BitIdxbit index of probed register
low_RegNrlower register number of dsp instruction
high_RegNrhigher register number of dsp instruction
ProbeIndexindex of probe in list of standard probes where new probe will be inserted
ProbeInfoprobe information of ProbesStruct that will be filled
RegisterValuesvalues of all probed registers for this probe
TransValueLowRegNrold value of lower register
TransValueHighRegNrold value of higher register
TransValuePCold value of pc register

◆ CreateHorizontalMemShadowProbe()

void Software::Probing::CreateHorizontalMemShadowProbe ( std::vector< Software::ProbesStruct > &  StandardProbes,
uint32_t  InstrNr,
uint32_t &  ProbeIndex,
uint8_t  RegNr,
uint32_t  memory_shadow_register,
uint32_t  next_shadow_register_value,
uint32_t  TransitionCycle,
uint32_t  ExtensionSize 
)

Create a Horizontal Mem Shadow Probe probe.

Parameters
StandardProbeslist of generated probes
InstrNrinstruction number when probe was generated
ProbeIndexindex of probe in list of standard probes where new probe will be inserted
RegNrregister number if multiple probes in one instructions are generated to ensure sorted order
memory_shadow_registerold value of memory shadow register
next_shadow_register_valuenew value of memory shadow register
TransitionCycletransition cycle of register
ExtensionSizeHow many standard probes will be created when resolving the probe

◆ CreateHorizontalProbe()

void Software::Probing::CreateHorizontalProbe ( std::vector< Software::ProbesStruct > &  StandardProbes,
uint32_t  RegisterTransitionCycle,
uint8_t  ExtensionSize,
uint32_t &  ProbeIndex,
uint32_t  InstrNr,
uint8_t  RegisterNumber 
)

Create a Horizontal Probe.

Parameters
StandardProbeslist of generated probes
RegisterTransitionCycletransition cycle of register
ExtensionSizeHow many standard probes will be created when resolving the probe
ProbeIndexindex of probe in list of standard probes where new probe will be inserted
InstrNrinstruction number when probe was generated
RegisterNumberNumber of Register that is probed

◆ CreateLargeFullHorizontalProbe()

void Software::Probing::CreateLargeFullHorizontalProbe ( std::vector< Software::ProbesStruct > &  StandardProbes,
uint64_t &  ProbeInfo,
uint32_t &  ProbeIndex,
uint32_t  TransCycleRegNr,
uint32_t  TransCyclePartnerRegNr 
)

Create a Large Full Horizontal Probe.

Parameters
StandardProbeslist of generated probes
ProbeInfoprobe information of ProbesStruct that will be filled
ProbeIndexindex of probe in list of standard probes where new probe will be inserted
TransCycleRegNrtransition cycle of register
TransCyclePartnerRegNrtransition cycle of partner register

◆ CreateLargeFullVerticalProbe()

void Software::Probing::CreateLargeFullVerticalProbe ( std::vector< Software::ProbesStruct > &  StandardProbes,
std::vector< uint8_t > &  FullVerticalProbes,
uint8_t  BitIdx,
uint8_t  RegNr,
uint32_t &  ProbeIndex,
uint64_t  ProbeInfo,
std::vector< uint32_t > &  RegisterValues,
uint32_t  TransValueRegNr,
uint32_t  TransValuePC,
uint32_t  TransValuePSR 
)

Create a Large Full Vertical Probe.

Parameters
StandardProbeslist of generated probes
FullVerticalProbesall register indices that are used in the probe
BitIdxbit index of probed register
RegNrNumber of Register that is probed
ProbeIndexindex of probe in list of standard probes where new probe will be inserted
ProbeInfoprobe information of ProbesStruct that will be filled
RegisterValuesvalues of all probed registers for this probe
TransValueRegNrold value of register
TransValuePCold value of PC
TransValuePSRold value of PSR

◆ CreateLargeVerticalProbe()

void Software::Probing::CreateLargeVerticalProbe ( std::vector< Software::ProbesStruct > &  StandardProbes,
uint64_t &  ProbeInfo,
uint32_t &  ProbeIndex,
uint32_t  TransCycleRegNr,
uint32_t  TransCyclePartnerRegNr 
)

Create a Large Vertical Probe.

Parameters
StandardProbeslist of generated probes
ProbeInfoprobe information of ProbesStruct that will be filled
ProbeIndexindex of probe in list of standard probes where new probe will be inserted
TransCycleRegNrtransition cycle of register
TransCyclePartnerRegNrtransition cycle of partner register

◆ CreateMemoryProbe()

void Software::Probing::CreateMemoryProbe ( )

◆ CreateMemShadowProbe()

void Software::Probing::CreateMemShadowProbe ( std::vector< Software::ProbesStruct > &  StandardProbes,
std::vector< uint8_t > &  MemoryShadowRegisterProbesIncluded,
uint64_t  ProbeInfo,
uint32_t &  ProbeIndex,
uint32_t  memory_shadow_register,
uint32_t  next_shadow_register_value,
uint32_t  TransitionCycle 
)

Create a Mem Shadow Probe probe.

Parameters
StandardProbeslist of generated probes
MemoryShadowRegisterProbesIncludedbits that are considered when probing memory shadow register
ProbeInfoprobe information of ProbesStruct that will be filled
ProbeIndexindex of probe in list of standard probes where new probe will be inserted
memory_shadow_registerold value of memory shadow register
next_shadow_register_valuenew value of memory shadow register
TransitionCycletransition cycle of register

◆ CreateNormalProbe()

void Software::Probing::CreateNormalProbe ( std::vector< uint8_t > &  NormalProbesRegister,
std::vector< Software::ProbesStruct > &  StandardProbes,
std::vector< std::vector< uint8_t > > &  ProbeValueRegister,
uint32_t &  ProbeIndex,
uint64_t &  ProbeInfo,
uint32_t  RegisterTransitionCycle,
uint32_t  InstrNr,
uint64_t  SimulationIdx,
uint32_t  DestinationRegisterValue,
uint8_t  RegNr 
)

Create a Normal Probe object.

Parameters
NormalProbesRegisterlist of bit indices that will be probed for this register
StandardProbeslist of generated probes
ProbeValueRegisterlist to store probed values of probed register in this probed cycle
ProbeIndexindex of probe in list of standard probes where new probe will be inserted
ProbeInfoprobe information of ProbesStruct that will be filled
RegisterTransitionCycletransition cycle of register
InstrNrinstruction number when probe was generated
SimulationIdxcurrent simulation number
DestinationRegisterValuevalue of probed destination register
RegNrNumber of Register that is probed

◆ CreateOneRegisterOnlyFullVerticalProbe()

void Software::Probing::CreateOneRegisterOnlyFullVerticalProbe ( std::vector< Software::ProbesStruct > &  StandardProbes,
std::vector< uint8_t > &  FullVerticalProbes,
uint8_t  BitIdx,
uint8_t  RegNr1,
uint32_t &  ProbeIndex,
uint64_t  ProbeInfo,
std::vector< uint32_t > &  RegisterValues,
uint32_t  TransValueRegNr 
)

Create a One Register Only Full Vertical Probe object.

Parameters
StandardProbeslist of generated probes
FullVerticalProbesall register indices that are used in the probe
BitIdxbit index of probed register
RegNr1Number of Register that is probed
ProbeIndexindex of probe in list of standard probes where new probe will be inserted
ProbeInfoprobe information of ProbesStruct that will be filled
RegisterValuesvalues of all probed registers for this probe
TransValueRegNrold value of register

◆ CreatePipelineForwardingProbe()

void Software::Probing::CreatePipelineForwardingProbe ( std::vector< Software::ProbesStruct > &  StandardProbes,
std::vector< uint8_t > &  PipelineForwardingProbes,
uint8_t  BitIdx,
uint32_t &  ProbeIndex,
uint64_t  ProbeInfo,
uint32_t  NrOfPipelineStages,
std::vector<::mulator::CPU_State > &  pipeline_cpu_states 
)

Create a Pipeline Forwarding Probe probe.

Parameters
StandardProbeslist of generated probes
PipelineForwardingProbes
BitIdxbit index for pipeline forwarding probe (i-th bit of registers)
ProbeIndexindex of probe in list of standard probes where new probe will be inserted
ProbeInfoprobe information of ProbesStruct that will be filled
NrOfPipelineStagesnumber of pipeline stages
pipeline_cpu_statescpu states of last #NrOfPipelineStages cycles

◆ CreateSeperateLoadStoreMemShadowProbe()

void Software::Probing::CreateSeperateLoadStoreMemShadowProbe ( std::vector< Software::ProbesStruct > &  StandardProbes,
std::vector< uint8_t > &  MemoryShadowRegisterProbesIncluded,
uint32_t  RegNr,
uint32_t  InstrNr,
uint32_t &  ProbeIndex,
uint32_t  load_store_memory_shadow_register,
uint32_t  next_load_store_shadow_register_value,
uint32_t  TransitionCycle,
uint32_t  ExtensionSize,
uint32_t  LoadStoreFlag 
)

Create a Seperate Load Store Mem Shadow Probe probe.

Parameters
StandardProbeslist of generated probes
MemoryShadowRegisterProbesIncludedbits that are considered when probing memory shadow register
RegNrregister number if multiple probes in one instructions are generated to ensure sorted order
InstrNrinstruction number when probe was generated
ProbeIndexindex of probe in list of standard probes where new probe will be inserted
load_store_memory_shadow_registerold value of load/store memory shadow register
next_load_store_shadow_register_valuenew value of load/store memory shadow register
TransitionCycletransition cycle of memory shadow register
ExtensionSizeHow many standard probes will be created when resolving the probe
LoadStoreFlagDecide memory register is for load or store operation

◆ CreateSmallFullHorizontalProbe()

void Software::Probing::CreateSmallFullHorizontalProbe ( std::vector< Software::ProbesStruct > &  StandardProbes,
uint64_t &  ProbeInfo,
uint32_t &  ProbeIndex,
uint32_t  TransCycleRegNr,
uint32_t  CyclePartnerRegNr 
)

Create a Small Full Horizontal Probe.

Parameters
StandardProbeslist of generated probes
ProbeInfoprobe information of ProbesStruct that will be filled
ProbeIndexindex of probe in list of standard probes where new probe will be inserted
TransCycleRegNrtransition cycle of register
CyclePartnerRegNrcycle of partner register

◆ CreateSmallFullVerticalProbe()

void Software::Probing::CreateSmallFullVerticalProbe ( std::vector< Software::ProbesStruct > &  StandardProbes,
std::vector< uint8_t > &  FullVerticalProbes,
uint8_t  BitIdx,
uint8_t  RegNr1,
uint8_t  RegNr2,
uint32_t &  ProbeIndex,
uint64_t  ProbeInfo,
std::vector< uint32_t > &  RegisterValues,
uint32_t  TransValueReg1,
uint32_t  TransValueReg2 
)

Create a Small Full Vertical Probe object.

Parameters
StandardProbeslist of generated probes
FullVerticalProbesall register indices that are used in the probe
BitIdxbit index of probed register
RegNr1Number of Register that is probed
RegNr2Number of Register that is probed
ProbeIndexindex of probe in list of standard probes where new probe will be inserted
ProbeInfoprobe information of ProbesStruct that will be filled
RegisterValuesvalues of all probed registers for this probe
TransValueReg1old value of first register
TransValueReg2old value of second register

◆ CreateSmallVerticalProbe()

void Software::Probing::CreateSmallVerticalProbe ( std::vector< Software::ProbesStruct > &  StandardProbes,
uint64_t &  ProbeInfo,
uint32_t &  ProbeIndex,
uint32_t  TransCycleRegNr,
uint32_t  CyclePartnerRegNr 
)

Create a Small Vertical Probe.

Parameters
StandardProbeslist of generated probes
ProbeInfoprobe information of ProbesStruct that will be filled
ProbeIndexindex of probe in list of standard probes where new probe will be inserted
TransCycleRegNrtransition cycle of register
CyclePartnerRegNrcycle of partner register

◆ ExtractAllProbeInfo()

void Software::Probing::ExtractAllProbeInfo ( uint8_t &  Register,
uint8_t &  Id,
uint8_t &  PartnerRegister,
uint32_t &  Cycle,
uint8_t &  Bit,
uint16_t &  ExtensionSize,
uint8_t &  Dependency,
Software::ProbesStruct ProbeFromProbingSet 
)

extract all informations from probe info

Parameters
Registerregister information of probe
Idid information of probe
PartnerRegisterpartner register information of probe
Cyclecycle information of probe
Bitbit information of probe
ExtensionSizeHow many standard probes will be created when resolving the probe
Dependencydependency information of probe
ProbeFromProbingSetprobe to extract the dependency information

◆ ExtractBitProbeInfo()

void Software::Probing::ExtractBitProbeInfo ( uint8_t &  Bit,
Software::ProbesStruct ProbeFromProbingSet 
)

extract bit index from probe info

Parameters
Bitbit information of probe
ProbeFromProbingSetprobe to extract the dependency information

◆ ExtractCycleProbeInfo()

void Software::Probing::ExtractCycleProbeInfo ( uint32_t &  Cycle,
Software::ProbesStruct ProbeFromProbingSet 
)

extract cycle from probe info

Parameters
Cyclecycle information of probe
ProbeFromProbingSetprobe to extract the dependency information

◆ ExtractDependencyProbeInfo()

void Software::Probing::ExtractDependencyProbeInfo ( uint8_t &  Dependency,
Software::ProbesStruct ProbeFromProbingSet 
)

Extract the dependency from probe info.

Parameters
Dependencydependency information of probe
ProbeFromProbingSetprobe to extract the dependency information

◆ ExtractExtensionSizeProbeInfo()

void Software::Probing::ExtractExtensionSizeProbeInfo ( uint16_t &  ExtensionSize,
Software::ProbesStruct ProbeFromProbingSet 
)

Extract the extension size from probe info.

Parameters
ExtensionSizeextension size information of probe
ProbeFromProbingSetprobe to extract the dependency information

◆ ExtractIdProbeInfo()

void Software::Probing::ExtractIdProbeInfo ( uint8_t &  Id,
Software::ProbesStruct ProbeFromProbingSet 
)

extract id from probe info

Parameters
Idid information of probe
ProbeFromProbingSetprobe to extract the dependency information

◆ ExtractRegisterProbeInfo()

void Software::Probing::ExtractRegisterProbeInfo ( uint8_t &  Register,
Software::ProbesStruct ProbeFromProbingSet 
)

extract register from probe info

Parameters
Registerregister information of probe
ProbeFromProbingSetprobe to extract the register information

◆ FillHigherOrderRedundantCases()

void Software::Probing::FillHigherOrderRedundantCases ( std::vector< std::vector< uint32_t > > &  )

◆ GetMultivariateProbingSets()

void Software::Probing::GetMultivariateProbingSets ( std::vector< std::vector< Software::ProbesStruct > > &  OneSimulationStandardProbes,
SettingsStruct Settings,
Software::TestStruct Test,
std::vector< std::tuple< uint32_t, uint32_t > > &  OrderOverTwoCombination,
std::vector< std::vector< uint32_t > > &  ProbeInfoToStandardProbe,
uint32_t  ThreadIndex,
uint32_t  SimulationIndex 
)

Get the Multivariate Probing Sets object.

Parameters
OneSimulationStandardProbesstandard probes of one full simulation
SettingsThe general settings, i.e. parameters for statistical power analysis.
TestThe test settings, i.e. the unique probes and the contingency tables.
OrderOverTwoCombinationall pairwise combintions of possible probes
ProbeInfoToStandardProbemapping between probes generated by prolead and resolved standard probes
ThreadIndexthread number
SimulationIndexcurrent simulation number

◆ GetProbingSets()

void Software::Probing::GetProbingSets ( Software::ThreadSimulationStruct ThreadSimulation,
SettingsStruct Settings,
Software::TestStruct Test,
std::vector< std::tuple< uint32_t, uint32_t > > &  OrderOverTwoCombination,
std::vector< std::vector< uint32_t > > &  ProbeInfoToStandardProbe,
uint64_t  SimulationIndex 
)

Generate probing sets from single probes, does it for any order and univariate and multivariate.

Parameters
ThreadSimulationthread simulation struct to get the probes from
SettingsThe general settings, i.e. parameters for statistical power analysis.
TestThe test settings, i.e. the unique probes and the contingency tables.
OrderOverTwoCombinationall pairwise combintions of possible probes
ProbeInfoToStandardProbemapping between probes generated by prolead and resolved standard probes
SimulationIndexcurrent simulation number

◆ InDistance()

bool Software::Probing::InDistance ( Software::SettingsStruct Settings,
std::vector< Software::ProbesStruct > &  ProbingSet 
)
Parameters
SettingsThe general settings, i.e. parameters for statistical power analysis.
ProbingSetprobing set, consisting of d probes
Returns
true
false

◆ MemoryConsumption()

uint32_t Software::Probing::MemoryConsumption ( )

◆ Multivariate_AddCombinationToProbingSet()

void Software::Probing::Multivariate_AddCombinationToProbingSet ( Software::ProbingSetStruct ProbingSet,
std::vector< Software::ProbesStruct > &  Combination,
std::vector< std::tuple< uint32_t, uint32_t > > &  OrderOverTwoCombination,
std::vector< std::vector< uint32_t > > &  ProbeMapping,
std::vector< std::vector< uint32_t > > &  ResolvedProbes,
uint32_t  TestOrder 
)
Parameters
ProbingSetprobing set that will be filled with d probes
Combinationcombinations of d probes
OrderOverTwoCombinationall pairwise combintions of possible probes
ProbeMappingmapping between probes generated by prolead and resolved standard probes
ResolvedProbesresolved standard probes from generated probes
TestOrderThe security order to test.

◆ ProbeInfoToStandardProbeMapping()

void Software::Probing::ProbeInfoToStandardProbeMapping ( std::vector< std::vector< uint32_t > > &  ProbeMapping,
Software::HelperStruct Helper,
Software::SettingsStruct Setting 
)
Parameters
ProbeMappingmapping between probes generated by prolead and resolved standard probes
Helperhelper struct that track meta information for probes
Settingsettings regarding simulations

◆ RedundancyFullHorizontalProbe()

void Software::Probing::RedundancyFullHorizontalProbe ( std::vector< std::vector< uint32_t > > &  )

◆ RedundancyFullVerticalProbe()

void Software::Probing::RedundancyFullVerticalProbe ( std::vector< std::vector< uint32_t > > &  )

◆ RedundancyHorizontalProbe()

void Software::Probing::RedundancyHorizontalProbe ( std::vector< std::vector< uint32_t > > &  )

◆ RedundancyNormalProbe()

void Software::Probing::RedundancyNormalProbe ( std::vector< std::vector< uint32_t > > &  )

◆ RedundancyVerticalProbe()

void Software::Probing::RedundancyVerticalProbe ( std::vector< std::vector< uint32_t > > &  )

◆ Univariate_AddCombinationToProbingSet()

void Software::Probing::Univariate_AddCombinationToProbingSet ( Software::ProbingSetStruct ProbingSet,
std::vector< Software::ProbesStruct > &  Combination,
std::vector< std::tuple< uint32_t, uint32_t > > &  OrderOverTwoCombination,
std::vector< std::vector< uint32_t > > &  ProbeMapping,
std::vector< std::vector< uint32_t > > &  ResolvedProbes,
uint32_t  TestOrder 
)
Parameters
ProbingSetprobing set that will be filled with d probes
Combinationcombinations of d probes
OrderOverTwoCombinationall pairwise combintions of possible probes
ProbeMappingmapping between probes generated by prolead and resolved standard probes
ResolvedProbesresolved standard probes from generated probes
TestOrderThe security order to test.