Skip to content

Commit f1c57dd

Browse files
aamarincrgeddes
authored andcommitted
Update index_within_bounds() API
Propagating new API for index checking for more use to fit existing cases in source. Change-Id: Iecd109b0c53089fccc413eedbd2202d6dfa46657 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/93135 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Louis Stermole <stermole@us.ibm.com> Reviewed-by: Mark Pizzutillo <mark.pizzutillo@ibm.com> Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: Jennifer A Stofer <stofer@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/93173 Reviewed-by: Christian R Geddes <crgeddes@us.ibm.com> Tested-by: Christian R Geddes <crgeddes@us.ibm.com>
1 parent 4991558 commit f1c57dd

File tree

3 files changed

+13
-58
lines changed

3 files changed

+13
-58
lines changed

src/import/generic/memory/lib/data_engine/data_engine_utils.H

Lines changed: 4 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -245,33 +245,12 @@ inline fapi2::ReturnCode update_data(const std::shared_ptr<efd::base_decoder>& i
245245
const auto l_dimm_index = i_efd_data->get_rank() / mss::MAX_RANK_PER_DIMM;
246246
const auto l_dimm_rank = i_efd_data->get_rank() % mss::MAX_RANK_PER_DIMM;
247247

248-
FAPI_ASSERT( l_dimm_index < X,
249-
fapi2::MSS_OUT_OF_BOUNDS_INDEXING()
250-
.set_INDEX(l_dimm_index)
251-
.set_LIST_SIZE(X)
252-
.set_FUNCTION(i_ffdc_code)
253-
.set_TARGET(l_ocmb),
254-
"Dimm index (%d) was larger than max (%d) on %s",
255-
l_dimm_index,
256-
X,
257-
mss::spd::c_str(l_ocmb) );
258-
259-
FAPI_ASSERT( l_dimm_rank < Y,
260-
fapi2::MSS_OUT_OF_BOUNDS_INDEXING()
261-
.set_INDEX(l_dimm_rank)
262-
.set_LIST_SIZE(X)
263-
.set_FUNCTION(i_ffdc_code)
264-
.set_TARGET(l_ocmb),
265-
"Rank index (%d) was larger than max (%d) on %s",
266-
l_dimm_rank,
267-
Y,
268-
mss::spd::c_str(l_ocmb) );
248+
FAPI_TRY( check::index_within_bounds(l_ocmb, l_dimm_index, X, i_ffdc_code) );
249+
FAPI_TRY( check::index_within_bounds(l_ocmb, l_dimm_rank, Y, i_ffdc_code) );
269250

270251
FAPI_DBG("Updating data[%d][%d] with %d for %s", l_dimm_index, l_dimm_rank, i_setting, spd::c_str(l_ocmb));
271252
o_data[l_dimm_index][l_dimm_rank] = i_setting;
272253

273-
return fapi2::FAPI2_RC_SUCCESS;
274-
275254
fapi_try_exit:
276255
return fapi2::current_err;
277256
}
@@ -299,22 +278,11 @@ inline fapi2::ReturnCode update_data( const spd::facade& i_spd_data,
299278
const auto l_dimm = i_spd_data.get_dimm_target();
300279
const size_t l_dimm_index = mss::index(l_dimm);
301280

302-
FAPI_ASSERT( l_dimm_index < X,
303-
fapi2::MSS_OUT_OF_BOUNDS_INDEXING()
304-
.set_INDEX(l_dimm_index)
305-
.set_LIST_SIZE(X)
306-
.set_FUNCTION(i_ffdc_code)
307-
.set_TARGET(l_dimm),
308-
"Dimm index (%d) was larger than max (%d) on %s",
309-
l_dimm_index,
310-
X,
311-
mss::spd::c_str(l_dimm) );
281+
FAPI_TRY( check::index_within_bounds(l_dimm, l_dimm_index, X, i_ffdc_code) );
312282

313283
FAPI_DBG("Updating data[%d] with %d for %s", l_dimm_index, i_setting, spd::c_str(l_dimm));
314284
o_data[l_dimm_index] = i_setting;
315285

316-
return fapi2::FAPI2_RC_SUCCESS;
317-
318286
fapi_try_exit:
319287
return fapi2::current_err;
320288
}
@@ -342,22 +310,11 @@ inline fapi2::ReturnCode update_data( const fapi2::Target<T>& i_target,
342310
{
343311
const size_t l_dimm_index = mss::index(i_target);
344312

345-
FAPI_ASSERT( l_dimm_index < X,
346-
fapi2::MSS_OUT_OF_BOUNDS_INDEXING()
347-
.set_INDEX(l_dimm_index)
348-
.set_LIST_SIZE(X)
349-
.set_FUNCTION(i_ffdc_code)
350-
.set_TARGET(i_target),
351-
"Dimm index (%d) was larger than max (%d) on %s",
352-
l_dimm_index,
353-
X,
354-
mss::spd::c_str(i_target) );
313+
FAPI_TRY( check::index_within_bounds(i_target, l_dimm_index, X, i_ffdc_code) );
355314

356315
FAPI_DBG("Updating data[%d] with %d for %s", l_dimm_index, i_setting, spd::c_str(i_target));
357316
o_data[l_dimm_index] = i_setting;
358317

359-
return fapi2::FAPI2_RC_SUCCESS;
360-
361318
fapi_try_exit:
362319
return fapi2::current_err;
363320
}

src/import/generic/memory/lib/utils/mss_field.H

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ inline fapi2::ReturnCode get_field(const fapi2::Target<T>& i_target,
184184
OT& o_value)
185185
{
186186
const size_t BYTE = F.get_byte(i_data);
187-
FAPI_TRY(check::index_within_bounds(i_target, BYTE, i_data, i_ffdc_codes));
187+
FAPI_TRY(check::index_within_bounds(i_target, BYTE, i_data.size(), i_ffdc_codes));
188188

189189
{
190190
// clear out stale state
@@ -233,7 +233,7 @@ inline fapi2::ReturnCode set_field(const fapi2::Target<T>& i_target,
233233
{
234234
const size_t BYTE = F.get_byte(io_data);
235235

236-
FAPI_TRY(check::index_within_bounds(i_target, BYTE, io_data, i_ffdc_codes));
236+
FAPI_TRY(check::index_within_bounds(i_target, BYTE, io_data.size(), i_ffdc_codes));
237237
FAPI_TRY(check::invalid_type_conversion<uint8_t>(i_target, i_setting, i_ffdc_codes));
238238

239239
{

src/import/generic/memory/lib/utils/mss_generic_check.H

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -289,32 +289,30 @@ fapi_try_exit:
289289
/// @brief Checks conditional passes and implements traces & exits if it fails
290290
/// @tparam T fapi2 target type
291291
/// @tparam IT index type
292-
/// @tparam VT vector data type
292+
/// @tparam ST size type
293293
/// @tparam FFDC error callout code type
294294
/// @param[in] i_target fapi2 target
295295
/// @param[in] i_index desired vector index
296-
/// @param[in] i_data vector data
296+
/// @param[in] i_size size of the list we are comparing
297297
/// @param[in] i_ffdc_codes FFDC code
298298
/// @param[in] i_err_str error string - defaulted to ""
299299
/// @return FAPI2_RC_SUCCESS iff okay
300300
///
301-
template< fapi2::TargetType T, typename IT, typename VT, typename FFDC >
301+
template< fapi2::TargetType T, typename IT, typename ST, typename FFDC >
302302
fapi2::ReturnCode index_within_bounds(const fapi2::Target<T>& i_target,
303303
const IT i_index,
304-
const std::vector<VT>& i_data,
304+
const ST i_size,
305305
const FFDC i_ffdc_codes,
306306
const char* i_err_str = "")
307307
{
308-
const auto l_size = i_data.size();
309-
310-
FAPI_ASSERT( i_index < l_size,
308+
FAPI_ASSERT( i_index < i_size,
311309
fapi2::MSS_OUT_OF_BOUNDS_INDEXING()
312310
.set_INDEX(i_index)
313-
.set_LIST_SIZE(l_size)
311+
.set_LIST_SIZE(i_size)
314312
.set_FUNCTION(i_ffdc_codes)
315313
.set_TARGET(i_target),
316314
"%s. Out of bounds indexing (with %d) on a list of size %d for " TARGTIDFORMAT,
317-
i_err_str, i_index, l_size, TARGTID );
315+
i_err_str, i_index, i_size, TARGTID );
318316

319317
return fapi2::FAPI2_RC_SUCCESS;
320318

0 commit comments

Comments
 (0)