SegmentTable::restoreSegments () {
HWmem *hwmem;
- hwmem = getWeightSegment ();
- if (hwmem != nullptr)
- updateSegmentSlot (hwmem, weight_seg_idx_[0]);
-
- for (uint32_t i = 0; i < num_input_segments_; i++) {
- hwmem = getInputSegment (i);
- if (hwmem == nullptr) {
- logerr (TAG, "Unable to find %u-th input segment\n", i);
- return -EINVAL;
- }
- updateSegmentSlot (hwmem, input_seg_idx_[i]);
- }
-
- for (uint32_t i = 0; i < num_output_segments_; i++) {
- hwmem = getOutputSegment (i);
- if (hwmem == nullptr) {
- logerr (TAG, "Unable to find %u-th output segment\n", i);
- return -EINVAL;
- }
- updateSegmentSlot (hwmem, output_seg_idx_[i]);
+ for (uint32_t idx = 0; idx < segments_.size (); idx++) {
+ hwmem = segments_[idx].get ();
+ if (hwmem != nullptr)
+ updateSegmentSlot (hwmem, idx);
}
return 0;