summaryrefslogtreecommitdiff
path: root/covoar/CoverageMapBase.h
diff options
context:
space:
mode:
Diffstat (limited to 'covoar/CoverageMapBase.h')
-rw-r--r--covoar/CoverageMapBase.h411
1 files changed, 0 insertions, 411 deletions
diff --git a/covoar/CoverageMapBase.h b/covoar/CoverageMapBase.h
deleted file mode 100644
index 70b2b30..0000000
--- a/covoar/CoverageMapBase.h
+++ /dev/null
@@ -1,411 +0,0 @@
-/*! @file CoverageMapBase.h
- * @brief CoverageMapBase Specification
- *
- * This file contains the specification of the CoverageMapBase class.
- */
-
-#ifndef __COVERAGE_MAP_BASE_H__
-#define __COVERAGE_MAP_BASE_H__
-
-#include <stdint.h>
-#include <string>
-#include <list>
-
-namespace Coverage {
-
- /*! @class CoverageMapBase
- *
- * This is the base class for Coverage Map implementations.
- */
- class CoverageMapBase {
-
- public:
-
- /*!
- * This structure identifies the low and high addresses
- * of one range. Note:: There may be more than one address
- * range per symbol.
- */
- typedef struct {
- /*!
- * This is the low address of the address map range.
- */
- uint32_t lowAddress;
-
- /*!
- * This is the high address of the address map range.
- */
- uint32_t highAddress;
-
- } AddressRange_t;
-
- /*
- * This type identifies a list of ranges.
- */
- typedef std::list< AddressRange_t > AddressRange;
- typedef std::list< AddressRange_t >::iterator AddressRangeIterator_t;
-
- /*!
- * This method constructs a CoverageMapBase instance.
- *
- * @param[in] low specifies the lowest address of the coverage map
- * @param[in] high specifies the highest address of the coverage map
- */
- CoverageMapBase(
- uint32_t low,
- uint32_t high
- );
-
- /*!
- * This method destructs a CoverageMapBase instance.
- */
- virtual ~CoverageMapBase();
-
- /*!
- * This method adds a address range to the RangeList.
- *
- * @param[in] Low specifies the lowAddress
- * @param[in] High specifies the highAddress
- *
- */
- void Add( uint32_t low, uint32_t high );
-
- /*!
- * This method returns true and sets the offset if
- * the address falls with the bounds of an address range
- * in the RangeList.
- *
- * @param[in] address specifies the address to find
- * @param[out] offset contains the offset from the low
- * address of the address range.
- *
- * @return Returns TRUE if the address range can be found
- * and FALSE if it was not.
- */
- bool determineOffset( uint32_t address, uint32_t *offset ) const;
-
- /*!
- * This method prints the contents of the coverage map to stdout.
- */
- void dump( void ) const;
-
- /*!
- * This method will return the low address of the first range in
- * the RangeList.
- *
- * @return Returns the low address of the first range in
- * the RangeList.
- */
- int32_t getFirstLowAddress() const;
-
- /*!
- * This method returns true and sets the address range if
- * the address falls with the bounds of an address range
- * in the RangeList.
- *
- * @param[in] address specifies the address to find
- * @param[out] range contains the high and low addresse for
- * the range
- *
- * @return Returns TRUE if the address range can be found
- * and FALSE if it was not.
- */
- bool getRange( uint32_t address, AddressRange_t *range ) const;
-
- /*!
- * This method returns the size of the address range.
- *
- * @return Returns Size of the address range.
- */
- uint32_t getSize() const;
-
-
- /*!
- * This method returns the address of the beginning of the
- * instruction that contains the specified address.
- *
- * @param[in] address specifies the address to search from
- * @param[out] beginning contains the address of the beginning of
- * the instruction.
- *
- * @return Returns TRUE if the beginning of the instruction was
- * found and FALSE if it was not.
- */
- bool getBeginningOfInstruction(
- uint32_t address,
- uint32_t* beginning
- ) const;
-
- /*!
- * This method returns the high address of the coverage map.
- *
- * @return Returns the high address of the coverage map.
- uint32_t getHighAddress( void ) const;
- */
-
- /*!
- * This method returns the low address of the coverage map.
- *
- * @return Returns the low address of the coverage map.
- uint32_t getLowAddress( void ) const;
- */
-
- /*!
- * This method sets the boolean which indicates if this
- * is the starting address for an instruction.
- *
- * @param[in] address specifies the address of the start of an instruction
- */
- void setIsStartOfInstruction(
- uint32_t address
- );
-
- /*!
- * This method returns a boolean which indicates if this
- * is the starting address of an instruction.
- *
- * @param[in] address specifies the address to check
- *
- * @return Returns TRUE if the specified address is the start
- * of an instruction and FALSE otherwise.
- */
- bool isStartOfInstruction( uint32_t address ) const;
-
- /*!
- * This method increments the counter which indicates how many times
- * the instruction at the specified address was executed.
- *
- * @param[in] address specifies the address which was executed
- */
- virtual void setWasExecuted( uint32_t address );
-
- /*!
- * This method returns a boolean which indicates if the instruction
- * at the specified address was executed.
- *
- * @param[in] address specifies the address to check
- *
- * @return Returns TRUE if the instruction at the specified
- * address was executed and FALSE otherwise.
- */
- bool wasExecuted( uint32_t address ) const;
-
- /*!
- * This method increases the counter which indicates how many times
- * the instruction at the specified address was executed. It is used
- * for merging coverage maps.
- *
- * @param[in] address specifies the address which was executed
- * @param[in] address specifies the execution count that should be
- * added
- */
- virtual void sumWasExecuted( uint32_t address, uint32_t addition );
-
- /*!
- * This method returns an unsigned integer which indicates how often
- * the instruction at the specified address was executed.
- *
- * @param[in] address specifies the address to check
- *
- * @return Returns number of executins
- */
- uint32_t getWasExecuted( uint32_t address ) const;
-
- /*!
- * This method sets the boolean which indicates if the specified
- * address is the starting address of a branch instruction.
- *
- * @param[in] address specifies the address of the branch instruction
- */
- void setIsBranch( uint32_t address );
-
- /*!
- * This method returns a boolean which indicates if the specified
- * address is the starting address of a NOP instruction.
- *
- * @param[in] address specifies the address to check
- *
- * @return Returns TRUE if a NOP instruction is at the
- * specified address and FALSE otherwise.
- */
- bool isNop( uint32_t address ) const;
-
- /*!
- * This method sets the boolean which indicates if the specified
- * address is the starting address of a NOP instruction.
- *
- * @param[in] address specifies the address of the NOP instruction
- */
- void setIsNop( uint32_t address );
-
- /*!
- * This method returns a boolean which indicates if the specified
- * address is the starting address of a branch instruction.
- *
- * @param[in] address specifies the address to check
- *
- * @return Returns TRUE if a branch instruction is at the
- * specified address and FALSE otherwise.
- */
- bool isBranch( uint32_t address ) const;
-
- /*!
- * This method increments the counter which indicates how many times
- * the branch at the specified address was taken.
- *
- * @param[in] address specifies the address of the branch instruction
- */
- void setWasTaken( uint32_t address );
-
- /*!
- * This method increases the counter which indicates how many times
- * the branch at the specified address was taken. It is used
- * for merging coverage maps.
- *
- * @param[in] address specifies the address which was executed
- * @param[in] address specifies the execution count that should be
- * added
- */
- virtual void sumWasTaken( uint32_t address, uint32_t addition );
-
- /*!
- * This method returns an unsigned integer which indicates how often
- * the branch at the specified address was taken.
- *
- * @param[in] address specifies the address to check
- *
- * @return Returns number of executins
- */
- uint32_t getWasTaken( uint32_t address ) const;
-
- /*!
- * This method increments the counter which indicates how many times
- * the branch at the specified address was not taken.
- *
- * @param[in] address specifies the address of the branch instruction
- */
- void setWasNotTaken( uint32_t address );
-
- /*!
- * This method increases the counter which indicates how many times
- * the branch at the specified address was not taken. It is used
- * for merging coverage maps.
- *
- * @param[in] address specifies the address which was executed
- * @param[in] address specifies the execution count that should be
- * added
- */
- virtual void sumWasNotTaken( uint32_t address, uint32_t addition );
-
- /*!
- * This method returns an unsigned integer which indicates how often
- * the branch at the specified address was not taken.
- *
- * @param[in] address specifies the address to check
- *
- * @return Returns number of executins
- */
- uint32_t getWasNotTaken( uint32_t address ) const;
-
-
- /*!
- * This method returns a boolean which indicates if the branch
- * instruction at the specified address is ALWAYS taken.
- *
- * @param[in] address specifies the address to check
- *
- * @return Returns TRUE if the branch instruction at the
- * specified address is ALWAYS taken and FALSE otherwise.
- */
- bool wasAlwaysTaken( uint32_t address ) const;
-
- /*!
- * This method returns a boolean which indicates if the branch
- * instruction at the specified address is NEVER taken.
- *
- * @param[in] address specifies the address to check
- *
- * @return Returns TRUE if the branch instruction at the
- * specified address is NEVER taken and FALSE otherwise.
- */
- bool wasNeverTaken( uint32_t address ) const;
-
- /*!
- * This method returns a boolean which indicates if the branch
- * instruction at the specified address was NOT taken.
- *
- * @param[in] address specifies the address to check
- *
- * @return Returns TRUE if the branch instruction at the
- * specified address was NOT taken and FALSE otherwise.
- */
- bool wasNotTaken( uint32_t address ) const;
-
- /*!
- * This method returns a boolean which indicates if the branch
- * instruction at the specified address was taken.
- *
- * @param[in] address specifies the address to check
- *
- * @return Returns TRUE if the branch instruction at the
- * specified address was taken and FALSE otherwise.
- */
- bool wasTaken( uint32_t address ) const;
-
- protected:
-
- /*!
- * This structure defines the information that is gathered and
- * tracked per address.
- */
- typedef struct {
- /*!
- * This member indicates that the address is the start of
- * an instruction.
- */
- bool isStartOfInstruction;
- /*!
- * This member indicates how many times the address was executed.
- */
- uint32_t wasExecuted;
- /*!
- * This member indicates that the address is a branch instruction.
- */
- bool isBranch;
- /*!
- * This member indicates that the address is a NOP instruction.
- */
- bool isNop;
- /*!
- * When isBranch is TRUE, this member indicates that the branch
- * instruction at the address was taken.
- */
- uint32_t wasTaken;
- /*!
- * When isBranch is TRUE, this member indicates that the branch
- * instruction at the address was NOT taken.
- */
- uint32_t wasNotTaken;
- } perAddressInfo_t;
-
- /*!
- *
- * This is a list of address ranges for this symbolic address.
- */
- AddressRange RangeList;
-
- /*!
- *
- * This variable contains the size of the code block.
- */
- uint32_t Size;
-
- /*!
- * This is a dynamically allocated array of data that is
- * kept for each address.
- */
- perAddressInfo_t* Info;
- };
-
-}
-#endif