summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H32
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/utils/poll.H18
2 files changed, 50 insertions, 0 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H b/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H
index 2223cf4cf..c99a9cc02 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H
@@ -1754,6 +1754,38 @@ class program
return fapi2::current_err;
}
+ ///
+ /// @brief checks if two programs are equal
+ /// @param[in] i_rhs program to compare
+ /// @return bool true if equal
+ ///
+ inline bool operator==( const program<T>& i_rhs ) const
+ {
+ //checks the vector first, to save time if they're not equal (no sense in checking everything else)
+ if(iv_subtests != i_rhs.iv_subtests)
+ {
+ return false;
+ }
+
+ //checks everything else
+ bool l_equal = iv_parameters == i_rhs.iv_parameters;
+ l_equal &= iv_addr_gen == i_rhs.iv_addr_gen;
+ l_equal &= iv_test_type == i_rhs.iv_test_type;
+ l_equal &= iv_poll == i_rhs.iv_poll;
+ l_equal &= iv_addr_map0 == i_rhs.iv_addr_map0;
+ l_equal &= iv_addr_map1 == i_rhs.iv_addr_map1;
+ l_equal &= iv_addr_map2 == i_rhs.iv_addr_map2;
+ l_equal &= iv_addr_map3 == i_rhs.iv_addr_map3;
+ l_equal &= iv_config == i_rhs.iv_config;
+ l_equal &= iv_control == i_rhs.iv_control;
+ l_equal &= iv_async == i_rhs.iv_async;
+ l_equal &= iv_pattern == i_rhs.iv_pattern;
+ l_equal &= iv_thresholds == i_rhs.iv_thresholds;
+
+ //returns result
+ return l_equal;
+ }
+
// Vector of subtests. Note the MCBIST subtests are spread across
// 8 registers - 4 subtests fit in one 64b register
// (16 bits/test, 4 x 16 == 64, 4x8 = 32 subtests)
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/utils/poll.H b/src/import/chips/p9/procedures/hwp/memory/lib/utils/poll.H
index 68752e4b9..016f7ea33 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/utils/poll.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/utils/poll.H
@@ -101,6 +101,24 @@ struct poll_parameters
// The count of polls to make
uint64_t iv_poll_count;
+ ///
+ /// @brief checks if two poll_parameters are equal
+ /// @param[in] i_rhs poll_parameters to compare
+ /// @return bool true if equal
+ ///
+ inline bool operator==( const poll_parameters& i_rhs ) const
+ {
+ //checks equality
+ bool l_equal = iv_initial_delay == i_rhs.iv_initial_delay;
+ l_equal &= iv_initial_sim_delay == i_rhs.iv_initial_sim_delay;
+ l_equal &= iv_delay == i_rhs.iv_delay;
+ l_equal &= iv_sim_delay == i_rhs.iv_sim_delay;
+ l_equal &= iv_poll_count == i_rhs.iv_poll_count;
+
+ //returns the result
+ return l_equal;
+ }
+
poll_parameters( const uint64_t i_initial_delay = DELAY_10NS,
const uint64_t i_initial_sim_delay = 200,
const uint64_t i_delay = DELAY_10NS,
OpenPOWER on IntegriCloud