diff --git a/CHANGELOG.md b/CHANGELOG.md
index 55c6928..9c88454 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -50,6 +50,18 @@
 
 4. platform: Support PLDM_CPER_EVENT in encode_platform_event_message_req()
 
+5. ABI break for the following functions
+
+   Register assignment for function parameters was changed with the removal of
+   some asserts in related implementations.
+
+   - `decode_entity_auxiliary_names_pdr()`
+   - `decode_get_state_sensor_readings_resp()`
+   - `decode_platform_event_message_req()`
+   - `decode_platform_event_message_resp()`
+   - `decode_sensor_op_data()`
+   - `encode_get_state_effecter_states_resp()`
+
 ### Deprecated
 
 1. oem: meta: Deprecate `decode_oem_meta_file_io_req()`
diff --git a/abi/x86_64/gcc.dump b/abi/x86_64/gcc.dump
index 8dec675..99450dc 100644
--- a/abi/x86_64/gcc.dump
+++ b/abi/x86_64/gcc.dump
@@ -221,9 +221,9 @@
       'Return' => '1023',
       'ShortName' => 'crc32'
     },
-    '3962' => {
+    '3958' => {
       'Header' => 'base.h',
-      'Line' => '609',
+      'Line' => '651',
       'Param' => {
         '0' => {
           'name' => 'msg_type',
@@ -243,15 +243,15 @@
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_pldm_header_only'
     },
-    '4160' => {
+    '4156' => {
       'Header' => 'base.h',
-      'Line' => '596',
+      'Line' => '638',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -271,19 +271,19 @@
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_cc_only_resp'
     },
-    '4369' => {
+    '4365' => {
       'Header' => 'base.h',
-      'Line' => '579',
+      'Line' => '621',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -291,29 +291,29 @@
         },
         '2' => {
           'name' => 'pldm_type',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'transfer_opflag',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'transfer_ctx',
-          'type' => '4612'
+          'type' => '4608'
         },
         '5' => {
           'name' => 'transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '6' => {
           'name' => 'section_offset',
           'offset' => '0',
-          'type' => '4612'
+          'type' => '4608'
         },
         '7' => {
           'name' => 'section_length',
           'offset' => '8',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Reg' => {
@@ -325,9 +325,9 @@
       'Return' => '100',
       'ShortName' => 'decode_multipart_receive_req'
     },
-    '4622' => {
+    '4618' => {
       'Header' => 'base.h',
-      'Line' => '561',
+      'Line' => '603',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -339,19 +339,19 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_set_tid_req'
     },
-    '4817' => {
+    '4813' => {
       'Header' => 'base.h',
-      'Line' => '443',
+      'Line' => '485',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -359,11 +359,11 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'tid',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -375,9 +375,9 @@
       'Return' => '100',
       'ShortName' => 'decode_get_tid_resp'
     },
-    '4933' => {
+    '4929' => {
       'Header' => 'base.h',
-      'Line' => '549',
+      'Line' => '591',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -393,15 +393,15 @@
         },
         '3' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_get_tid_resp'
     },
-    '5143' => {
+    '5139' => {
       'Header' => 'base.h',
-      'Line' => '537',
+      'Line' => '579',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -409,19 +409,19 @@
         },
         '1' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_get_tid_req'
     },
-    '5276' => {
+    '5272' => {
       'Header' => 'base.h',
-      'Line' => '422',
+      'Line' => '464',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -429,19 +429,19 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'next_transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'transfer_flag',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'version',
-          'type' => '5505'
+          'type' => '5501'
         }
       },
       'Reg' => {
@@ -454,13 +454,13 @@
       'Return' => '100',
       'ShortName' => 'decode_get_version_resp'
     },
-    '5515' => {
+    '5511' => {
       'Header' => 'base.h',
-      'Line' => '521',
+      'Line' => '563',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -468,15 +468,15 @@
         },
         '2' => {
           'name' => 'transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '3' => {
           'name' => 'transfer_opflag',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'type',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -489,9 +489,9 @@
       'Return' => '100',
       'ShortName' => 'decode_get_version_req'
     },
-    '5645' => {
+    '5641' => {
       'Header' => 'base.h',
-      'Line' => '507',
+      'Line' => '549',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -520,7 +520,7 @@
         '6' => {
           'name' => 'msg',
           'offset' => '0',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Reg' => {
@@ -529,9 +529,9 @@
       'Return' => '100',
       'ShortName' => 'encode_get_version_resp'
     },
-    '6015' => {
+    '6011' => {
       'Header' => 'base.h',
-      'Line' => '403',
+      'Line' => '445',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -551,19 +551,19 @@
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_get_version_req'
     },
-    '6245' => {
+    '6241' => {
       'Header' => 'base.h',
-      'Line' => '384',
+      'Line' => '426',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -571,11 +571,11 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'commands',
-          'type' => '6428'
+          'type' => '6424'
         }
       },
       'Reg' => {
@@ -587,13 +587,13 @@
       'Return' => '100',
       'ShortName' => 'decode_get_commands_resp'
     },
-    '6438' => {
+    '6434' => {
       'Header' => 'base.h',
-      'Line' => '351',
+      'Line' => '393',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -601,11 +601,11 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'types',
-          'type' => '6428'
+          'type' => '6424'
         }
       },
       'Reg' => {
@@ -617,9 +617,9 @@
       'Return' => '100',
       'ShortName' => 'decode_get_types_resp'
     },
-    '6622' => {
+    '6618' => {
       'Header' => 'base.h',
-      'Line' => '488',
+      'Line' => '530',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -631,23 +631,23 @@
         },
         '2' => {
           'name' => 'commands',
-          'type' => '6890'
+          'type' => '6886'
         },
         '3' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_get_commands_resp'
     },
-    '6895' => {
+    '6891' => {
       'Header' => 'base.h',
-      'Line' => '474',
+      'Line' => '516',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -655,11 +655,11 @@
         },
         '2' => {
           'name' => 'type',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'version',
-          'type' => '5505'
+          'type' => '5501'
         }
       },
       'Reg' => {
@@ -671,9 +671,9 @@
       'Return' => '100',
       'ShortName' => 'decode_get_commands_req'
     },
-    '7006' => {
+    '7002' => {
       'Header' => 'base.h',
-      'Line' => '461',
+      'Line' => '503',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -685,19 +685,19 @@
         },
         '2' => {
           'name' => 'types',
-          'type' => '6890'
+          'type' => '6886'
         },
         '3' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_get_types_resp'
     },
-    '7274' => {
+    '7270' => {
       'Header' => 'base.h',
-      'Line' => '366',
+      'Line' => '408',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -713,7 +713,7 @@
         },
         '3' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Reg' => {
@@ -722,9 +722,9 @@
       'Return' => '100',
       'ShortName' => 'encode_get_commands_req'
     },
-    '7479' => {
+    '7475' => {
       'Header' => 'base.h',
-      'Line' => '334',
+      'Line' => '376',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -732,23 +732,23 @@
         },
         '1' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_get_types_req'
     },
-    '7610' => {
+    '7606' => {
       'Header' => 'base.h',
-      'Line' => '189',
+      'Line' => '231',
       'Param' => {
         '0' => {
           'name' => 'req',
-          'type' => '7678'
+          'type' => '7674'
         },
         '1' => {
           'name' => 'resp',
-          'type' => '7678'
+          'type' => '7674'
         }
       },
       'Reg' => {
@@ -758,45 +758,45 @@
       'Return' => '805',
       'ShortName' => 'pldm_msg_hdr_correlate_response'
     },
-    '7683' => {
+    '7679' => {
       'Header' => 'base.h',
-      'Line' => '319',
+      'Line' => '361',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '7678'
+          'type' => '7674'
         },
         '1' => {
           'name' => 'hdr',
-          'type' => '7917'
+          'type' => '7913'
         }
       },
       'Return' => '121',
       'ShortName' => 'unpack_pldm_header'
     },
-    '7943' => {
+    '7939' => {
       'Header' => 'base.h',
-      'Line' => '306',
+      'Line' => '348',
       'Param' => {
         '0' => {
           'name' => 'hdr',
-          'type' => '8177'
+          'type' => '8173'
         },
         '1' => {
           'name' => 'msg',
-          'type' => '8182'
+          'type' => '8178'
         }
       },
       'Return' => '121',
       'ShortName' => 'pack_pldm_header'
     },
-    '10271' => {
+    '10267' => {
       'Header' => 'bios.h',
       'Line' => '612',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -804,19 +804,19 @@
         },
         '2' => {
           'name' => 'transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '3' => {
           'name' => 'transfer_flag',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'table_type',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'table',
-          'type' => '10448'
+          'type' => '10444'
         }
       },
       'Reg' => {
@@ -829,7 +829,7 @@
       'Return' => '100',
       'ShortName' => 'decode_set_bios_table_req'
     },
-    '10458' => {
+    '10454' => {
       'Header' => 'bios.h',
       'Line' => '594',
       'Param' => {
@@ -847,19 +847,19 @@
         },
         '3' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_set_bios_table_resp'
     },
-    '10677' => {
+    '10673' => {
       'Header' => 'bios.h',
       'Line' => '322',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -867,11 +867,11 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'next_transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Reg' => {
@@ -883,7 +883,7 @@
       'Return' => '100',
       'ShortName' => 'decode_set_bios_table_resp'
     },
-    '10787' => {
+    '10783' => {
       'Header' => 'bios.h',
       'Line' => '302',
       'Param' => {
@@ -914,7 +914,7 @@
         '6' => {
           'name' => 'msg',
           'offset' => '0',
-          'type' => '4155'
+          'type' => '4151'
         },
         '7' => {
           'name' => 'payload_length',
@@ -925,7 +925,7 @@
       'Return' => '100',
       'ShortName' => 'encode_set_bios_table_req'
     },
-    '11176' => {
+    '11172' => {
       'Header' => 'bios.h',
       'Line' => '514',
       'Param' => {
@@ -943,19 +943,19 @@
         },
         '3' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_set_bios_attribute_current_value_resp'
     },
-    '11390' => {
+    '11386' => {
       'Header' => 'bios.h',
       'Line' => '502',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -963,15 +963,15 @@
         },
         '2' => {
           'name' => 'transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '3' => {
           'name' => 'transfer_flag',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'attribute',
-          'type' => '10448'
+          'type' => '10444'
         }
       },
       'Reg' => {
@@ -983,13 +983,13 @@
       'Return' => '100',
       'ShortName' => 'decode_set_bios_attribute_current_value_req'
     },
-    '11537' => {
+    '11533' => {
       'Header' => 'bios.h',
       'Line' => '279',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -997,11 +997,11 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'next_transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Reg' => {
@@ -1013,7 +1013,7 @@
       'Return' => '100',
       'ShortName' => 'decode_set_bios_attribute_current_value_resp'
     },
-    '11647' => {
+    '11643' => {
       'Header' => 'bios.h',
       'Line' => '259',
       'Param' => {
@@ -1039,7 +1039,7 @@
         },
         '5' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '6' => {
           'name' => 'payload_length',
@@ -1053,7 +1053,7 @@
       'Return' => '100',
       'ShortName' => 'encode_set_bios_attribute_current_value_req'
     },
-    '12019' => {
+    '12015' => {
       'Header' => 'bios.h',
       'Line' => '480',
       'Param' => {
@@ -1084,7 +1084,7 @@
         '6' => {
           'name' => 'msg',
           'offset' => '0',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Reg' => {
@@ -1093,13 +1093,13 @@
       'Return' => '100',
       'ShortName' => 'encode_get_bios_current_value_by_handle_resp'
     },
-    '12388' => {
+    '12384' => {
       'Header' => 'bios.h',
       'Line' => '461',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -1107,15 +1107,15 @@
         },
         '2' => {
           'name' => 'transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '3' => {
           'name' => 'transfer_op_flag',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'attribute_handle',
-          'type' => '12530'
+          'type' => '12526'
         }
       },
       'Reg' => {
@@ -1127,13 +1127,13 @@
       'Return' => '100',
       'ShortName' => 'decode_get_bios_attribute_current_value_by_handle_req'
     },
-    '12540' => {
+    '12536' => {
       'Header' => 'bios.h',
       'Line' => '446',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -1141,19 +1141,19 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'next_transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'transfer_flag',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'attribute_data',
-          'type' => '10448'
+          'type' => '10444'
         }
       },
       'Reg' => {
@@ -1166,7 +1166,7 @@
       'Return' => '100',
       'ShortName' => 'decode_get_bios_attribute_current_value_by_handle_resp'
     },
-    '12702' => {
+    '12698' => {
       'Header' => 'bios.h',
       'Line' => '430',
       'Param' => {
@@ -1188,19 +1188,19 @@
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_get_bios_attribute_current_value_by_handle_req'
     },
-    '12931' => {
+    '12927' => {
       'Header' => 'bios.h',
       'Line' => '412',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -1208,19 +1208,19 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'next_transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'transfer_flag',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'bios_table_offset',
-          'type' => '13093'
+          'type' => '13089'
         }
       },
       'Reg' => {
@@ -1233,13 +1233,13 @@
       'Return' => '100',
       'ShortName' => 'decode_get_bios_table_resp'
     },
-    '13103' => {
+    '13099' => {
       'Header' => 'bios.h',
       'Line' => '395',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -1247,15 +1247,15 @@
         },
         '2' => {
           'name' => 'transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '3' => {
           'name' => 'transfer_op_flag',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'table_type',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -1267,7 +1267,7 @@
       'Return' => '100',
       'ShortName' => 'decode_get_bios_table_req'
     },
-    '13250' => {
+    '13246' => {
       'Header' => 'bios.h',
       'Line' => '381',
       'Param' => {
@@ -1289,13 +1289,13 @@
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_get_bios_table_req'
     },
-    '13474' => {
+    '13470' => {
       'Header' => 'bios.h',
       'Line' => '366',
       'Param' => {
@@ -1317,7 +1317,7 @@
         },
         '4' => {
           'name' => 'table_data',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'payload_length',
@@ -1326,7 +1326,7 @@
         '6' => {
           'name' => 'msg',
           'offset' => '0',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Reg' => {
@@ -1335,13 +1335,13 @@
       'Return' => '100',
       'ShortName' => 'encode_get_bios_table_resp'
     },
-    '13827' => {
+    '13823' => {
       'Header' => 'bios.h',
       'Line' => '581',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -1349,7 +1349,7 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -1360,7 +1360,7 @@
       'Return' => '100',
       'ShortName' => 'decode_set_date_time_resp'
     },
-    '13900' => {
+    '13896' => {
       'Header' => 'bios.h',
       'Line' => '565',
       'Param' => {
@@ -1374,7 +1374,7 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '3' => {
           'name' => 'payload_length',
@@ -1384,13 +1384,13 @@
       'Return' => '100',
       'ShortName' => 'encode_set_date_time_resp'
     },
-    '14107' => {
+    '14103' => {
       'Header' => 'bios.h',
       'Line' => '551',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -1398,29 +1398,29 @@
         },
         '2' => {
           'name' => 'seconds',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'minutes',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'hours',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'day',
-          'type' => '4607'
+          'type' => '4603'
         },
         '6' => {
           'name' => 'month',
           'offset' => '0',
-          'type' => '4607'
+          'type' => '4603'
         },
         '7' => {
           'name' => 'year',
           'offset' => '8',
-          'type' => '12530'
+          'type' => '12526'
         }
       },
       'Reg' => {
@@ -1432,7 +1432,7 @@
       'Return' => '100',
       'ShortName' => 'decode_set_date_time_req'
     },
-    '14398' => {
+    '14394' => {
       'Header' => 'bios.h',
       'Line' => '534',
       'Param' => {
@@ -1468,7 +1468,7 @@
         '7' => {
           'name' => 'msg',
           'offset' => '8',
-          'type' => '4155'
+          'type' => '4151'
         },
         '8' => {
           'name' => 'payload_length',
@@ -1479,13 +1479,13 @@
       'Return' => '100',
       'ShortName' => 'encode_set_date_time_req'
     },
-    '14891' => {
+    '14887' => {
       'Header' => 'bios.h',
       'Line' => '238',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -1493,34 +1493,34 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'seconds',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'minutes',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'hours',
-          'type' => '4607'
+          'type' => '4603'
         },
         '6' => {
           'name' => 'day',
           'offset' => '0',
-          'type' => '4607'
+          'type' => '4603'
         },
         '7' => {
           'name' => 'month',
           'offset' => '8',
-          'type' => '4607'
+          'type' => '4603'
         },
         '8' => {
           'name' => 'year',
           'offset' => '16',
-          'type' => '12530'
+          'type' => '12526'
         }
       },
       'Reg' => {
@@ -1533,7 +1533,7 @@
       'Return' => '100',
       'ShortName' => 'decode_get_date_time_resp'
     },
-    '15092' => {
+    '15088' => {
       'Header' => 'bios.h',
       'Line' => '346',
       'Param' => {
@@ -1574,13 +1574,13 @@
         '8' => {
           'name' => 'msg',
           'offset' => '16',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_get_date_time_resp'
     },
-    '15376' => {
+    '15372' => {
       'Header' => 'bios.h',
       'Line' => '217',
       'Param' => {
@@ -1590,13 +1590,13 @@
         },
         '1' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_get_date_time_req'
     },
-    '17310' => {
+    '17306' => {
       'Header' => 'bios_table.h',
       'Line' => '633',
       'Param' => {
@@ -1616,7 +1616,7 @@
       'Return' => '805',
       'ShortName' => 'pldm_bios_table_checksum'
     },
-    '17455' => {
+    '17451' => {
       'Header' => 'bios_table.h',
       'Line' => '624',
       'Param' => {
@@ -1634,7 +1634,7 @@
         },
         '3' => {
           'name' => 'dest_length',
-          'type' => '13093'
+          'type' => '13089'
         },
         '4' => {
           'name' => 'entry',
@@ -1652,7 +1652,7 @@
       'Return' => '100',
       'ShortName' => 'pldm_bios_table_attr_value_copy_and_update'
     },
-    '18143' => {
+    '18139' => {
       'Header' => 'bios_table.h',
       'Line' => '590',
       'Param' => {
@@ -1672,10 +1672,10 @@
       'Reg' => {
         '2' => 'r8'
       },
-      'Return' => '18138',
+      'Return' => '18134',
       'ShortName' => 'pldm_bios_table_attr_value_find_by_handle'
     },
-    '18406' => {
+    '18402' => {
       'Header' => 'bios_table.h',
       'Line' => '197',
       'Param' => {
@@ -1695,10 +1695,10 @@
       'Reg' => {
         '2' => 'r8'
       },
-      'Return' => '18552',
+      'Return' => '18548',
       'ShortName' => 'pldm_bios_table_attr_find_by_string_handle'
     },
-    '18673' => {
+    '18669' => {
       'Header' => 'bios_table.h',
       'Line' => '187',
       'Param' => {
@@ -1718,10 +1718,10 @@
       'Reg' => {
         '2' => 'r8'
       },
-      'Return' => '18552',
+      'Return' => '18548',
       'ShortName' => 'pldm_bios_table_attr_find_by_handle'
     },
-    '18935' => {
+    '18931' => {
       'Header' => 'bios_table.h',
       'Line' => '146',
       'Param' => {
@@ -1735,7 +1735,7 @@
         },
         '2' => {
           'name' => 'str',
-          'type' => '3924'
+          'type' => '3920'
         }
       },
       'Reg' => {
@@ -1743,10 +1743,10 @@
         '1' => 'r12',
         '2' => 'rbx'
       },
-      'Return' => '19155',
+      'Return' => '19151',
       'ShortName' => 'pldm_bios_table_string_find_by_string'
     },
-    '19324' => {
+    '19320' => {
       'Header' => 'bios_table.h',
       'Line' => '155',
       'Param' => {
@@ -1766,16 +1766,16 @@
       'Reg' => {
         '2' => 'r8'
       },
-      'Return' => '19155',
+      'Return' => '19151',
       'ShortName' => 'pldm_bios_table_string_find_by_handle'
     },
-    '20085' => {
+    '20081' => {
       'Header' => 'bios_table.h',
       'Line' => '53',
       'Param' => {
         '0' => {
           'name' => 'iter',
-          'type' => '18133'
+          'type' => '18129'
         }
       },
       'Reg' => {
@@ -1784,43 +1784,43 @@
       'Return' => '2341',
       'ShortName' => 'pldm_bios_table_iter_value'
     },
-    '20133' => {
+    '20129' => {
       'Header' => 'bios_table.h',
       'Line' => '47',
       'Param' => {
         '0' => {
           'name' => 'iter',
-          'type' => '18133'
+          'type' => '18129'
         }
       },
       'Return' => '1',
       'ShortName' => 'pldm_bios_table_iter_next'
     },
-    '20243' => {
+    '20239' => {
       'Header' => 'bios_table.h',
       'Line' => '42',
       'Param' => {
         '0' => {
           'name' => 'iter',
-          'type' => '20318'
+          'type' => '20314'
         }
       },
       'Return' => '805',
       'ShortName' => 'pldm_bios_table_iter_is_end'
     },
-    '20323' => {
+    '20319' => {
       'Header' => 'bios_table.h',
       'Line' => '34',
       'Param' => {
         '0' => {
           'name' => 'iter',
-          'type' => '18133'
+          'type' => '18129'
         }
       },
       'Return' => '1',
       'ShortName' => 'pldm_bios_table_iter_free'
     },
-    '20395' => {
+    '20391' => {
       'Header' => 'bios_table.h',
       'Line' => '28',
       'Param' => {
@@ -1834,7 +1834,7 @@
         },
         '2' => {
           'name' => 'type',
-          'type' => '16009'
+          'type' => '16005'
         }
       },
       'Reg' => {
@@ -1842,10 +1842,10 @@
         '1' => 'r12',
         '2' => 'rbx'
       },
-      'Return' => '18133',
+      'Return' => '18129',
       'ShortName' => 'pldm_bios_table_iter_create'
     },
-    '20633' => {
+    '20629' => {
       'Header' => 'bios_table.h',
       'Line' => '609',
       'Param' => {
@@ -1859,7 +1859,7 @@
         },
         '2' => {
           'name' => 'size',
-          'type' => '13093'
+          'type' => '13089'
         }
       },
       'Reg' => {
@@ -1870,7 +1870,7 @@
       'Return' => '100',
       'ShortName' => 'pldm_bios_table_append_pad_checksum'
     },
-    '20933' => {
+    '20929' => {
       'Header' => 'bios_table.h',
       'Line' => '597',
       'Param' => {
@@ -1882,13 +1882,13 @@
       'Return' => '1145',
       'ShortName' => 'pldm_bios_table_pad_checksum_size'
     },
-    '21288' => {
+    '21284' => {
       'Header' => 'bios_table.h',
       'Line' => '572',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18138'
+          'type' => '18134'
         }
       },
       'Reg' => {
@@ -1897,34 +1897,34 @@
       'Return' => '1011',
       'ShortName' => 'pldm_bios_table_attr_value_entry_decode_handle'
     },
-    '21337' => {
+    '21333' => {
       'Header' => 'bios_table.h',
       'Line' => '579',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18138'
+          'type' => '18134'
         }
       },
       'Return' => '1145',
       'ShortName' => 'pldm_bios_table_attr_value_entry_length'
     },
-    '21821' => {
+    '21817' => {
       'Header' => 'bios_table.h',
       'Line' => '546',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18138'
+          'type' => '18134'
         }
       },
       'Reg' => {
         '0' => 'rdi'
       },
-      'Return' => '15863',
+      'Return' => '15859',
       'ShortName' => 'pldm_bios_table_attr_value_entry_integer_decode_cv'
     },
-    '21961' => {
+    '21957' => {
       'Header' => 'bios_table.h',
       'Line' => '562',
       'Param' => {
@@ -1946,7 +1946,7 @@
         },
         '4' => {
           'name' => 'cv',
-          'type' => '15863'
+          'type' => '15859'
         }
       },
       'Reg' => {
@@ -1959,13 +1959,13 @@
       'Return' => '100',
       'ShortName' => 'pldm_bios_table_attr_value_entry_encode_integer'
     },
-    '22230' => {
+    '22226' => {
       'Header' => 'bios_table.h',
       'Line' => '540',
       'Return' => '1145',
       'ShortName' => 'pldm_bios_table_attr_value_entry_encode_integer_length'
     },
-    '22392' => {
+    '22388' => {
       'Header' => 'bios_table.h',
       'Line' => '533',
       'Param' => {
@@ -1991,7 +1991,7 @@
         },
         '5' => {
           'name' => 'str',
-          'type' => '3924'
+          'type' => '3920'
         }
       },
       'Reg' => {
@@ -2005,29 +2005,29 @@
       'Return' => '100',
       'ShortName' => 'pldm_bios_table_attr_value_entry_encode_string'
     },
-    '22792' => {
+    '22788' => {
       'Header' => 'bios_table.h',
       'Line' => '514',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18138'
+          'type' => '18134'
         },
         '1' => {
           'name' => 'current_string',
-          'type' => '10448'
+          'type' => '10444'
         }
       },
       'Return' => '1',
       'ShortName' => 'pldm_bios_table_attr_value_entry_string_decode_string'
     },
-    '22887' => {
+    '22883' => {
       'Header' => 'bios_table.h',
       'Line' => '504',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18138'
+          'type' => '18134'
         }
       },
       'Reg' => {
@@ -2036,7 +2036,7 @@
       'Return' => '1011',
       'ShortName' => 'pldm_bios_table_attr_value_entry_string_decode_length'
     },
-    '23028' => {
+    '23024' => {
       'Header' => 'bios_table.h',
       'Line' => '498',
       'Param' => {
@@ -2051,7 +2051,7 @@
       'Return' => '1145',
       'ShortName' => 'pldm_bios_table_attr_value_entry_encode_string_length'
     },
-    '23210' => {
+    '23206' => {
       'Header' => 'bios_table.h',
       'Line' => '488',
       'Param' => {
@@ -2088,17 +2088,17 @@
       'Return' => '100',
       'ShortName' => 'pldm_bios_table_attr_value_entry_encode_enum'
     },
-    '23529' => {
+    '23525' => {
       'Header' => 'bios_table.h',
       'Line' => '469',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18138'
+          'type' => '18134'
         },
         '1' => {
           'name' => 'handles',
-          'type' => '4607'
+          'type' => '4603'
         },
         '2' => {
           'name' => 'number',
@@ -2108,13 +2108,13 @@
       'Return' => '121',
       'ShortName' => 'pldm_bios_table_attr_value_entry_enum_decode_handles'
     },
-    '23776' => {
+    '23772' => {
       'Header' => 'bios_table.h',
       'Line' => '459',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18138'
+          'type' => '18134'
         }
       },
       'Reg' => {
@@ -2123,7 +2123,7 @@
       'Return' => '121',
       'ShortName' => 'pldm_bios_table_attr_value_entry_enum_decode_number'
     },
-    '23825' => {
+    '23821' => {
       'Header' => 'bios_table.h',
       'Line' => '453',
       'Param' => {
@@ -2138,13 +2138,13 @@
       'Return' => '1145',
       'ShortName' => 'pldm_bios_table_attr_value_entry_encode_enum_length'
     },
-    '23874' => {
+    '23870' => {
       'Header' => 'bios_table.h',
       'Line' => '446',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18138'
+          'type' => '18134'
         }
       },
       'Reg' => {
@@ -2153,13 +2153,13 @@
       'Return' => '121',
       'ShortName' => 'pldm_bios_table_attr_value_entry_decode_attribute_type'
     },
-    '23923' => {
+    '23919' => {
       'Header' => 'bios_table.h',
       'Line' => '439',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18138'
+          'type' => '18134'
         }
       },
       'Reg' => {
@@ -2168,29 +2168,29 @@
       'Return' => '1011',
       'ShortName' => 'pldm_bios_table_attr_value_entry_decode_attribute_handle'
     },
-    '24470' => {
+    '24466' => {
       'Header' => 'bios_table.h',
       'Line' => '431',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18552'
+          'type' => '18548'
         },
         '1' => {
           'name' => 'lower',
-          'type' => '24591'
+          'type' => '24587'
         },
         '2' => {
           'name' => 'upper',
-          'type' => '24591'
+          'type' => '24587'
         },
         '3' => {
           'name' => 'scalar',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'def',
-          'type' => '24591'
+          'type' => '24587'
         }
       },
       'Reg' => {
@@ -2203,7 +2203,7 @@
       'Return' => '1',
       'ShortName' => 'pldm_bios_table_attr_entry_integer_decode'
     },
-    '24606' => {
+    '24602' => {
       'Header' => 'bios_table.h',
       'Line' => '419',
       'Param' => {
@@ -2217,7 +2217,7 @@
         },
         '2' => {
           'name' => 'info',
-          'type' => '24868'
+          'type' => '24864'
         }
       },
       'Reg' => {
@@ -2228,35 +2228,35 @@
       'Return' => '100',
       'ShortName' => 'pldm_bios_table_attr_entry_integer_encode'
     },
-    '24878' => {
+    '24874' => {
       'Header' => 'bios_table.h',
       'Line' => '400',
       'Param' => {
         '0' => {
           'name' => 'info',
-          'type' => '24868'
+          'type' => '24864'
         },
         '1' => {
           'name' => 'errmsg',
-          'type' => '25177'
+          'type' => '25173'
         }
       },
       'Return' => '100',
       'ShortName' => 'pldm_bios_table_attr_entry_integer_info_check'
     },
-    '25182' => {
+    '25178' => {
       'Header' => 'bios_table.h',
       'Line' => '407',
       'Return' => '1145',
       'ShortName' => 'pldm_bios_table_attr_entry_integer_encode_length'
     },
-    '25358' => {
+    '25354' => {
       'Header' => 'bios_table.h',
       'Line' => '374',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18552'
+          'type' => '18548'
         },
         '1' => {
           'name' => 'buffer',
@@ -2273,13 +2273,13 @@
       'Return' => '1011',
       'ShortName' => 'pldm_bios_table_attr_entry_string_decode_def_string'
     },
-    '25652' => {
+    '25648' => {
       'Header' => 'bios_table.h',
       'Line' => '366',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18552'
+          'type' => '18548'
         }
       },
       'Reg' => {
@@ -2288,13 +2288,13 @@
       'Return' => '1011',
       'ShortName' => 'pldm_bios_table_attr_entry_string_decode_min_length'
     },
-    '25721' => {
+    '25717' => {
       'Header' => 'bios_table.h',
       'Line' => '358',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18552'
+          'type' => '18548'
         }
       },
       'Reg' => {
@@ -2303,13 +2303,13 @@
       'Return' => '1011',
       'ShortName' => 'pldm_bios_table_attr_entry_string_decode_max_length'
     },
-    '25790' => {
+    '25786' => {
       'Header' => 'bios_table.h',
       'Line' => '350',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18552'
+          'type' => '18548'
         }
       },
       'Reg' => {
@@ -2318,17 +2318,17 @@
       'Return' => '121',
       'ShortName' => 'pldm_bios_table_attr_entry_string_decode_string_type'
     },
-    '25859' => {
+    '25855' => {
       'Header' => 'bios_table.h',
       'Line' => '342',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18552'
+          'type' => '18548'
         },
         '1' => {
           'name' => 'def_string_length',
-          'type' => '12530'
+          'type' => '12526'
         }
       },
       'Reg' => {
@@ -2338,7 +2338,7 @@
       'Return' => '100',
       'ShortName' => 'pldm_bios_table_attr_entry_string_decode_def_string_length'
     },
-    '25947' => {
+    '25943' => {
       'Header' => 'bios_table.h',
       'Line' => '331',
       'Param' => {
@@ -2352,7 +2352,7 @@
         },
         '2' => {
           'name' => 'info',
-          'type' => '26306'
+          'type' => '26302'
         }
       },
       'Reg' => {
@@ -2362,17 +2362,17 @@
       'Return' => '100',
       'ShortName' => 'pldm_bios_table_attr_entry_string_encode'
     },
-    '26311' => {
+    '26307' => {
       'Header' => 'bios_table.h',
       'Line' => '310',
       'Param' => {
         '0' => {
           'name' => 'info',
-          'type' => '26306'
+          'type' => '26302'
         },
         '1' => {
           'name' => 'errmsg',
-          'type' => '25177'
+          'type' => '25173'
         }
       },
       'Reg' => {
@@ -2381,7 +2381,7 @@
       'Return' => '100',
       'ShortName' => 'pldm_bios_table_attr_entry_string_info_check'
     },
-    '26580' => {
+    '26576' => {
       'Header' => 'bios_table.h',
       'Line' => '318',
       'Param' => {
@@ -2396,17 +2396,17 @@
       'Return' => '1145',
       'ShortName' => 'pldm_bios_table_attr_entry_string_encode_length'
     },
-    '26830' => {
+    '26826' => {
       'Header' => 'bios_table.h',
       'Line' => '284',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18552'
+          'type' => '18548'
         },
         '1' => {
           'name' => 'def_indices',
-          'type' => '4607'
+          'type' => '4603'
         },
         '2' => {
           'name' => 'def_num',
@@ -2420,17 +2420,17 @@
       'Return' => '121',
       'ShortName' => 'pldm_bios_table_attr_entry_enum_decode_def_indices'
     },
-    '27127' => {
+    '27123' => {
       'Header' => 'bios_table.h',
       'Line' => '272',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18552'
+          'type' => '18548'
         },
         '1' => {
           'name' => 'pv_hdls',
-          'type' => '12530'
+          'type' => '12526'
         },
         '2' => {
           'name' => 'pv_num',
@@ -2445,17 +2445,17 @@
       'Return' => '100',
       'ShortName' => 'pldm_bios_table_attr_entry_enum_decode_pv_hdls'
     },
-    '27292' => {
+    '27288' => {
       'Header' => 'bios_table.h',
       'Line' => '255',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18552'
+          'type' => '18548'
         },
         '1' => {
           'name' => 'def_num',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -2465,17 +2465,17 @@
       'Return' => '100',
       'ShortName' => 'pldm_bios_table_attr_entry_enum_decode_def_num'
     },
-    '27371' => {
+    '27367' => {
       'Header' => 'bios_table.h',
       'Line' => '245',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18552'
+          'type' => '18548'
         },
         '1' => {
           'name' => 'pv_num',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -2485,7 +2485,7 @@
       'Return' => '100',
       'ShortName' => 'pldm_bios_table_attr_entry_enum_decode_pv_num'
     },
-    '27431' => {
+    '27427' => {
       'Header' => 'bios_table.h',
       'Line' => '234',
       'Param' => {
@@ -2499,7 +2499,7 @@
         },
         '2' => {
           'name' => 'info',
-          'type' => '27760'
+          'type' => '27756'
         }
       },
       'Reg' => {
@@ -2509,7 +2509,7 @@
       'Return' => '100',
       'ShortName' => 'pldm_bios_table_attr_entry_enum_encode'
     },
-    '27765' => {
+    '27761' => {
       'Header' => 'bios_table.h',
       'Line' => '220',
       'Param' => {
@@ -2529,13 +2529,13 @@
       'Return' => '1145',
       'ShortName' => 'pldm_bios_table_attr_entry_enum_encode_length'
     },
-    '27825' => {
+    '27821' => {
       'Header' => 'bios_table.h',
       'Line' => '177',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18552'
+          'type' => '18548'
         }
       },
       'Reg' => {
@@ -2544,13 +2544,13 @@
       'Return' => '1011',
       'ShortName' => 'pldm_bios_table_attr_entry_decode_string_handle'
     },
-    '27872' => {
+    '27868' => {
       'Header' => 'bios_table.h',
       'Line' => '169',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18552'
+          'type' => '18548'
         }
       },
       'Reg' => {
@@ -2559,13 +2559,13 @@
       'Return' => '121',
       'ShortName' => 'pldm_bios_table_attr_entry_decode_attribute_type'
     },
-    '27919' => {
+    '27915' => {
       'Header' => 'bios_table.h',
       'Line' => '162',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '18552'
+          'type' => '18548'
         }
       },
       'Reg' => {
@@ -2574,13 +2574,13 @@
       'Return' => '1011',
       'ShortName' => 'pldm_bios_table_attr_entry_decode_attribute_handle'
     },
-    '28552' => {
+    '28548' => {
       'Header' => 'bios_table.h',
       'Line' => '135',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '19155'
+          'type' => '19151'
         },
         '1' => {
           'name' => 'buffer',
@@ -2599,13 +2599,13 @@
       'Return' => '100',
       'ShortName' => 'pldm_bios_table_string_entry_decode_string'
     },
-    '28789' => {
+    '28785' => {
       'Header' => 'bios_table.h',
       'Line' => '120',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '19155'
+          'type' => '19151'
         }
       },
       'Reg' => {
@@ -2614,13 +2614,13 @@
       'Return' => '1011',
       'ShortName' => 'pldm_bios_table_string_entry_decode_string_length'
     },
-    '28836' => {
+    '28832' => {
       'Header' => 'bios_table.h',
       'Line' => '113',
       'Param' => {
         '0' => {
           'name' => 'entry',
-          'type' => '19155'
+          'type' => '19151'
         }
       },
       'Reg' => {
@@ -2629,7 +2629,7 @@
       'Return' => '1011',
       'ShortName' => 'pldm_bios_table_string_entry_decode_handle'
     },
-    '28883' => {
+    '28879' => {
       'Header' => 'bios_table.h',
       'Line' => '106',
       'Param' => {
@@ -2643,7 +2643,7 @@
         },
         '2' => {
           'name' => 'str',
-          'type' => '3924'
+          'type' => '3920'
         },
         '3' => {
           'name' => 'str_length',
@@ -2653,7 +2653,7 @@
       'Return' => '100',
       'ShortName' => 'pldm_bios_table_string_entry_encode'
     },
-    '29244' => {
+    '29240' => {
       'Header' => 'bios_table.h',
       'Line' => '92',
       'Param' => {
@@ -2668,13 +2668,13 @@
       'Return' => '1145',
       'ShortName' => 'pldm_bios_table_string_entry_encode_length'
     },
-    '35822' => {
+    '35779' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1500',
+      'Line' => '1501',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -2682,15 +2682,15 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'non_functioning_component_indication',
-          'type' => '36004'
+          'type' => '35961'
         },
         '4' => {
           'name' => 'non_functioning_component_bitmap',
-          'type' => '36009'
+          'type' => '35966'
         }
       },
       'Reg' => {
@@ -2701,9 +2701,9 @@
       'Return' => '100',
       'ShortName' => 'decode_cancel_update_resp'
     },
-    '36019' => {
+    '35976' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1483',
+      'Line' => '1484',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -2711,7 +2711,7 @@
         },
         '1' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '2' => {
           'name' => 'payload_length',
@@ -2721,13 +2721,13 @@
       'Return' => '100',
       'ShortName' => 'encode_cancel_update_req'
     },
-    '36191' => {
+    '36147' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1468',
+      'Line' => '1469',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -2735,7 +2735,7 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -2746,9 +2746,9 @@
       'Return' => '100',
       'ShortName' => 'decode_cancel_update_component_resp'
     },
-    '36267' => {
+    '36223' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1456',
+      'Line' => '1457',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -2756,7 +2756,7 @@
         },
         '1' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '2' => {
           'name' => 'payload_length',
@@ -2766,13 +2766,13 @@
       'Return' => '100',
       'ShortName' => 'encode_cancel_update_component_req'
     },
-    '36439' => {
+    '36394' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1438',
+      'Line' => '1439',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -2780,39 +2780,39 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'current_state',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'previous_state',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'aux_state',
-          'type' => '4607'
+          'type' => '4603'
         },
         '6' => {
           'name' => 'aux_state_status',
           'offset' => '0',
-          'type' => '4607'
+          'type' => '4603'
         },
         '7' => {
           'name' => 'progress_percent',
           'offset' => '8',
-          'type' => '4607'
+          'type' => '4603'
         },
         '8' => {
           'name' => 'reason_code',
           'offset' => '16',
-          'type' => '4607'
+          'type' => '4603'
         },
         '9' => {
           'name' => 'update_option_flags_enabled',
           'offset' => '24',
-          'type' => '36766'
+          'type' => '36721'
         }
       },
       'Reg' => {
@@ -2824,9 +2824,9 @@
       'Return' => '100',
       'ShortName' => 'decode_get_status_resp'
     },
-    '36776' => {
+    '36731' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1418',
+      'Line' => '1419',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -2834,7 +2834,7 @@
         },
         '1' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '2' => {
           'name' => 'payload_length',
@@ -2844,13 +2844,13 @@
       'Return' => '100',
       'ShortName' => 'encode_get_status_req'
     },
-    '36948' => {
+    '36902' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1402',
+      'Line' => '1403',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -2858,11 +2858,11 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'estimated_time_activation',
-          'type' => '12530'
+          'type' => '12526'
         }
       },
       'Reg' => {
@@ -2873,9 +2873,9 @@
       'Return' => '100',
       'ShortName' => 'decode_activate_firmware_resp'
     },
-    '37074' => {
+    '37028' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1388',
+      'Line' => '1389',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -2883,11 +2883,11 @@
         },
         '1' => {
           'name' => 'self_contained_activation_req',
-          'type' => '30005'
+          'type' => '29967'
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '3' => {
           'name' => 'payload_length',
@@ -2897,9 +2897,9 @@
       'Return' => '100',
       'ShortName' => 'encode_activate_firmware_req'
     },
-    '37317' => {
+    '37270' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1373',
+      'Line' => '1374',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -2911,7 +2911,7 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '3' => {
           'name' => 'payload_length',
@@ -2921,13 +2921,13 @@
       'Return' => '100',
       'ShortName' => 'encode_apply_complete_resp'
     },
-    '37508' => {
+    '37460' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1356',
+      'Line' => '1357',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -2935,11 +2935,11 @@
         },
         '2' => {
           'name' => 'apply_result',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'comp_activation_methods_modification',
-          'type' => '37618'
+          'type' => '37570'
         }
       },
       'Reg' => {
@@ -2951,9 +2951,9 @@
       'Return' => '100',
       'ShortName' => 'decode_apply_complete_req'
     },
-    '37628' => {
+    '37580' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1343',
+      'Line' => '1344',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -2965,7 +2965,7 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '3' => {
           'name' => 'payload_length',
@@ -2975,13 +2975,13 @@
       'Return' => '100',
       'ShortName' => 'encode_verify_complete_resp'
     },
-    '37819' => {
+    '37770' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1328',
+      'Line' => '1329',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -2989,7 +2989,7 @@
         },
         '2' => {
           'name' => 'verify_result',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -3000,9 +3000,9 @@
       'Return' => '100',
       'ShortName' => 'decode_verify_complete_req'
     },
-    '37895' => {
+    '37846' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1317',
+      'Line' => '1318',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -3014,7 +3014,7 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '3' => {
           'name' => 'payload_length',
@@ -3024,13 +3024,13 @@
       'Return' => '100',
       'ShortName' => 'encode_transfer_complete_resp'
     },
-    '38086' => {
+    '38036' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1301',
+      'Line' => '1302',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -3038,7 +3038,7 @@
         },
         '2' => {
           'name' => 'transfer_result',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -3049,9 +3049,9 @@
       'Return' => '100',
       'ShortName' => 'decode_transfer_complete_req'
     },
-    '38162' => {
+    '38112' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1288',
+      'Line' => '1289',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -3063,7 +3063,7 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '3' => {
           'name' => 'payload_length',
@@ -3076,13 +3076,13 @@
       'Return' => '100',
       'ShortName' => 'encode_request_firmware_data_resp'
     },
-    '38353' => {
+    '38302' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1266',
+      'Line' => '1267',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -3090,11 +3090,11 @@
         },
         '2' => {
           'name' => 'offset',
-          'type' => '4612'
+          'type' => '4608'
         },
         '3' => {
           'name' => 'length',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Reg' => {
@@ -3106,13 +3106,13 @@
       'Return' => '100',
       'ShortName' => 'decode_request_firmware_data_req'
     },
-    '38473' => {
+    '38422' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1248',
+      'Line' => '1249',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -3120,24 +3120,24 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'comp_compatibility_resp',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'comp_compatibility_resp_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'update_option_flags_enabled',
-          'type' => '36766'
+          'type' => '36721'
         },
         '6' => {
           'name' => 'time_before_req_fw_data',
           'offset' => '0',
-          'type' => '12530'
+          'type' => '12526'
         }
       },
       'Reg' => {
@@ -3149,9 +3149,9 @@
       'Return' => '100',
       'ShortName' => 'decode_update_component_resp'
     },
-    '38707' => {
+    '38656' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1224',
+      'Line' => '1225',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -3180,7 +3180,7 @@
         '6' => {
           'name' => 'update_option_flags',
           'offset' => '0',
-          'type' => '30781'
+          'type' => '30743'
         },
         '7' => {
           'name' => 'comp_ver_str_type',
@@ -3195,12 +3195,12 @@
         '9' => {
           'name' => 'comp_ver_str',
           'offset' => '24',
-          'type' => '39176'
+          'type' => '39124'
         },
         '10' => {
           'name' => 'msg',
           'offset' => '32',
-          'type' => '4155'
+          'type' => '4151'
         },
         '11' => {
           'name' => 'payload_length',
@@ -3211,29 +3211,29 @@
       'Return' => '100',
       'ShortName' => 'encode_update_component_req'
     },
-    '39186' => {
+    '39134' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1197',
+      'Line' => '1198',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
-          'type' => '31788'
+          'type' => '31750'
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'comp_resp',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'comp_resp_code',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -3244,9 +3244,9 @@
       'Return' => '100',
       'ShortName' => 'decode_pass_component_table_resp'
     },
-    '39385' => {
+    '39333' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1179',
+      'Line' => '1180',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -3285,12 +3285,12 @@
         '8' => {
           'name' => 'comp_ver_str',
           'offset' => '16',
-          'type' => '39176'
+          'type' => '39124'
         },
         '9' => {
           'name' => 'msg',
           'offset' => '24',
-          'type' => '4155'
+          'type' => '4151'
         },
         '10' => {
           'name' => 'payload_length',
@@ -3301,13 +3301,13 @@
       'Return' => '100',
       'ShortName' => 'encode_pass_component_table_req'
     },
-    '39871' => {
+    '39818' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1154',
+      'Line' => '1155',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -3315,15 +3315,15 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'fd_meta_data_len',
-          'type' => '12530'
+          'type' => '12526'
         },
         '4' => {
           'name' => 'fd_will_send_pkg_data',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -3335,9 +3335,9 @@
       'Return' => '100',
       'ShortName' => 'decode_request_update_resp'
     },
-    '40018' => {
+    '39965' => {
       'Header' => 'firmware_update.h',
-      'Line' => '1135',
+      'Line' => '1136',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -3371,12 +3371,12 @@
         '7' => {
           'name' => 'comp_img_set_ver_str',
           'offset' => '8',
-          'type' => '39176'
+          'type' => '39124'
         },
         '8' => {
           'name' => 'msg',
           'offset' => '16',
-          'type' => '4155'
+          'type' => '4151'
         },
         '9' => {
           'name' => 'payload_length',
@@ -3387,9 +3387,9 @@
       'Return' => '100',
       'ShortName' => 'encode_request_update_req'
     },
-    '52774' => {
+    '51797' => {
       'Header' => 'firmware_update.h',
-      'Line' => '951',
+      'Line' => '952',
       'Param' => {
         '0' => {
           'name' => 'data',
@@ -3401,15 +3401,15 @@
         },
         '2' => {
           'name' => 'component_data',
-          'type' => '53096'
+          'type' => '52119'
         },
         '3' => {
           'name' => 'active_comp_ver_str',
-          'type' => '10448'
+          'type' => '10444'
         },
         '4' => {
           'name' => 'pending_comp_ver_str',
-          'type' => '10448'
+          'type' => '10444'
         }
       },
       'Reg' => {
@@ -3421,13 +3421,13 @@
       'Return' => '100',
       'ShortName' => 'decode_get_firmware_parameters_resp_comp_entry'
     },
-    '53101' => {
+    '52124' => {
       'Header' => 'firmware_update.h',
-      'Line' => '932',
+      'Line' => '933',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -3435,19 +3435,19 @@
         },
         '2' => {
           'name' => 'resp_data',
-          'type' => '53321'
+          'type' => '52344'
         },
         '3' => {
           'name' => 'active_comp_image_set_ver_str',
-          'type' => '10448'
+          'type' => '10444'
         },
         '4' => {
           'name' => 'pending_comp_image_set_ver_str',
-          'type' => '10448'
+          'type' => '10444'
         },
         '5' => {
           'name' => 'comp_parameter_table',
-          'type' => '10448'
+          'type' => '10444'
         }
       },
       'Reg' => {
@@ -3461,9 +3461,9 @@
       'Return' => '100',
       'ShortName' => 'decode_get_firmware_parameters_resp'
     },
-    '53326' => {
+    '52349' => {
       'Header' => 'firmware_update.h',
-      'Line' => '915',
+      'Line' => '916',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -3475,7 +3475,7 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Reg' => {
@@ -3486,13 +3486,13 @@
       'Return' => '100',
       'ShortName' => 'encode_get_firmware_parameters_req'
     },
-    '53466' => {
+    '52489' => {
       'Header' => 'firmware_update.h',
-      'Line' => '897',
+      'Line' => '898',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -3500,19 +3500,19 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'device_identifiers_len',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'descriptor_count',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'descriptor_data',
-          'type' => '53622'
+          'type' => '52645'
         }
       },
       'Reg' => {
@@ -3524,9 +3524,9 @@
       'Return' => '100',
       'ShortName' => 'decode_query_device_identifiers_resp'
     },
-    '53632' => {
+    '52655' => {
       'Header' => 'firmware_update.h',
-      'Line' => '882',
+      'Line' => '883',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -3538,7 +3538,7 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Reg' => {
@@ -3549,9 +3549,9 @@
       'Return' => '100',
       'ShortName' => 'encode_query_device_identifiers_req'
     },
-    '53772' => {
+    '52795' => {
       'Header' => 'firmware_update.h',
-      'Line' => '866',
+      'Line' => '867',
       'Param' => {
         '0' => {
           'name' => 'data',
@@ -3563,11 +3563,11 @@
         },
         '2' => {
           'name' => 'pldm_comp_image_info',
-          'type' => '53919'
+          'type' => '52942'
         },
         '3' => {
           'name' => 'comp_version_str',
-          'type' => '10448'
+          'type' => '10444'
         }
       },
       'Reg' => {
@@ -3579,9 +3579,9 @@
       'Return' => '100',
       'ShortName' => 'decode_pldm_comp_image_info'
     },
-    '53924' => {
+    '52947' => {
       'Header' => 'firmware_update.h',
-      'Line' => '851',
+      'Line' => '852',
       'Param' => {
         '0' => {
           'name' => 'data',
@@ -3593,15 +3593,15 @@
         },
         '2' => {
           'name' => 'descriptor_title_str_type',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'descriptor_title_str',
-          'type' => '10448'
+          'type' => '10444'
         },
         '4' => {
           'name' => 'descriptor_data',
-          'type' => '10448'
+          'type' => '10444'
         }
       },
       'Reg' => {
@@ -3614,9 +3614,9 @@
       'Return' => '100',
       'ShortName' => 'decode_vendor_defined_descriptor_value'
     },
-    '54106' => {
+    '53129' => {
       'Header' => 'firmware_update.h',
-      'Line' => '835',
+      'Line' => '836',
       'Param' => {
         '0' => {
           'name' => 'data',
@@ -3628,11 +3628,11 @@
         },
         '2' => {
           'name' => 'descriptor_type',
-          'type' => '12530'
+          'type' => '12526'
         },
         '3' => {
           'name' => 'descriptor_data',
-          'type' => '10448'
+          'type' => '10444'
         }
       },
       'Reg' => {
@@ -3643,9 +3643,9 @@
       'Return' => '100',
       'ShortName' => 'decode_descriptor_type_length_value'
     },
-    '54278' => {
+    '53301' => {
       'Header' => 'firmware_update.h',
-      'Line' => '816',
+      'Line' => '817',
       'Param' => {
         '0' => {
           'name' => 'data',
@@ -3661,25 +3661,25 @@
         },
         '3' => {
           'name' => 'fw_device_id_record',
-          'type' => '54535'
+          'type' => '53558'
         },
         '4' => {
           'name' => 'applicable_components',
-          'type' => '10448'
+          'type' => '10444'
         },
         '5' => {
           'name' => 'comp_image_set_version_str',
-          'type' => '10448'
+          'type' => '10444'
         },
         '6' => {
           'name' => 'record_descriptors',
           'offset' => '0',
-          'type' => '10448'
+          'type' => '10444'
         },
         '7' => {
           'name' => 'fw_device_pkg_data',
           'offset' => '8',
-          'type' => '10448'
+          'type' => '10444'
         }
       },
       'Reg' => {
@@ -3691,9 +3691,9 @@
       'Return' => '100',
       'ShortName' => 'decode_firmware_device_id_record'
     },
-    '54540' => {
+    '53563' => {
       'Header' => 'firmware_update.h',
-      'Line' => '795',
+      'Line' => '796',
       'Param' => {
         '0' => {
           'name' => 'data',
@@ -3705,11 +3705,11 @@
         },
         '2' => {
           'name' => 'package_header_info',
-          'type' => '54845'
+          'type' => '53868'
         },
         '3' => {
           'name' => 'package_version_str',
-          'type' => '10448'
+          'type' => '10444'
         }
       },
       'Reg' => {
@@ -3721,7 +3721,7 @@
       'Return' => '100',
       'ShortName' => 'decode_pldm_package_header_info'
     },
-    '58323' => {
+    '57334' => {
       'Header' => 'fru.h',
       'Line' => '502',
       'Param' => {
@@ -3743,19 +3743,19 @@
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_set_fru_record_table_resp'
     },
-    '58563' => {
+    '57574' => {
       'Header' => 'fru.h',
       'Line' => '487',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -3763,15 +3763,15 @@
         },
         '2' => {
           'name' => 'data_transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '3' => {
           'name' => 'transfer_flag',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'fru_table_data',
-          'type' => '10448'
+          'type' => '10444'
         }
       },
       'Reg' => {
@@ -3783,13 +3783,13 @@
       'Return' => '100',
       'ShortName' => 'decode_set_fru_record_table_req'
     },
-    '58730' => {
+    '57741' => {
       'Header' => 'fru.h',
       'Line' => '360',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -3797,36 +3797,36 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'next_data_transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'transfer_flag',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'fru_record_table_data',
-          'type' => '4607'
+          'type' => '4603'
         },
         '6' => {
           'name' => 'fru_record_table_length',
           'offset' => '0',
-          'type' => '13093'
+          'type' => '13089'
         }
       },
       'Return' => '100',
       'ShortName' => 'decode_get_fru_record_table_resp'
     },
-    '58960' => {
+    '57971' => {
       'Header' => 'fru.h',
       'Line' => '387',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -3834,24 +3834,24 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'next_data_transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'transfer_flag',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'fru_record_table_data',
-          'type' => '4607'
+          'type' => '4603'
         },
         '6' => {
           'name' => 'fru_record_table_length',
           'offset' => '0',
-          'type' => '13093'
+          'type' => '13089'
         },
         '7' => {
           'name' => 'max_fru_record_table_length',
@@ -3867,7 +3867,7 @@
       'Return' => '100',
       'ShortName' => 'decode_get_fru_record_table_resp_safe'
     },
-    '59281' => {
+    '58292' => {
       'Header' => 'fru.h',
       'Line' => '339',
       'Param' => {
@@ -3885,7 +3885,7 @@
         },
         '3' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '4' => {
           'name' => 'payload_length',
@@ -3895,13 +3895,13 @@
       'Return' => '100',
       'ShortName' => 'encode_get_fru_record_table_req'
     },
-    '59516' => {
+    '58527' => {
       'Header' => 'fru.h',
       'Line' => '451',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -3909,19 +3909,19 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'next_transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'transfer_flag',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'fru_structure_data',
-          'type' => '10448'
+          'type' => '10444'
         }
       },
       'Reg' => {
@@ -3934,7 +3934,7 @@
       'Return' => '100',
       'ShortName' => 'decode_get_fru_record_by_option_resp'
     },
-    '59683' => {
+    '58694' => {
       'Header' => 'fru.h',
       'Line' => '313',
       'Param' => {
@@ -3965,7 +3965,7 @@
         '6' => {
           'name' => 'msg',
           'offset' => '0',
-          'type' => '4155'
+          'type' => '4151'
         },
         '7' => {
           'name' => 'payload_length',
@@ -3979,13 +3979,13 @@
       'Return' => '100',
       'ShortName' => 'encode_get_fru_record_by_option_resp'
     },
-    '60074' => {
+    '59085' => {
       'Header' => 'fru.h',
       'Line' => '292',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -3993,29 +3993,29 @@
         },
         '2' => {
           'name' => 'data_transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '3' => {
           'name' => 'fru_table_handle',
-          'type' => '12530'
+          'type' => '12526'
         },
         '4' => {
           'name' => 'record_set_identifier',
-          'type' => '12530'
+          'type' => '12526'
         },
         '5' => {
           'name' => 'record_type',
-          'type' => '4607'
+          'type' => '4603'
         },
         '6' => {
           'name' => 'field_type',
           'offset' => '0',
-          'type' => '4607'
+          'type' => '4603'
         },
         '7' => {
           'name' => 'transfer_op_flag',
           'offset' => '8',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -4028,7 +4028,7 @@
       'Return' => '100',
       'ShortName' => 'decode_get_fru_record_by_option_req'
     },
-    '60276' => {
+    '59287' => {
       'Header' => 'fru.h',
       'Line' => '433',
       'Param' => {
@@ -4064,7 +4064,7 @@
         '7' => {
           'name' => 'msg',
           'offset' => '8',
-          'type' => '4155'
+          'type' => '4151'
         },
         '8' => {
           'name' => 'payload_length',
@@ -4075,7 +4075,7 @@
       'Return' => '100',
       'ShortName' => 'encode_get_fru_record_by_option_req'
     },
-    '60573' => {
+    '59584' => {
       'Header' => 'fru.h',
       'Line' => '468',
       'Param' => {
@@ -4089,11 +4089,11 @@
         },
         '2' => {
           'name' => 'record_table',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'record_size',
-          'type' => '13093'
+          'type' => '13089'
         },
         '4' => {
           'name' => 'rsi',
@@ -4112,13 +4112,13 @@
       'Return' => '100',
       'ShortName' => 'get_fru_record_by_option'
     },
-    '61232' => {
+    '60243' => {
       'Header' => 'fru.h',
       'Line' => '409',
       'Param' => {
         '0' => {
           'name' => 'fru_table',
-          'type' => '4607'
+          'type' => '4603'
         },
         '1' => {
           'name' => 'total_size',
@@ -4126,7 +4126,7 @@
         },
         '2' => {
           'name' => 'curr_size',
-          'type' => '13093'
+          'type' => '13089'
         },
         '3' => {
           'name' => 'record_set_id',
@@ -4148,7 +4148,7 @@
         '7' => {
           'name' => 'tlvs',
           'offset' => '8',
-          'type' => '4607'
+          'type' => '4603'
         },
         '8' => {
           'name' => 'tlvs_size',
@@ -4167,7 +4167,7 @@
       'Return' => '100',
       'ShortName' => 'encode_fru_record'
     },
-    '61554' => {
+    '60565' => {
       'Header' => 'fru.h',
       'Line' => '269',
       'Param' => {
@@ -4189,19 +4189,19 @@
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_get_fru_record_table_resp'
     },
-    '61776' => {
+    '60787' => {
       'Header' => 'fru.h',
       'Line' => '251',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -4209,11 +4209,11 @@
         },
         '2' => {
           'name' => 'data_transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '3' => {
           'name' => 'transfer_operation_flag',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -4225,7 +4225,7 @@
       'Return' => '100',
       'ShortName' => 'decode_get_fru_record_table_req'
     },
-    '61880' => {
+    '60891' => {
       'Header' => 'fru.h',
       'Line' => '232',
       'Param' => {
@@ -4271,19 +4271,19 @@
         '9' => {
           'name' => 'msg',
           'offset' => '24',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_get_fru_record_table_metadata_resp'
     },
-    '62183' => {
+    '61194' => {
       'Header' => 'fru.h',
       'Line' => '203',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -4291,39 +4291,39 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'fru_data_major_version',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'fru_data_minor_version',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'fru_table_maximum_size',
-          'type' => '4612'
+          'type' => '4608'
         },
         '6' => {
           'name' => 'fru_table_length',
           'offset' => '0',
-          'type' => '4612'
+          'type' => '4608'
         },
         '7' => {
           'name' => 'total_record_set_identifiers',
           'offset' => '8',
-          'type' => '12530'
+          'type' => '12526'
         },
         '8' => {
           'name' => 'total_table_records',
           'offset' => '16',
-          'type' => '12530'
+          'type' => '12526'
         },
         '9' => {
           'name' => 'checksum',
           'offset' => '24',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Reg' => {
@@ -4336,7 +4336,7 @@
       'Return' => '100',
       'ShortName' => 'decode_get_fru_record_table_metadata_resp'
     },
-    '62393' => {
+    '61404' => {
       'Header' => 'fru.h',
       'Line' => '178',
       'Param' => {
@@ -4346,7 +4346,7 @@
         },
         '1' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '2' => {
           'name' => 'payload_length',
@@ -4356,7 +4356,7 @@
       'Return' => '100',
       'ShortName' => 'encode_get_fru_record_table_metadata_req'
     },
-    '86997' => {
+    '84638' => {
       'Header' => 'pdr.h',
       'Line' => '638',
       'Param' => {
@@ -4370,11 +4370,11 @@
         },
         '2' => {
           'name' => 'num_entities',
-          'type' => '13093'
+          'type' => '13089'
         },
         '3' => {
           'name' => 'entities',
-          'type' => '87310'
+          'type' => '84951'
         }
       },
       'Reg' => {
@@ -4384,13 +4384,13 @@
       'Return' => '1',
       'ShortName' => 'pldm_entity_association_pdr_extract'
     },
-    '87325' => {
+    '84966' => {
       'Header' => 'pdr.h',
       'Line' => '626',
       'Param' => {
         '0' => {
           'name' => 'tree',
-          'type' => '87374'
+          'type' => '85015'
         }
       },
       'Reg' => {
@@ -4399,13 +4399,13 @@
       'Return' => '805',
       'ShortName' => 'pldm_is_empty_entity_assoc_tree'
     },
-    '87379' => {
+    '85020' => {
       'Header' => 'pdr.h',
       'Line' => '616',
       'Param' => {
         '0' => {
           'name' => 'tree',
-          'type' => '87374'
+          'type' => '85015'
         }
       },
       'Reg' => {
@@ -4414,65 +4414,65 @@
       'Return' => '1',
       'ShortName' => 'pldm_entity_association_tree_destroy_root'
     },
-    '87538' => {
+    '85179' => {
       'Header' => 'pdr.h',
       'Line' => '593',
       'Param' => {
         '0' => {
           'name' => 'org_tree',
-          'type' => '87374'
+          'type' => '85015'
         },
         '1' => {
           'name' => 'new_tree',
-          'type' => '87374'
+          'type' => '85015'
         }
       },
       'Return' => '1',
       'ShortName' => 'pldm_entity_association_tree_copy_root'
     },
-    '87967' => {
+    '85608' => {
       'Header' => 'pdr.h',
       'Line' => '567',
       'Param' => {
         '0' => {
           'name' => 'tree',
-          'type' => '87374'
+          'type' => '85015'
         },
         '1' => {
           'name' => 'entity',
-          'type' => '72985'
+          'type' => '71453'
         }
       },
-      'Return' => '64307',
+      'Return' => '63218',
       'ShortName' => 'pldm_entity_association_tree_find'
     },
-    '88247' => {
+    '85888' => {
       'Header' => 'pdr.h',
       'Line' => '581',
       'Param' => {
         '0' => {
           'name' => 'tree',
-          'type' => '87374'
+          'type' => '85015'
         },
         '1' => {
           'name' => 'entity',
-          'type' => '72985'
+          'type' => '71453'
         },
         '2' => {
           'name' => 'is_remote',
           'type' => '805'
         }
       },
-      'Return' => '64307',
+      'Return' => '63218',
       'ShortName' => 'pldm_entity_association_tree_find_with_locality'
     },
-    '88629' => {
+    '86270' => {
       'Header' => 'pdr.h',
       'Line' => '213',
       'Param' => {
         '0' => {
           'name' => 'repo',
-          'type' => '88751'
+          'type' => '86392'
         },
         '1' => {
           'name' => 'first',
@@ -4487,16 +4487,16 @@
         '1' => 'rsi',
         '2' => 'rdx'
       },
-      'Return' => '64302',
+      'Return' => '63213',
       'ShortName' => 'pldm_pdr_find_last_in_range'
     },
-    '88756' => {
+    '86397' => {
       'Header' => 'pdr.h',
       'Line' => '178',
       'Param' => {
         '0' => {
           'name' => 'repo',
-          'type' => '65359'
+          'type' => '64190'
         }
       },
       'Reg' => {
@@ -4505,13 +4505,13 @@
       'Return' => '1',
       'ShortName' => 'pldm_pdr_remove_remote_pdrs'
     },
-    '89004' => {
+    '86645' => {
       'Header' => 'pdr.h',
       'Line' => '187',
       'Param' => {
         '0' => {
           'name' => 'repo',
-          'type' => '65359'
+          'type' => '64190'
         },
         '1' => {
           'name' => 'terminus_handle',
@@ -4525,41 +4525,41 @@
       'Return' => '1',
       'ShortName' => 'pldm_pdr_remove_pdrs_by_terminus_handle'
     },
-    '89272' => {
+    '86913' => {
       'Header' => 'pdr.h',
       'Line' => '528',
       'Param' => {
         '0' => {
           'name' => 'tree',
-          'type' => '87374'
+          'type' => '85015'
         },
         '1' => {
           'name' => 'entity',
-          'type' => '63443'
+          'type' => '62351'
         },
         '2' => {
           'name' => 'node',
-          'type' => '87962'
+          'type' => '85603'
         }
       },
       'Return' => '1',
       'ShortName' => 'pldm_find_entity_ref_in_tree'
     },
-    '89559' => {
+    '87200' => {
       'Header' => 'pdr.h',
       'Line' => '517',
       'Param' => {
         '0' => {
           'name' => 'node',
-          'type' => '64307'
+          'type' => '63218'
         },
         '1' => {
           'name' => 'repo',
-          'type' => '65359'
+          'type' => '64190'
         },
         '2' => {
           'name' => 'entities',
-          'type' => '87310'
+          'type' => '84951'
         },
         '3' => {
           'name' => 'num_entities',
@@ -4590,21 +4590,21 @@
       'Return' => '100',
       'ShortName' => 'pldm_entity_association_pdr_add_from_node_with_record_handle'
     },
-    '89792' => {
+    '87433' => {
       'Header' => 'pdr.h',
       'Line' => '500',
       'Param' => {
         '0' => {
           'name' => 'node',
-          'type' => '64307'
+          'type' => '63218'
         },
         '1' => {
           'name' => 'repo',
-          'type' => '65359'
+          'type' => '64190'
         },
         '2' => {
           'name' => 'entities',
-          'type' => '87310'
+          'type' => '84951'
         },
         '3' => {
           'name' => 'num_entities',
@@ -4622,17 +4622,17 @@
       'Return' => '100',
       'ShortName' => 'pldm_entity_association_pdr_add_from_node'
     },
-    '90010' => {
+    '87651' => {
       'Header' => 'pdr.h',
       'Line' => '451',
       'Param' => {
         '0' => {
           'name' => 'tree',
-          'type' => '87374'
+          'type' => '85015'
         },
         '1' => {
           'name' => 'repo',
-          'type' => '65359'
+          'type' => '64190'
         },
         '2' => {
           'name' => 'is_remote',
@@ -4646,17 +4646,17 @@
       'Return' => '100',
       'ShortName' => 'pldm_entity_association_pdr_add'
     },
-    '91567' => {
+    '89208' => {
       'Header' => 'pdr.h',
       'Line' => '554',
       'Param' => {
         '0' => {
           'name' => 'parent',
-          'type' => '64307'
+          'type' => '63218'
         },
         '1' => {
           'name' => 'node',
-          'type' => '72985'
+          'type' => '71453'
         }
       },
       'Reg' => {
@@ -4666,13 +4666,13 @@
       'Return' => '805',
       'ShortName' => 'pldm_is_current_parent_child'
     },
-    '91656' => {
+    '89297' => {
       'Header' => 'pdr.h',
       'Line' => '540',
       'Param' => {
         '0' => {
           'name' => 'node',
-          'type' => '64307'
+          'type' => '63218'
         },
         '1' => {
           'name' => 'association_type',
@@ -4686,13 +4686,13 @@
       'Return' => '121',
       'ShortName' => 'pldm_entity_get_num_children'
     },
-    '91871' => {
+    '89512' => {
       'Header' => 'pdr.h',
       'Line' => '435',
       'Param' => {
         '0' => {
           'name' => 'node',
-          'type' => '64307'
+          'type' => '63218'
         }
       },
       'Reg' => {
@@ -4701,37 +4701,37 @@
       'Return' => '805',
       'ShortName' => 'pldm_entity_is_exist_parent'
     },
-    '91920' => {
+    '89561' => {
       'Header' => 'pdr.h',
       'Line' => '425',
       'Param' => {
         '0' => {
           'name' => 'node',
-          'type' => '64307'
+          'type' => '63218'
         }
       },
-      'Return' => '63443',
+      'Return' => '62351',
       'ShortName' => 'pldm_entity_get_parent'
     },
-    '92054' => {
+    '89695' => {
       'Header' => 'pdr.h',
       'Line' => '415',
       'Param' => {
         '0' => {
           'name' => 'node',
-          'type' => '64307'
+          'type' => '63218'
         }
       },
       'Return' => '805',
       'ShortName' => 'pldm_entity_is_node_parent'
     },
-    '92209' => {
+    '89850' => {
       'Header' => 'pdr.h',
       'Line' => '405',
       'Param' => {
         '0' => {
           'name' => 'tree',
-          'type' => '87374'
+          'type' => '85015'
         }
       },
       'Reg' => {
@@ -4740,21 +4740,21 @@
       'Return' => '1',
       'ShortName' => 'pldm_entity_association_tree_destroy'
     },
-    '92388' => {
+    '90029' => {
       'Header' => 'pdr.h',
       'Line' => '377',
       'Param' => {
         '0' => {
           'name' => 'tree',
-          'type' => '87374'
+          'type' => '85015'
         },
         '1' => {
           'name' => 'entities',
-          'type' => '87310'
+          'type' => '84951'
         },
         '2' => {
           'name' => 'size',
-          'type' => '13093'
+          'type' => '13089'
         }
       },
       'Reg' => {
@@ -4763,17 +4763,17 @@
       'Return' => '1',
       'ShortName' => 'pldm_entity_association_tree_visit'
     },
-    '92847' => {
+    '90488' => {
       'Header' => 'pdr.h',
       'Line' => '359',
       'Param' => {
         '0' => {
           'name' => 'tree',
-          'type' => '87374'
+          'type' => '85015'
         },
         '1' => {
           'name' => 'entity',
-          'type' => '72985'
+          'type' => '71453'
         },
         '2' => {
           'name' => 'entity_instance_number',
@@ -4781,7 +4781,7 @@
         },
         '3' => {
           'name' => 'parent',
-          'type' => '64307'
+          'type' => '63218'
         },
         '4' => {
           'name' => 'association_type',
@@ -4802,20 +4802,20 @@
           'type' => '1011'
         }
       },
-      'Return' => '64307',
+      'Return' => '63218',
       'ShortName' => 'pldm_entity_association_tree_add_entity'
     },
-    '93454' => {
+    '91095' => {
       'Header' => 'pdr.h',
       'Line' => '331',
       'Param' => {
         '0' => {
           'name' => 'tree',
-          'type' => '87374'
+          'type' => '85015'
         },
         '1' => {
           'name' => 'entity',
-          'type' => '72985'
+          'type' => '71453'
         },
         '2' => {
           'name' => 'entity_instance_number',
@@ -4823,53 +4823,53 @@
         },
         '3' => {
           'name' => 'parent',
-          'type' => '64307'
+          'type' => '63218'
         },
         '4' => {
           'name' => 'association_type',
           'type' => '121'
         }
       },
-      'Return' => '64307',
+      'Return' => '63218',
       'ShortName' => 'pldm_entity_association_tree_add'
     },
-    '93777' => {
+    '91418' => {
       'Header' => 'pdr.h',
       'Line' => '314',
-      'Return' => '87374',
+      'Return' => '85015',
       'ShortName' => 'pldm_entity_association_tree_init'
     },
-    '93851' => {
+    '91492' => {
       'Header' => 'pdr.h',
       'Line' => '399',
       'Param' => {
         '0' => {
           'name' => 'entity',
-          'type' => '93985'
+          'type' => '91626'
         }
       },
       'Return' => '1011',
       'ShortName' => 'pldm_entity_node_get_remote_container_id'
     },
-    '94011' => {
+    '91652' => {
       'Header' => 'pdr.h',
       'Line' => '388',
       'Param' => {
         '0' => {
           'name' => 'node',
-          'type' => '64307'
+          'type' => '63218'
         }
       },
-      'Return' => '63443',
+      'Return' => '62351',
       'ShortName' => 'pldm_entity_extract'
     },
-    '94607' => {
+    '92248' => {
       'Header' => 'pdr.h',
       'Line' => '200',
       'Param' => {
         '0' => {
           'name' => 'repo',
-          'type' => '88751'
+          'type' => '86392'
         },
         '1' => {
           'name' => 'terminus_handle',
@@ -4897,13 +4897,13 @@
       'Return' => '1',
       'ShortName' => 'pldm_pdr_update_TL_pdr'
     },
-    '94961' => {
+    '92602' => {
       'Header' => 'pdr.h',
       'Line' => '279',
       'Param' => {
         '0' => {
           'name' => 'repo',
-          'type' => '88751'
+          'type' => '86392'
         },
         '1' => {
           'name' => 'fru_rsi',
@@ -4911,34 +4911,34 @@
         },
         '2' => {
           'name' => 'terminus_handle',
-          'type' => '12530'
+          'type' => '12526'
         },
         '3' => {
           'name' => 'entity_type',
-          'type' => '12530'
+          'type' => '12526'
         },
         '4' => {
           'name' => 'entity_instance_num',
-          'type' => '12530'
+          'type' => '12526'
         },
         '5' => {
           'name' => 'container_id',
-          'type' => '12530'
+          'type' => '12526'
         }
       },
       'Reg' => {
         '2' => 'r12'
       },
-      'Return' => '66553',
+      'Return' => '65253',
       'ShortName' => 'pldm_pdr_fru_record_set_find_by_rsi'
     },
-    '95315' => {
+    '92956' => {
       'Header' => 'pdr.h',
       'Line' => '258',
       'Param' => {
         '0' => {
           'name' => 'repo',
-          'type' => '65359'
+          'type' => '64190'
         },
         '1' => {
           'name' => 'terminus_handle',
@@ -4963,71 +4963,71 @@
         '6' => {
           'name' => 'bmc_record_handle',
           'offset' => '0',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Return' => '100',
       'ShortName' => 'pldm_pdr_add_fru_record_set'
     },
-    '95628' => {
+    '93269' => {
       'Header' => 'pdr.h',
       'Line' => '170',
       'Param' => {
         '0' => {
           'name' => 'record',
-          'type' => '66553'
+          'type' => '65253'
         }
       },
       'Return' => '805',
       'ShortName' => 'pldm_pdr_record_is_remote'
     },
-    '95999' => {
+    '93640' => {
       'Header' => 'pdr.h',
       'Line' => '94',
       'Param' => {
         '0' => {
           'name' => 'repo',
-          'type' => '88751'
+          'type' => '86392'
         },
         '1' => {
           'name' => 'record',
-          'type' => '66553'
+          'type' => '65253'
         }
       },
       'Return' => '1023',
       'ShortName' => 'pldm_pdr_get_record_handle'
     },
-    '96216' => {
+    '93857' => {
       'Header' => 'pdr.h',
       'Line' => '62',
       'Param' => {
         '0' => {
           'name' => 'repo',
-          'type' => '88751'
+          'type' => '86392'
         }
       },
       'Return' => '1023',
       'ShortName' => 'pldm_pdr_get_repo_size'
     },
-    '96347' => {
+    '93988' => {
       'Header' => 'pdr.h',
       'Line' => '52',
       'Param' => {
         '0' => {
           'name' => 'repo',
-          'type' => '88751'
+          'type' => '86392'
         }
       },
       'Return' => '1023',
       'ShortName' => 'pldm_pdr_get_record_count'
     },
-    '96478' => {
+    '94119' => {
       'Header' => 'pdr.h',
       'Line' => '160',
       'Param' => {
         '0' => {
           'name' => 'repo',
-          'type' => '88751'
+          'type' => '86392'
         },
         '1' => {
           'name' => 'pdr_type',
@@ -5035,15 +5035,15 @@
         },
         '2' => {
           'name' => 'curr_record',
-          'type' => '66553'
+          'type' => '65253'
         },
         '3' => {
           'name' => 'data',
-          'type' => '53622'
+          'type' => '52645'
         },
         '4' => {
           'name' => 'size',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Reg' => {
@@ -5051,32 +5051,32 @@
         '3' => 'rcx',
         '4' => 'r8'
       },
-      'Return' => '66553',
+      'Return' => '65253',
       'ShortName' => 'pldm_pdr_find_record_by_type'
     },
-    '96649' => {
+    '94290' => {
       'Header' => 'pdr.h',
       'Line' => '142',
       'Param' => {
         '0' => {
           'name' => 'repo',
-          'type' => '88751'
+          'type' => '86392'
         },
         '1' => {
           'name' => 'curr_record',
-          'type' => '66553'
+          'type' => '65253'
         },
         '2' => {
           'name' => 'data',
-          'type' => '53622'
+          'type' => '52645'
         },
         '3' => {
           'name' => 'size',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'next_record_handle',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Reg' => {
@@ -5086,16 +5086,16 @@
         '3' => 'rcx',
         '4' => 'r8'
       },
-      'Return' => '66553',
+      'Return' => '65253',
       'ShortName' => 'pldm_pdr_get_next_record'
     },
-    '96855' => {
+    '94497' => {
       'Header' => 'pdr.h',
       'Line' => '123',
       'Param' => {
         '0' => {
           'name' => 'repo',
-          'type' => '88751'
+          'type' => '86392'
         },
         '1' => {
           'name' => 'record_handle',
@@ -5103,15 +5103,15 @@
         },
         '2' => {
           'name' => 'data',
-          'type' => '53622'
+          'type' => '52645'
         },
         '3' => {
           'name' => 'size',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'next_record_handle',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Reg' => {
@@ -5121,16 +5121,16 @@
         '3' => 'rcx',
         '4' => 'r8'
       },
-      'Return' => '66553',
+      'Return' => '65253',
       'ShortName' => 'pldm_pdr_find_record'
     },
-    '97033' => {
+    '94676' => {
       'Header' => 'pdr.h',
       'Line' => '42',
       'Param' => {
         '0' => {
           'name' => 'repo',
-          'type' => '65359'
+          'type' => '64190'
         }
       },
       'Reg' => {
@@ -5139,19 +5139,19 @@
       'Return' => '1',
       'ShortName' => 'pldm_pdr_destroy'
     },
-    '97186' => {
+    '94829' => {
       'Header' => 'pdr.h',
       'Line' => '36',
-      'Return' => '65359',
+      'Return' => '64190',
       'ShortName' => 'pldm_pdr_init'
     },
-    '97258' => {
+    '94901' => {
       'Header' => 'pdr.h',
       'Line' => '79',
       'Param' => {
         '0' => {
           'name' => 'repo',
-          'type' => '65359'
+          'type' => '64190'
         },
         '1' => {
           'name' => 'data',
@@ -5171,7 +5171,7 @@
         },
         '5' => {
           'name' => 'record_handle',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Reg' => {
@@ -5183,24 +5183,24 @@
       'Return' => '100',
       'ShortName' => 'pldm_pdr_add'
     },
-    '105433' => {
+    '102874' => {
       'Header' => 'platform.h',
-      'Line' => '2506',
+      'Line' => '2514',
       'Param' => {
         '0' => {
           'name' => 'event',
-          'type' => '105482'
+          'type' => '102923'
         }
       },
       'Reg' => {
         '0' => 'rdi'
       },
-      'Return' => '4607',
+      'Return' => '4603',
       'ShortName' => 'pldm_platform_cper_event_event_data'
     },
-    '105487' => {
+    '102928' => {
       'Header' => 'platform.h',
-      'Line' => '2495',
+      'Line' => '2503',
       'Param' => {
         '0' => {
           'name' => 'event_data',
@@ -5212,7 +5212,7 @@
         },
         '2' => {
           'name' => 'cper_event',
-          'type' => '105482'
+          'type' => '102923'
         },
         '3' => {
           'name' => 'cper_event_length',
@@ -5222,13 +5222,13 @@
       'Return' => '100',
       'ShortName' => 'decode_pldm_platform_cper_event'
     },
-    '107095' => {
+    '104316' => {
       'Header' => 'platform.h',
-      'Line' => '2484',
+      'Line' => '2492',
       'Param' => {
         '0' => {
           'name' => 'pdr',
-          'type' => '108020'
+          'type' => '105119'
         }
       },
       'Reg' => {
@@ -5237,9 +5237,9 @@
       'Return' => '100',
       'ShortName' => 'decode_pldm_entity_auxiliary_names_pdr_index'
     },
-    '108025' => {
+    '105124' => {
       'Header' => 'platform.h',
-      'Line' => '2462',
+      'Line' => '2470',
       'Param' => {
         '0' => {
           'name' => 'data',
@@ -5251,7 +5251,7 @@
         },
         '2' => {
           'name' => 'pdr',
-          'type' => '108020'
+          'type' => '105119'
         },
         '3' => {
           'name' => 'pdr_length',
@@ -5259,14 +5259,14 @@
         }
       },
       'Reg' => {
-        '2' => 'rbx'
+        '2' => 'rbp'
       },
       'Return' => '100',
       'ShortName' => 'decode_entity_auxiliary_names_pdr'
     },
-    '114910' => {
+    '109334' => {
       'Header' => 'platform.h',
-      'Line' => '1846',
+      'Line' => '1854',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -5274,11 +5274,11 @@
         },
         '1' => {
           'name' => 'resp',
-          'type' => '116508'
+          'type' => '110808'
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '3' => {
           'name' => 'payload_length',
@@ -5286,18 +5286,18 @@
         }
       },
       'Reg' => {
-        '2' => 'rbp'
+        '2' => 'r13'
       },
       'Return' => '100',
       'ShortName' => 'encode_get_state_effecter_states_resp'
     },
-    '116523' => {
+    '110823' => {
       'Header' => 'platform.h',
-      'Line' => '1829',
+      'Line' => '1837',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -5305,19 +5305,23 @@
         },
         '2' => {
           'name' => 'resp',
-          'type' => '116508'
+          'type' => '110808'
         }
       },
+      'Reg' => {
+        '0' => 'rdi',
+        '2' => 'rcx'
+      },
       'Return' => '100',
       'ShortName' => 'decode_get_state_effecter_states_resp'
     },
-    '118040' => {
+    '112219' => {
       'Header' => 'platform.h',
-      'Line' => '1798',
+      'Line' => '1806',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -5325,15 +5329,15 @@
         },
         '2' => {
           'name' => 'effecter_id',
-          'type' => '12530'
+          'type' => '12526'
         }
       },
       'Return' => '100',
       'ShortName' => 'decode_get_state_effecter_states_req'
     },
-    '118807' => {
+    '112858' => {
       'Header' => 'platform.h',
-      'Line' => '1812',
+      'Line' => '1820',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -5345,7 +5349,7 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '3' => {
           'name' => 'payload_length',
@@ -5355,13 +5359,13 @@
       'Return' => '100',
       'ShortName' => 'encode_get_state_effecter_states_req'
     },
-    '160186' => {
+    '133645' => {
       'Header' => 'platform.h',
-      'Line' => '1978',
+      'Line' => '1986',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -5369,52 +5373,52 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'tid',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'event_id',
-          'type' => '12530'
+          'type' => '12526'
         },
         '5' => {
           'name' => 'next_data_transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '6' => {
           'name' => 'transfer_flag',
           'offset' => '0',
-          'type' => '4607'
+          'type' => '4603'
         },
         '7' => {
           'name' => 'event_class',
           'offset' => '8',
-          'type' => '4607'
+          'type' => '4603'
         },
         '8' => {
           'name' => 'event_data_size',
           'offset' => '16',
-          'type' => '4612'
+          'type' => '4608'
         },
         '9' => {
           'name' => 'event_data',
           'offset' => '24',
-          'type' => '55613'
+          'type' => '54647'
         },
         '10' => {
           'name' => 'event_data_integrity_checksum',
           'offset' => '32',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Return' => '100',
       'ShortName' => 'decode_poll_for_platform_event_message_resp'
     },
-    '162891' => {
+    '136317' => {
       'Header' => 'platform.h',
-      'Line' => '1952',
+      'Line' => '1960',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -5438,7 +5442,7 @@
         },
         '5' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '6' => {
           'name' => 'payload_length',
@@ -5449,9 +5453,9 @@
       'Return' => '100',
       'ShortName' => 'encode_poll_for_platform_event_message_req'
     },
-    '164305' => {
+    '137683' => {
       'Header' => 'platform.h',
-      'Line' => '2422',
+      'Line' => '2430',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -5463,19 +5467,19 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_set_event_receiver_resp'
     },
-    '164478' => {
+    '137856' => {
       'Header' => 'platform.h',
-      'Line' => '2408',
+      'Line' => '2416',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -5483,31 +5487,31 @@
         },
         '2' => {
           'name' => 'event_message_global_enable',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'transport_protocol_type',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'event_receiver_address_info',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'heartbeat_timer',
-          'type' => '12530'
+          'type' => '12526'
         }
       },
       'Return' => '100',
       'ShortName' => 'decode_set_event_receiver_req'
     },
-    '165897' => {
+    '139191' => {
       'Header' => 'platform.h',
-      'Line' => '2386',
+      'Line' => '2394',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -5515,7 +5519,7 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -5526,9 +5530,9 @@
       'Return' => '100',
       'ShortName' => 'decode_set_event_receiver_resp'
     },
-    '166555' => {
+    '139762' => {
       'Header' => 'platform.h',
-      'Line' => '2372',
+      'Line' => '2380',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -5552,19 +5556,19 @@
         },
         '5' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_set_event_receiver_req'
     },
-    '166813' => {
+    '140020' => {
       'Header' => 'platform.h',
-      'Line' => '1493',
+      'Line' => '1501',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -5572,19 +5576,19 @@
         },
         '2' => {
           'name' => 'sensor_id',
-          'type' => '12530'
+          'type' => '12526'
         },
         '3' => {
           'name' => 'rearm_event_state',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Return' => '100',
       'ShortName' => 'decode_get_sensor_reading_req'
     },
-    '167794' => {
+    '140917' => {
       'Header' => 'platform.h',
-      'Line' => '1519',
+      'Line' => '1527',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -5628,7 +5632,7 @@
         '9' => {
           'name' => 'msg',
           'offset' => '24',
-          'type' => '4155'
+          'type' => '4151'
         },
         '10' => {
           'name' => 'payload_length',
@@ -5639,13 +5643,13 @@
       'Return' => '100',
       'ShortName' => 'encode_get_sensor_reading_resp'
     },
-    '168346' => {
+    '141467' => {
       'Header' => 'platform.h',
-      'Line' => '2347',
+      'Line' => '2355',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -5653,47 +5657,47 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'sensor_data_size',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'sensor_operational_state',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'sensor_event_message_enable',
-          'type' => '4607'
+          'type' => '4603'
         },
         '6' => {
           'name' => 'present_state',
           'offset' => '0',
-          'type' => '4607'
+          'type' => '4603'
         },
         '7' => {
           'name' => 'previous_state',
           'offset' => '8',
-          'type' => '4607'
+          'type' => '4603'
         },
         '8' => {
           'name' => 'event_state',
           'offset' => '16',
-          'type' => '4607'
+          'type' => '4603'
         },
         '9' => {
           'name' => 'present_reading',
           'offset' => '24',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Return' => '100',
       'ShortName' => 'decode_get_sensor_reading_resp'
     },
-    '171939' => {
+    '144999' => {
       'Header' => 'platform.h',
-      'Line' => '2322',
+      'Line' => '2330',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -5709,15 +5713,15 @@
         },
         '3' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_get_sensor_reading_req'
     },
-    '172157' => {
+    '145217' => {
       'Header' => 'platform.h',
-      'Line' => '2303',
+      'Line' => '2311',
       'Param' => {
         '0' => {
           'name' => 'change_record_data',
@@ -5729,15 +5733,15 @@
         },
         '2' => {
           'name' => 'event_data_operation',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'number_of_change_entries',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'change_entry_data_offset',
-          'type' => '13093'
+          'type' => '13089'
         }
       },
       'Reg' => {
@@ -5749,9 +5753,9 @@
       'Return' => '100',
       'ShortName' => 'decode_pldm_pdr_repository_change_record_data'
     },
-    '174158' => {
+    '147017' => {
       'Header' => 'platform.h',
-      'Line' => '2209',
+      'Line' => '2217',
       'Param' => {
         '0' => {
           'name' => 'event_data',
@@ -5763,15 +5767,15 @@
         },
         '2' => {
           'name' => 'poll_event',
-          'type' => '175405'
+          'type' => '148143'
         }
       },
       'Return' => '100',
       'ShortName' => 'decode_pldm_message_poll_event_data'
     },
-    '175410' => {
+    '148148' => {
       'Header' => 'platform.h',
-      'Line' => '2195',
+      'Line' => '2203',
       'Param' => {
         '0' => {
           'name' => 'event_data',
@@ -5783,15 +5787,15 @@
         },
         '2' => {
           'name' => 'event_data_format',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'number_of_change_records',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'change_record_data_offset',
-          'type' => '13093'
+          'type' => '13089'
         }
       },
       'Reg' => {
@@ -5803,9 +5807,9 @@
       'Return' => '100',
       'ShortName' => 'decode_pldm_pdr_repository_chg_event_data'
     },
-    '176307' => {
+    '148965' => {
       'Header' => 'platform.h',
-      'Line' => '2257',
+      'Line' => '2265',
       'Param' => {
         '0' => {
           'name' => 'event_data_format',
@@ -5825,16 +5829,16 @@
         },
         '4' => {
           'name' => 'change_entries',
-          'type' => '176626'
+          'type' => '149284'
         },
         '5' => {
           'name' => 'event_data',
-          'type' => '176641'
+          'type' => '149299'
         },
         '6' => {
           'name' => 'actual_change_records_size',
           'offset' => '0',
-          'type' => '13093'
+          'type' => '13089'
         },
         '7' => {
           'name' => 'max_change_records_size',
@@ -5853,13 +5857,13 @@
       'Return' => '100',
       'ShortName' => 'encode_pldm_pdr_repository_chg_event_data'
     },
-    '176651' => {
+    '149309' => {
       'Header' => 'platform.h',
-      'Line' => '2173',
+      'Line' => '2181',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -5867,36 +5871,36 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'effecter_data_size',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'effecter_oper_state',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'pending_value',
-          'type' => '4607'
+          'type' => '4603'
         },
         '6' => {
           'name' => 'present_value',
           'offset' => '0',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Return' => '100',
       'ShortName' => 'decode_get_numeric_effecter_value_resp'
     },
-    '180999' => {
+    '153614' => {
       'Header' => 'platform.h',
-      'Line' => '1450',
+      'Line' => '1458',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -5904,15 +5908,15 @@
         },
         '2' => {
           'name' => 'effecter_id',
-          'type' => '12530'
+          'type' => '12526'
         }
       },
       'Return' => '100',
       'ShortName' => 'decode_get_numeric_effecter_value_req'
     },
-    '181761' => {
+    '154285' => {
       'Header' => 'platform.h',
-      'Line' => '1474',
+      'Line' => '1482',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -5941,7 +5945,7 @@
         '6' => {
           'name' => 'msg',
           'offset' => '0',
-          'type' => '4155'
+          'type' => '4151'
         },
         '7' => {
           'name' => 'payload_length',
@@ -5952,9 +5956,9 @@
       'Return' => '100',
       'ShortName' => 'encode_get_numeric_effecter_value_resp'
     },
-    '182457' => {
+    '154979' => {
       'Header' => 'platform.h',
-      'Line' => '2152',
+      'Line' => '2160',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -5966,15 +5970,15 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_get_numeric_effecter_value_req'
     },
-    '182655' => {
+    '155177' => {
       'Header' => 'platform.h',
-      'Line' => '2137',
+      'Line' => '2145',
       'Param' => {
         '0' => {
           'name' => 'pdr_data',
@@ -5986,15 +5990,15 @@
         },
         '2' => {
           'name' => 'pdr_value',
-          'type' => '241198'
+          'type' => '185030'
         }
       },
       'Return' => '100',
       'ShortName' => 'decode_numeric_sensor_pdr_data'
     },
-    '241203' => {
+    '185035' => {
       'Header' => 'platform.h',
-      'Line' => '2125',
+      'Line' => '2133',
       'Param' => {
         '0' => {
           'name' => 'sensor_data',
@@ -6006,31 +6010,31 @@
         },
         '2' => {
           'name' => 'event_state',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'previous_event_state',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'sensor_data_size',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'present_reading',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Reg' => {
-        '3' => 'r10',
+        '0' => 'rdi',
         '5' => 'r9'
       },
       'Return' => '100',
       'ShortName' => 'decode_numeric_sensor_data'
     },
-    '243860' => {
+    '187625' => {
       'Header' => 'platform.h',
-      'Line' => '2104',
+      'Line' => '2112',
       'Param' => {
         '0' => {
           'name' => 'sensor_data',
@@ -6042,15 +6046,15 @@
         },
         '2' => {
           'name' => 'sensor_offset',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'event_state',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'previous_event_state',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -6062,9 +6066,9 @@
       'Return' => '100',
       'ShortName' => 'decode_state_sensor_data'
     },
-    '244956' => {
+    '188641' => {
       'Header' => 'platform.h',
-      'Line' => '2086',
+      'Line' => '2094',
       'Param' => {
         '0' => {
           'name' => 'sensor_data',
@@ -6076,24 +6080,24 @@
         },
         '2' => {
           'name' => 'present_op_state',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'previous_op_state',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
         '1' => 'rsi',
         '2' => 'rdx',
-        '3' => 'r8'
+        '3' => 'rcx'
       },
       'Return' => '100',
       'ShortName' => 'decode_sensor_op_data'
     },
-    '245833' => {
+    '189438' => {
       'Header' => 'platform.h',
-      'Line' => '2069',
+      'Line' => '2077',
       'Param' => {
         '0' => {
           'name' => 'event_data',
@@ -6105,27 +6109,27 @@
         },
         '2' => {
           'name' => 'sensor_id',
-          'type' => '12530'
+          'type' => '12526'
         },
         '3' => {
           'name' => 'sensor_event_class_type',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'event_class_data_offset',
-          'type' => '13093'
+          'type' => '13089'
         }
       },
       'Return' => '100',
       'ShortName' => 'decode_sensor_event_data'
     },
-    '246786' => {
+    '190345' => {
       'Header' => 'platform.h',
-      'Line' => '2048',
+      'Line' => '2056',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -6133,24 +6137,24 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'synchrony_config',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'synchrony_config_support',
-          'type' => '6428'
+          'type' => '6424'
         },
         '5' => {
           'name' => 'number_event_class_returned',
-          'type' => '4607'
+          'type' => '4603'
         },
         '6' => {
           'name' => 'event_class',
           'offset' => '0',
-          'type' => '4607'
+          'type' => '4603'
         },
         '7' => {
           'name' => 'event_class_count',
@@ -6159,16 +6163,15 @@
         }
       },
       'Reg' => {
-        '3' => 'r10',
         '4' => 'r8',
         '5' => 'r9'
       },
       'Return' => '100',
       'ShortName' => 'decode_event_message_supported_resp'
     },
-    '248419' => {
+    '191937' => {
       'Header' => 'platform.h',
-      'Line' => '2031',
+      'Line' => '2039',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -6180,19 +6183,19 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_event_message_supported_req'
     },
-    '248617' => {
+    '192135' => {
       'Header' => 'platform.h',
-      'Line' => '2004',
+      'Line' => '2012',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -6200,19 +6203,19 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'terminus_max_buffer_size',
-          'type' => '12530'
+          'type' => '12526'
         }
       },
       'Return' => '100',
       'ShortName' => 'decode_event_message_buffer_size_resp'
     },
-    '249598' => {
+    '193038' => {
       'Header' => 'platform.h',
-      'Line' => '2017',
+      'Line' => '2025',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -6224,7 +6227,7 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Reg' => {
@@ -6233,13 +6236,13 @@
       'Return' => '100',
       'ShortName' => 'encode_event_message_buffer_size_req'
     },
-    '249796' => {
+    '193236' => {
       'Header' => 'platform.h',
-      'Line' => '1993',
+      'Line' => '2001',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -6247,22 +6250,23 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'platform_event_status',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
-        '3' => 'r8'
+        '0' => 'r8',
+        '3' => 'rdi'
       },
       'Return' => '100',
       'ShortName' => 'decode_platform_event_message_resp'
     },
-    '250604' => {
+    '194009' => {
       'Header' => 'platform.h',
-      'Line' => '1936',
+      'Line' => '1944',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -6291,7 +6295,7 @@
         '6' => {
           'name' => 'msg',
           'offset' => '0',
-          'type' => '4155'
+          'type' => '4151'
         },
         '7' => {
           'name' => 'payload_length',
@@ -6302,9 +6306,9 @@
       'Return' => '100',
       'ShortName' => 'encode_platform_event_message_req'
     },
-    '251005' => {
+    '194410' => {
       'Header' => 'platform.h',
-      'Line' => '1916',
+      'Line' => '1924',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -6343,7 +6347,7 @@
         '8' => {
           'name' => 'event_data',
           'offset' => '16',
-          'type' => '4607'
+          'type' => '4603'
         },
         '9' => {
           'name' => 'checksum',
@@ -6353,7 +6357,7 @@
         '10' => {
           'name' => 'msg',
           'offset' => '32',
-          'type' => '4155'
+          'type' => '4151'
         },
         '11' => {
           'name' => 'payload_length',
@@ -6364,9 +6368,9 @@
       'Return' => '100',
       'ShortName' => 'encode_poll_for_platform_event_message_resp'
     },
-    '253867' => {
+    '197017' => {
       'Header' => 'platform.h',
-      'Line' => '1894',
+      'Line' => '1902',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -6382,19 +6386,19 @@
         },
         '3' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_platform_event_message_resp'
     },
-    '254085' => {
+    '197235' => {
       'Header' => 'platform.h',
-      'Line' => '1879',
+      'Line' => '1887',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -6402,31 +6406,31 @@
         },
         '2' => {
           'name' => 'format_version',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'transfer_operation_flag',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'data_transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '5' => {
           'name' => 'event_id_to_acknowledge',
-          'type' => '12530'
+          'type' => '12526'
         }
       },
       'Return' => '100',
       'ShortName' => 'decode_poll_for_platform_event_message_req'
     },
-    '255523' => {
+    '198717' => {
       'Header' => 'platform.h',
-      'Line' => '1863',
+      'Line' => '1871',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -6434,50 +6438,50 @@
         },
         '2' => {
           'name' => 'format_version',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'tid',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'event_class',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'event_data_offset',
-          'type' => '13093'
+          'type' => '13089'
         }
       },
       'Reg' => {
-        '1' => 'rsi',
+        '0' => 'rdi',
         '2' => 'rdx',
-        '3' => 'r10',
+        '3' => 'rcx',
         '4' => 'r8',
         '5' => 'r9'
       },
       'Return' => '100',
       'ShortName' => 'decode_platform_event_message_req'
     },
-    '256639' => {
+    '199753' => {
       'Header' => 'platform.h',
-      'Line' => '2281',
+      'Line' => '2289',
       'Param' => {
         '0' => {
           'name' => 'event_data',
-          'type' => '256830'
+          'type' => '199944'
         },
         '1' => {
           'name' => 'event_data_size',
-          'type' => '31788'
+          'type' => '31750'
         },
         '2' => {
           'name' => 'sensor_id',
-          'type' => '15846'
+          'type' => '15842'
         },
         '3' => {
           'name' => 'sensor_event_class',
-          'type' => '100979'
+          'type' => '98420'
         },
         '4' => {
           'name' => 'sensor_offset',
@@ -6494,7 +6498,7 @@
         },
         '7' => {
           'name' => 'actual_event_data_size',
-          'type' => '173059'
+          'type' => '146039'
         }
       },
       'Reg' => {
@@ -6508,13 +6512,13 @@
       'Return' => '100',
       'ShortName' => 'encode_sensor_event_data'
     },
-    '256845' => {
+    '199959' => {
       'Header' => 'platform.h',
-      'Line' => '1415',
+      'Line' => '1423',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -6522,27 +6526,27 @@
         },
         '2' => {
           'name' => 'sensor_id',
-          'type' => '12530'
+          'type' => '12526'
         },
         '3' => {
           'name' => 'sensor_rearm',
-          'type' => '6428'
+          'type' => '6424'
         },
         '4' => {
           'name' => 'reserved',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Return' => '100',
       'ShortName' => 'decode_get_state_sensor_readings_req'
     },
-    '258045' => {
+    '201075' => {
       'Header' => 'platform.h',
-      'Line' => '1783',
+      'Line' => '1791',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -6550,28 +6554,28 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'comp_sensor_count',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'field',
-          'type' => '259756'
+          'type' => '202732'
         }
       },
       'Reg' => {
         '1' => 'rsi',
-        '3' => 'r9',
+        '3' => 'r10',
         '4' => 'r8'
       },
       'Return' => '100',
       'ShortName' => 'decode_get_state_sensor_readings_resp'
     },
-    '259761' => {
+    '202737' => {
       'Header' => 'platform.h',
-      'Line' => '1763',
+      'Line' => '1771',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -6591,15 +6595,15 @@
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_get_state_sensor_readings_req'
     },
-    '259999' => {
+    '202975' => {
       'Header' => 'platform.h',
-      'Line' => '1435',
+      'Line' => '1443',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -6615,23 +6619,23 @@
         },
         '3' => {
           'name' => 'field',
-          'type' => '259756'
+          'type' => '202732'
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_get_state_sensor_readings_resp'
     },
-    '260353' => {
+    '203329' => {
       'Header' => 'platform.h',
-      'Line' => '1744',
+      'Line' => '1752',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -6639,7 +6643,7 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -6650,9 +6654,9 @@
       'Return' => '100',
       'ShortName' => 'decode_set_numeric_effecter_value_resp'
     },
-    '260430' => {
+    '203406' => {
       'Header' => 'platform.h',
-      'Line' => '1731',
+      'Line' => '1739',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -6672,7 +6676,7 @@
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '5' => {
           'name' => 'payload_length',
@@ -6685,9 +6689,9 @@
       'Return' => '100',
       'ShortName' => 'encode_set_numeric_effecter_value_req'
     },
-    '260900' => {
+    '203874' => {
       'Header' => 'platform.h',
-      'Line' => '1306',
+      'Line' => '1314',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -6699,7 +6703,7 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '3' => {
           'name' => 'payload_length',
@@ -6709,13 +6713,13 @@
       'Return' => '100',
       'ShortName' => 'encode_set_numeric_effecter_value_resp'
     },
-    '261093' => {
+    '204067' => {
       'Header' => 'platform.h',
-      'Line' => '1290',
+      'Line' => '1298',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -6723,27 +6727,27 @@
         },
         '2' => {
           'name' => 'effecter_id',
-          'type' => '12530'
+          'type' => '12526'
         },
         '3' => {
           'name' => 'effecter_data_size',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'effecter_value',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Return' => '100',
       'ShortName' => 'decode_set_numeric_effecter_value_req'
     },
-    '266165' => {
+    '208845' => {
       'Header' => 'platform.h',
-      'Line' => '1642',
+      'Line' => '1650',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -6751,29 +6755,29 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'next_record_hndl',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'next_data_transfer_hndl',
-          'type' => '4612'
+          'type' => '4608'
         },
         '5' => {
           'name' => 'transfer_flag',
-          'type' => '4607'
+          'type' => '4603'
         },
         '6' => {
           'name' => 'resp_cnt',
           'offset' => '0',
-          'type' => '12530'
+          'type' => '12526'
         },
         '7' => {
           'name' => 'record_data',
           'offset' => '8',
-          'type' => '4607'
+          'type' => '4603'
         },
         '8' => {
           'name' => 'record_data_length',
@@ -6783,7 +6787,7 @@
         '9' => {
           'name' => 'transfer_crc',
           'offset' => '24',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -6792,9 +6796,9 @@
       'Return' => '100',
       'ShortName' => 'decode_get_pdr_resp'
     },
-    '268646' => {
+    '211191' => {
       'Header' => 'platform.h',
-      'Line' => '1611',
+      'Line' => '1619',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -6823,7 +6827,7 @@
         '6' => {
           'name' => 'msg',
           'offset' => '0',
-          'type' => '4155'
+          'type' => '4151'
         },
         '7' => {
           'name' => 'payload_length',
@@ -6837,13 +6841,13 @@
       'Return' => '100',
       'ShortName' => 'encode_get_pdr_req'
     },
-    '271712' => {
+    '213964' => {
       'Header' => 'platform.h',
-      'Line' => '1573',
+      'Line' => '1581',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -6851,47 +6855,47 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'repository_state',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'update_time',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'oem_update_time',
-          'type' => '4607'
+          'type' => '4603'
         },
         '6' => {
           'name' => 'record_count',
           'offset' => '0',
-          'type' => '4612'
+          'type' => '4608'
         },
         '7' => {
           'name' => 'repository_size',
           'offset' => '8',
-          'type' => '4612'
+          'type' => '4608'
         },
         '8' => {
           'name' => 'largest_record_size',
           'offset' => '16',
-          'type' => '4612'
+          'type' => '4608'
         },
         '9' => {
           'name' => 'data_transfer_handle_timeout',
           'offset' => '24',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Return' => '100',
       'ShortName' => 'decode_get_pdr_repository_info_resp'
     },
-    '274540' => {
+    '216572' => {
       'Header' => 'platform.h',
-      'Line' => '1549',
+      'Line' => '1557',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -6935,15 +6939,15 @@
         '9' => {
           'name' => 'msg',
           'offset' => '24',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_get_pdr_repository_info_resp'
     },
-    '275013' => {
+    '217045' => {
       'Header' => 'platform.h',
-      'Line' => '1373',
+      'Line' => '1381',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -6982,19 +6986,19 @@
         '8' => {
           'name' => 'msg',
           'offset' => '16',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_get_pdr_resp'
     },
-    '275462' => {
+    '217494' => {
       'Header' => 'platform.h',
-      'Line' => '1394',
+      'Line' => '1402',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -7002,36 +7006,36 @@
         },
         '2' => {
           'name' => 'record_hndl',
-          'type' => '4612'
+          'type' => '4608'
         },
         '3' => {
           'name' => 'data_transfer_hndl',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'transfer_op_flag',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'request_cnt',
-          'type' => '12530'
+          'type' => '12526'
         },
         '6' => {
           'name' => 'record_chg_num',
           'offset' => '0',
-          'type' => '12530'
+          'type' => '12526'
         }
       },
       'Return' => '100',
       'ShortName' => 'decode_get_pdr_req'
     },
-    '277356' => {
+    '219304' => {
       'Header' => 'platform.h',
-      'Line' => '1345',
+      'Line' => '1353',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -7039,27 +7043,27 @@
         },
         '2' => {
           'name' => 'effecter_id',
-          'type' => '12530'
+          'type' => '12526'
         },
         '3' => {
           'name' => 'comp_effecter_count',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'field',
-          'type' => '278773'
+          'type' => '220637'
         }
       },
       'Return' => '100',
       'ShortName' => 'decode_set_state_effecter_states_req'
     },
-    '278778' => {
+    '220642' => {
       'Header' => 'platform.h',
-      'Line' => '1710',
+      'Line' => '1718',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -7067,7 +7071,7 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -7078,9 +7082,9 @@
       'Return' => '100',
       'ShortName' => 'decode_set_state_effecter_states_resp'
     },
-    '278852' => {
+    '220716' => {
       'Header' => 'platform.h',
-      'Line' => '1691',
+      'Line' => '1699',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -7096,11 +7100,11 @@
         },
         '3' => {
           'name' => 'field',
-          'type' => '278773'
+          'type' => '220637'
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Reg' => {
@@ -7109,9 +7113,9 @@
       'Return' => '100',
       'ShortName' => 'encode_set_state_effecter_states_req'
     },
-    '279196' => {
+    '221060' => {
       'Header' => 'platform.h',
-      'Line' => '1323',
+      'Line' => '1331',
       'Param' => {
         '0' => {
           'name' => 'instance_id',
@@ -7123,35 +7127,35 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_set_state_effecter_states_resp'
     },
-    '279363' => {
+    '221227' => {
       'Header' => 'platform.h',
-      'Line' => '673',
+      'Line' => '681',
       'Param' => {
         '0' => {
           'name' => 'sensor',
-          'type' => '279748'
+          'type' => '221610'
         },
         '1' => {
           'name' => 'allocation_size',
-          'type' => '31788'
+          'type' => '31750'
         },
         '2' => {
           'name' => 'possible_states',
-          'type' => '279758'
+          'type' => '221620'
         },
         '3' => {
           'name' => 'possible_states_size',
-          'type' => '31788'
+          'type' => '31750'
         },
         '4' => {
           'name' => 'actual_size',
-          'type' => '173059'
+          'type' => '146039'
         }
       },
       'Reg' => {
@@ -7164,29 +7168,29 @@
       'Return' => '100',
       'ShortName' => 'encode_state_sensor_pdr'
     },
-    '279768' => {
+    '221630' => {
       'Header' => 'platform.h',
-      'Line' => '913',
+      'Line' => '921',
       'Param' => {
         '0' => {
           'name' => 'effecter',
-          'type' => '280153'
+          'type' => '222013'
         },
         '1' => {
           'name' => 'allocation_size',
-          'type' => '31788'
+          'type' => '31750'
         },
         '2' => {
           'name' => 'possible_states',
-          'type' => '280163'
+          'type' => '222023'
         },
         '3' => {
           'name' => 'possible_states_size',
-          'type' => '31788'
+          'type' => '31750'
         },
         '4' => {
           'name' => 'actual_size',
-          'type' => '173059'
+          'type' => '146039'
         }
       },
       'Reg' => {
@@ -7199,13 +7203,13 @@
       'Return' => '100',
       'ShortName' => 'encode_state_effecter_pdr'
     },
-    '286816' => {
+    '227234' => {
       'Header' => 'instance-id.h',
       'Line' => '85',
       'Param' => {
         '0' => {
           'name' => 'ctx',
-          'type' => '286996'
+          'type' => '227414'
         },
         '1' => {
           'name' => 'tid',
@@ -7219,13 +7223,13 @@
       'Return' => '100',
       'ShortName' => 'pldm_instance_id_free'
     },
-    '287001' => {
+    '227419' => {
       'Header' => 'instance-id.h',
       'Line' => '68',
       'Param' => {
         '0' => {
           'name' => 'ctx',
-          'type' => '286996'
+          'type' => '227414'
         },
         '1' => {
           'name' => 'tid',
@@ -7233,19 +7237,19 @@
         },
         '2' => {
           'name' => 'iid',
-          'type' => '287383'
+          'type' => '227801'
         }
       },
       'Return' => '100',
       'ShortName' => 'pldm_instance_id_alloc'
     },
-    '287388' => {
+    '227806' => {
       'Header' => 'instance-id.h',
       'Line' => '51',
       'Param' => {
         '0' => {
           'name' => 'ctx',
-          'type' => '286996'
+          'type' => '227414'
         }
       },
       'Reg' => {
@@ -7254,41 +7258,41 @@
       'Return' => '100',
       'ShortName' => 'pldm_instance_db_destroy'
     },
-    '287473' => {
+    '227891' => {
       'Header' => 'instance-id.h',
       'Line' => '41',
       'Param' => {
         '0' => {
           'name' => 'ctx',
-          'type' => '287559'
+          'type' => '227977'
         }
       },
       'Return' => '100',
       'ShortName' => 'pldm_instance_db_init_default'
     },
-    '287564' => {
+    '227982' => {
       'Header' => 'instance-id.h',
       'Line' => '28',
       'Param' => {
         '0' => {
           'name' => 'ctx',
-          'type' => '287559'
+          'type' => '227977'
         },
         '1' => {
           'name' => 'dbpath',
-          'type' => '3924'
+          'type' => '3920'
         }
       },
       'Return' => '100',
       'ShortName' => 'pldm_instance_db_init'
     },
-    '288515' => {
+    '228933' => {
       'Header' => 'transport.h',
       'Line' => '53',
       'Param' => {
         '0' => {
           'name' => 'transport',
-          'type' => '288552'
+          'type' => '228970'
         },
         '1' => {
           'name' => 'tid',
@@ -7309,16 +7313,16 @@
         '2' => 'rdx',
         '3' => 'rcx'
       },
-      'Return' => '288466',
+      'Return' => '228884',
       'ShortName' => 'pldm_transport_send_msg'
     },
-    '288562' => {
+    '228980' => {
       'Header' => 'transport.h',
       'Line' => '118',
       'Param' => {
         '0' => {
           'name' => 'transport',
-          'type' => '288552'
+          'type' => '228970'
         },
         '1' => {
           'name' => 'tid',
@@ -7334,26 +7338,26 @@
         },
         '4' => {
           'name' => 'pldm_resp_msg',
-          'type' => '55613'
+          'type' => '54647'
         },
         '5' => {
           'name' => 'resp_msg_len',
-          'type' => '13093'
+          'type' => '13089'
         }
       },
       'Reg' => {
         '2' => 'r14'
       },
-      'Return' => '288466',
+      'Return' => '228884',
       'ShortName' => 'pldm_transport_send_recv_msg'
     },
-    '288619' => {
+    '229037' => {
       'Header' => 'mctp-demux.h',
       'Line' => '18',
       'Param' => {
         '0' => {
           'name' => 'ctx',
-          'type' => '288510'
+          'type' => '228928'
         }
       },
       'Reg' => {
@@ -7362,25 +7366,25 @@
       'Return' => '1',
       'ShortName' => 'pldm_transport_mctp_demux_destroy'
     },
-    '288656' => {
+    '229074' => {
       'Header' => 'transport.h',
       'Line' => '81',
       'Param' => {
         '0' => {
           'name' => 'transport',
-          'type' => '288552'
+          'type' => '228970'
         },
         '1' => {
           'name' => 'tid',
-          'type' => '288693'
+          'type' => '229111'
         },
         '2' => {
           'name' => 'pldm_msg',
-          'type' => '55613'
+          'type' => '54647'
         },
         '3' => {
           'name' => 'msg_len',
-          'type' => '13093'
+          'type' => '13089'
         }
       },
       'Reg' => {
@@ -7389,16 +7393,16 @@
         '2' => 'rbp',
         '3' => 'rcx'
       },
-      'Return' => '288466',
+      'Return' => '228884',
       'ShortName' => 'pldm_transport_recv_msg'
     },
-    '288698' => {
+    '229116' => {
       'Header' => 'mctp-demux.h',
       'Line' => '32',
       'Param' => {
         '0' => {
           'name' => 'ctx',
-          'type' => '288510'
+          'type' => '228928'
         },
         '1' => {
           'name' => 'tid',
@@ -7406,7 +7410,7 @@
         },
         '2' => {
           'name' => 'eid',
-          'type' => '288351'
+          'type' => '228769'
         }
       },
       'Reg' => {
@@ -7417,28 +7421,28 @@
       'Return' => '100',
       'ShortName' => 'pldm_transport_mctp_demux_map_tid'
     },
-    '288730' => {
+    '229148' => {
       'Header' => 'mctp-demux.h',
       'Line' => '22',
       'Param' => {
         '0' => {
           'name' => 'ctx',
-          'type' => '288510'
+          'type' => '228928'
         }
       },
       'Reg' => {
         '0' => 'rdi'
       },
-      'Return' => '288552',
+      'Return' => '228970',
       'ShortName' => 'pldm_transport_mctp_demux_core'
     },
-    '288774' => {
+    '229192' => {
       'Header' => 'mctp-demux.h',
       'Line' => '15',
       'Param' => {
         '0' => {
           'name' => 'ctx',
-          'type' => '288796'
+          'type' => '229214'
         }
       },
       'Reg' => {
@@ -7447,19 +7451,19 @@
       'Return' => '100',
       'ShortName' => 'pldm_transport_mctp_demux_init'
     },
-    '288855' => {
+    '229273' => {
       'Header' => 'pldm.h',
       'Line' => '119',
       'Return' => '1',
       'ShortName' => 'pldm_close'
     },
-    '288899' => {
+    '229317' => {
       'Header' => 'pldm.h',
       'Line' => '75',
       'Param' => {
         '0' => {
           'name' => 'eid',
-          'type' => '288351'
+          'type' => '228769'
         },
         '1' => {
           'name' => 'mctp_fd',
@@ -7480,16 +7484,16 @@
         '2' => 'rdx',
         '3' => 'rcx'
       },
-      'Return' => '288466',
+      'Return' => '228884',
       'ShortName' => 'pldm_send'
     },
-    '289318' => {
+    '229736' => {
       'Header' => 'pldm.h',
       'Line' => '57',
       'Param' => {
         '0' => {
           'name' => 'eid',
-          'type' => '288351'
+          'type' => '228769'
         },
         '1' => {
           'name' => 'mctp_fd',
@@ -7505,11 +7509,11 @@
         },
         '4' => {
           'name' => 'pldm_resp_msg',
-          'type' => '53622'
+          'type' => '52645'
         },
         '5' => {
           'name' => 'resp_msg_len',
-          'type' => '13093'
+          'type' => '13089'
         }
       },
       'Reg' => {
@@ -7520,16 +7524,16 @@
         '4' => 'r8',
         '5' => 'r9'
       },
-      'Return' => '288466',
+      'Return' => '228884',
       'ShortName' => 'pldm_send_recv'
     },
-    '289801' => {
+    '230219' => {
       'Header' => 'pldm.h',
       'Line' => '94',
       'Param' => {
         '0' => {
           'name' => 'eid',
-          'type' => '288351'
+          'type' => '228769'
         },
         '1' => {
           'name' => 'mctp_fd',
@@ -7541,26 +7545,26 @@
         },
         '3' => {
           'name' => 'pldm_resp_msg',
-          'type' => '53622'
+          'type' => '52645'
         },
         '4' => {
           'name' => 'resp_msg_len',
-          'type' => '13093'
+          'type' => '13089'
         }
       },
       'Reg' => {
         '3' => 'rbx'
       },
-      'Return' => '288466',
+      'Return' => '228884',
       'ShortName' => 'pldm_recv'
     },
-    '290027' => {
+    '230445' => {
       'Header' => 'pldm.h',
       'Line' => '112',
       'Param' => {
         '0' => {
           'name' => 'eid',
-          'type' => '288351'
+          'type' => '228769'
         },
         '1' => {
           'name' => 'mctp_fd',
@@ -7568,37 +7572,37 @@
         },
         '2' => {
           'name' => 'pldm_resp_msg',
-          'type' => '53622'
+          'type' => '52645'
         },
         '3' => {
           'name' => 'resp_msg_len',
-          'type' => '13093'
+          'type' => '13089'
         }
       },
       'Reg' => {
         '2' => 'r12',
         '3' => 'r13'
       },
-      'Return' => '288466',
+      'Return' => '228884',
       'ShortName' => 'pldm_recv_any'
     },
-    '290480' => {
+    '230898' => {
       'Header' => 'pldm.h',
       'Line' => '39',
-      'Return' => '288466',
+      'Return' => '228884',
       'ShortName' => 'pldm_open'
     },
-    '292898' => {
+    '233316' => {
       'Header' => 'af-mctp.h',
       'Line' => '54',
       'Param' => {
         '0' => {
           'name' => 'transport',
-          'type' => '293054'
+          'type' => '233472'
         },
         '1' => {
           'name' => 'smctp',
-          'type' => '293059'
+          'type' => '233477'
         },
         '2' => {
           'name' => 'len',
@@ -7612,13 +7616,13 @@
       'Return' => '100',
       'ShortName' => 'pldm_transport_af_mctp_bind'
     },
-    '293064' => {
+    '233482' => {
       'Header' => 'af-mctp.h',
       'Line' => '19',
       'Param' => {
         '0' => {
           'name' => 'ctx',
-          'type' => '293054'
+          'type' => '233472'
         }
       },
       'Reg' => {
@@ -7627,13 +7631,13 @@
       'Return' => '1',
       'ShortName' => 'pldm_transport_af_mctp_destroy'
     },
-    '293148' => {
+    '233566' => {
       'Header' => 'af-mctp.h',
       'Line' => '16',
       'Param' => {
         '0' => {
           'name' => 'ctx',
-          'type' => '293372'
+          'type' => '233790'
         }
       },
       'Reg' => {
@@ -7642,13 +7646,13 @@
       'Return' => '100',
       'ShortName' => 'pldm_transport_af_mctp_init'
     },
-    '294559' => {
+    '234977' => {
       'Header' => 'af-mctp.h',
       'Line' => '37',
       'Param' => {
         '0' => {
           'name' => 'ctx',
-          'type' => '293054'
+          'type' => '233472'
         },
         '1' => {
           'name' => 'tid',
@@ -7656,7 +7660,7 @@
         },
         '2' => {
           'name' => 'eid',
-          'type' => '288351'
+          'type' => '228769'
         }
       },
       'Reg' => {
@@ -7667,13 +7671,13 @@
       'Return' => '100',
       'ShortName' => 'pldm_transport_af_mctp_unmap_tid'
     },
-    '294632' => {
+    '235050' => {
       'Header' => 'af-mctp.h',
       'Line' => '33',
       'Param' => {
         '0' => {
           'name' => 'ctx',
-          'type' => '293054'
+          'type' => '233472'
         },
         '1' => {
           'name' => 'tid',
@@ -7681,7 +7685,7 @@
         },
         '2' => {
           'name' => 'eid',
-          'type' => '288351'
+          'type' => '228769'
         }
       },
       'Reg' => {
@@ -7692,17 +7696,17 @@
       'Return' => '100',
       'ShortName' => 'pldm_transport_af_mctp_map_tid'
     },
-    '294873' => {
+    '235291' => {
       'Header' => 'af-mctp.h',
       'Line' => '28',
       'Param' => {
         '0' => {
           'name' => 't',
-          'type' => '288552'
+          'type' => '228970'
         },
         '1' => {
           'name' => 'pollfd',
-          'type' => '291550'
+          'type' => '231968'
         }
       },
       'Reg' => {
@@ -7712,28 +7716,28 @@
       'Return' => '100',
       'ShortName' => 'pldm_transport_af_mctp_init_pollfd'
     },
-    '294951' => {
+    '235369' => {
       'Header' => 'af-mctp.h',
       'Line' => '23',
       'Param' => {
         '0' => {
           'name' => 'ctx',
-          'type' => '293054'
+          'type' => '233472'
         }
       },
       'Reg' => {
         '0' => 'rdi'
       },
-      'Return' => '288552',
+      'Return' => '228970',
       'ShortName' => 'pldm_transport_af_mctp_core'
     },
-    '298670' => {
+    '239088' => {
       'Header' => 'mctp-demux.h',
       'Line' => '36',
       'Param' => {
         '0' => {
           'name' => 'ctx',
-          'type' => '288510'
+          'type' => '228928'
         },
         '1' => {
           'name' => 'tid',
@@ -7741,7 +7745,7 @@
         },
         '2' => {
           'name' => 'eid',
-          'type' => '288351'
+          'type' => '228769'
         }
       },
       'Reg' => {
@@ -7752,17 +7756,17 @@
       'Return' => '100',
       'ShortName' => 'pldm_transport_mctp_demux_unmap_tid'
     },
-    '298984' => {
+    '239402' => {
       'Header' => 'mctp-demux.h',
       'Line' => '27',
       'Param' => {
         '0' => {
           'name' => 't',
-          'type' => '288552'
+          'type' => '228970'
         },
         '1' => {
           'name' => 'pollfd',
-          'type' => '291550'
+          'type' => '231968'
         }
       },
       'Reg' => {
@@ -7772,13 +7776,13 @@
       'Return' => '100',
       'ShortName' => 'pldm_transport_mctp_demux_init_pollfd'
     },
-    '306820' => {
+    '247238' => {
       'Header' => 'transport.h',
       'Line' => '31',
       'Param' => {
         '0' => {
           'name' => 'transport',
-          'type' => '288552'
+          'type' => '228970'
         },
         '1' => {
           'name' => 'timeout',
@@ -7788,7 +7792,7 @@
       'Return' => '100',
       'ShortName' => 'pldm_transport_poll'
     },
-    '309019' => {
+    '249437' => {
       'Header' => 'file_io.h',
       'Line' => '912',
       'Param' => {
@@ -7802,19 +7806,19 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_new_file_with_metadata_resp'
     },
-    '309219' => {
+    '249637' => {
       'Header' => 'file_io.h',
       'Line' => '898',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -7822,34 +7826,34 @@
         },
         '2' => {
           'name' => 'file_type',
-          'type' => '12530'
+          'type' => '12526'
         },
         '3' => {
           'name' => 'file_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'length',
-          'type' => '24591'
+          'type' => '24587'
         },
         '5' => {
           'name' => 'file_meta_data_1',
-          'type' => '4612'
+          'type' => '4608'
         },
         '6' => {
           'name' => 'file_meta_data_2',
           'offset' => '0',
-          'type' => '4612'
+          'type' => '4608'
         },
         '7' => {
           'name' => 'file_meta_data_3',
           'offset' => '8',
-          'type' => '4612'
+          'type' => '4608'
         },
         '8' => {
           'name' => 'file_meta_data_4',
           'offset' => '16',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Reg' => {
@@ -7862,13 +7866,13 @@
       'Return' => '100',
       'ShortName' => 'decode_new_file_with_metadata_req'
     },
-    '309451' => {
+    '249869' => {
       'Header' => 'file_io.h',
       'Line' => '881',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -7876,7 +7880,7 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -7887,7 +7891,7 @@
       'Return' => '100',
       'ShortName' => 'decode_new_file_with_metadata_resp'
     },
-    '309552' => {
+    '249970' => {
       'Header' => 'file_io.h',
       'Line' => '866',
       'Param' => {
@@ -7905,7 +7909,7 @@
         },
         '3' => {
           'name' => 'length',
-          'type' => '15863'
+          'type' => '15859'
         },
         '4' => {
           'name' => 'file_meta_data_1',
@@ -7928,7 +7932,7 @@
         '8' => {
           'name' => 'msg',
           'offset' => '16',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Reg' => {
@@ -7937,7 +7941,7 @@
       'Return' => '100',
       'ShortName' => 'encode_new_file_with_metadata_req'
     },
-    '309849' => {
+    '250267' => {
       'Header' => 'file_io.h',
       'Line' => '824',
       'Param' => {
@@ -7951,19 +7955,19 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_file_ack_with_meta_data_resp'
     },
-    '310044' => {
+    '250462' => {
       'Header' => 'file_io.h',
       'Line' => '811',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -7971,34 +7975,34 @@
         },
         '2' => {
           'name' => 'file_type',
-          'type' => '12530'
+          'type' => '12526'
         },
         '3' => {
           'name' => 'file_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'file_status',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'file_meta_data_1',
-          'type' => '4612'
+          'type' => '4608'
         },
         '6' => {
           'name' => 'file_meta_data_2',
           'offset' => '0',
-          'type' => '4612'
+          'type' => '4608'
         },
         '7' => {
           'name' => 'file_meta_data_3',
           'offset' => '8',
-          'type' => '4612'
+          'type' => '4608'
         },
         '8' => {
           'name' => 'file_meta_data_4',
           'offset' => '16',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Reg' => {
@@ -8011,13 +8015,13 @@
       'Return' => '100',
       'ShortName' => 'decode_file_ack_with_meta_data_req'
     },
-    '310256' => {
+    '250674' => {
       'Header' => 'file_io.h',
       'Line' => '794',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -8025,7 +8029,7 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -8036,7 +8040,7 @@
       'Return' => '100',
       'ShortName' => 'decode_file_ack_with_meta_data_resp'
     },
-    '310352' => {
+    '250770' => {
       'Header' => 'file_io.h',
       'Line' => '781',
       'Param' => {
@@ -8077,7 +8081,7 @@
         '8' => {
           'name' => 'msg',
           'offset' => '16',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Reg' => {
@@ -8086,13 +8090,13 @@
       'Return' => '100',
       'ShortName' => 'encode_file_ack_with_meta_data_req'
     },
-    '310649' => {
+    '251067' => {
       'Header' => 'file_io.h',
       'Line' => '741',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -8100,7 +8104,7 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -8111,7 +8115,7 @@
       'Return' => '100',
       'ShortName' => 'decode_file_ack_resp'
     },
-    '310750' => {
+    '251168' => {
       'Header' => 'file_io.h',
       'Line' => '730',
       'Param' => {
@@ -8133,13 +8137,13 @@
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_file_ack_req'
     },
-    '310985' => {
+    '251403' => {
       'Header' => 'file_io.h',
       'Line' => '718',
       'Param' => {
@@ -8153,19 +8157,19 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_file_ack_resp'
     },
-    '311175' => {
+    '251593' => {
       'Header' => 'file_io.h',
       'Line' => '706',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -8173,15 +8177,15 @@
         },
         '2' => {
           'name' => 'file_type',
-          'type' => '12530'
+          'type' => '12526'
         },
         '3' => {
           'name' => 'file_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'file_status',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -8193,13 +8197,13 @@
       'Return' => '100',
       'ShortName' => 'decode_file_ack_req'
     },
-    '311317' => {
+    '251735' => {
       'Header' => 'file_io.h',
       'Line' => '675',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -8207,11 +8211,11 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'length',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Reg' => {
@@ -8223,7 +8227,7 @@
       'Return' => '100',
       'ShortName' => 'decode_rw_file_by_type_resp'
     },
-    '311432' => {
+    '251850' => {
       'Header' => 'file_io.h',
       'Line' => '661',
       'Param' => {
@@ -8254,13 +8258,13 @@
         '6' => {
           'name' => 'msg',
           'offset' => '0',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_rw_file_by_type_req'
     },
-    '311702' => {
+    '252120' => {
       'Header' => 'file_io.h',
       'Line' => '644',
       'Param' => {
@@ -8282,19 +8286,19 @@
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_rw_file_by_type_resp'
     },
-    '311932' => {
+    '252350' => {
       'Header' => 'file_io.h',
       'Line' => '626',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -8302,19 +8306,19 @@
         },
         '2' => {
           'name' => 'file_type',
-          'type' => '12530'
+          'type' => '12526'
         },
         '3' => {
           'name' => 'file_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'offset',
-          'type' => '4612'
+          'type' => '4608'
         },
         '5' => {
           'name' => 'length',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Reg' => {
@@ -8327,13 +8331,13 @@
       'Return' => '100',
       'ShortName' => 'decode_rw_file_by_type_req'
     },
-    '312094' => {
+    '252512' => {
       'Header' => 'file_io.h',
       'Line' => '590',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -8341,7 +8345,7 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -8352,7 +8356,7 @@
       'Return' => '100',
       'ShortName' => 'decode_new_file_resp'
     },
-    '312195' => {
+    '252613' => {
       'Header' => 'file_io.h',
       'Line' => '579',
       'Param' => {
@@ -8370,17 +8374,17 @@
         },
         '3' => {
           'name' => 'length',
-          'type' => '15863'
+          'type' => '15859'
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_new_file_req'
     },
-    '312430' => {
+    '252848' => {
       'Header' => 'file_io.h',
       'Line' => '567',
       'Param' => {
@@ -8394,19 +8398,19 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_new_file_resp'
     },
-    '312620' => {
+    '253038' => {
       'Header' => 'file_io.h',
       'Line' => '555',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -8414,15 +8418,15 @@
         },
         '2' => {
           'name' => 'file_type',
-          'type' => '12530'
+          'type' => '12526'
         },
         '3' => {
           'name' => 'file_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'length',
-          'type' => '24591'
+          'type' => '24587'
         }
       },
       'Reg' => {
@@ -8434,13 +8438,13 @@
       'Return' => '100',
       'ShortName' => 'decode_new_file_req'
     },
-    '312762' => {
+    '253180' => {
       'Header' => 'file_io.h',
       'Line' => '523',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -8448,11 +8452,11 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'length',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Reg' => {
@@ -8464,7 +8468,7 @@
       'Return' => '100',
       'ShortName' => 'decode_rw_file_by_type_memory_resp'
     },
-    '312877' => {
+    '253295' => {
       'Header' => 'file_io.h',
       'Line' => '509',
       'Param' => {
@@ -8495,18 +8499,18 @@
         '6' => {
           'name' => 'address',
           'offset' => '0',
-          'type' => '15863'
+          'type' => '15859'
         },
         '7' => {
           'name' => 'msg',
           'offset' => '8',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_rw_file_by_type_memory_req'
     },
-    '313162' => {
+    '253580' => {
       'Header' => 'file_io.h',
       'Line' => '491',
       'Param' => {
@@ -8528,19 +8532,19 @@
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_rw_file_by_type_memory_resp'
     },
-    '313392' => {
+    '253810' => {
       'Header' => 'file_io.h',
       'Line' => '473',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -8548,24 +8552,24 @@
         },
         '2' => {
           'name' => 'file_type',
-          'type' => '12530'
+          'type' => '12526'
         },
         '3' => {
           'name' => 'file_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'offset',
-          'type' => '4612'
+          'type' => '4608'
         },
         '5' => {
           'name' => 'length',
-          'type' => '4612'
+          'type' => '4608'
         },
         '6' => {
           'name' => 'address',
           'offset' => '0',
-          'type' => '24591'
+          'type' => '24587'
         }
       },
       'Reg' => {
@@ -8578,7 +8582,7 @@
       'Return' => '100',
       'ShortName' => 'decode_rw_file_by_type_memory_req'
     },
-    '313569' => {
+    '253987' => {
       'Header' => 'file_io.h',
       'Line' => '435',
       'Param' => {
@@ -8596,19 +8600,19 @@
         },
         '3' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_write_file_resp'
     },
-    '313784' => {
+    '254202' => {
       'Header' => 'file_io.h',
       'Line' => '422',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -8616,11 +8620,11 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'length',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Reg' => {
@@ -8632,7 +8636,7 @@
       'Return' => '100',
       'ShortName' => 'decode_write_file_resp'
     },
-    '313894' => {
+    '254312' => {
       'Header' => 'file_io.h',
       'Line' => '410',
       'Param' => {
@@ -8654,19 +8658,19 @@
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_write_file_req'
     },
-    '314129' => {
+    '254547' => {
       'Header' => 'file_io.h',
       'Line' => '391',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -8674,19 +8678,19 @@
         },
         '2' => {
           'name' => 'file_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '3' => {
           'name' => 'offset',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'length',
-          'type' => '4612'
+          'type' => '4608'
         },
         '5' => {
           'name' => 'file_data_offset',
-          'type' => '13093'
+          'type' => '13089'
         }
       },
       'Reg' => {
@@ -8698,7 +8702,7 @@
       'Return' => '100',
       'ShortName' => 'decode_write_file_req'
     },
-    '314284' => {
+    '254702' => {
       'Header' => 'file_io.h',
       'Line' => '377',
       'Param' => {
@@ -8716,19 +8720,19 @@
         },
         '3' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_read_file_resp'
     },
-    '314499' => {
+    '254917' => {
       'Header' => 'file_io.h',
       'Line' => '359',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -8736,15 +8740,15 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'length',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'file_data_offset',
-          'type' => '13093'
+          'type' => '13089'
         }
       },
       'Reg' => {
@@ -8756,7 +8760,7 @@
       'Return' => '100',
       'ShortName' => 'decode_read_file_resp'
     },
-    '314635' => {
+    '255053' => {
       'Header' => 'file_io.h',
       'Line' => '344',
       'Param' => {
@@ -8778,19 +8782,19 @@
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_read_file_req'
     },
-    '314870' => {
+    '255288' => {
       'Header' => 'file_io.h',
       'Line' => '330',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -8798,15 +8802,15 @@
         },
         '2' => {
           'name' => 'file_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '3' => {
           'name' => 'offset',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'length',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Reg' => {
@@ -8818,13 +8822,13 @@
       'Return' => '100',
       'ShortName' => 'decode_read_file_req'
     },
-    '315006' => {
+    '255424' => {
       'Header' => 'file_io.h',
       'Line' => '274',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -8832,24 +8836,24 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'next_transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'transfer_flag',
-          'type' => '4607'
+          'type' => '4603'
         },
         '5' => {
           'name' => 'file_table_data_start_offset',
-          'type' => '4607'
+          'type' => '4603'
         },
         '6' => {
           'name' => 'file_table_length',
           'offset' => '0',
-          'type' => '13093'
+          'type' => '13089'
         }
       },
       'Reg' => {
@@ -8862,7 +8866,7 @@
       'Return' => '100',
       'ShortName' => 'decode_get_file_table_resp'
     },
-    '315180' => {
+    '255598' => {
       'Header' => 'file_io.h',
       'Line' => '258',
       'Param' => {
@@ -8884,13 +8888,13 @@
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_get_file_table_req'
     },
-    '315407' => {
+    '255825' => {
       'Header' => 'file_io.h',
       'Line' => '244',
       'Param' => {
@@ -8921,7 +8925,7 @@
         '6' => {
           'name' => 'msg',
           'offset' => '0',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Reg' => {
@@ -8930,13 +8934,13 @@
       'Return' => '100',
       'ShortName' => 'encode_get_file_table_resp'
     },
-    '315765' => {
+    '256183' => {
       'Header' => 'file_io.h',
       'Line' => '227',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -8944,15 +8948,15 @@
         },
         '2' => {
           'name' => 'transfer_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '3' => {
           'name' => 'transfer_opflag',
-          'type' => '4607'
+          'type' => '4603'
         },
         '4' => {
           'name' => 'table_type',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -8964,13 +8968,13 @@
       'Return' => '100',
       'ShortName' => 'decode_get_file_table_req'
     },
-    '315900' => {
+    '256318' => {
       'Header' => 'file_io.h',
       'Line' => '183',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -8978,11 +8982,11 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'length',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Reg' => {
@@ -8994,7 +8998,7 @@
       'Return' => '100',
       'ShortName' => 'decode_rw_file_memory_resp'
     },
-    '316009' => {
+    '256427' => {
       'Header' => 'file_io.h',
       'Line' => '169',
       'Param' => {
@@ -9020,12 +9024,12 @@
         },
         '5' => {
           'name' => 'address',
-          'type' => '15863'
+          'type' => '15859'
         },
         '6' => {
           'name' => 'msg',
           'offset' => '0',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Reg' => {
@@ -9034,7 +9038,7 @@
       'Return' => '100',
       'ShortName' => 'encode_rw_file_memory_req'
     },
-    '316268' => {
+    '256686' => {
       'Header' => 'file_io.h',
       'Line' => '152',
       'Param' => {
@@ -9056,19 +9060,19 @@
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_rw_file_memory_resp'
     },
-    '316489' => {
+    '256907' => {
       'Header' => 'file_io.h',
       'Line' => '136',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -9076,19 +9080,19 @@
         },
         '2' => {
           'name' => 'file_handle',
-          'type' => '4612'
+          'type' => '4608'
         },
         '3' => {
           'name' => 'offset',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'length',
-          'type' => '4612'
+          'type' => '4608'
         },
         '5' => {
           'name' => 'address',
-          'type' => '24591'
+          'type' => '24587'
         }
       },
       'Reg' => {
@@ -9101,7 +9105,7 @@
       'Return' => '100',
       'ShortName' => 'decode_rw_file_memory_req'
     },
-    '317538' => {
+    '257956' => {
       'Header' => 'host.h',
       'Line' => '101',
       'Param' => {
@@ -9123,7 +9127,7 @@
         },
         '4' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '5' => {
           'name' => 'payload_length',
@@ -9136,13 +9140,13 @@
       'Return' => '100',
       'ShortName' => 'encode_get_alert_status_resp'
     },
-    '317786' => {
+    '258204' => {
       'Header' => 'host.h',
       'Line' => '86',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -9150,7 +9154,7 @@
         },
         '2' => {
           'name' => 'version_id',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -9161,13 +9165,13 @@
       'Return' => '100',
       'ShortName' => 'decode_get_alert_status_req'
     },
-    '317869' => {
+    '258287' => {
       'Header' => 'host.h',
       'Line' => '70',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -9175,15 +9179,15 @@
         },
         '2' => {
           'name' => 'completion_code',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'rack_entry',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'pri_cec_node',
-          'type' => '4612'
+          'type' => '4608'
         }
       },
       'Reg' => {
@@ -9195,7 +9199,7 @@
       'Return' => '100',
       'ShortName' => 'decode_get_alert_status_resp'
     },
-    '318008' => {
+    '258426' => {
       'Header' => 'host.h',
       'Line' => '52',
       'Param' => {
@@ -9209,7 +9213,7 @@
         },
         '2' => {
           'name' => 'msg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '3' => {
           'name' => 'payload_length',
@@ -9219,7 +9223,7 @@
       'Return' => '100',
       'ShortName' => 'encode_get_alert_status_req'
     },
-    '319076' => {
+    '259494' => {
       'Header' => 'platform.h',
       'Line' => '47',
       'Param' => {
@@ -9250,13 +9254,13 @@
         '6' => {
           'name' => 'msg',
           'offset' => '0',
-          'type' => '4155'
+          'type' => '4151'
         }
       },
       'Return' => '100',
       'ShortName' => 'encode_bios_attribute_update_event_req'
     },
-    '320967' => {
+    '261346' => {
       'Header' => 'file_io.h',
       'Line' => '160',
       'Param' => {
@@ -9266,7 +9270,7 @@
         },
         '1' => {
           'name' => 'resp',
-          'type' => '323519'
+          'type' => '263668'
         },
         '2' => {
           'name' => 'resp_len',
@@ -9274,23 +9278,26 @@
         },
         '3' => {
           'name' => 'responseMsg',
-          'type' => '4155'
+          'type' => '4151'
         },
         '4' => {
           'name' => 'payload_length',
           'type' => '1145'
         }
       },
+      'Reg' => {
+        '3' => 'r13'
+      },
       'Return' => '100',
       'ShortName' => 'encode_oem_meta_file_io_read_resp'
     },
-    '323534' => {
+    '263683' => {
       'Header' => 'file_io.h',
       'Line' => '147',
       'Param' => {
         '0' => {
           'name' => 'resp',
-          'type' => '323519'
+          'type' => '263668'
         }
       },
       'Reg' => {
@@ -9299,13 +9306,13 @@
       'Return' => '2579',
       'ShortName' => 'pldm_oem_meta_file_io_read_resp_data'
     },
-    '323582' => {
+    '263731' => {
       'Header' => 'file_io.h',
       'Line' => '137',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -9313,19 +9320,19 @@
         },
         '2' => {
           'name' => 'req',
-          'type' => '325107'
+          'type' => '265139'
         }
       },
       'Return' => '100',
       'ShortName' => 'decode_oem_meta_file_io_read_req'
     },
-    '325112' => {
+    '265144' => {
       'Header' => 'file_io.h',
       'Line' => '126',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -9333,15 +9340,15 @@
         },
         '2' => {
           'name' => 'file_handle',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'length',
-          'type' => '4612'
+          'type' => '4608'
         },
         '4' => {
           'name' => 'data',
-          'type' => '4607'
+          'type' => '4603'
         }
       },
       'Reg' => {
@@ -9354,13 +9361,13 @@
       'Return' => '100',
       'ShortName' => 'decode_oem_meta_file_io_req'
     },
-    '325546' => {
+    '265578' => {
       'Header' => 'file_io.h',
       'Line' => '113',
       'Param' => {
         '0' => {
           'name' => 'msg',
-          'type' => '4602'
+          'type' => '4598'
         },
         '1' => {
           'name' => 'payload_length',
@@ -9368,7 +9375,7 @@
         },
         '2' => {
           'name' => 'req',
-          'type' => '325541'
+          'type' => '265573'
         },
         '3' => {
           'name' => 'req_length',
@@ -9378,13 +9385,13 @@
       'Return' => '100',
       'ShortName' => 'decode_oem_meta_file_io_write_req'
     },
-    '326918' => {
+    '266733' => {
       'Header' => 'file_io.h',
       'Line' => '102',
       'Param' => {
         '0' => {
           'name' => 'req',
-          'type' => '325541'
+          'type' => '265573'
         }
       },
       'Reg' => {
@@ -9813,7 +9820,7 @@
     '175' => {
       'BaseType' => '121',
       'Header' => 'base.h',
-      'Line' => '16',
+      'Line' => '17',
       'Name' => 'pldm_tid_t',
       'Size' => '1',
       'Type' => 'Typedef'
@@ -10124,7 +10131,7 @@
     },
     '3191' => {
       'Header' => 'base.h',
-      'Line' => '92',
+      'Line' => '93',
       'Memb' => {
         '0' => {
           'name' => 'PLDM_RESPONSE',
@@ -10149,7 +10156,7 @@
     },
     '3203' => {
       'Header' => 'base.h',
-      'Line' => '138',
+      'Line' => '139',
       'Memb' => {
         '0' => {
           'name' => 'command',
@@ -10169,7 +10176,7 @@
     },
     '3319' => {
       'Header' => 'base.h',
-      'Line' => '171',
+      'Line' => '172',
       'Memb' => {
         '0' => {
           'name' => 'hdr',
@@ -10200,7 +10207,7 @@
     },
     '3380' => {
       'Header' => 'base.h',
-      'Line' => '197',
+      'Line' => '239',
       'Memb' => {
         '0' => {
           'name' => 'msg_type',
@@ -10238,79 +10245,79 @@
       'Size' => '8',
       'Type' => 'Const'
     },
-    '3924' => {
+    '3920' => {
       'BaseType' => '2593',
       'Name' => 'char const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '4155' => {
+    '4151' => {
       'BaseType' => '3319',
       'Name' => 'struct pldm_msg*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '4602' => {
+    '4598' => {
       'BaseType' => '3359',
       'Name' => 'struct pldm_msg const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '4607' => {
+    '4603' => {
       'BaseType' => '121',
       'Name' => 'uint8_t*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '4612' => {
+    '4608' => {
       'BaseType' => '1023',
       'Name' => 'uint32_t*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '5505' => {
+    '5501' => {
       'BaseType' => '1093',
       'Name' => 'ver32_t*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '6428' => {
+    '6424' => {
       'BaseType' => '2776',
       'Name' => 'bitfield8_t*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '6890' => {
+    '6886' => {
       'BaseType' => '2788',
       'Name' => 'bitfield8_t const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '7678' => {
+    '7674' => {
       'BaseType' => '3314',
       'Name' => 'struct pldm_msg_hdr const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '7917' => {
+    '7913' => {
       'BaseType' => '3380',
       'Name' => 'struct pldm_header_info*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '8177' => {
+    '8173' => {
       'BaseType' => '3459',
       'Name' => 'struct pldm_header_info const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '8182' => {
+    '8178' => {
       'BaseType' => '3203',
       'Name' => 'struct pldm_msg_hdr*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '10052' => {
+    '10048' => {
       'Header' => 'utils.h',
       'Line' => '20',
       'Memb' => {
@@ -10329,25 +10336,25 @@
       'Size' => '16',
       'Type' => 'Struct'
     },
-    '10448' => {
-      'BaseType' => '10052',
+    '10444' => {
+      'BaseType' => '10048',
       'Name' => 'struct variable_field*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '12530' => {
+    '12526' => {
       'BaseType' => '1011',
       'Name' => 'uint16_t*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '13093' => {
+    '13089' => {
       'BaseType' => '1145',
       'Name' => 'size_t*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '15769' => {
+    '15765' => {
       'BaseType' => '67',
       'Header' => 'types.h',
       'Line' => '45',
@@ -10356,14 +10363,14 @@
       'Size' => '8',
       'Type' => 'Typedef'
     },
-    '15846' => {
+    '15842' => {
       'BaseType' => '1011',
       'Name' => 'uint16_t const',
       'Size' => '2',
       'Type' => 'Const'
     },
-    '15863' => {
-      'BaseType' => '15769',
+    '15859' => {
+      'BaseType' => '15765',
       'Header' => 'stdint-uintn.h',
       'Line' => '27',
       'Name' => 'uint64_t',
@@ -10371,7 +10378,7 @@
       'Size' => '8',
       'Type' => 'Typedef'
     },
-    '16009' => {
+    '16005' => {
       'Header' => 'bios.h',
       'Line' => '39',
       'Memb' => {
@@ -10392,7 +10399,7 @@
       'Size' => '4',
       'Type' => 'Enum'
     },
-    '16043' => {
+    '16039' => {
       'Header' => 'bios.h',
       'Line' => '48',
       'Memb' => {
@@ -10409,26 +10416,26 @@
         '2' => {
           'name' => 'name',
           'offset' => '4',
-          'type' => '16100'
+          'type' => '16096'
         }
       },
       'Name' => 'struct pldm_bios_string_table_entry',
       'Size' => '5',
       'Type' => 'Struct'
     },
-    '16095' => {
-      'BaseType' => '16043',
+    '16091' => {
+      'BaseType' => '16039',
       'Name' => 'struct pldm_bios_string_table_entry const',
       'Size' => '5',
       'Type' => 'Const'
     },
-    '16100' => {
+    '16096' => {
       'BaseType' => '114',
       'Name' => 'char[1]',
       'Size' => '1',
       'Type' => 'Array'
     },
-    '16116' => {
+    '16112' => {
       'Header' => 'bios.h',
       'Line' => '54',
       'Memb' => {
@@ -10457,13 +10464,13 @@
       'Size' => '6',
       'Type' => 'Struct'
     },
-    '16181' => {
-      'BaseType' => '16116',
+    '16177' => {
+      'BaseType' => '16112',
       'Name' => 'struct pldm_bios_attr_table_entry const',
       'Size' => '6',
       'Type' => 'Const'
     },
-    '16186' => {
+    '16182' => {
       'Header' => 'bios.h',
       'Line' => '66',
       'Memb' => {
@@ -10487,13 +10494,13 @@
       'Size' => '4',
       'Type' => 'Struct'
     },
-    '16238' => {
-      'BaseType' => '16186',
+    '16234' => {
+      'BaseType' => '16182',
       'Name' => 'struct pldm_bios_attr_val_table_entry const',
       'Size' => '4',
       'Type' => 'Const'
     },
-    '16307' => {
+    '16303' => {
       'Header' => 'bios_table.h',
       'Line' => '206',
       'Memb' => {
@@ -10515,7 +10522,7 @@
         '3' => {
           'name' => 'pv_handle',
           'offset' => '8',
-          'type' => '16410'
+          'type' => '16406'
         },
         '4' => {
           'name' => 'def_num',
@@ -10532,19 +10539,19 @@
       'Size' => '32',
       'Type' => 'Struct'
     },
-    '16398' => {
-      'BaseType' => '16307',
+    '16394' => {
+      'BaseType' => '16303',
       'Name' => 'struct pldm_bios_table_attr_entry_enum_info const',
       'Size' => '32',
       'Type' => 'Const'
     },
-    '16410' => {
-      'BaseType' => '15846',
+    '16406' => {
+      'BaseType' => '15842',
       'Name' => 'uint16_t const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '16420' => {
+    '16416' => {
       'Header' => 'bios_table.h',
       'Line' => '294',
       'Memb' => {
@@ -10581,20 +10588,20 @@
         '6' => {
           'name' => 'def_string',
           'offset' => '22',
-          'type' => '3924'
+          'type' => '3920'
         }
       },
       'Name' => 'struct pldm_bios_table_attr_entry_string_info',
       'Size' => '24',
       'Type' => 'Struct'
     },
-    '16532' => {
-      'BaseType' => '16420',
+    '16528' => {
+      'BaseType' => '16416',
       'Name' => 'struct pldm_bios_table_attr_entry_string_info const',
       'Size' => '24',
       'Type' => 'Const'
     },
-    '16542' => {
+    '16538' => {
       'Header' => 'bios_table.h',
       'Line' => '384',
       'Memb' => {
@@ -10611,12 +10618,12 @@
         '2' => {
           'name' => 'lower_bound',
           'offset' => '8',
-          'type' => '15863'
+          'type' => '15859'
         },
         '3' => {
           'name' => 'upper_bound',
           'offset' => '22',
-          'type' => '15863'
+          'type' => '15859'
         },
         '4' => {
           'name' => 'scalar_increment',
@@ -10626,20 +10633,20 @@
         '5' => {
           'name' => 'default_value',
           'offset' => '50',
-          'type' => '15863'
+          'type' => '15859'
         }
       },
       'Name' => 'struct pldm_bios_table_attr_entry_integer_info',
       'Size' => '40',
       'Type' => 'Struct'
     },
-    '16640' => {
-      'BaseType' => '16542',
+    '16636' => {
+      'BaseType' => '16538',
       'Name' => 'struct pldm_bios_table_attr_entry_integer_info const',
       'Size' => '40',
       'Type' => 'Const'
     },
-    '16923' => {
+    '16919' => {
       'Name' => 'ssize_t(*)(void const*)',
       'Param' => {
         '0' => {
@@ -10650,7 +10657,7 @@
       'Size' => '8',
       'Type' => 'FuncPtr'
     },
-    '16993' => {
+    '16989' => {
       'Line' => '943',
       'Memb' => {
         '0' => {
@@ -10671,7 +10678,7 @@
         '3' => {
           'name' => 'entry_length_handler',
           'offset' => '36',
-          'type' => '16923'
+          'type' => '16919'
         }
       },
       'Name' => 'struct pldm_bios_table_iter',
@@ -10680,79 +10687,79 @@
       'Source' => 'bios_table.c',
       'Type' => 'Struct'
     },
-    '17063' => {
-      'BaseType' => '16993',
+    '17059' => {
+      'BaseType' => '16989',
       'Name' => 'struct pldm_bios_table_iter const',
       'Size' => '32',
       'Type' => 'Const'
     },
-    '18133' => {
-      'BaseType' => '16993',
+    '18129' => {
+      'BaseType' => '16989',
       'Name' => 'struct pldm_bios_table_iter*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '18138' => {
-      'BaseType' => '16238',
+    '18134' => {
+      'BaseType' => '16234',
       'Name' => 'struct pldm_bios_attr_val_table_entry const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '18552' => {
-      'BaseType' => '16181',
+    '18548' => {
+      'BaseType' => '16177',
       'Name' => 'struct pldm_bios_attr_table_entry const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '19155' => {
-      'BaseType' => '16095',
+    '19151' => {
+      'BaseType' => '16091',
       'Name' => 'struct pldm_bios_string_table_entry const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '20318' => {
-      'BaseType' => '17063',
+    '20314' => {
+      'BaseType' => '17059',
       'Name' => 'struct pldm_bios_table_iter const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '24591' => {
-      'BaseType' => '15863',
+    '24587' => {
+      'BaseType' => '15859',
       'Name' => 'uint64_t*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '24868' => {
-      'BaseType' => '16640',
+    '24864' => {
+      'BaseType' => '16636',
       'Name' => 'struct pldm_bios_table_attr_entry_integer_info const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '25177' => {
-      'BaseType' => '3924',
+    '25173' => {
+      'BaseType' => '3920',
       'Name' => 'char const**',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '26306' => {
-      'BaseType' => '16532',
+    '26302' => {
+      'BaseType' => '16528',
       'Name' => 'struct pldm_bios_table_attr_entry_string_info const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '27760' => {
-      'BaseType' => '16398',
+    '27756' => {
+      'BaseType' => '16394',
       'Name' => 'struct pldm_bios_table_attr_entry_enum_info const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '29964' => {
+    '29926' => {
       'BaseType' => '1023',
       'Name' => 'uint32_t const',
       'Size' => '4',
       'Type' => 'Const'
     },
-    '30005' => {
+    '29967' => {
       'BaseType' => '121',
       'Header' => 'pldm_types.h',
       'Line' => '32',
@@ -10760,14 +10767,14 @@
       'Size' => '1',
       'Type' => 'Typedef'
     },
-    '30017' => {
+    '29979' => {
       'Header' => 'pldm_types.h',
       'Line' => '36',
       'Name' => 'anon-struct-pldm_types.h-36',
       'Size' => '2',
       'Type' => 'Struct'
     },
-    '30281' => {
+    '30243' => {
       'Header' => 'pldm_types.h',
       'Line' => '54',
       'Memb' => {
@@ -10779,21 +10786,21 @@
         '1' => {
           'name' => 'bits',
           'offset' => '0',
-          'type' => '30017'
+          'type' => '29979'
         }
       },
       'Name' => 'union bitfield16_t',
       'Size' => '2',
       'Type' => 'Union'
     },
-    '30293' => {
+    '30255' => {
       'Header' => 'pldm_types.h',
       'Line' => '58',
       'Name' => 'anon-struct-pldm_types.h-58',
       'Size' => '4',
       'Type' => 'Struct'
     },
-    '30781' => {
+    '30743' => {
       'Header' => 'pldm_types.h',
       'Line' => '92',
       'Memb' => {
@@ -10805,53 +10812,53 @@
         '1' => {
           'name' => 'bits',
           'offset' => '0',
-          'type' => '30293'
+          'type' => '30255'
         }
       },
       'Name' => 'union bitfield32_t',
       'Size' => '4',
       'Type' => 'Union'
     },
-    '30793' => {
+    '30755' => {
       'Header' => 'pldm_types.h',
       'Line' => '96',
       'Name' => 'anon-struct-pldm_types.h-96',
       'Size' => '8',
       'Type' => 'Struct'
     },
-    '31729' => {
+    '31691' => {
       'Header' => 'pldm_types.h',
       'Line' => '162',
       'Memb' => {
         '0' => {
           'name' => 'value',
           'offset' => '0',
-          'type' => '15863'
+          'type' => '15859'
         },
         '1' => {
           'name' => 'bits',
           'offset' => '0',
-          'type' => '30793'
+          'type' => '30755'
         }
       },
       'Name' => 'union bitfield64_t',
       'Size' => '8',
       'Type' => 'Union'
     },
-    '31788' => {
+    '31750' => {
       'BaseType' => '1145',
       'Name' => 'size_t const',
       'Size' => '8',
       'Type' => 'Const'
     },
-    '33548' => {
+    '33505' => {
       'Header' => 'firmware_update.h',
       'Line' => '417',
       'Memb' => {
         '0' => {
           'name' => 'uuid',
           'offset' => '0',
-          'type' => '33652'
+          'type' => '33609'
         },
         '1' => {
           'name' => 'package_header_format_version',
@@ -10866,7 +10873,7 @@
         '3' => {
           'name' => 'package_release_date_time',
           'offset' => '25',
-          'type' => '33668'
+          'type' => '33625'
         },
         '4' => {
           'name' => 'component_bitmap_bit_length',
@@ -10888,19 +10895,19 @@
       'Size' => '36',
       'Type' => 'Struct'
     },
-    '33652' => {
+    '33609' => {
       'BaseType' => '121',
       'Name' => 'uint8_t[16]',
       'Size' => '16',
       'Type' => 'Array'
     },
-    '33668' => {
+    '33625' => {
       'BaseType' => '121',
       'Name' => 'uint8_t[13]',
       'Size' => '13',
       'Type' => 'Array'
     },
-    '33684' => {
+    '33641' => {
       'Header' => 'firmware_update.h',
       'Line' => '431',
       'Memb' => {
@@ -10917,7 +10924,7 @@
         '2' => {
           'name' => 'device_update_option_flags',
           'offset' => '3',
-          'type' => '30781'
+          'type' => '30743'
         },
         '3' => {
           'name' => 'comp_image_set_version_string_type',
@@ -10939,7 +10946,7 @@
       'Size' => '11',
       'Type' => 'Struct'
     },
-    '33879' => {
+    '33836' => {
       'Header' => 'firmware_update.h',
       'Line' => '465',
       'Memb' => {
@@ -10961,12 +10968,12 @@
         '3' => {
           'name' => 'comp_options',
           'offset' => '8',
-          'type' => '30281'
+          'type' => '30243'
         },
         '4' => {
           'name' => 'requested_comp_activation_method',
           'offset' => '16',
-          'type' => '30281'
+          'type' => '30243'
         },
         '5' => {
           'name' => 'comp_location_offset',
@@ -10993,7 +11000,7 @@
       'Size' => '22',
       'Type' => 'Struct'
     },
-    '34061' => {
+    '34018' => {
       'Header' => 'firmware_update.h',
       'Line' => '491',
       'Memb' => {
@@ -11005,7 +11012,7 @@
         '1' => {
           'name' => 'capabilities_during_update',
           'offset' => '1',
-          'type' => '30781'
+          'type' => '30743'
         },
         '2' => {
           'name' => 'comp_count',
@@ -11037,7 +11044,7 @@
       'Size' => '11',
       'Type' => 'Struct'
     },
-    '34243' => {
+    '34200' => {
       'Header' => 'firmware_update.h',
       'Line' => '519',
       'Memb' => {
@@ -11074,7 +11081,7 @@
         '6' => {
           'name' => 'active_comp_release_date',
           'offset' => '17',
-          'type' => '34425'
+          'type' => '34382'
         },
         '7' => {
           'name' => 'pending_comp_comparison_stamp',
@@ -11094,109 +11101,109 @@
         '10' => {
           'name' => 'pending_comp_release_date',
           'offset' => '37',
-          'type' => '34425'
+          'type' => '34382'
         },
         '11' => {
           'name' => 'comp_activation_methods',
           'offset' => '51',
-          'type' => '30281'
+          'type' => '30243'
         },
         '12' => {
           'name' => 'capabilities_during_update',
           'offset' => '53',
-          'type' => '30781'
+          'type' => '30743'
         }
       },
       'Name' => 'struct pldm_component_parameter_entry',
       'Size' => '39',
       'Type' => 'Struct'
     },
-    '34425' => {
+    '34382' => {
       'BaseType' => '121',
       'Name' => 'uint8_t[8]',
       'Size' => '8',
       'Type' => 'Array'
     },
-    '35639' => {
-      'BaseType' => '10052',
+    '35596' => {
+      'BaseType' => '10048',
       'Name' => 'struct variable_field const',
       'Size' => '16',
       'Type' => 'Const'
     },
-    '36004' => {
-      'BaseType' => '30005',
+    '35961' => {
+      'BaseType' => '29967',
       'Name' => 'bool8_t*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '36009' => {
-      'BaseType' => '31729',
+    '35966' => {
+      'BaseType' => '31691',
       'Name' => 'bitfield64_t*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '36766' => {
-      'BaseType' => '30781',
+    '36721' => {
+      'BaseType' => '30743',
       'Name' => 'bitfield32_t*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '37618' => {
-      'BaseType' => '30281',
+    '37570' => {
+      'BaseType' => '30243',
       'Name' => 'bitfield16_t*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '39176' => {
-      'BaseType' => '35639',
+    '39124' => {
+      'BaseType' => '35596',
       'Name' => 'struct variable_field const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '53096' => {
-      'BaseType' => '34243',
+    '52119' => {
+      'BaseType' => '34200',
       'Name' => 'struct pldm_component_parameter_entry*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '53321' => {
-      'BaseType' => '34061',
+    '52344' => {
+      'BaseType' => '34018',
       'Name' => 'struct pldm_get_firmware_parameters_resp*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '53622' => {
-      'BaseType' => '4607',
+    '52645' => {
+      'BaseType' => '4603',
       'Name' => 'uint8_t**',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '53919' => {
-      'BaseType' => '33879',
+    '52942' => {
+      'BaseType' => '33836',
       'Name' => 'struct pldm_component_image_information*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '54535' => {
-      'BaseType' => '33684',
+    '53558' => {
+      'BaseType' => '33641',
       'Name' => 'struct pldm_firmware_device_id_record*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '54845' => {
-      'BaseType' => '33548',
+    '53868' => {
+      'BaseType' => '33505',
       'Name' => 'struct pldm_package_header_information*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '55613' => {
+    '54647' => {
       'BaseType' => '2579',
       'Name' => 'void**',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '63189' => {
-      'BaseType' => '63206',
+    '62097' => {
+      'BaseType' => '62114',
       'Header' => 'pdr.h',
       'Line' => '16',
       'Name' => 'pldm_pdr',
@@ -11204,13 +11211,13 @@
       'Size' => '24',
       'Type' => 'Typedef'
     },
-    '63201' => {
-      'BaseType' => '63189',
+    '62109' => {
+      'BaseType' => '62097',
       'Name' => 'pldm_pdr const',
       'Size' => '24',
       'Type' => 'Const'
     },
-    '63206' => {
+    '62114' => {
       'Line' => '29',
       'Memb' => {
         '0' => {
@@ -11226,12 +11233,12 @@
         '2' => {
           'name' => 'first',
           'offset' => '8',
-          'type' => '64302'
+          'type' => '63213'
         },
         '3' => {
           'name' => 'last',
           'offset' => '22',
-          'type' => '64302'
+          'type' => '63213'
         }
       },
       'Name' => 'struct pldm_pdr',
@@ -11240,8 +11247,8 @@
       'Source' => 'pdr.c',
       'Type' => 'Struct'
     },
-    '63272' => {
-      'BaseType' => '63289',
+    '62180' => {
+      'BaseType' => '62197',
       'Header' => 'pdr.h',
       'Line' => '21',
       'Name' => 'pldm_pdr_record',
@@ -11249,13 +11256,13 @@
       'Size' => '32',
       'Type' => 'Typedef'
     },
-    '63284' => {
-      'BaseType' => '63272',
+    '62192' => {
+      'BaseType' => '62180',
       'Name' => 'pldm_pdr_record const',
       'Size' => '32',
       'Type' => 'Const'
     },
-    '63289' => {
+    '62197' => {
       'Line' => '20',
       'Memb' => {
         '0' => {
@@ -11271,12 +11278,12 @@
         '2' => {
           'name' => 'data',
           'offset' => '8',
-          'type' => '4607'
+          'type' => '4603'
         },
         '3' => {
           'name' => 'next',
           'offset' => '22',
-          'type' => '64290'
+          'type' => '63201'
         },
         '4' => {
           'name' => 'is_remote',
@@ -11295,7 +11302,7 @@
       'Source' => 'pdr.c',
       'Type' => 'Struct'
     },
-    '63381' => {
+    '62289' => {
       'Header' => 'pdr.h',
       'Line' => '288',
       'Memb' => {
@@ -11319,16 +11326,16 @@
       'Size' => '6',
       'Type' => 'Struct'
     },
-    '63443' => {
-      'BaseType' => '63381',
+    '62351' => {
+      'BaseType' => '62289',
       'Header' => 'pdr.h',
       'Line' => '292',
       'Name' => 'pldm_entity',
       'Size' => '6',
       'Type' => 'Typedef'
     },
-    '63487' => {
-      'BaseType' => '63499',
+    '62395' => {
+      'BaseType' => '62407',
       'Header' => 'pdr.h',
       'Line' => '302',
       'Name' => 'pldm_entity_association_tree',
@@ -11336,13 +11343,13 @@
       'Size' => '16',
       'Type' => 'Typedef'
     },
-    '63499' => {
+    '62407' => {
       'Line' => '450',
       'Memb' => {
         '0' => {
           'name' => 'root',
           'offset' => '0',
-          'type' => '64307'
+          'type' => '63218'
         },
         '1' => {
           'name' => 'last_used_container_id',
@@ -11356,8 +11363,8 @@
       'Source' => 'pdr.c',
       'Type' => 'Struct'
     },
-    '63542' => {
-      'BaseType' => '63559',
+    '62450' => {
+      'BaseType' => '62467',
       'Header' => 'pdr.h',
       'Line' => '307',
       'Name' => 'pldm_entity_node',
@@ -11365,24 +11372,24 @@
       'Size' => '40',
       'Type' => 'Typedef'
     },
-    '63554' => {
-      'BaseType' => '63542',
+    '62462' => {
+      'BaseType' => '62450',
       'Name' => 'pldm_entity_node const',
       'Size' => '40',
       'Type' => 'Const'
     },
-    '63559' => {
+    '62467' => {
       'Line' => '455',
       'Memb' => {
         '0' => {
           'name' => 'entity',
           'offset' => '0',
-          'type' => '63443'
+          'type' => '62351'
         },
         '1' => {
           'name' => 'parent',
           'offset' => '6',
-          'type' => '63443'
+          'type' => '62351'
         },
         '2' => {
           'name' => 'remote_container_id',
@@ -11392,12 +11399,12 @@
         '3' => {
           'name' => 'first_child',
           'offset' => '22',
-          'type' => '64307'
+          'type' => '63218'
         },
         '4' => {
           'name' => 'next_sibling',
           'offset' => '36',
-          'type' => '64307'
+          'type' => '63218'
         },
         '5' => {
           'name' => 'association_type',
@@ -11411,9 +11418,9 @@
       'Source' => 'pdr.c',
       'Type' => 'Struct'
     },
-    '63830' => {
+    '62741' => {
       'Header' => 'platform.h',
-      'Line' => '514',
+      'Line' => '522',
       'Memb' => {
         '0' => {
           'name' => 'record_handle',
@@ -11445,73 +11452,73 @@
       'Size' => '10',
       'Type' => 'Struct'
     },
-    '64290' => {
-      'BaseType' => '63289',
+    '63201' => {
+      'BaseType' => '62197',
       'Name' => 'struct pldm_pdr_record*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '64302' => {
-      'BaseType' => '63272',
+    '63213' => {
+      'BaseType' => '62180',
       'Name' => 'pldm_pdr_record*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '64307' => {
-      'BaseType' => '63542',
+    '63218' => {
+      'BaseType' => '62450',
       'Name' => 'pldm_entity_node*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '65359' => {
-      'BaseType' => '63189',
+    '64190' => {
+      'BaseType' => '62097',
       'Name' => 'pldm_pdr*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '66553' => {
-      'BaseType' => '63284',
+    '65253' => {
+      'BaseType' => '62192',
       'Name' => 'pldm_pdr_record const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '72985' => {
-      'BaseType' => '63443',
+    '71453' => {
+      'BaseType' => '62351',
       'Name' => 'pldm_entity*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '87310' => {
-      'BaseType' => '72985',
+    '84951' => {
+      'BaseType' => '71453',
       'Name' => 'pldm_entity**',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '87374' => {
-      'BaseType' => '63487',
+    '85015' => {
+      'BaseType' => '62395',
       'Name' => 'pldm_entity_association_tree*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '87962' => {
-      'BaseType' => '64307',
+    '85603' => {
+      'BaseType' => '63218',
       'Name' => 'pldm_entity_node**',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '88751' => {
-      'BaseType' => '63201',
+    '86392' => {
+      'BaseType' => '62109',
       'Name' => 'pldm_pdr const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '93985' => {
-      'BaseType' => '63554',
+    '91626' => {
+      'BaseType' => '62462',
       'Name' => 'pldm_entity_node const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '99172' => {
+    '96611' => {
       'BaseType' => '74',
       'Header' => 'types.h',
       'Line' => '37',
@@ -11520,7 +11527,7 @@
       'Size' => '1',
       'Type' => 'Typedef'
     },
-    '99203' => {
+    '96642' => {
       'BaseType' => '93',
       'Header' => 'types.h',
       'Line' => '39',
@@ -11529,7 +11536,7 @@
       'Size' => '2',
       'Type' => 'Typedef'
     },
-    '99234' => {
+    '96673' => {
       'BaseType' => '100',
       'Header' => 'types.h',
       'Line' => '41',
@@ -11538,7 +11545,7 @@
       'Size' => '4',
       'Type' => 'Typedef'
     },
-    '99265' => {
+    '96711' => {
       'BaseType' => '927',
       'Header' => 'types.h',
       'Line' => '55',
@@ -11547,8 +11554,8 @@
       'Size' => '2',
       'Type' => 'Typedef'
     },
-    '99318' => {
-      'BaseType' => '99172',
+    '96764' => {
+      'BaseType' => '96611',
       'Header' => 'stdint-intn.h',
       'Line' => '24',
       'Name' => 'int8_t',
@@ -11556,8 +11563,8 @@
       'Size' => '1',
       'Type' => 'Typedef'
     },
-    '99330' => {
-      'BaseType' => '99203',
+    '96776' => {
+      'BaseType' => '96642',
       'Header' => 'stdint-intn.h',
       'Line' => '25',
       'Name' => 'int16_t',
@@ -11565,8 +11572,8 @@
       'Size' => '2',
       'Type' => 'Typedef'
     },
-    '99342' => {
-      'BaseType' => '99234',
+    '96788' => {
+      'BaseType' => '96673',
       'Header' => 'stdint-intn.h',
       'Line' => '26',
       'Name' => 'int32_t',
@@ -11574,7 +11581,7 @@
       'Size' => '4',
       'Type' => 'Typedef'
     },
-    '99607' => {
+    '97053' => {
       'BaseType' => '133',
       'Header' => 'pldm_types.h',
       'Line' => '164',
@@ -11582,8 +11589,8 @@
       'Size' => '4',
       'Type' => 'Typedef'
     },
-    '100229' => {
-      'BaseType' => '99265',
+    '97710' => {
+      'BaseType' => '96711',
       'Header' => 'uchar.h',
       'Line' => '51',
       'Name' => 'char16_t',
@@ -11591,9 +11598,9 @@
       'Size' => '2',
       'Type' => 'Typedef'
     },
-    '100945' => {
+    '98386' => {
       'Header' => 'platform.h',
-      'Line' => '292',
+      'Line' => '300',
       'Memb' => {
         '0' => {
           'name' => 'PLDM_SENSOR_OP_STATE',
@@ -11612,20 +11619,20 @@
       'Size' => '4',
       'Type' => 'Enum'
     },
-    '100979' => {
-      'BaseType' => '100945',
+    '98420' => {
+      'BaseType' => '98386',
       'Name' => 'enum sensor_event_class_states const',
       'Size' => '4',
       'Type' => 'Const'
     },
-    '101287' => {
+    '98728' => {
       'Header' => 'platform.h',
-      'Line' => '589',
+      'Line' => '597',
       'Memb' => {
         '0' => {
           'name' => 'hdr',
           'offset' => '0',
-          'type' => '63830'
+          'type' => '62741'
         },
         '1' => {
           'name' => 'terminus_handle',
@@ -11660,7 +11667,7 @@
         '7' => {
           'name' => 'sensor_auxiliary_names_pdr',
           'offset' => '33',
-          'type' => '30005'
+          'type' => '29967'
         },
         '8' => {
           'name' => 'composite_sensor_count',
@@ -11677,9 +11684,9 @@
       'Size' => '24',
       'Type' => 'Struct'
     },
-    '101441' => {
+    '98882' => {
       'Header' => 'platform.h',
-      'Line' => '606',
+      'Line' => '614',
       'Memb' => {
         '0' => {
           'name' => 'state_set_id',
@@ -11694,33 +11701,33 @@
         '2' => {
           'name' => 'states',
           'offset' => '3',
-          'type' => '101503'
+          'type' => '98944'
         }
       },
       'Name' => 'struct state_sensor_possible_states',
       'Size' => '4',
       'Type' => 'Struct'
     },
-    '101498' => {
-      'BaseType' => '101441',
+    '98939' => {
+      'BaseType' => '98882',
       'Name' => 'struct state_sensor_possible_states const',
       'Size' => '4',
       'Type' => 'Const'
     },
-    '101503' => {
+    '98944' => {
       'BaseType' => '2776',
       'Name' => 'bitfield8_t[1]',
       'Size' => '1',
       'Type' => 'Array'
     },
-    '101519' => {
+    '98960' => {
       'Header' => 'platform.h',
-      'Line' => '616',
+      'Line' => '624',
       'Memb' => {
         '0' => {
           'name' => 'hdr',
           'offset' => '0',
-          'type' => '63830'
+          'type' => '62741'
         },
         '1' => {
           'name' => 'terminus_handle',
@@ -11760,7 +11767,7 @@
         '8' => {
           'name' => 'has_description_pdr',
           'offset' => '35',
-          'type' => '30005'
+          'type' => '29967'
         },
         '9' => {
           'name' => 'composite_effecter_count',
@@ -11777,9 +11784,9 @@
       'Size' => '26',
       'Type' => 'Struct'
     },
-    '101876' => {
+    '99317' => {
       'Header' => 'platform.h',
-      'Line' => '707',
+      'Line' => '715',
       'Memb' => {
         '0' => {
           'name' => 'value_u8',
@@ -11789,7 +11796,7 @@
         '1' => {
           'name' => 'value_s8',
           'offset' => '0',
-          'type' => '99318'
+          'type' => '96764'
         },
         '2' => {
           'name' => 'value_u16',
@@ -11799,7 +11806,7 @@
         '3' => {
           'name' => 'value_s16',
           'offset' => '0',
-          'type' => '99330'
+          'type' => '96776'
         },
         '4' => {
           'name' => 'value_u32',
@@ -11809,21 +11816,21 @@
         '5' => {
           'name' => 'value_s32',
           'offset' => '0',
-          'type' => '99342'
+          'type' => '96788'
         },
         '6' => {
           'name' => 'value_f32',
           'offset' => '0',
-          'type' => '99607'
+          'type' => '97053'
         }
       },
       'Name' => 'union union_range_field_format',
       'Size' => '4',
       'Type' => 'Union'
     },
-    '102475' => {
+    '99916' => {
       'Header' => 'platform.h',
-      'Line' => '764',
+      'Line' => '772',
       'Memb' => {
         '0' => {
           'name' => 'value_u8',
@@ -11833,7 +11840,7 @@
         '1' => {
           'name' => 'value_s8',
           'offset' => '0',
-          'type' => '99318'
+          'type' => '96764'
         },
         '2' => {
           'name' => 'value_u16',
@@ -11843,7 +11850,7 @@
         '3' => {
           'name' => 'value_s16',
           'offset' => '0',
-          'type' => '99330'
+          'type' => '96776'
         },
         '4' => {
           'name' => 'value_u32',
@@ -11853,16 +11860,16 @@
         '5' => {
           'name' => 'value_s32',
           'offset' => '0',
-          'type' => '99342'
+          'type' => '96788'
         }
       },
       'Name' => 'union union_sensor_data_size',
       'Size' => '4',
       'Type' => 'Union'
     },
-    '102488' => {
+    '99929' => {
       'Header' => 'platform.h',
-      'Line' => '771',
+      'Line' => '779',
       'Memb' => {
         '0' => {
           'name' => 'record_handle',
@@ -11894,9 +11901,9 @@
       'Size' => '12',
       'Type' => 'Struct'
     },
-    '102573' => {
+    '100014' => {
       'Header' => 'platform.h',
-      'Line' => '789',
+      'Line' => '797',
       'Memb' => {
         '0' => {
           'name' => 'entity_instance_num',
@@ -11909,18 +11916,18 @@
           'type' => '1011'
         }
       },
-      'Name' => 'anon-union-platform.h-789',
+      'Name' => 'anon-union-platform.h-797',
       'Size' => '2',
       'Type' => 'Union'
     },
-    '102607' => {
+    '100048' => {
       'Header' => 'platform.h',
-      'Line' => '784',
+      'Line' => '792',
       'Memb' => {
         '0' => {
           'name' => 'hdr',
           'offset' => '0',
-          'type' => '102488'
+          'type' => '99929'
         },
         '1' => {
           'name' => 'terminus_handle',
@@ -11940,7 +11947,7 @@
         '4' => {
           'name' => 'unnamed0',
           'offset' => '24',
-          'type' => '102573'
+          'type' => '100014'
         },
         '5' => {
           'name' => 'container_id',
@@ -11955,7 +11962,7 @@
         '7' => {
           'name' => 'sensor_auxiliary_names_pdr',
           'offset' => '35',
-          'type' => '30005'
+          'type' => '29967'
         },
         '8' => {
           'name' => 'base_unit',
@@ -11965,7 +11972,7 @@
         '9' => {
           'name' => 'unit_modifier',
           'offset' => '37',
-          'type' => '99318'
+          'type' => '96764'
         },
         '10' => {
           'name' => 'rate_unit',
@@ -11985,7 +11992,7 @@
         '13' => {
           'name' => 'aux_unit_modifier',
           'offset' => '41',
-          'type' => '99318'
+          'type' => '96764'
         },
         '14' => {
           'name' => 'aux_rate_unit',
@@ -12005,7 +12012,7 @@
         '17' => {
           'name' => 'is_linear',
           'offset' => '51',
-          'type' => '30005'
+          'type' => '29967'
         },
         '18' => {
           'name' => 'sensor_data_size',
@@ -12015,12 +12022,12 @@
         '19' => {
           'name' => 'resolution',
           'offset' => '54',
-          'type' => '99607'
+          'type' => '97053'
         },
         '20' => {
           'name' => 'offset',
           'offset' => '64',
-          'type' => '99607'
+          'type' => '97053'
         },
         '21' => {
           'name' => 'accuracy',
@@ -12040,7 +12047,7 @@
         '24' => {
           'name' => 'hysteresis',
           'offset' => '72',
-          'type' => '102475'
+          'type' => '99916'
         },
         '25' => {
           'name' => 'supported_thresholds',
@@ -12055,22 +12062,22 @@
         '27' => {
           'name' => 'state_transition_interval',
           'offset' => '86',
-          'type' => '99607'
+          'type' => '97053'
         },
         '28' => {
           'name' => 'update_interval',
           'offset' => '96',
-          'type' => '99607'
+          'type' => '97053'
         },
         '29' => {
           'name' => 'max_readable',
           'offset' => '100',
-          'type' => '102475'
+          'type' => '99916'
         },
         '30' => {
           'name' => 'min_readable',
           'offset' => '104',
-          'type' => '102475'
+          'type' => '99916'
         },
         '31' => {
           'name' => 'range_field_format',
@@ -12085,64 +12092,64 @@
         '33' => {
           'name' => 'nominal_value',
           'offset' => '118',
-          'type' => '101876'
+          'type' => '99317'
         },
         '34' => {
           'name' => 'normal_max',
           'offset' => '128',
-          'type' => '101876'
+          'type' => '99317'
         },
         '35' => {
           'name' => 'normal_min',
           'offset' => '132',
-          'type' => '101876'
+          'type' => '99317'
         },
         '36' => {
           'name' => 'warning_high',
           'offset' => '136',
-          'type' => '101876'
+          'type' => '99317'
         },
         '37' => {
           'name' => 'warning_low',
           'offset' => '146',
-          'type' => '101876'
+          'type' => '99317'
         },
         '38' => {
           'name' => 'critical_high',
           'offset' => '150',
-          'type' => '101876'
+          'type' => '99317'
         },
         '39' => {
           'name' => 'critical_low',
           'offset' => '256',
-          'type' => '101876'
+          'type' => '99317'
         },
         '40' => {
           'name' => 'fatal_high',
           'offset' => '260',
-          'type' => '101876'
+          'type' => '99317'
         },
         '41' => {
           'name' => 'fatal_low',
           'offset' => '264',
-          'type' => '101876'
+          'type' => '99317'
         }
       },
       'Name' => 'struct pldm_numeric_sensor_value_pdr',
       'Size' => '112',
       'Type' => 'Struct'
     },
-    '103200' => {
-      'BaseType' => '100229',
+    '100641' => {
+      'BaseType' => '97710',
       'Header' => 'platform.h',
-      'Line' => '832',
+      'Line' => '840',
       'Name' => 'pldm_utf16be',
       'Size' => '2',
       'Type' => 'Typedef'
     },
-    '103213' => {
+    '100654' => {
       'Header' => 'platform.h',
-      'Line' => '834',
+      'Line' => '842',
       'Memb' => {
         '0' => {
           'name' => 'tag',
@@ -12152,32 +12159,32 @@
         '1' => {
           'name' => 'name',
           'offset' => '8',
-          'type' => '103255'
+          'type' => '100696'
         }
       },
       'Name' => 'struct pldm_entity_auxiliary_name',
       'Size' => '16',
       'Type' => 'Struct'
     },
-    '103255' => {
-      'BaseType' => '103200',
+    '100696' => {
+      'BaseType' => '100641',
       'Name' => 'pldm_utf16be*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '103260' => {
+    '100701' => {
       'Header' => 'platform.h',
-      'Line' => '844',
+      'Line' => '852',
       'Memb' => {
         '0' => {
           'name' => 'hdr',
           'offset' => '0',
-          'type' => '102488'
+          'type' => '99929'
         },
         '1' => {
           'name' => 'container',
           'offset' => '18',
-          'type' => '63443'
+          'type' => '62351'
         },
         '2' => {
           'name' => 'shared_name_count',
@@ -12192,7 +12199,7 @@
         '4' => {
           'name' => 'names',
           'offset' => '36',
-          'type' => '103374'
+          'type' => '100815'
         },
         '5' => {
           'name' => 'auxiliary_name_data_size',
@@ -12202,28 +12209,28 @@
         '6' => {
           'name' => 'auxiliary_name_data',
           'offset' => '64',
-          'type' => '103379'
+          'type' => '100820'
         }
       },
       'Name' => 'struct pldm_entity_auxiliary_names_pdr',
       'Size' => '40',
       'Type' => 'Struct'
     },
-    '103374' => {
-      'BaseType' => '103213',
+    '100815' => {
+      'BaseType' => '100654',
       'Name' => 'struct pldm_entity_auxiliary_name*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '103379' => {
+    '100820' => {
       'BaseType' => '114',
       'Name' => 'char[]',
       'Size' => '8',
       'Type' => 'Array'
     },
-    '103394' => {
+    '100835' => {
       'Header' => 'platform.h',
-      'Line' => '874',
+      'Line' => '882',
       'Memb' => {
         '0' => {
           'name' => 'state_set_id',
@@ -12238,22 +12245,22 @@
         '2' => {
           'name' => 'states',
           'offset' => '3',
-          'type' => '101503'
+          'type' => '98944'
         }
       },
       'Name' => 'struct state_effecter_possible_states',
       'Size' => '4',
       'Type' => 'Struct'
     },
-    '103451' => {
-      'BaseType' => '103394',
+    '100892' => {
+      'BaseType' => '100835',
       'Name' => 'struct state_effecter_possible_states const',
       'Size' => '4',
       'Type' => 'Const'
     },
-    '103456' => {
+    '100897' => {
       'Header' => 'platform.h',
-      'Line' => '922',
+      'Line' => '930',
       'Memb' => {
         '0' => {
           'name' => 'set_request',
@@ -12270,17 +12277,17 @@
       'Size' => '2',
       'Type' => 'Struct'
     },
-    '103499' => {
-      'BaseType' => '103456',
+    '100940' => {
+      'BaseType' => '100897',
       'Header' => 'platform.h',
-      'Line' => '925',
+      'Line' => '933',
       'Name' => 'set_effecter_state_field',
       'Size' => '2',
       'Type' => 'Typedef'
     },
-    '103512' => {
+    '100953' => {
       'Header' => 'platform.h',
-      'Line' => '931',
+      'Line' => '939',
       'Memb' => {
         '0' => {
           'name' => 'sensor_op_state',
@@ -12307,17 +12314,17 @@
       'Size' => '4',
       'Type' => 'Struct'
     },
-    '103583' => {
-      'BaseType' => '103512',
+    '101024' => {
+      'BaseType' => '100953',
       'Header' => 'platform.h',
-      'Line' => '939',
+      'Line' => '947',
       'Name' => 'get_sensor_state_field',
       'Size' => '4',
       'Type' => 'Typedef'
     },
-    '103596' => {
+    '101037' => {
       'Header' => 'platform.h',
-      'Line' => '945',
+      'Line' => '953',
       'Memb' => {
         '0' => {
           'name' => 'effecter_op_state',
@@ -12339,17 +12346,17 @@
       'Size' => '3',
       'Type' => 'Struct'
     },
-    '103653' => {
-      'BaseType' => '103596',
+    '101094' => {
+      'BaseType' => '101037',
       'Header' => 'platform.h',
-      'Line' => '949',
+      'Line' => '957',
       'Name' => 'get_effecter_state_field',
       'Size' => '3',
       'Type' => 'Typedef'
     },
-    '104382' => {
+    '101823' => {
       'Header' => 'platform.h',
-      'Line' => '1094',
+      'Line' => '1102',
       'Memb' => {
         '0' => {
           'name' => 'completion_code',
@@ -12364,22 +12371,22 @@
         '2' => {
           'name' => 'field',
           'offset' => '2',
-          'type' => '104439'
+          'type' => '101880'
         }
       },
       'Name' => 'struct pldm_get_state_effecter_states_resp',
       'Size' => '26',
       'Type' => 'Struct'
     },
-    '104439' => {
-      'BaseType' => '103653',
+    '101880' => {
+      'BaseType' => '101094',
       'Name' => 'get_effecter_state_field[8]',
       'Size' => '24',
       'Type' => 'Array'
     },
-    '104455' => {
+    '101896' => {
       'Header' => 'platform.h',
-      'Line' => '1104',
+      'Line' => '1112',
       'Memb' => {
         '0' => {
           'name' => 'sensor_id',
@@ -12401,9 +12408,9 @@
       'Size' => '4',
       'Type' => 'Struct'
     },
-    '104569' => {
+    '102010' => {
       'Header' => 'platform.h',
-      'Line' => '1144',
+      'Line' => '1152',
       'Memb' => {
         '0' => {
           'name' => 'format_version',
@@ -12425,9 +12432,9 @@
       'Size' => '8',
       'Type' => 'Struct'
     },
-    '104631' => {
+    '102072' => {
       'Header' => 'platform.h',
-      'Line' => '1154',
+      'Line' => '1162',
       'Memb' => {
         '0' => {
           'name' => 'format_version',
@@ -12447,22 +12454,22 @@
         '3' => {
           'name' => 'event_data',
           'offset' => '4',
-          'type' => '104702'
+          'type' => '102143'
         }
       },
       'Name' => 'struct pldm_platform_cper_event',
       'Size' => '4',
       'Type' => 'Struct'
     },
-    '104702' => {
+    '102143' => {
       'BaseType' => '121',
       'Name' => 'uint8_t[]',
       'Size' => '8',
       'Type' => 'Array'
     },
-    '104858' => {
+    '102299' => {
       'Header' => 'platform.h',
-      'Line' => '1214',
+      'Line' => '1222',
       'Memb' => {
         '0' => {
           'name' => 'event_data_format',
@@ -12484,139 +12491,139 @@
       'Size' => '3',
       'Type' => 'Struct'
     },
-    '105482' => {
-      'BaseType' => '104631',
+    '102923' => {
+      'BaseType' => '102072',
       'Name' => 'struct pldm_platform_cper_event*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '108020' => {
-      'BaseType' => '103260',
+    '105119' => {
+      'BaseType' => '100701',
       'Name' => 'struct pldm_entity_auxiliary_names_pdr*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '116508' => {
-      'BaseType' => '104382',
+    '110808' => {
+      'BaseType' => '101823',
       'Name' => 'struct pldm_get_state_effecter_states_resp*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '173059' => {
-      'BaseType' => '13093',
+    '146039' => {
+      'BaseType' => '13089',
       'Name' => 'size_t*const',
       'Size' => '8',
       'Type' => 'Const'
     },
-    '175405' => {
-      'BaseType' => '104569',
+    '148143' => {
+      'BaseType' => '102010',
       'Name' => 'struct pldm_message_poll_event*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '176626' => {
-      'BaseType' => '176636',
+    '149284' => {
+      'BaseType' => '149294',
       'Name' => 'uint32_t const*const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '176631' => {
-      'BaseType' => '29964',
+    '149289' => {
+      'BaseType' => '29926',
       'Name' => 'uint32_t const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '176636' => {
-      'BaseType' => '176631',
+    '149294' => {
+      'BaseType' => '149289',
       'Name' => 'uint32_t const*const',
       'Size' => '8',
       'Type' => 'Const'
     },
-    '176641' => {
-      'BaseType' => '104858',
+    '149299' => {
+      'BaseType' => '102299',
       'Name' => 'struct pldm_pdr_repository_chg_event_data*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '241198' => {
-      'BaseType' => '102607',
+    '185030' => {
+      'BaseType' => '100048',
       'Name' => 'struct pldm_numeric_sensor_value_pdr*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '256825' => {
-      'BaseType' => '104455',
+    '199939' => {
+      'BaseType' => '101896',
       'Name' => 'struct pldm_sensor_event_data*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '256830' => {
-      'BaseType' => '256825',
+    '199944' => {
+      'BaseType' => '199939',
       'Name' => 'struct pldm_sensor_event_data*const',
       'Size' => '8',
       'Type' => 'Const'
     },
-    '259756' => {
-      'BaseType' => '103583',
+    '202732' => {
+      'BaseType' => '101024',
       'Name' => 'get_sensor_state_field*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '278773' => {
-      'BaseType' => '103499',
+    '220637' => {
+      'BaseType' => '100940',
       'Name' => 'set_effecter_state_field*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '279743' => {
-      'BaseType' => '101287',
+    '221605' => {
+      'BaseType' => '98728',
       'Name' => 'struct pldm_state_sensor_pdr*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '279748' => {
-      'BaseType' => '279743',
+    '221610' => {
+      'BaseType' => '221605',
       'Name' => 'struct pldm_state_sensor_pdr*const',
       'Size' => '8',
       'Type' => 'Const'
     },
-    '279753' => {
-      'BaseType' => '101498',
+    '221615' => {
+      'BaseType' => '98939',
       'Name' => 'struct state_sensor_possible_states const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '279758' => {
-      'BaseType' => '279753',
+    '221620' => {
+      'BaseType' => '221615',
       'Name' => 'struct state_sensor_possible_states const*const',
       'Size' => '8',
       'Type' => 'Const'
     },
-    '280148' => {
-      'BaseType' => '101519',
+    '222008' => {
+      'BaseType' => '98960',
       'Name' => 'struct pldm_state_effecter_pdr*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '280153' => {
-      'BaseType' => '280148',
+    '222013' => {
+      'BaseType' => '222008',
       'Name' => 'struct pldm_state_effecter_pdr*const',
       'Size' => '8',
       'Type' => 'Const'
     },
-    '280158' => {
-      'BaseType' => '103451',
+    '222018' => {
+      'BaseType' => '100892',
       'Name' => 'struct state_effecter_possible_states const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '280163' => {
-      'BaseType' => '280158',
+    '222023' => {
+      'BaseType' => '222018',
       'Name' => 'struct state_effecter_possible_states const*const',
       'Size' => '8',
       'Type' => 'Const'
     },
-    '286359' => {
+    '226777' => {
       'Line' => '19',
       'Memb' => {
         '0' => {
@@ -12636,13 +12643,13 @@
       'Source' => 'instance-id.c',
       'Type' => 'Struct'
     },
-    '286398' => {
+    '226816' => {
       'Line' => '24',
       'Memb' => {
         '0' => {
           'name' => 'state',
           'offset' => '0',
-          'type' => '286440'
+          'type' => '226858'
         },
         '1' => {
           'name' => 'lock_db_fd',
@@ -12656,31 +12663,31 @@
       'Source' => 'instance-id.c',
       'Type' => 'Struct'
     },
-    '286440' => {
-      'BaseType' => '286359',
+    '226858' => {
+      'BaseType' => '226777',
       'Name' => 'struct pldm_tid_state[256]',
       'Size' => '2048',
       'Type' => 'Array'
     },
-    '286996' => {
-      'BaseType' => '286398',
+    '227414' => {
+      'BaseType' => '226816',
       'Name' => 'struct pldm_instance_db*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '287383' => {
+    '227801' => {
       'BaseType' => '187',
       'Name' => 'pldm_instance_id_t*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '287559' => {
-      'BaseType' => '286996',
+    '227977' => {
+      'BaseType' => '227414',
       'Name' => 'struct pldm_instance_db**',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '288351' => {
+    '228769' => {
       'BaseType' => '121',
       'Header' => 'pldm.h',
       'Line' => '13',
@@ -12688,7 +12695,7 @@
       'Size' => '1',
       'Type' => 'Typedef'
     },
-    '288466' => {
+    '228884' => {
       'BaseType' => '284',
       'Header' => 'pldm.h',
       'Line' => '30',
@@ -12696,13 +12703,13 @@
       'Size' => '4',
       'Type' => 'Typedef'
     },
-    '288484' => {
+    '228902' => {
       'Line' => '26',
       'Memb' => {
         '0' => {
           'name' => 'transport',
           'offset' => '0',
-          'type' => '288557'
+          'type' => '228975'
         },
         '1' => {
           'name' => 'socket',
@@ -12712,12 +12719,12 @@
         '2' => {
           'name' => 'tid_eid_map',
           'offset' => '68',
-          'type' => '292253'
+          'type' => '232671'
         },
         '3' => {
           'name' => 'socket_send_buf',
           'offset' => '768',
-          'type' => '291173'
+          'type' => '231591'
         }
       },
       'Name' => 'struct pldm_transport_mctp_demux',
@@ -12726,26 +12733,26 @@
       'Source' => 'mctp-demux.c',
       'Type' => 'Struct'
     },
-    '288510' => {
-      'BaseType' => '288484',
+    '228928' => {
+      'BaseType' => '228902',
       'Name' => 'struct pldm_transport_mctp_demux*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '288552' => {
-      'BaseType' => '288557',
+    '228970' => {
+      'BaseType' => '228975',
       'Name' => 'struct pldm_transport*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '288557' => {
+    '228975' => {
       'Header' => 'transport.h',
       'Line' => '18',
       'Memb' => {
         '0' => {
           'name' => 'name',
           'offset' => '0',
-          'type' => '3924'
+          'type' => '3920'
         },
         '1' => {
           'name' => 'version',
@@ -12755,17 +12762,17 @@
         '2' => {
           'name' => 'recv',
           'offset' => '22',
-          'type' => '291484'
+          'type' => '231902'
         },
         '3' => {
           'name' => 'send',
           'offset' => '36',
-          'type' => '291525'
+          'type' => '231943'
         },
         '4' => {
           'name' => 'init_pollfd',
           'offset' => '50',
-          'type' => '291605'
+          'type' => '232023'
         }
       },
       'Name' => 'struct pldm_transport',
@@ -12773,19 +12780,19 @@
       'Size' => '40',
       'Type' => 'Struct'
     },
-    '288693' => {
+    '229111' => {
       'BaseType' => '175',
       'Name' => 'pldm_tid_t*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '288796' => {
-      'BaseType' => '288510',
+    '229214' => {
+      'BaseType' => '228928',
       'Name' => 'struct pldm_transport_mctp_demux**',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '290893' => {
+    '231311' => {
       'BaseType' => '46',
       'Header' => 'int-ll64.h',
       'Line' => '21',
@@ -12794,7 +12801,7 @@
       'Size' => '1',
       'Type' => 'Typedef'
     },
-    '290905' => {
+    '231323' => {
       'BaseType' => '53',
       'Header' => 'int-ll64.h',
       'Line' => '24',
@@ -12803,7 +12810,7 @@
       'Size' => '2',
       'Type' => 'Typedef'
     },
-    '291173' => {
+    '231591' => {
       'Header' => 'socket.h',
       'Line' => '5',
       'Memb' => {
@@ -12828,31 +12835,31 @@
       'Size' => '12',
       'Type' => 'Struct'
     },
-    '291484' => {
+    '231902' => {
       'Name' => 'pldm_requester_rc_t(*)(struct pldm_transport*, pldm_tid_t*, void**, size_t*)',
       'Param' => {
         '0' => {
-          'type' => '288552'
+          'type' => '228970'
         },
         '1' => {
-          'type' => '288693'
+          'type' => '229111'
         },
         '2' => {
-          'type' => '55613'
+          'type' => '54647'
         },
         '3' => {
-          'type' => '13093'
+          'type' => '13089'
         }
       },
-      'Return' => '288466',
+      'Return' => '228884',
       'Size' => '8',
       'Type' => 'FuncPtr'
     },
-    '291525' => {
+    '231943' => {
       'Name' => 'pldm_requester_rc_t(*)(struct pldm_transport*, pldm_tid_t, void const*, size_t)',
       'Param' => {
         '0' => {
-          'type' => '288552'
+          'type' => '228970'
         },
         '1' => {
           'type' => '175'
@@ -12864,17 +12871,17 @@
           'type' => '1145'
         }
       },
-      'Return' => '288466',
+      'Return' => '228884',
       'Size' => '8',
       'Type' => 'FuncPtr'
     },
-    '291550' => {
-      'BaseType' => '291555',
+    '231968' => {
+      'BaseType' => '231973',
       'Name' => 'struct pollfd*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '291555' => {
+    '231973' => {
       'Header' => 'poll.h',
       'Line' => '36',
       'Memb' => {
@@ -12899,21 +12906,21 @@
       'Size' => '8',
       'Type' => 'Struct'
     },
-    '291605' => {
+    '232023' => {
       'Name' => 'int(*)(struct pldm_transport*, struct pollfd*)',
       'Param' => {
         '0' => {
-          'type' => '288552'
+          'type' => '228970'
         },
         '1' => {
-          'type' => '291550'
+          'type' => '231968'
         }
       },
       'Return' => '100',
       'Size' => '8',
       'Type' => 'FuncPtr'
     },
-    '291610' => {
+    '232028' => {
       'BaseType' => '53',
       'Header' => 'socket.h',
       'Line' => '10',
@@ -12922,14 +12929,14 @@
       'Size' => '2',
       'Type' => 'Typedef'
     },
-    '291987' => {
+    '232405' => {
       'Header' => 'mctp.h',
       'Line' => '18',
       'Memb' => {
         '0' => {
           'name' => 's_addr',
           'offset' => '0',
-          'type' => '288351'
+          'type' => '228769'
         }
       },
       'Name' => 'struct mctp_addr',
@@ -12937,19 +12944,19 @@
       'Size' => '1',
       'Type' => 'Struct'
     },
-    '292013' => {
+    '232431' => {
       'Header' => 'mctp.h',
       'Line' => '22',
       'Memb' => {
         '0' => {
           'name' => 'smctp_family',
           'offset' => '0',
-          'type' => '291610'
+          'type' => '232028'
         },
         '1' => {
           'name' => '__smctp_pad0',
           'offset' => '2',
-          'type' => '290905'
+          'type' => '231323'
         },
         '2' => {
           'name' => 'smctp_network',
@@ -12959,22 +12966,22 @@
         '3' => {
           'name' => 'smctp_addr',
           'offset' => '8',
-          'type' => '291987'
+          'type' => '232405'
         },
         '4' => {
           'name' => 'smctp_type',
           'offset' => '9',
-          'type' => '290893'
+          'type' => '231311'
         },
         '5' => {
           'name' => 'smctp_tag',
           'offset' => '16',
-          'type' => '290893'
+          'type' => '231311'
         },
         '6' => {
           'name' => '__smctp_pad1',
           'offset' => '17',
-          'type' => '290893'
+          'type' => '231311'
         }
       },
       'Name' => 'struct sockaddr_mctp',
@@ -12982,19 +12989,19 @@
       'Size' => '12',
       'Type' => 'Struct'
     },
-    '292117' => {
-      'BaseType' => '292013',
+    '232535' => {
+      'BaseType' => '232431',
       'Name' => 'struct sockaddr_mctp const',
       'Size' => '12',
       'Type' => 'Const'
     },
-    '292160' => {
+    '232578' => {
       'Line' => '35',
       'Memb' => {
         '0' => {
           'name' => 'transport',
           'offset' => '0',
-          'type' => '288557'
+          'type' => '228975'
         },
         '1' => {
           'name' => 'socket',
@@ -13004,12 +13011,12 @@
         '2' => {
           'name' => 'tid_eid_map',
           'offset' => '68',
-          'type' => '292253'
+          'type' => '232671'
         },
         '3' => {
           'name' => 'socket_send_buf',
           'offset' => '768',
-          'type' => '291173'
+          'type' => '231591'
         },
         '4' => {
           'name' => 'bound',
@@ -13028,31 +13035,31 @@
       'Source' => 'af-mctp.c',
       'Type' => 'Struct'
     },
-    '292253' => {
+    '232671' => {
       'BaseType' => '175',
       'Name' => 'pldm_tid_t[256]',
       'Size' => '256',
       'Type' => 'Array'
     },
-    '293054' => {
-      'BaseType' => '292160',
+    '233472' => {
+      'BaseType' => '232578',
       'Name' => 'struct pldm_transport_af_mctp*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '293059' => {
-      'BaseType' => '292117',
+    '233477' => {
+      'BaseType' => '232535',
       'Name' => 'struct sockaddr_mctp const*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '293372' => {
-      'BaseType' => '293054',
+    '233790' => {
+      'BaseType' => '233472',
       'Name' => 'struct pldm_transport_af_mctp**',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '319869' => {
+    '260287' => {
       'Header' => 'file_io.h',
       'Line' => '32',
       'Memb' => {
@@ -13069,14 +13076,14 @@
         '2' => {
           'name' => 'data',
           'offset' => '8',
-          'type' => '104702'
+          'type' => '102143'
         }
       },
       'Name' => 'struct pldm_oem_meta_file_io_write_req',
       'Size' => '8',
       'Type' => 'Struct'
     },
-    '319936' => {
+    '260354' => {
       'Header' => 'file_io.h',
       'Line' => '45',
       'Memb' => {
@@ -13095,7 +13102,7 @@
       'Size' => '4',
       'Type' => 'Struct'
     },
-    '319975' => {
+    '260393' => {
       'Header' => 'file_io.h',
       'Line' => '55',
       'Memb' => {
@@ -13114,21 +13121,21 @@
       'Size' => '8',
       'Type' => 'Struct'
     },
-    '320014' => {
+    '260432' => {
       'Header' => 'file_io.h',
       'Line' => '70',
       'Memb' => {
         '0' => {
           'name' => 'data',
           'offset' => '0',
-          'type' => '319936'
+          'type' => '260354'
         }
       },
       'Name' => 'anon-union-file_io.h-70',
       'Size' => '4',
       'Type' => 'Union'
     },
-    '320032' => {
+    '260450' => {
       'Header' => 'file_io.h',
       'Line' => '65',
       'Memb' => {
@@ -13155,33 +13162,33 @@
         '4' => {
           'name' => 'info',
           'offset' => '18',
-          'type' => '320014'
+          'type' => '260432'
         }
       },
       'Name' => 'struct pldm_oem_meta_file_io_read_req',
       'Size' => '16',
       'Type' => 'Struct'
     },
-    '320110' => {
+    '260528' => {
       'Header' => 'file_io.h',
       'Line' => '86',
       'Memb' => {
         '0' => {
           'name' => 'attr',
           'offset' => '0',
-          'type' => '319975'
+          'type' => '260393'
         },
         '1' => {
           'name' => 'data',
           'offset' => '0',
-          'type' => '319936'
+          'type' => '260354'
         }
       },
       'Name' => 'anon-union-file_io.h-86',
       'Size' => '8',
       'Type' => 'Union'
     },
-    '320138' => {
+    '260556' => {
       'Header' => 'file_io.h',
       'Line' => '80',
       'Memb' => {
@@ -13213,32 +13220,32 @@
         '5' => {
           'name' => 'info',
           'offset' => '18',
-          'type' => '320110'
+          'type' => '260528'
         },
         '6' => {
           'name' => 'data',
           'offset' => '32',
-          'type' => '104702'
+          'type' => '102143'
         }
       },
       'Name' => 'struct pldm_oem_meta_file_io_read_resp',
       'Size' => '24',
       'Type' => 'Struct'
     },
-    '323519' => {
-      'BaseType' => '320138',
+    '263668' => {
+      'BaseType' => '260556',
       'Name' => 'struct pldm_oem_meta_file_io_read_resp*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '325107' => {
-      'BaseType' => '320032',
+    '265139' => {
+      'BaseType' => '260450',
       'Name' => 'struct pldm_oem_meta_file_io_read_req*',
       'Size' => '8',
       'Type' => 'Pointer'
     },
-    '325541' => {
-      'BaseType' => '319869',
+    '265573' => {
+      'BaseType' => '260287',
       'Name' => 'struct pldm_oem_meta_file_io_write_req*',
       'Size' => '8',
       'Type' => 'Pointer'
diff --git a/src/dsp/firmware_update.c b/src/dsp/firmware_update.c
index 61bb953..c492a05 100644
--- a/src/dsp/firmware_update.c
+++ b/src/dsp/firmware_update.c
@@ -1,4 +1,5 @@
 /* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later */
+#include "api.h"
 #include "dsp/base.h"
 #include "msgbuf.h"
 #include <libpldm/firmware_update.h>
@@ -904,15 +905,15 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf, PLDM_OPTIONAL_COMMAND_RESP_MIN_LEN,
-				 msg->payload, payload_length);
+	rc = pldm_msgbuf_init_errno(buf, PLDM_OPTIONAL_COMMAND_RESP_MIN_LEN,
+				    msg->payload, payload_length);
 	if (rc) {
 		return rc;
 	}
 
 	rc = pldm_msgbuf_extract(buf, resp_data->completion_code);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 	if (PLDM_SUCCESS != resp_data->completion_code) {
 		// Return the CC directly without decoding the rest of the payload
@@ -926,7 +927,7 @@
 	rc = pldm_msgbuf_extract(buf,
 				 resp_data->downstream_device_update_supported);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	if (!is_downstream_device_update_support_valid(
@@ -938,7 +939,12 @@
 	pldm_msgbuf_extract(buf, resp_data->max_number_of_downstream_devices);
 	pldm_msgbuf_extract(buf, resp_data->capabilities.value);
 
-	return pldm_msgbuf_destroy_consumed(buf);
+	rc = pldm_msgbuf_destroy_consumed(buf);
+	if (rc) {
+		pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_TESTING
@@ -969,18 +975,23 @@
 		return rc;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf,
-				 PLDM_QUERY_DOWNSTREAM_IDENTIFIERS_REQ_BYTES,
-				 msg->payload, payload_length);
+	rc = pldm_msgbuf_init_errno(buf,
+				    PLDM_QUERY_DOWNSTREAM_IDENTIFIERS_REQ_BYTES,
+				    msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_insert(buf, data_transfer_handle);
 	// Data correctness has been verified, cast it to 1-byte data directly.
 	pldm_msgbuf_insert(buf, (uint8_t)transfer_operation_flag);
 
-	return pldm_msgbuf_destroy(buf);
+	rc = pldm_msgbuf_destroy(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_TESTING
@@ -998,15 +1009,15 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf, PLDM_OPTIONAL_COMMAND_RESP_MIN_LEN,
-				 msg->payload, payload_length);
+	rc = pldm_msgbuf_init_errno(buf, PLDM_OPTIONAL_COMMAND_RESP_MIN_LEN,
+				    msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	rc = pldm_msgbuf_extract(buf, resp_data->completion_code);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 	if (PLDM_SUCCESS != resp_data->completion_code) {
 		return PLDM_SUCCESS;
@@ -1021,7 +1032,7 @@
 
 	rc = pldm_msgbuf_extract(buf, resp_data->downstream_devices_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_extract(buf, resp_data->number_of_downstream_devices);
@@ -1029,11 +1040,16 @@
 				       resp_data->downstream_devices_length,
 				       (void **)&downstream_devices->ptr);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 	downstream_devices->length = resp_data->downstream_devices_length;
 
-	return pldm_msgbuf_destroy(buf);
+	rc = pldm_msgbuf_destroy(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_TESTING
diff --git a/src/dsp/platform.c b/src/dsp/platform.c
index 4b6898e..52caa53 100644
--- a/src/dsp/platform.c
+++ b/src/dsp/platform.c
@@ -1,4 +1,6 @@
 /* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later */
+#include "api.h"
+#include "compiler.h"
 #include "dsp/base.h"
 #include "msgbuf.h"
 #include "msgbuf/platform.h"
@@ -272,10 +274,11 @@
 		return PLDM_ERROR_INVALID_LENGTH;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf, PLDM_SET_STATE_EFFECTER_STATES_MIN_SIZE,
-				 msg->payload, payload_length);
+	rc = pldm_msgbuf_init_errno(buf,
+				    PLDM_SET_STATE_EFFECTER_STATES_MIN_SIZE,
+				    msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_extract_p(buf, effecter_id);
@@ -290,7 +293,12 @@
 		pldm_msgbuf_extract(buf, field[i].effecter_state);
 	}
 
-	return pldm_msgbuf_destroy(buf);
+	rc = pldm_msgbuf_destroy(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -313,10 +321,10 @@
 		return PLDM_ERROR_INVALID_LENGTH;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf, PLDM_GET_PDR_REQ_BYTES, msg->payload,
-				 payload_length);
+	rc = pldm_msgbuf_init_errno(buf, PLDM_GET_PDR_REQ_BYTES, msg->payload,
+				    payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_extract_p(buf, record_hndl);
@@ -325,7 +333,12 @@
 	pldm_msgbuf_extract_p(buf, request_cnt);
 	pldm_msgbuf_extract_p(buf, record_chg_num);
 
-	return pldm_msgbuf_destroy(buf);
+	rc = pldm_msgbuf_destroy(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -441,10 +454,11 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf, PLDM_GET_PDR_REPOSITORY_INFO_RESP_BYTES,
-				 msg->payload, payload_length);
+	rc = pldm_msgbuf_init_errno(buf,
+				    PLDM_GET_PDR_REPOSITORY_INFO_RESP_BYTES,
+				    msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_extract_p(buf, completion_code);
@@ -452,7 +466,11 @@
 		return PLDM_SUCCESS;
 	}
 
-	pldm_msgbuf_extract_p(buf, repository_state);
+	rc = pldm_msgbuf_extract_p(buf, repository_state);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
 	if (*repository_state > PLDM_FAILED) {
 		return PLDM_ERROR_INVALID_DATA;
 	}
@@ -461,14 +479,14 @@
 	rc = pldm_msgbuf_extract_array(buf, PLDM_TIMESTAMP104_SIZE, update_time,
 				       PLDM_TIMESTAMP104_SIZE);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	/* NOTE: Memory safety */
 	rc = pldm_msgbuf_extract_array(buf, PLDM_TIMESTAMP104_SIZE,
 				       oem_update_time, PLDM_TIMESTAMP104_SIZE);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_extract_p(buf, record_count);
@@ -476,7 +494,12 @@
 	pldm_msgbuf_extract_p(buf, largest_record_size);
 	pldm_msgbuf_extract_p(buf, data_transfer_handle_timeout);
 
-	return pldm_msgbuf_destroy(buf);
+	rc = pldm_msgbuf_destroy(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_TESTING
@@ -588,13 +611,17 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf, PLDM_GET_PDR_MIN_RESP_BYTES, msg->payload,
-				 payload_length);
+	rc = pldm_msgbuf_init_errno(buf, PLDM_GET_PDR_MIN_RESP_BYTES,
+				    msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
-	pldm_msgbuf_extract_p(buf, completion_code);
+	rc = pldm_msgbuf_extract_p(buf, completion_code);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
 	if (PLDM_SUCCESS != *completion_code) {
 		return PLDM_SUCCESS;
 	}
@@ -604,7 +631,7 @@
 	pldm_msgbuf_extract_p(buf, transfer_flag);
 	rc = pldm_msgbuf_extract_p(buf, resp_cnt);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	if (*resp_cnt > 0 && record_data != NULL) {
@@ -615,7 +642,7 @@
 		rc = pldm_msgbuf_extract_array(buf, *resp_cnt, record_data,
 					       *resp_cnt);
 		if (rc) {
-			return rc;
+			return pldm_xlate_errno(rc);
 		}
 	}
 
@@ -623,7 +650,12 @@
 		pldm_msgbuf_extract_p(buf, transfer_crc);
 	}
 
-	return pldm_msgbuf_destroy(buf);
+	rc = pldm_msgbuf_destroy(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_TESTING
@@ -695,11 +727,11 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf,
-				 PLDM_SET_NUMERIC_EFFECTER_VALUE_MIN_REQ_BYTES,
-				 msg->payload, payload_length);
+	rc = pldm_msgbuf_init_errno(
+		buf, PLDM_SET_NUMERIC_EFFECTER_VALUE_MIN_REQ_BYTES,
+		msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_extract_p(buf, effecter_id);
@@ -715,7 +747,12 @@
 	pldm_msgbuf_extract_effecter_value(buf, *effecter_data_size,
 					   effecter_value);
 
-	return pldm_msgbuf_destroy(buf);
+	rc = pldm_msgbuf_destroy(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -916,16 +953,16 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf,
-				 PLDM_GET_STATE_SENSOR_READINGS_MIN_RESP_BYTES,
-				 msg->payload, payload_length);
+	rc = pldm_msgbuf_init_errno(
+		buf, PLDM_GET_STATE_SENSOR_READINGS_MIN_RESP_BYTES,
+		msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	rc = pldm_msgbuf_extract_p(buf, completion_code);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	if (PLDM_SUCCESS != *completion_code) {
@@ -934,7 +971,7 @@
 
 	rc = pldm_msgbuf_extract_p(buf, comp_sensor_count);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	if (*comp_sensor_count < 0x1 || *comp_sensor_count > 0x8) {
@@ -948,7 +985,12 @@
 		pldm_msgbuf_extract(buf, field[i].event_state);
 	}
 
-	return pldm_msgbuf_destroy_consumed(buf);
+	rc = pldm_msgbuf_destroy_consumed(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -966,17 +1008,23 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf, PLDM_GET_STATE_SENSOR_READINGS_REQ_BYTES,
-				 msg->payload, payload_length);
+	rc = pldm_msgbuf_init_errno(buf,
+				    PLDM_GET_STATE_SENSOR_READINGS_REQ_BYTES,
+				    msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_extract_p(buf, sensor_id);
 	pldm_msgbuf_extract(buf, sensor_rearm->byte);
 	pldm_msgbuf_extract_p(buf, reserved);
 
-	return pldm_msgbuf_destroy(buf);
+	rc = pldm_msgbuf_destroy(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -1031,19 +1079,26 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf, PLDM_PLATFORM_EVENT_MESSAGE_MIN_REQ_BYTES,
-				 msg->payload, payload_length);
+	rc = pldm_msgbuf_init_errno(buf,
+				    PLDM_PLATFORM_EVENT_MESSAGE_MIN_REQ_BYTES,
+				    msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_extract_p(buf, format_version);
 	pldm_msgbuf_extract_p(buf, tid);
 	pldm_msgbuf_extract_p(buf, event_class);
+
+	rc = pldm_msgbuf_destroy(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
 	*event_data_offset =
 		sizeof(*format_version) + sizeof(*tid) + sizeof(*event_class);
 
-	return pldm_msgbuf_destroy(buf);
+	return PLDM_SUCCESS;
 }
 
 static int pldm_platform_poll_for_platform_event_message_validate(
@@ -1080,17 +1135,17 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf,
-				 PLDM_POLL_FOR_PLATFORM_EVENT_MESSAGE_REQ_BYTES,
-				 msg->payload, payload_length);
+	rc = pldm_msgbuf_init_errno(
+		buf, PLDM_POLL_FOR_PLATFORM_EVENT_MESSAGE_REQ_BYTES,
+		msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_extract_p(buf, format_version);
 	rc = pldm_msgbuf_extract_p(buf, transfer_operation_flag);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 	if (*transfer_operation_flag > PLDM_ACKNOWLEDGEMENT_ONLY) {
 		return PLDM_ERROR_INVALID_DATA;
@@ -1099,7 +1154,7 @@
 	pldm_msgbuf_extract_p(buf, data_transfer_handle);
 	rc = pldm_msgbuf_extract_p(buf, event_id_to_acknowledge);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	rc = pldm_platform_poll_for_platform_event_message_validate(
@@ -1108,7 +1163,12 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	return pldm_msgbuf_destroy(buf);
+	rc = pldm_msgbuf_destroy(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -1171,23 +1231,32 @@
 		return rc;
 	}
 
-	rc = pldm_msgbuf_init_cc(
+	rc = pldm_msgbuf_init_errno(
 		buf, PLDM_POLL_FOR_PLATFORM_EVENT_MESSAGE_MIN_RESP_BYTES,
 		msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_insert(buf, completion_code);
 	pldm_msgbuf_insert(buf, tid);
-	pldm_msgbuf_insert(buf, event_id);
+	rc = pldm_msgbuf_insert(buf, event_id);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
 
 	if (event_id == 0xffff || event_id == 0x0000) {
 		if (PLDM_POLL_FOR_PLATFORM_EVENT_MESSAGE_MIN_RESP_BYTES !=
 		    payload_length) {
 			return PLDM_ERROR_INVALID_LENGTH;
 		}
-		return pldm_msgbuf_destroy(buf);
+
+		rc = pldm_msgbuf_destroy(buf);
+		if (rc) {
+			return pldm_xlate_errno(rc);
+		}
+
+		return PLDM_SUCCESS;
 	}
 
 	if ((event_data == NULL) && (event_data_size > 0)) {
@@ -1197,13 +1266,16 @@
 	pldm_msgbuf_insert(buf, next_data_transfer_handle);
 	pldm_msgbuf_insert(buf, transfer_flag);
 	pldm_msgbuf_insert(buf, event_class);
-	pldm_msgbuf_insert(buf, event_data_size);
+	rc = pldm_msgbuf_insert(buf, event_data_size);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
 
 	if ((event_data_size > 0) && event_data) {
 		rc = pldm_msgbuf_insert_array(buf, event_data_size, event_data,
 					      event_data_size);
 		if (rc) {
-			return rc;
+			return pldm_xlate_errno(rc);
 		}
 	}
 
@@ -1211,7 +1283,12 @@
 		pldm_msgbuf_insert(buf, checksum);
 	}
 
-	return pldm_msgbuf_destroy(buf);
+	rc = pldm_msgbuf_destroy(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -1279,15 +1356,15 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf, PLDM_PLATFORM_EVENT_MESSAGE_RESP_BYTES,
-				 msg->payload, payload_length);
+	rc = pldm_msgbuf_init_errno(buf, PLDM_PLATFORM_EVENT_MESSAGE_RESP_BYTES,
+				    msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	rc = pldm_msgbuf_extract_p(buf, completion_code);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	if (PLDM_SUCCESS != *completion_code) {
@@ -1296,14 +1373,19 @@
 
 	rc = pldm_msgbuf_extract_p(buf, platform_event_status);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	if (*platform_event_status > PLDM_EVENT_LOGGING_REJECTED) {
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	return pldm_msgbuf_destroy(buf);
+	rc = pldm_msgbuf_destroy(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -1345,15 +1427,16 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf, PLDM_EVENT_MESSAGE_BUFFER_SIZE_RESP_BYTES,
-				 msg->payload, payload_length);
+	rc = pldm_msgbuf_init_errno(buf,
+				    PLDM_EVENT_MESSAGE_BUFFER_SIZE_RESP_BYTES,
+				    msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	rc = pldm_msgbuf_extract_p(buf, completion_code);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	if (PLDM_SUCCESS != *completion_code) {
@@ -1362,7 +1445,12 @@
 
 	pldm_msgbuf_extract_p(buf, terminus_max_buffer_size);
 
-	return pldm_msgbuf_destroy_consumed(buf);
+	rc = pldm_msgbuf_destroy_consumed(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -1417,16 +1505,16 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf,
-				 PLDM_EVENT_MESSAGE_SUPPORTED_MIN_RESP_BYTES,
-				 msg->payload, payload_length);
+	rc = pldm_msgbuf_init_errno(buf,
+				    PLDM_EVENT_MESSAGE_SUPPORTED_MIN_RESP_BYTES,
+				    msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	rc = pldm_msgbuf_extract_p(buf, completion_code);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	if (PLDM_SUCCESS != *completion_code) {
@@ -1435,7 +1523,7 @@
 
 	rc = pldm_msgbuf_extract_p(buf, synchrony_config);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	if (*synchrony_config > PLDM_MESSAGE_TYPE_ASYNCHRONOUS_WITH_HEARTBEAT) {
@@ -1446,11 +1534,16 @@
 
 	rc = pldm_msgbuf_extract_p(buf, number_event_class_returned);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	if (*number_event_class_returned == 0) {
-		return pldm_msgbuf_destroy(buf);
+		rc = pldm_msgbuf_destroy(buf);
+		if (rc) {
+			return pldm_xlate_errno(rc);
+		}
+
+		return PLDM_SUCCESS;
 	}
 
 	if (event_class_count < *number_event_class_returned) {
@@ -1461,7 +1554,12 @@
 		pldm_msgbuf_extract(buf, event_class[i]);
 	}
 
-	return pldm_msgbuf_destroy_consumed(buf);
+	rc = pldm_msgbuf_destroy_consumed(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -1480,10 +1578,14 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf, PLDM_SENSOR_EVENT_DATA_MIN_LENGTH,
-				 event_data, event_data_length);
+	rc = pldm_msgbuf_init_errno(buf, PLDM_SENSOR_EVENT_DATA_MIN_LENGTH,
+				    event_data, event_data_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
+	}
+
+	if (event_data_length < PLDM_PLATFORM_EVENT_MESSAGE_MIN_REQ_BYTES) {
+		return PLDM_ERROR_INVALID_LENGTH;
 	}
 
 	size_t event_class_data_length =
@@ -1492,7 +1594,7 @@
 	pldm_msgbuf_extract_p(buf, sensor_id);
 	rc = pldm_msgbuf_extract_p(buf, sensor_event_class_type);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	if (*sensor_event_class_type == PLDM_SENSOR_OP_STATE) {
@@ -1519,7 +1621,12 @@
 	*event_class_data_offset =
 		sizeof(*sensor_id) + sizeof(*sensor_event_class_type);
 
-	return pldm_msgbuf_destroy(buf);
+	rc = pldm_msgbuf_destroy(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -1535,17 +1642,22 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf,
-				 PLDM_SENSOR_EVENT_SENSOR_OP_STATE_DATA_LENGTH,
-				 sensor_data, sensor_data_length);
+	rc = pldm_msgbuf_init_errno(
+		buf, PLDM_SENSOR_EVENT_SENSOR_OP_STATE_DATA_LENGTH, sensor_data,
+		sensor_data_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_extract_p(buf, present_op_state);
 	pldm_msgbuf_extract_p(buf, previous_op_state);
 
-	return pldm_msgbuf_destroy_consumed(buf);
+	rc = pldm_msgbuf_destroy_consumed(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -1563,18 +1675,23 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(
+	rc = pldm_msgbuf_init_errno(
 		buf, PLDM_SENSOR_EVENT_STATE_SENSOR_STATE_DATA_LENGTH,
 		sensor_data, sensor_data_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_extract_p(buf, sensor_offset);
 	pldm_msgbuf_extract_p(buf, event_state);
 	pldm_msgbuf_extract_p(buf, previous_event_state);
 
-	return pldm_msgbuf_destroy_consumed(buf);
+	rc = pldm_msgbuf_destroy_consumed(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -1599,18 +1716,18 @@
 		return PLDM_ERROR_INVALID_LENGTH;
 	}
 
-	rc = pldm_msgbuf_init_cc(
+	rc = pldm_msgbuf_init_errno(
 		buf, PLDM_SENSOR_EVENT_NUMERIC_SENSOR_STATE_MIN_DATA_LENGTH,
 		sensor_data, sensor_data_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_extract_p(buf, event_state);
 	pldm_msgbuf_extract_p(buf, previous_event_state);
 	rc = pldm_msgbuf_extract_p(buf, sensor_data_size);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	/*
@@ -1665,7 +1782,12 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	return pldm_msgbuf_destroy_consumed(buf);
+	rc = pldm_msgbuf_destroy_consumed(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -1677,15 +1799,15 @@
 	struct pldm_msgbuf *buf = &_buf;
 	int rc;
 
-	rc = pldm_msgbuf_init_cc(buf, PLDM_PDR_NUMERIC_SENSOR_PDR_MIN_LENGTH,
-				 pdr_data, pdr_data_length);
+	rc = pldm_msgbuf_init_errno(buf, PLDM_PDR_NUMERIC_SENSOR_PDR_MIN_LENGTH,
+				    pdr_data, pdr_data_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	rc = pldm_msgbuf_extract_value_pdr_hdr(buf, &pdr_value->hdr);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	rc = pldm_platform_pdr_hdr_validate(
@@ -1715,7 +1837,7 @@
 
 	rc = pldm_msgbuf_extract(buf, pdr_value->sensor_data_size);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 	if (pdr_value->sensor_data_size > PLDM_SENSOR_DATA_SIZE_MAX) {
 		return PLDM_ERROR_INVALID_DATA;
@@ -1740,7 +1862,7 @@
 
 	rc = pldm_msgbuf_extract(buf, pdr_value->range_field_format);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 	if (pdr_value->range_field_format > PLDM_RANGE_FIELD_FORMAT_MAX) {
 		return PLDM_ERROR_INVALID_DATA;
@@ -1766,7 +1888,12 @@
 	pldm_msgbuf_extract_range_field_format(
 		buf, pdr_value->range_field_format, pdr_value->fatal_low);
 
-	return pldm_msgbuf_destroy(buf);
+	rc = pldm_msgbuf_destroy(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -1890,15 +2017,21 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf, PLDM_GET_NUMERIC_EFFECTER_VALUE_REQ_BYTES,
-				 msg->payload, payload_length);
+	rc = pldm_msgbuf_init_errno(buf,
+				    PLDM_GET_NUMERIC_EFFECTER_VALUE_REQ_BYTES,
+				    msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_extract_p(buf, effecter_id);
 
-	return pldm_msgbuf_destroy_consumed(buf);
+	rc = pldm_msgbuf_destroy_consumed(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -1920,16 +2053,16 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf,
-				 PLDM_GET_NUMERIC_EFFECTER_VALUE_MIN_RESP_BYTES,
-				 msg->payload, payload_length);
+	rc = pldm_msgbuf_init_errno(
+		buf, PLDM_GET_NUMERIC_EFFECTER_VALUE_MIN_RESP_BYTES,
+		msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	rc = pldm_msgbuf_extract_p(buf, completion_code);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	if (PLDM_SUCCESS != *completion_code) {
@@ -1938,7 +2071,7 @@
 
 	rc = pldm_msgbuf_extract_p(buf, effecter_data_size);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	if (*effecter_data_size > PLDM_EFFECTER_DATA_SIZE_SINT32) {
@@ -1947,7 +2080,7 @@
 
 	rc = pldm_msgbuf_extract_p(buf, effecter_oper_state);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	if (*effecter_oper_state > EFFECTER_OPER_STATE_INTEST) {
@@ -1959,7 +2092,12 @@
 	pldm_msgbuf_extract_effecter_value(buf, *effecter_data_size,
 					   present_value);
 
-	return pldm_msgbuf_destroy_consumed(buf);
+	rc = pldm_msgbuf_destroy_consumed(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -2043,10 +2181,11 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf, PLDM_PDR_REPOSITORY_CHG_EVENT_MIN_LENGTH,
-				 event_data, event_data_size);
+	rc = pldm_msgbuf_init_errno(buf,
+				    PLDM_PDR_REPOSITORY_CHG_EVENT_MIN_LENGTH,
+				    event_data, event_data_size);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_extract_p(buf, event_data_format);
@@ -2055,7 +2194,12 @@
 	*change_record_data_offset =
 		sizeof(*event_data_format) + sizeof(*number_of_change_records);
 
-	return pldm_msgbuf_destroy(buf);
+	rc = pldm_msgbuf_destroy(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -2137,11 +2281,11 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf,
-				 PLDM_PDR_REPOSITORY_CHANGE_RECORD_MIN_LENGTH,
-				 change_record_data, change_record_data_size);
+	rc = pldm_msgbuf_init_errno(
+		buf, PLDM_PDR_REPOSITORY_CHANGE_RECORD_MIN_LENGTH,
+		change_record_data, change_record_data_size);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_extract_p(buf, event_data_operation);
@@ -2150,7 +2294,12 @@
 	*change_entry_data_offset = sizeof(*event_data_operation) +
 				    sizeof(*number_of_change_entries);
 
-	return pldm_msgbuf_destroy(buf);
+	rc = pldm_msgbuf_destroy(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -2202,15 +2351,15 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf, PLDM_GET_SENSOR_READING_MIN_RESP_BYTES,
-				 msg->payload, payload_length);
+	rc = pldm_msgbuf_init_errno(buf, PLDM_GET_SENSOR_READING_MIN_RESP_BYTES,
+				    msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	rc = pldm_msgbuf_extract_p(buf, completion_code);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	if (PLDM_SUCCESS != *completion_code) {
@@ -2219,7 +2368,7 @@
 
 	rc = pldm_msgbuf_extract_p(buf, sensor_data_size);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	if (*sensor_data_size > PLDM_SENSOR_DATA_SIZE_SINT32) {
@@ -2235,7 +2384,12 @@
 	pldm_msgbuf_extract_sensor_value(buf, *sensor_data_size,
 					 present_reading);
 
-	return pldm_msgbuf_destroy_consumed(buf);
+	rc = pldm_msgbuf_destroy_consumed(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -2322,16 +2476,21 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf, PLDM_GET_SENSOR_READING_REQ_BYTES,
-				 msg->payload, payload_length);
+	rc = pldm_msgbuf_init_errno(buf, PLDM_GET_SENSOR_READING_REQ_BYTES,
+				    msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_extract_p(buf, sensor_id);
 	pldm_msgbuf_extract_p(buf, rearm_event_state);
 
-	return pldm_msgbuf_destroy(buf);
+	rc = pldm_msgbuf_destroy(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -2392,15 +2551,20 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf, PLDM_SET_EVENT_RECEIVER_RESP_BYTES,
-				 msg->payload, payload_length);
+	rc = pldm_msgbuf_init_errno(buf, PLDM_SET_EVENT_RECEIVER_RESP_BYTES,
+				    msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_extract_p(buf, completion_code);
 
-	return pldm_msgbuf_destroy(buf);
+	rc = pldm_msgbuf_destroy(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -2422,10 +2586,10 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf, PLDM_SET_EVENT_RECEIVER_REQ_BYTES,
-				 msg->payload, payload_length);
+	rc = pldm_msgbuf_init_errno(buf, PLDM_SET_EVENT_RECEIVER_REQ_BYTES,
+				    msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_extract_p(buf, event_message_global_enable);
@@ -2435,7 +2599,7 @@
 
 	rc = pldm_msgbuf_destroy(buf);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	if ((*event_message_global_enable ==
@@ -2506,11 +2670,11 @@
 		return rc;
 	}
 
-	rc = pldm_msgbuf_init_cc(
+	rc = pldm_msgbuf_init_errno(
 		buf, PLDM_POLL_FOR_PLATFORM_EVENT_MESSAGE_MIN_RESP_BYTES,
 		msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_insert(buf, format_version);
@@ -2518,7 +2682,12 @@
 	pldm_msgbuf_insert(buf, data_transfer_handle);
 	pldm_msgbuf_insert(buf, event_id_to_acknowledge);
 
-	return pldm_msgbuf_destroy(buf);
+	rc = pldm_msgbuf_destroy(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
@@ -2541,16 +2710,16 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(
+	rc = pldm_msgbuf_init_errno(
 		buf, PLDM_POLL_FOR_PLATFORM_EVENT_MESSAGE_MIN_RESP_BYTES,
 		msg->payload, payload_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	rc = pldm_msgbuf_extract_p(buf, completion_code);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 	if (PLDM_SUCCESS != *completion_code) {
 		return *completion_code;
@@ -2559,7 +2728,7 @@
 	pldm_msgbuf_extract_p(buf, tid);
 	rc = pldm_msgbuf_extract_p(buf, event_id);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 	if ((*event_id == 0) || (*event_id == 0xffff)) {
 		return PLDM_SUCCESS;
@@ -2568,13 +2737,13 @@
 	pldm_msgbuf_extract_p(buf, next_data_transfer_handle);
 	rc = pldm_msgbuf_extract_p(buf, transfer_flag);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	pldm_msgbuf_extract_p(buf, event_class);
 	rc = pldm_msgbuf_extract_p(buf, event_data_size);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 	if (*event_data_size > payload_length) {
 		return PLDM_ERROR_INVALID_DATA;
@@ -2589,7 +2758,12 @@
 		pldm_msgbuf_extract_p(buf, event_data_integrity_checksum);
 	}
 
-	return pldm_msgbuf_destroy_consumed(buf);
+	rc = pldm_msgbuf_destroy_consumed(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_TESTING
@@ -2606,15 +2780,16 @@
 		return PLDM_ERROR_INVALID_DATA;
 	}
 
-	rc = pldm_msgbuf_init_cc(buf, PLDM_PDR_NUMERIC_EFFECTER_PDR_MIN_LENGTH,
-				 pdr_data, pdr_data_length);
+	rc = pldm_msgbuf_init_errno(buf,
+				    PLDM_PDR_NUMERIC_EFFECTER_PDR_MIN_LENGTH,
+				    pdr_data, pdr_data_length);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	rc = pldm_msgbuf_extract_value_pdr_hdr(buf, &hdr);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 
 	rc = pldm_platform_pdr_hdr_validate(
@@ -2646,7 +2821,7 @@
 
 	rc = pldm_msgbuf_extract(buf, pdr_value->effecter_data_size);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 	if (pdr_value->effecter_data_size > PLDM_SENSOR_DATA_SIZE_MAX) {
 		return PLDM_ERROR_INVALID_DATA;
@@ -2666,7 +2841,7 @@
 
 	rc = pldm_msgbuf_extract(buf, pdr_value->range_field_format);
 	if (rc) {
-		return rc;
+		return pldm_xlate_errno(rc);
 	}
 	if (pdr_value->range_field_format > PLDM_RANGE_FIELD_FORMAT_MAX) {
 		return PLDM_ERROR_INVALID_DATA;
@@ -2684,7 +2859,12 @@
 	pldm_msgbuf_extract_range_field_format(
 		buf, pdr_value->range_field_format, pdr_value->rated_min);
 
-	return pldm_msgbuf_destroy_consumed(buf);
+	rc = pldm_msgbuf_destroy_consumed(buf);
+	if (rc) {
+		return pldm_xlate_errno(rc);
+	}
+
+	return PLDM_SUCCESS;
 }
 
 LIBPLDM_ABI_STABLE
diff --git a/src/msgbuf.h b/src/msgbuf.h
index 2a03f05..c7871da 100644
--- a/src/msgbuf.h
+++ b/src/msgbuf.h
@@ -68,79 +68,15 @@
 		"Extraction and insertion value comparisons may be broken");
 	static_assert(INTMAX_MIN + INTMAX_MAX <= 0,
 		      "Extraction and insertion arithmetic may be broken");
-	static_assert(PLDM_SUCCESS == 0, "Error handling is broken");
 	int compliance;
 } build_assertions LIBPLDM_CC_UNUSED;
 
-enum pldm_msgbuf_error_mode {
-	PLDM_MSGBUF_PLDM_CC = 0x5a,
-	PLDM_MSGBUF_C_ERRNO = 0xa5,
-};
-
 struct pldm_msgbuf {
 	uint8_t *cursor;
 	intmax_t remaining;
-	enum pldm_msgbuf_error_mode mode;
 };
 
 /**
- * @brief Either negate an errno value or return a value mapped to a PLDM
- * completion code.
- *
- * Note that `pldm_msgbuf_status()` is purely internal to the msgbuf API
- * for ergonomics. It's preferred that we don't try to unify this with
- * `pldm_xlate_errno()` from src/api.h despite the similarities.
- *
- * @param[in] ctx - The msgbuf context providing the personality info
- * @param[in] err - The positive errno value to translate
- *
- * @return Either the negated value of @p err if the context's error mode is
- *         `PLDM_MSGBUF_C_ERRNO`, or the equivalent PLDM completion code if the
- *         error mode is `PLDM_MSGBUF_PLDM_CC`.
- */
-LIBPLDM_CC_NONNULL
-LIBPLDM_CC_ALWAYS_INLINE int pldm_msgbuf_status(struct pldm_msgbuf *ctx,
-						unsigned int err)
-{
-	int rc;
-
-	assert(err != 0);
-	assert(err <= INT_MAX);
-
-	if (ctx->mode == PLDM_MSGBUF_C_ERRNO) {
-		if (err > INT_MAX) {
-			return -EINVAL;
-		}
-
-		static_assert(INT_MIN + INT_MAX < 0,
-			      "Arithmetic assumption failure");
-		return -((int)err);
-	}
-
-	if (err > INT_MAX) {
-		return PLDM_ERROR;
-	}
-
-	assert(ctx->mode == PLDM_MSGBUF_PLDM_CC);
-	switch (err) {
-	case EINVAL:
-		rc = PLDM_ERROR_INVALID_DATA;
-		break;
-	case EBADMSG:
-	case EOVERFLOW:
-		rc = PLDM_ERROR_INVALID_LENGTH;
-		break;
-	default:
-		assert(false);
-		rc = PLDM_ERROR;
-		break;
-	}
-
-	assert(rc > 0);
-	return rc;
-}
-
-/**
  * @brief Initialize pldm buf struct for buf extractor
  *
  * @param[out] ctx - pldm_msgbuf context for extractor
@@ -154,24 +90,21 @@
 LIBPLDM_CC_NONNULL
 LIBPLDM_CC_ALWAYS_INLINE int
 // NOLINTNEXTLINE(bugprone-reserved-identifier,cert-dcl37-c,cert-dcl51-cpp)
-pldm__msgbuf_init(struct pldm_msgbuf *ctx, size_t minsize, const void *buf,
-		  size_t len)
+pldm_msgbuf_init_errno(struct pldm_msgbuf *ctx, size_t minsize, const void *buf,
+		       size_t len)
 {
-	assert(ctx->mode == PLDM_MSGBUF_PLDM_CC ||
-	       ctx->mode == PLDM_MSGBUF_C_ERRNO);
-
 	if ((minsize > len)) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 #if INTMAX_MAX < SIZE_MAX
 	if (len > INTMAX_MAX) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 #endif
 
 	if ((uintptr_t)buf + len < len) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	ctx->cursor = (uint8_t *)buf;
@@ -181,52 +114,6 @@
 }
 
 /**
- * @brief Initialise a msgbuf instance to return errors as PLDM completion codes
- *
- * @see pldm__msgbuf_init
- *
- * @param[out] ctx - pldm_msgbuf context for extractor
- * @param[in] minsize - The minimum required length of buffer `buf`
- * @param[in] buf - buffer to be extracted
- * @param[in] len - size of buffer
- *
- * @return PLDM_SUCCESS if the provided buffer region is sensible,
- *         otherwise PLDM_ERROR_INVALID_DATA if pointer parameters are invalid,
- *         or PLDM_ERROR_INVALID_LENGTH if length constraints are violated.
- */
-LIBPLDM_CC_NONNULL
-LIBPLDM_CC_ALWAYS_INLINE int pldm_msgbuf_init_cc(struct pldm_msgbuf *ctx,
-						 size_t minsize,
-						 const void *buf, size_t len)
-{
-	ctx->mode = PLDM_MSGBUF_PLDM_CC;
-	return pldm__msgbuf_init(ctx, minsize, buf, len);
-}
-
-/**
- * @brief Initialise a msgbuf instance to return errors as negative errno values
- *
- * @see pldm__msgbuf_init
- *
- * @param[out] ctx - pldm_msgbuf context for extractor
- * @param[in] minsize - The minimum required length of buffer `buf`
- * @param[in] buf - buffer to be extracted
- * @param[in] len - size of buffer
- *
- * @return 0 if the provided buffer region is sensible, otherwise -EINVAL if
- *         pointer parameters are invalid, or -EOVERFLOW if length constraints
- *         are violated.
- */
-LIBPLDM_CC_NONNULL
-LIBPLDM_CC_ALWAYS_INLINE int pldm_msgbuf_init_errno(struct pldm_msgbuf *ctx,
-						    size_t minsize,
-						    const void *buf, size_t len)
-{
-	ctx->mode = PLDM_MSGBUF_C_ERRNO;
-	return pldm__msgbuf_init(ctx, minsize, buf, len);
-}
-
-/**
  * @brief Validate buffer overflow state
  *
  * @param[in] ctx - pldm_msgbuf context for extractor
@@ -241,7 +128,7 @@
 LIBPLDM_CC_ALWAYS_INLINE int pldm_msgbuf_validate(struct pldm_msgbuf *ctx)
 {
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	return 0;
@@ -262,7 +149,7 @@
 LIBPLDM_CC_ALWAYS_INLINE int pldm_msgbuf_consumed(struct pldm_msgbuf *ctx)
 {
 	if (ctx->remaining != 0) {
-		return pldm_msgbuf_status(ctx, EBADMSG);
+		return -EBADMSG;
 	}
 
 	return 0;
@@ -422,17 +309,17 @@
 pldm__msgbuf_extract_uint8(struct pldm_msgbuf *ctx, void *dst)
 {
 	if (!ctx->cursor) {
-		return pldm_msgbuf_status(ctx, EINVAL);
+		return -EINVAL;
 	}
 
 	if (ctx->remaining == INTMAX_MIN) {
 		assert(ctx->remaining < 0);
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 	ctx->remaining -= sizeof(uint8_t);
 	assert(ctx->remaining >= 0);
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	memcpy(dst, ctx->cursor, sizeof(uint8_t));
@@ -450,17 +337,17 @@
 pldm__msgbuf_extract_int8(struct pldm_msgbuf *ctx, void *dst)
 {
 	if (!ctx->cursor) {
-		return pldm_msgbuf_status(ctx, EINVAL);
+		return -EINVAL;
 	}
 
 	if (ctx->remaining == INTMAX_MIN) {
 		assert(ctx->remaining < 0);
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 	ctx->remaining -= sizeof(int8_t);
 	assert(ctx->remaining >= 0);
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	memcpy(dst, ctx->cursor, sizeof(int8_t));
@@ -479,7 +366,7 @@
 	uint16_t ldst;
 
 	if (!ctx->cursor) {
-		return pldm_msgbuf_status(ctx, EINVAL);
+		return -EINVAL;
 	}
 
 	// Check for underflow while tracking the magnitude of the buffer overflow
@@ -489,7 +376,7 @@
 		"The following addition may not uphold the runtime assertion");
 	if (ctx->remaining < INTMAX_MIN + (intmax_t)sizeof(ldst)) {
 		assert(ctx->remaining < 0);
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	// Check for buffer overflow. If we overflow, account for the request as
@@ -502,7 +389,7 @@
 	// -DNDEBUG by explicitly testing that the access is valid.
 	assert(ctx->remaining >= 0);
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	// Use memcpy() to have the compiler deal with any alignment
@@ -531,7 +418,7 @@
 	int16_t ldst;
 
 	if (!ctx->cursor) {
-		return pldm_msgbuf_status(ctx, EINVAL);
+		return -EINVAL;
 	}
 
 	static_assert(
@@ -540,12 +427,12 @@
 		"The following addition may not uphold the runtime assertion");
 	if (ctx->remaining < INTMAX_MIN + (intmax_t)sizeof(ldst)) {
 		assert(ctx->remaining < 0);
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 	ctx->remaining -= sizeof(ldst);
 	assert(ctx->remaining >= 0);
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	memcpy(&ldst, ctx->cursor, sizeof(ldst));
@@ -568,7 +455,7 @@
 	uint32_t ldst;
 
 	if (!ctx->cursor) {
-		return pldm_msgbuf_status(ctx, EINVAL);
+		return -EINVAL;
 	}
 
 	static_assert(
@@ -577,12 +464,12 @@
 		"The following addition may not uphold the runtime assertion");
 	if (ctx->remaining < INTMAX_MIN + (intmax_t)sizeof(ldst)) {
 		assert(ctx->remaining < 0);
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 	ctx->remaining -= sizeof(ldst);
 	assert(ctx->remaining >= 0);
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	memcpy(&ldst, ctx->cursor, sizeof(ldst));
@@ -604,7 +491,7 @@
 	int32_t ldst;
 
 	if (!ctx->cursor) {
-		return pldm_msgbuf_status(ctx, EINVAL);
+		return -EINVAL;
 	}
 
 	static_assert(
@@ -613,12 +500,12 @@
 		"The following addition may not uphold the runtime assertion");
 	if (ctx->remaining < INTMAX_MIN + (intmax_t)sizeof(ldst)) {
 		assert(ctx->remaining < 0);
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 	ctx->remaining -= sizeof(ldst);
 	assert(ctx->remaining >= 0);
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	memcpy(&ldst, ctx->cursor, sizeof(ldst));
@@ -643,7 +530,7 @@
 		      "Mismatched type sizes for dst and ldst");
 
 	if (!ctx->cursor) {
-		return pldm_msgbuf_status(ctx, EINVAL);
+		return -EINVAL;
 	}
 
 	static_assert(
@@ -652,12 +539,12 @@
 		"The following addition may not uphold the runtime assertion");
 	if (ctx->remaining < INTMAX_MIN + (intmax_t)sizeof(ldst)) {
 		assert(ctx->remaining < 0);
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 	ctx->remaining -= sizeof(ldst);
 	assert(ctx->remaining >= 0);
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	memcpy(&ldst, ctx->cursor, sizeof(ldst));
@@ -717,7 +604,7 @@
 				void *dst, size_t dst_count)
 {
 	if (!ctx->cursor || count > dst_count) {
-		return pldm_msgbuf_status(ctx, EINVAL);
+		return -EINVAL;
 	}
 
 	if (!count) {
@@ -726,17 +613,17 @@
 
 #if INTMAX_MAX < SIZE_MAX
 	if (count > INTMAX_MAX) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 #endif
 
 	if (ctx->remaining < INTMAX_MIN + (intmax_t)count) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 	ctx->remaining -= (intmax_t)count;
 	assert(ctx->remaining >= 0);
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	memcpy(dst, ctx->cursor, count);
@@ -795,7 +682,7 @@
 	uint32_t val = htole32(src);
 
 	if (!ctx->cursor) {
-		return pldm_msgbuf_status(ctx, EINVAL);
+		return -EINVAL;
 	}
 
 	static_assert(
@@ -804,12 +691,12 @@
 		"The following addition may not uphold the runtime assertion");
 	if (ctx->remaining < INTMAX_MIN + (intmax_t)sizeof(src)) {
 		assert(ctx->remaining < 0);
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 	ctx->remaining -= sizeof(src);
 	assert(ctx->remaining >= 0);
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	memcpy(ctx->cursor, &val, sizeof(val));
@@ -825,7 +712,7 @@
 	uint16_t val = htole16(src);
 
 	if (!ctx->cursor) {
-		return pldm_msgbuf_status(ctx, EINVAL);
+		return -EINVAL;
 	}
 
 	static_assert(
@@ -834,12 +721,12 @@
 		"The following addition may not uphold the runtime assertion");
 	if (ctx->remaining < INTMAX_MIN + (intmax_t)sizeof(src)) {
 		assert(ctx->remaining < 0);
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 	ctx->remaining -= sizeof(src);
 	assert(ctx->remaining >= 0);
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	memcpy(ctx->cursor, &val, sizeof(val));
@@ -853,7 +740,7 @@
 						      const uint8_t src)
 {
 	if (!ctx->cursor) {
-		return pldm_msgbuf_status(ctx, EINVAL);
+		return -EINVAL;
 	}
 
 	static_assert(
@@ -862,12 +749,12 @@
 		"The following addition may not uphold the runtime assertion");
 	if (ctx->remaining < INTMAX_MIN + (intmax_t)sizeof(src)) {
 		assert(ctx->remaining < 0);
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 	ctx->remaining -= sizeof(src);
 	assert(ctx->remaining >= 0);
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	memcpy(ctx->cursor, &src, sizeof(src));
@@ -883,7 +770,7 @@
 	int32_t val = htole32(src);
 
 	if (!ctx->cursor) {
-		return pldm_msgbuf_status(ctx, EINVAL);
+		return -EINVAL;
 	}
 
 	static_assert(
@@ -892,12 +779,12 @@
 		"The following addition may not uphold the runtime assertion");
 	if (ctx->remaining < INTMAX_MIN + (intmax_t)sizeof(src)) {
 		assert(ctx->remaining < 0);
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 	ctx->remaining -= sizeof(src);
 	assert(ctx->remaining >= 0);
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	memcpy(ctx->cursor, &val, sizeof(val));
@@ -913,7 +800,7 @@
 	int16_t val = htole16(src);
 
 	if (!ctx->cursor) {
-		return pldm_msgbuf_status(ctx, EINVAL);
+		return -EINVAL;
 	}
 
 	static_assert(
@@ -922,12 +809,12 @@
 		"The following addition may not uphold the runtime assertion");
 	if (ctx->remaining < INTMAX_MIN + (intmax_t)sizeof(src)) {
 		assert(ctx->remaining < 0);
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 	ctx->remaining -= sizeof(src);
 	assert(ctx->remaining >= 0);
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	memcpy(ctx->cursor, &val, sizeof(val));
@@ -941,7 +828,7 @@
 						     const int8_t src)
 {
 	if (!ctx->cursor) {
-		return pldm_msgbuf_status(ctx, EINVAL);
+		return -EINVAL;
 	}
 
 	static_assert(
@@ -950,12 +837,12 @@
 		"The following addition may not uphold the runtime assertion");
 	if (ctx->remaining < INTMAX_MIN + (intmax_t)sizeof(src)) {
 		assert(ctx->remaining < 0);
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 	ctx->remaining -= sizeof(src);
 	assert(ctx->remaining >= 0);
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	memcpy(ctx->cursor, &src, sizeof(src));
@@ -984,7 +871,7 @@
 			       const void *src, size_t src_count)
 {
 	if (!ctx->cursor || count > src_count) {
-		return pldm_msgbuf_status(ctx, EINVAL);
+		return -EINVAL;
 	}
 
 	if (!count) {
@@ -993,17 +880,17 @@
 
 #if INTMAX_MAX < SIZE_MAX
 	if (count > INTMAX_MAX) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 #endif
 
 	if (ctx->remaining < INTMAX_MIN + (intmax_t)count) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 	ctx->remaining -= (intmax_t)count;
 	assert(ctx->remaining >= 0);
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	memcpy(ctx->cursor, src, count);
@@ -1062,22 +949,22 @@
 						       void **cursor)
 {
 	if (!ctx->cursor || (cursor && *cursor)) {
-		return pldm_msgbuf_status(ctx, EINVAL);
+		return -EINVAL;
 	}
 
 #if INTMAX_MAX < SIZE_MAX
 	if (required > INTMAX_MAX) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 #endif
 
 	if (ctx->remaining < INTMAX_MIN + (intmax_t)required) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 	ctx->remaining -= (intmax_t)required;
 	assert(ctx->remaining >= 0);
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	if (cursor) {
@@ -1096,12 +983,12 @@
 	intmax_t measured;
 
 	if (!ctx->cursor || (cursor && *cursor)) {
-		return pldm_msgbuf_status(ctx, EINVAL);
+		return -EINVAL;
 	}
 
 	if (ctx->remaining < 0) {
 		/* Tracking the amount of overflow gets disturbed here */
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	measured = (intmax_t)strnlen((const char *)ctx->cursor, ctx->remaining);
@@ -1113,20 +1000,20 @@
 		 * return an error.
 		 */
 		ctx->remaining = -1;
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	/* Include the NUL terminator in the span length, as spans are opaque */
 	measured++;
 
 	if (ctx->remaining < INTMAX_MIN + measured) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	ctx->remaining -= measured;
 	assert(ctx->remaining >= 0);
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	if (cursor) {
@@ -1152,12 +1039,12 @@
 	void *end;
 
 	if (!ctx->cursor || (cursor && *cursor)) {
-		return pldm_msgbuf_status(ctx, EINVAL);
+		return -EINVAL;
 	}
 
 	if (ctx->remaining < 0) {
 		/* Tracking the amount of overflow gets disturbed here */
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	/*
@@ -1186,7 +1073,7 @@
 		 * `pldm_msgbuf_destroy*()` APIs also return an error.
 		 */
 		ctx->remaining = -1;
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	end = (char *)end + sizeof(char16_t);
@@ -1200,13 +1087,13 @@
 
 	if (ctx->remaining < INTMAX_MIN + (intmax_t)measured) {
 		assert(ctx->remaining < 0);
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	ctx->remaining -= (intmax_t)measured;
 	assert(ctx->remaining >= 0);
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	if (cursor) {
@@ -1227,12 +1114,12 @@
 pldm_msgbuf_span_remaining(struct pldm_msgbuf *ctx, void **cursor, size_t *len)
 {
 	if (!ctx->cursor || *cursor) {
-		return pldm_msgbuf_status(ctx, EINVAL);
+		return -EINVAL;
 	}
 
 	assert(ctx->remaining >= 0);
 	if (ctx->remaining < 0) {
-		return pldm_msgbuf_status(ctx, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	*cursor = ctx->cursor;
@@ -1263,36 +1150,34 @@
 pldm__msgbuf_copy(struct pldm_msgbuf *dst, struct pldm_msgbuf *src, size_t size,
 		  const char *description LIBPLDM_CC_UNUSED)
 {
-	assert(src->mode == dst->mode);
-
 	if (!src->cursor || !dst->cursor) {
-		return pldm_msgbuf_status(dst, EINVAL);
+		return -EINVAL;
 	}
 
 #if INTMAX_MAX < SIZE_MAX
 	if (size > INTMAX_MAX) {
-		return pldm_msgbuf_status(dst, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 #endif
 
 	if (src->remaining < INTMAX_MIN + (intmax_t)size) {
-		return pldm_msgbuf_status(dst, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	if (dst->remaining < INTMAX_MIN + (intmax_t)size) {
-		return pldm_msgbuf_status(dst, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	src->remaining -= (intmax_t)size;
 	assert(src->remaining >= 0);
 	if (src->remaining < 0) {
-		return pldm_msgbuf_status(dst, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	dst->remaining -= (intmax_t)size;
 	assert(dst->remaining >= 0);
 	if (dst->remaining < 0) {
-		return pldm_msgbuf_status(dst, EOVERFLOW);
+		return -EOVERFLOW;
 	}
 
 	memcpy(dst->cursor, src->cursor, size);
diff --git a/tests/dsp/firmware_update.cpp b/tests/dsp/firmware_update.cpp
index 8f3ab3c..dd867ff 100644
--- a/tests/dsp/firmware_update.cpp
+++ b/tests/dsp/firmware_update.cpp
@@ -1351,9 +1351,9 @@
 
     struct pldm_msgbuf _buf;
     struct pldm_msgbuf* buf = &_buf;
-    rc = pldm_msgbuf_init_cc(buf, 0, responseMsg.data() + hdrSize,
-                             responseMsg.size() - hdrSize);
-    EXPECT_EQ(rc, PLDM_SUCCESS);
+    rc = pldm_msgbuf_init_errno(buf, 0, responseMsg.data() + hdrSize,
+                                responseMsg.size() - hdrSize);
+    EXPECT_EQ(rc, 0);
 
     pldm_msgbuf_insert_uint8(buf, completion_code_resp);
     pldm_msgbuf_insert_uint8(buf, downstream_device_update_supported_resp);
@@ -1399,9 +1399,9 @@
 
     struct pldm_msgbuf _buf;
     struct pldm_msgbuf* buf = &_buf;
-    rc = pldm_msgbuf_init_cc(buf, 0, responseMsg.data() + hdrSize,
-                             responseMsg.size() - hdrSize);
-    EXPECT_EQ(rc, PLDM_SUCCESS);
+    rc = pldm_msgbuf_init_errno(buf, 0, responseMsg.data() + hdrSize,
+                                responseMsg.size() - hdrSize);
+    EXPECT_EQ(rc, 0);
 
     pldm_msgbuf_insert_uint8(buf, completion_code_resp);
     pldm_msgbuf_insert_uint8(buf, downstream_device_update_supported_resp);
@@ -1441,9 +1441,9 @@
 
     struct pldm_msgbuf _buf;
     struct pldm_msgbuf* buf = &_buf;
-    rc = pldm_msgbuf_init_cc(buf, 0, responseMsg.data() + hdrSize,
-                             responseMsg.size() - hdrSize);
-    EXPECT_EQ(rc, PLDM_SUCCESS);
+    rc = pldm_msgbuf_init_errno(buf, 0, responseMsg.data() + hdrSize,
+                                responseMsg.size() - hdrSize);
+    EXPECT_EQ(rc, 0);
 
     pldm_msgbuf_insert_uint8(buf, completion_code_resp);
     pldm_msgbuf_insert_uint8(buf, downstream_device_update_supported_resp);
@@ -1537,9 +1537,9 @@
 
     struct pldm_msgbuf _buf;
     struct pldm_msgbuf* buf = &_buf;
-    rc = pldm_msgbuf_init_cc(buf, 0, responseMsg.data() + hdrSize,
-                             responseMsg.size() - hdrSize);
-    EXPECT_EQ(rc, PLDM_SUCCESS);
+    rc = pldm_msgbuf_init_errno(buf, 0, responseMsg.data() + hdrSize,
+                                responseMsg.size() - hdrSize);
+    EXPECT_EQ(rc, 0);
 
     pldm_msgbuf_insert_uint8(buf, complition_code_resp);
     pldm_msgbuf_insert_uint32(buf, next_data_transfer_handle_resp);
@@ -1631,9 +1631,9 @@
 
     struct pldm_msgbuf _buf;
     struct pldm_msgbuf* buf = &_buf;
-    rc = pldm_msgbuf_init_cc(buf, 0, responseMsg.data() + hdrSize,
-                             responseMsg.size() - hdrSize);
-    EXPECT_EQ(rc, PLDM_SUCCESS);
+    rc = pldm_msgbuf_init_errno(buf, 0, responseMsg.data() + hdrSize,
+                                responseMsg.size() - hdrSize);
+    EXPECT_EQ(rc, 0);
 
     pldm_msgbuf_insert_uint8(buf, complition_code_resp);
     pldm_msgbuf_insert_uint32(buf, next_data_transfer_handle_resp);
@@ -1695,9 +1695,9 @@
 
     struct pldm_msgbuf _buf;
     struct pldm_msgbuf* buf = &_buf;
-    rc = pldm_msgbuf_init_cc(buf, 0, responseMsg.data() + hdrSize,
-                             responseMsg.size() - hdrSize);
-    EXPECT_EQ(rc, PLDM_SUCCESS);
+    rc = pldm_msgbuf_init_errno(buf, 0, responseMsg.data() + hdrSize,
+                                responseMsg.size() - hdrSize);
+    EXPECT_EQ(rc, 0);
 
     pldm_msgbuf_insert_uint8(buf, complition_code_resp);
     pldm_msgbuf_insert_uint32(buf, next_data_transfer_handle_resp);
diff --git a/tests/dsp/platform.cpp b/tests/dsp/platform.cpp
index e937dec..a81319b 100644
--- a/tests/dsp/platform.cpp
+++ b/tests/dsp/platform.cpp
@@ -1965,10 +1965,10 @@
 
     struct pldm_msgbuf _buf;
     struct pldm_msgbuf* buf = &_buf;
-    rc = pldm_msgbuf_init_cc(
+    rc = pldm_msgbuf_init_errno(
         buf, PLDM_POLL_FOR_PLATFORM_EVENT_MESSAGE_MIN_RESP_BYTES,
         response->payload, payloadLength);
-    EXPECT_EQ(rc, PLDM_SUCCESS);
+    EXPECT_EQ(rc, 0);
 
     uint8_t retCompletionCode;
     uint8_t retTid = 0;
@@ -2026,10 +2026,10 @@
 
     struct pldm_msgbuf _buf;
     struct pldm_msgbuf* buf = &_buf;
-    rc = pldm_msgbuf_init_cc(
+    rc = pldm_msgbuf_init_errno(
         buf, PLDM_POLL_FOR_PLATFORM_EVENT_MESSAGE_MIN_RESP_BYTES,
         response->payload, payloadLength);
-    EXPECT_EQ(rc, PLDM_SUCCESS);
+    EXPECT_EQ(rc, 0);
 
     uint8_t retCompletionCode;
     uint8_t retTid = 0;
@@ -2066,10 +2066,10 @@
 
     struct pldm_msgbuf _buf;
     struct pldm_msgbuf* buf = &_buf;
-    rc = pldm_msgbuf_init_cc(
+    rc = pldm_msgbuf_init_errno(
         buf, PLDM_POLL_FOR_PLATFORM_EVENT_MESSAGE_MIN_RESP_BYTES,
         response->payload, payloadLength);
-    EXPECT_EQ(rc, PLDM_SUCCESS);
+    EXPECT_EQ(rc, 0);
 
     uint8_t retCompletionCode;
     uint8_t retTid = 0;
@@ -2115,10 +2115,10 @@
 
     struct pldm_msgbuf _buf;
     struct pldm_msgbuf* buf = &_buf;
-    rc = pldm_msgbuf_init_cc(
+    rc = pldm_msgbuf_init_errno(
         buf, PLDM_POLL_FOR_PLATFORM_EVENT_MESSAGE_MIN_RESP_BYTES,
         response->payload, payloadLength);
-    EXPECT_EQ(rc, PLDM_SUCCESS);
+    EXPECT_EQ(rc, 0);
 
     uint8_t retCompletionCode;
     uint8_t retTid = 0;
@@ -2613,11 +2613,11 @@
     struct pldm_msgbuf _buf;
     struct pldm_msgbuf* buf = &_buf;
 
-    rc = pldm_msgbuf_init_cc(
+    rc = pldm_msgbuf_init_errno(
         buf, PLDM_MSG_POLL_EVENT_LENGTH,
         // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
         reinterpret_cast<uint8_t*>(eventData.data()), eventData.size());
-    EXPECT_EQ(rc, PLDM_SUCCESS);
+    EXPECT_EQ(rc, 0);
 
     uint8_t retFormatVersion;
     uint16_t reteventID;
diff --git a/tests/msgbuf.cpp b/tests/msgbuf.cpp
index a65f6bb..fc3c0c8 100644
--- a/tests/msgbuf.cpp
+++ b/tests/msgbuf.cpp
@@ -18,8 +18,8 @@
     struct pldm_msgbuf* ctx = &_ctx;
     uint8_t buf[1] = {};
 
-    EXPECT_NE(pldm_msgbuf_init_cc(ctx, sizeof(buf) + 1U, buf, sizeof(buf)),
-              PLDM_SUCCESS);
+    EXPECT_NE(pldm_msgbuf_init_errno(ctx, sizeof(buf) + 1U, buf, sizeof(buf)),
+              0);
 }
 
 TEST(msgbuf, init_bad_len)
@@ -28,8 +28,7 @@
     struct pldm_msgbuf* ctx = &_ctx;
     uint8_t buf[1] = {};
 
-    EXPECT_NE(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, SIZE_MAX),
-              PLDM_SUCCESS);
+    EXPECT_NE(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, SIZE_MAX), 0);
 }
 
 TEST(msgbuf, init_overflow)
@@ -39,7 +38,7 @@
     // NOLINTNEXTLINE(performance-no-int-to-ptr)
     void* buf = (void*)UINTPTR_MAX;
 
-    EXPECT_NE(pldm_msgbuf_init_cc(ctx, 0, buf, 2), PLDM_SUCCESS);
+    EXPECT_NE(pldm_msgbuf_init_errno(ctx, 0, buf, 2), 0);
 }
 
 TEST(msgbuf, init_success)
@@ -48,8 +47,7 @@
     struct pldm_msgbuf* ctx = &_ctx;
     uint8_t buf[1] = {};
 
-    EXPECT_EQ(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)),
-              PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)), 0);
 }
 
 TEST(msgbuf, destroy_none)
@@ -58,9 +56,8 @@
     struct pldm_msgbuf* ctx = &_ctx;
     uint8_t buf[1] = {};
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, destroy_exact)
@@ -70,11 +67,10 @@
     uint8_t buf[1] = {0xa5};
     uint8_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_uint8(ctx, val), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_uint8(ctx, val), 0);
     EXPECT_EQ(val, 0xa5);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, destroy_over)
@@ -84,12 +80,11 @@
     uint8_t buf[1] = {0xa5};
     uint8_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    ASSERT_EQ(pldm_msgbuf_extract_uint8(ctx, val), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)), 0);
+    ASSERT_EQ(pldm_msgbuf_extract_uint8(ctx, val), 0);
     ASSERT_EQ(val, 0xa5);
-    EXPECT_NE(pldm_msgbuf_extract_uint8(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_NE(pldm_msgbuf_extract_uint8(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, destroy_under)
@@ -99,11 +94,10 @@
     uint8_t buf[2] = {0x5a, 0xa5};
     uint8_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_uint8(ctx, val), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_uint8(ctx, val), 0);
     EXPECT_EQ(val, 0x5a);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, extract_one_uint8)
@@ -113,11 +107,10 @@
     uint8_t buf[1] = {0xa5};
     uint8_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_uint8(ctx, val), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_uint8(ctx, val), 0);
     EXPECT_EQ(val, 0xa5);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, extract_over_uint8)
@@ -127,9 +120,9 @@
     uint8_t buf[1] = {};
     uint8_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
-    EXPECT_NE(pldm_msgbuf_extract_uint8(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
+    EXPECT_NE(pldm_msgbuf_extract_uint8(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, extract_under_uint8)
@@ -140,10 +133,10 @@
     uint8_t buf[1] = {};
     uint8_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
     ctx->remaining = INTMAX_MIN;
-    EXPECT_NE(pldm_msgbuf_extract_uint8(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_NE(pldm_msgbuf_extract_uint8(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, extract_one_int8)
@@ -153,11 +146,10 @@
     int8_t buf[1] = {-1};
     int8_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_int8(ctx, val), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_int8(ctx, val), 0);
     EXPECT_EQ(val, -1);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, extract_over_int8)
@@ -167,9 +159,9 @@
     int8_t buf[1] = {};
     int8_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
-    EXPECT_NE(pldm_msgbuf_extract_int8(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
+    EXPECT_NE(pldm_msgbuf_extract_int8(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, extract_under_int8)
@@ -180,10 +172,10 @@
     uint8_t buf[1] = {};
     int8_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
     ctx->remaining = INTMAX_MIN;
-    EXPECT_NE(pldm_msgbuf_extract_int8(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_NE(pldm_msgbuf_extract_int8(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, extract_one_uint16)
@@ -193,11 +185,10 @@
     uint16_t buf[1] = {htole16(0x5aa5)};
     uint16_t val = {};
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_uint16(ctx, val), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_uint16(ctx, val), 0);
     EXPECT_EQ(val, 0x5aa5);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, extract_under_uint16)
@@ -208,10 +199,10 @@
     uint16_t buf[1] = {};
     uint16_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
     ctx->remaining = INTMAX_MIN + sizeof(val) - 1;
-    EXPECT_NE(pldm_msgbuf_extract_uint16(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_NE(pldm_msgbuf_extract_uint16(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, extract_over_uint16)
@@ -221,9 +212,9 @@
     uint16_t buf[1] = {};
     uint16_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
-    EXPECT_NE(pldm_msgbuf_extract_uint16(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
+    EXPECT_NE(pldm_msgbuf_extract_uint16(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, extract_one_int16)
@@ -233,11 +224,10 @@
     int16_t buf[1] = {(int16_t)(htole16((uint16_t)INT16_MIN))};
     int16_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_int16(ctx, val), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_int16(ctx, val), 0);
     EXPECT_EQ(val, INT16_MIN);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, extract_over_int16)
@@ -247,9 +237,9 @@
     int16_t buf[1] = {};
     int16_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
-    EXPECT_NE(pldm_msgbuf_extract_int16(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
+    EXPECT_NE(pldm_msgbuf_extract_int16(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, extract_under_int16)
@@ -260,10 +250,10 @@
     int16_t buf[1] = {};
     int16_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
     ctx->remaining = INTMAX_MIN + sizeof(val) - 1;
-    EXPECT_NE(pldm_msgbuf_extract_int16(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_NE(pldm_msgbuf_extract_int16(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, extract_one_uint32)
@@ -273,11 +263,10 @@
     uint32_t buf[1] = {htole32(0x5a00ffa5)};
     uint32_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_uint32(ctx, val), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_uint32(ctx, val), 0);
     EXPECT_EQ(val, 0x5a00ffa5);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, extract_over_uint32)
@@ -287,9 +276,9 @@
     uint32_t buf[1] = {};
     uint32_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
-    EXPECT_NE(pldm_msgbuf_extract_uint32(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
+    EXPECT_NE(pldm_msgbuf_extract_uint32(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, extract_under_uint32)
@@ -300,10 +289,10 @@
     uint32_t buf[1] = {};
     uint32_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
     ctx->remaining = INTMAX_MIN + sizeof(val) - 1;
-    EXPECT_NE(pldm_msgbuf_extract_uint32(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_NE(pldm_msgbuf_extract_uint32(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, extract_one_int32)
@@ -313,11 +302,10 @@
     int32_t buf[1] = {(int32_t)(htole32((uint32_t)(INT32_MIN)))};
     int32_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_int32(ctx, val), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_int32(ctx, val), 0);
     EXPECT_EQ(val, INT32_MIN);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, extract_over_int32)
@@ -327,9 +315,9 @@
     int32_t buf[1] = {};
     int32_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
-    EXPECT_NE(pldm_msgbuf_extract_int32(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
+    EXPECT_NE(pldm_msgbuf_extract_int32(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, extract_under_int32)
@@ -340,10 +328,10 @@
     int32_t buf[1] = {};
     int32_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
     ctx->remaining = INTMAX_MIN + sizeof(val) - 1;
-    EXPECT_NE(pldm_msgbuf_extract_int32(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_NE(pldm_msgbuf_extract_int32(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, extract_one_real32)
@@ -359,11 +347,10 @@
     buf[0] = htole32(xform);
     val = 0;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_real32(ctx, val), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_real32(ctx, val), 0);
     EXPECT_EQ(val, FLT_MAX);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, extract_over_real32)
@@ -373,9 +360,9 @@
     real32_t buf[1] = {};
     real32_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
-    EXPECT_NE(pldm_msgbuf_extract_real32(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
+    EXPECT_NE(pldm_msgbuf_extract_real32(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, extract_under_real32)
@@ -386,10 +373,10 @@
     real32_t buf[1] = {};
     real32_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
     ctx->remaining = INTMAX_MIN + sizeof(val) - 1;
-    EXPECT_NE(pldm_msgbuf_extract_real32(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_NE(pldm_msgbuf_extract_real32(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, extract_array_uint8_buf0_req0)
@@ -399,9 +386,9 @@
     uint8_t buf[1] = {};
     uint8_t arr[1];
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_array_uint8(ctx, 0, arr, 0), PLDM_SUCCESS);
-    ASSERT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_array_uint8(ctx, 0, arr, 0), 0);
+    ASSERT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, extract_array_uint8_buf1_req1)
@@ -411,12 +398,11 @@
     uint8_t buf[1] = {};
     uint8_t arr[1];
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(buf)), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(buf)), 0);
     EXPECT_EQ(
-        pldm_msgbuf_extract_array_uint8(ctx, sizeof(arr), arr, sizeof(arr)),
-        PLDM_SUCCESS);
+        pldm_msgbuf_extract_array_uint8(ctx, sizeof(arr), arr, sizeof(arr)), 0);
     EXPECT_EQ(arr[0], 0);
-    ASSERT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, extract_array_uint8_buf1_req2)
@@ -426,11 +412,10 @@
     uint8_t buf[1] = {};
     uint8_t arr[2];
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(buf)), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(buf)), 0);
     EXPECT_NE(
-        pldm_msgbuf_extract_array_uint8(ctx, sizeof(arr), arr, sizeof(arr)),
-        PLDM_SUCCESS);
-    ASSERT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+        pldm_msgbuf_extract_array_uint8(ctx, sizeof(arr), arr, sizeof(arr)), 0);
+    ASSERT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, extract_under_array_uint8)
@@ -440,10 +425,10 @@
     uint8_t buf[1] = {};
     uint8_t arr[1];
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
     ctx->remaining = INTMAX_MIN;
-    EXPECT_NE(pldm_msgbuf_extract_array_uint8(ctx, 1, arr, 1), PLDM_SUCCESS);
-    ASSERT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_NE(pldm_msgbuf_extract_array_uint8(ctx, 1, arr, 1), 0);
+    ASSERT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, extract_array_char_buf0_req0)
@@ -504,8 +489,8 @@
     struct pldm_msgbuf* ctx = &_ctx;
     uint8_t buf[1] = {};
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(buf)), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy_consumed(ctx), PLDM_ERROR_INVALID_LENGTH);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy_consumed(ctx), -EBADMSG);
 }
 
 TEST(msgbuf, consumed_exact)
@@ -515,9 +500,9 @@
     uint8_t buf[1] = {};
     uint8_t val;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(buf)), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_uint8(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy_consumed(ctx), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_uint8(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy_consumed(ctx), 0);
 }
 
 TEST(msgbuf, consumed_over)
@@ -528,10 +513,10 @@
     uint8_t valid;
     uint8_t invalid;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(buf)), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_uint8(ctx, valid), PLDM_SUCCESS);
-    EXPECT_NE(pldm_msgbuf_extract_uint8(ctx, invalid), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy_consumed(ctx), PLDM_ERROR_INVALID_LENGTH);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_uint8(ctx, valid), 0);
+    EXPECT_NE(pldm_msgbuf_extract_uint8(ctx, invalid), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy_consumed(ctx), -EBADMSG);
 }
 
 TEST(msgbuf, pldm_msgbuf_insert_int32_good)
@@ -542,19 +527,18 @@
     int32_t checkVal = 0;
     uint8_t buf[sizeof(int32_t)] = {};
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(buf)), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_insert_int32(ctx, src), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_insert_int32(ctx, src), 0);
 
     struct pldm_msgbuf _ctxExtract;
     struct pldm_msgbuf* ctxExtract = &_ctxExtract;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctxExtract, 0, buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_int32(ctxExtract, checkVal), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctxExtract, 0, buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_int32(ctxExtract, checkVal), 0);
 
     EXPECT_EQ(src, checkVal);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, insert_under_int32)
@@ -565,10 +549,10 @@
     int32_t buf[1] = {};
     int32_t val = 0;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
     ctx->remaining = INTMAX_MIN + sizeof(val) - 1;
-    EXPECT_NE(pldm_msgbuf_insert_int32(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_NE(pldm_msgbuf_insert_int32(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, pldm_msgbuf_insert_uint32_good)
@@ -579,19 +563,18 @@
     uint32_t checkVal = 0;
     uint8_t buf[sizeof(uint32_t)] = {};
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(buf)), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_insert_uint32(ctx, src), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_insert_uint32(ctx, src), 0);
 
     struct pldm_msgbuf _ctxExtract;
     struct pldm_msgbuf* ctxExtract = &_ctxExtract;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctxExtract, 0, buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_uint32(ctxExtract, checkVal), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctxExtract, 0, buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_uint32(ctxExtract, checkVal), 0);
 
     EXPECT_EQ(src, checkVal);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, insert_under_uint32)
@@ -602,10 +585,10 @@
     uint32_t buf[1] = {};
     uint32_t val = 0;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
     ctx->remaining = INTMAX_MIN + sizeof(val) - 1;
-    EXPECT_NE(pldm_msgbuf_insert_uint32(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_NE(pldm_msgbuf_insert_uint32(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, pldm_msgbuf_insert_uint16_good)
@@ -616,19 +599,18 @@
     uint16_t checkVal = 0;
     uint8_t buf[sizeof(uint16_t)] = {};
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(uint16_t)), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_insert_uint16(ctx, src), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(uint16_t)), 0);
+    EXPECT_EQ(pldm_msgbuf_insert_uint16(ctx, src), 0);
 
     struct pldm_msgbuf _ctxExtract;
     struct pldm_msgbuf* ctxExtract = &_ctxExtract;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctxExtract, 0, buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_uint16(ctxExtract, checkVal), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctxExtract, 0, buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_uint16(ctxExtract, checkVal), 0);
 
     EXPECT_EQ(src, checkVal);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, insert_under_uint16)
@@ -639,10 +621,10 @@
     uint16_t buf[1] = {};
     uint16_t val = 0;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
     ctx->remaining = INTMAX_MIN + sizeof(val) - 1;
-    EXPECT_NE(pldm_msgbuf_insert_uint16(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_NE(pldm_msgbuf_insert_uint16(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, pldm_msgbuf_insert_int16_good)
@@ -653,19 +635,18 @@
     int16_t checkVal = 0;
     uint8_t buf[sizeof(int16_t)] = {};
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(uint16_t)), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_insert_int16(ctx, src), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(uint16_t)), 0);
+    EXPECT_EQ(pldm_msgbuf_insert_int16(ctx, src), 0);
 
     struct pldm_msgbuf _ctxExtract;
     struct pldm_msgbuf* ctxExtract = &_ctxExtract;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctxExtract, 0, buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_int16(ctxExtract, checkVal), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctxExtract, 0, buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_int16(ctxExtract, checkVal), 0);
 
     EXPECT_EQ(src, checkVal);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, insert_under_int16)
@@ -676,10 +657,10 @@
     int16_t buf[1] = {};
     int16_t val = 0;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
     ctx->remaining = INTMAX_MIN + sizeof(val) - 1;
-    EXPECT_NE(pldm_msgbuf_insert_int16(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_NE(pldm_msgbuf_insert_int16(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, pldm_msgbuf_insert_uint8_good)
@@ -690,19 +671,18 @@
     uint8_t checkVal = 0;
     uint8_t buf[sizeof(uint8_t)] = {};
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(buf)), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_insert_uint8(ctx, src), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_insert_uint8(ctx, src), 0);
 
     struct pldm_msgbuf _ctxExtract;
     struct pldm_msgbuf* ctxExtract = &_ctxExtract;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctxExtract, 0, buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_uint8(ctxExtract, checkVal), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctxExtract, 0, buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_uint8(ctxExtract, checkVal), 0);
 
     EXPECT_EQ(src, checkVal);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, insert_under_uint8)
@@ -713,10 +693,10 @@
     uint8_t buf[1] = {};
     uint8_t val = 0;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
     ctx->remaining = INTMAX_MIN + sizeof(val) - 1;
-    EXPECT_NE(pldm_msgbuf_insert_uint8(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_NE(pldm_msgbuf_insert_uint8(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, pldm_msgbuf_insert_int8_good)
@@ -727,19 +707,18 @@
     int8_t checkVal = 0;
     uint8_t buf[sizeof(int8_t)] = {};
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(buf)), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_insert_int8(ctx, src), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_insert_int8(ctx, src), 0);
 
     struct pldm_msgbuf _ctxExtract;
     struct pldm_msgbuf* ctxExtract = &_ctxExtract;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctxExtract, 0, buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_int8(ctxExtract, checkVal), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctxExtract, 0, buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_int8(ctxExtract, checkVal), 0);
 
     EXPECT_EQ(src, checkVal);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, insert_under_int8)
@@ -750,10 +729,10 @@
     int8_t buf[1] = {};
     int8_t val = 0;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
     ctx->remaining = INTMAX_MIN + sizeof(val) - 1;
-    EXPECT_NE(pldm_msgbuf_insert_int8(ctx, val), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_NE(pldm_msgbuf_insert_int8(ctx, val), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, pldm_msgbuf_insert_array_uint8_good)
@@ -764,23 +743,21 @@
     uint8_t buf[6] = {};
     uint8_t retBuff[6] = {};
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(buf)), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(buf)), 0);
     EXPECT_EQ(
-        pldm_msgbuf_insert_array_uint8(ctx, sizeof(src), src, sizeof(src)),
-        PLDM_SUCCESS);
+        pldm_msgbuf_insert_array_uint8(ctx, sizeof(src), src, sizeof(src)), 0);
 
     struct pldm_msgbuf _ctxExtract;
     struct pldm_msgbuf* ctxExtract = &_ctxExtract;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctxExtract, 0, buf, sizeof(buf)),
-              PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctxExtract, 0, buf, sizeof(buf)), 0);
     EXPECT_EQ(pldm_msgbuf_extract_array_uint8(ctxExtract, sizeof(retBuff),
                                               retBuff, sizeof(retBuff)),
-              PLDM_SUCCESS);
+              0);
 
     EXPECT_EQ(memcmp(src, retBuff, sizeof(retBuff)), 0);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, insert_under_array_uint8)
@@ -791,12 +768,11 @@
     uint8_t buf[1] = {};
     uint8_t val[1] = {0};
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
     ctx->remaining = INTMAX_MIN + sizeof(val) - 1;
     EXPECT_NE(
-        pldm_msgbuf_insert_array_uint8(ctx, sizeof(val), val, sizeof(val)),
-        PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+        pldm_msgbuf_insert_array_uint8(ctx, sizeof(val), val, sizeof(val)), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, pldm_msgbuf_insert_array_char_good)
@@ -849,23 +825,21 @@
     uint16_t testVal;
     uint8_t* retBuff = NULL;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(buf)), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(buf)), 0);
     EXPECT_EQ(
-        pldm_msgbuf_insert_array_uint8(ctx, sizeof(src), src, sizeof(src)),
-        PLDM_SUCCESS);
+        pldm_msgbuf_insert_array_uint8(ctx, sizeof(src), src, sizeof(src)), 0);
 
     struct pldm_msgbuf _ctxExtract;
     struct pldm_msgbuf* ctxExtract = &_ctxExtract;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctxExtract, 0, buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_uint16(ctxExtract, testVal), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctxExtract, 0, buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_uint16(ctxExtract, testVal), 0);
     EXPECT_EQ(pldm_msgbuf_span_required(ctxExtract, required, (void**)&retBuff),
-              PLDM_SUCCESS);
+              0);
 
     EXPECT_EQ(memcmp(expectData, retBuff, required), 0);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, pldm_msgbuf_span_required_bad)
@@ -878,22 +852,19 @@
     uint16_t testVal;
     [[maybe_unused]] uint8_t* retBuff = NULL;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(buf)), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(buf)), 0);
     EXPECT_EQ(
-        pldm_msgbuf_insert_array_uint8(ctx, sizeof(src), src, sizeof(src)),
-        PLDM_SUCCESS);
+        pldm_msgbuf_insert_array_uint8(ctx, sizeof(src), src, sizeof(src)), 0);
 
     struct pldm_msgbuf _ctxExtract;
     struct pldm_msgbuf* ctxExtract = &_ctxExtract;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctxExtract, 0, buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_uint16(ctxExtract, testVal), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_span_required(ctxExtract, required, NULL),
-              PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctxExtract, 0, buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_uint16(ctxExtract, testVal), 0);
+    EXPECT_EQ(pldm_msgbuf_span_required(ctxExtract, required, NULL), 0);
 
-    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, span_required_under)
@@ -904,10 +875,10 @@
     uint8_t buf[1] = {};
     void* cursor = nullptr;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, 0), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, 0), 0);
     ctx->remaining = INTMAX_MIN;
-    EXPECT_NE(pldm_msgbuf_span_required(ctx, 1, &cursor), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_NE(pldm_msgbuf_span_required(ctx, 1, &cursor), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), -EOVERFLOW);
 }
 
 TEST(msgbuf, pldm_msgbuf_span_string_ascii_good)
@@ -1236,25 +1207,23 @@
     size_t remaining;
     uint8_t* retBuff = NULL;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(buf)), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(buf)), 0);
     EXPECT_EQ(
-        pldm_msgbuf_insert_array_uint8(ctx, sizeof(src), src, sizeof(src)),
-        PLDM_SUCCESS);
+        pldm_msgbuf_insert_array_uint8(ctx, sizeof(src), src, sizeof(src)), 0);
 
     struct pldm_msgbuf _ctxExtract;
     struct pldm_msgbuf* ctxExtract = &_ctxExtract;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctxExtract, 0, buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_uint16(ctxExtract, testVal), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctxExtract, 0, buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_uint16(ctxExtract, testVal), 0);
     EXPECT_EQ(
         pldm_msgbuf_span_remaining(ctxExtract, (void**)&retBuff, &remaining),
-        PLDM_SUCCESS);
+        0);
 
     EXPECT_EQ(remaining, sizeof(expectData));
     EXPECT_EQ(memcmp(expectData, retBuff, remaining), 0);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, pldm_msgbuf_span_remaining_bad)
@@ -1265,20 +1234,18 @@
     uint8_t buf[8] = {0};
     uint16_t testVal;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(buf)), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(buf)), 0);
     EXPECT_EQ(
-        pldm_msgbuf_insert_array_uint8(ctx, sizeof(src), src, sizeof(src)),
-        PLDM_SUCCESS);
+        pldm_msgbuf_insert_array_uint8(ctx, sizeof(src), src, sizeof(src)), 0);
 
     struct pldm_msgbuf _ctxExtract;
     struct pldm_msgbuf* ctxExtract = &_ctxExtract;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(ctxExtract, 0, buf, sizeof(buf)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_uint16(ctxExtract, testVal), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(ctxExtract, 0, buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_uint16(ctxExtract, testVal), 0);
 
-    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(ctx), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctxExtract), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(ctx), 0);
 }
 
 TEST(msgbuf, pldm_msgbuf_copy_good)
@@ -1287,24 +1254,21 @@
     struct pldm_msgbuf* src = &_src;
     uint16_t buf[1] = {htole16(0x5aa5)};
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(src, sizeof(buf), buf, sizeof(buf)),
-              PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(src, sizeof(buf), buf, sizeof(buf)), 0);
 
     struct pldm_msgbuf _dst;
     struct pldm_msgbuf* dst = &_dst;
     uint16_t checkVal = 0;
     uint8_t buf1[sizeof(buf)] = {};
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(dst, sizeof(buf1), buf1, sizeof(buf1)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_copy(dst, src, buf[0], name), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(dst, sizeof(buf1), buf1, sizeof(buf1)), 0);
+    EXPECT_EQ(pldm_msgbuf_copy(dst, src, buf[0], name), 0);
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(dst, sizeof(buf1), buf1, sizeof(buf1)),
-              PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_extract_uint16(dst, checkVal), PLDM_SUCCESS);
+    ASSERT_EQ(pldm_msgbuf_init_errno(dst, sizeof(buf1), buf1, sizeof(buf1)), 0);
+    EXPECT_EQ(pldm_msgbuf_extract_uint16(dst, checkVal), 0);
 
-    EXPECT_EQ(pldm_msgbuf_destroy(src), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_destroy(dst), PLDM_SUCCESS);
+    EXPECT_EQ(pldm_msgbuf_destroy(src), 0);
+    EXPECT_EQ(pldm_msgbuf_destroy(dst), 0);
 
     EXPECT_EQ(buf[0], checkVal);
 }
@@ -1319,15 +1283,13 @@
     uint8_t buf1[1] = {sizeof(uint16_t)};
     uint16_t value = 8;
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(src, 0, buf, sizeof(buf)), PLDM_SUCCESS);
-    ASSERT_EQ(pldm_msgbuf_init_cc(dst, 0, buf1, sizeof(buf1)), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_copy(dst, src, value, name),
-              PLDM_ERROR_INVALID_LENGTH);
+    ASSERT_EQ(pldm_msgbuf_init_errno(src, 0, buf, sizeof(buf)), 0);
+    ASSERT_EQ(pldm_msgbuf_init_errno(dst, 0, buf1, sizeof(buf1)), 0);
+    EXPECT_EQ(pldm_msgbuf_copy(dst, src, value, name), -EOVERFLOW);
 
-    ASSERT_EQ(pldm_msgbuf_init_cc(src, 0, buf1, sizeof(buf1)), PLDM_SUCCESS);
-    ASSERT_EQ(pldm_msgbuf_init_cc(dst, 0, buf, sizeof(buf)), PLDM_SUCCESS);
-    EXPECT_EQ(pldm_msgbuf_copy(dst, src, value, name),
-              PLDM_ERROR_INVALID_LENGTH);
+    ASSERT_EQ(pldm_msgbuf_init_errno(src, 0, buf1, sizeof(buf1)), 0);
+    ASSERT_EQ(pldm_msgbuf_init_errno(dst, 0, buf, sizeof(buf)), 0);
+    EXPECT_EQ(pldm_msgbuf_copy(dst, src, value, name), -EOVERFLOW);
 }
 
 TEST(msgbuf, pldm_msgbuf_copy_string_ascii_exact)
diff --git a/tests/msgbuf_generic.c b/tests/msgbuf_generic.c
index 32b9ed9..4ae9a2f 100644
--- a/tests/msgbuf_generic.c
+++ b/tests/msgbuf_generic.c
@@ -33,11 +33,10 @@
     uint8_t buf[1] = {0xa5};
     uint8_t val;
 
-    expect(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)) ==
-           PLDM_SUCCESS);
-    expect(pldm_msgbuf_extract(ctx, val) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)) == 0);
+    expect(pldm_msgbuf_extract(ctx, val) == 0);
     expect(val == 0xa5);
-    expect(pldm_msgbuf_destroy(ctx) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_destroy(ctx) == 0);
 }
 
 static void test_msgbuf_extract_generic_int8(void)
@@ -47,11 +46,10 @@
     int8_t buf[1] = {-1};
     int8_t val;
 
-    expect(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)) ==
-           PLDM_SUCCESS);
-    expect(pldm_msgbuf_extract(ctx, val) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)) == 0);
+    expect(pldm_msgbuf_extract(ctx, val) == 0);
     expect(val == -1);
-    expect(pldm_msgbuf_destroy(ctx) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_destroy(ctx) == 0);
 }
 
 static void test_msgbuf_extract_generic_uint16(void)
@@ -61,11 +59,10 @@
     uint16_t buf[1] = {0x5aa5};
     uint16_t val;
 
-    expect(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)) ==
-           PLDM_SUCCESS);
-    expect(pldm_msgbuf_extract(ctx, val) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)) == 0);
+    expect(pldm_msgbuf_extract(ctx, val) == 0);
     expect(val == 0x5aa5);
-    expect(pldm_msgbuf_destroy(ctx) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_destroy(ctx) == 0);
 }
 
 static void test_msgbuf_extract_generic_int16(void)
@@ -75,11 +72,10 @@
     int16_t buf[1] = {(int16_t)(htole16((uint16_t)INT16_MIN))};
     int16_t val;
 
-    expect(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)) ==
-           PLDM_SUCCESS);
-    expect(pldm_msgbuf_extract(ctx, val) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)) == 0);
+    expect(pldm_msgbuf_extract(ctx, val) == 0);
     expect(val == INT16_MIN);
-    expect(pldm_msgbuf_destroy(ctx) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_destroy(ctx) == 0);
 }
 
 static void test_msgbuf_extract_generic_uint32(void)
@@ -89,11 +85,10 @@
     uint32_t buf[1] = {0x5a00ffa5};
     uint32_t val;
 
-    expect(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)) ==
-           PLDM_SUCCESS);
-    expect(pldm_msgbuf_extract(ctx, val) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)) == 0);
+    expect(pldm_msgbuf_extract(ctx, val) == 0);
     expect(val == 0x5a00ffa5);
-    expect(pldm_msgbuf_destroy(ctx) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_destroy(ctx) == 0);
 }
 
 static void test_msgbuf_extract_generic_int32(void)
@@ -103,11 +98,10 @@
     int32_t buf[1] = {(int32_t)(htole32((uint32_t)INT32_MIN))};
     int32_t val;
 
-    expect(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)) ==
-           PLDM_SUCCESS);
-    expect(pldm_msgbuf_extract(ctx, val) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)) == 0);
+    expect(pldm_msgbuf_extract(ctx, val) == 0);
     expect(val == INT32_MIN);
-    expect(pldm_msgbuf_destroy(ctx) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_destroy(ctx) == 0);
 }
 
 static void test_msgbuf_extract_generic_real32(void)
@@ -123,11 +117,10 @@
     buf[0] = htole32(xform);
     val = 0;
 
-    expect(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)) ==
-           PLDM_SUCCESS);
-    expect(pldm_msgbuf_extract(ctx, val) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)) == 0);
+    expect(pldm_msgbuf_extract(ctx, val) == 0);
     expect(val == FLT_MAX);
-    expect(pldm_msgbuf_destroy(ctx) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_destroy(ctx) == 0);
 }
 
 static void test_msgbuf_extract_array_generic_uint8(void)
@@ -137,11 +130,10 @@
     uint32_t buf[1] = {0};
     uint8_t arr[1];
 
-    expect(pldm_msgbuf_init_cc(ctx, sizeof(buf), buf, sizeof(buf)) ==
-           PLDM_SUCCESS);
-    expect(pldm_msgbuf_extract_array(ctx, 1, arr, 1) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctx, sizeof(buf), buf, sizeof(buf)) == 0);
+    expect(pldm_msgbuf_extract_array(ctx, 1, arr, 1) == 0);
     expect(arr[0] == 0);
-    expect(pldm_msgbuf_destroy(ctx) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_destroy(ctx) == 0);
 }
 
 static void test_msgbuf_insert_generic_int32(void)
@@ -152,19 +144,18 @@
     int32_t checkVal = 0;
     uint8_t buf[sizeof(int32_t)] = {0};
 
-    expect(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(buf)) == PLDM_SUCCESS);
-    expect(pldm_msgbuf_insert(ctx, src) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(buf)) == 0);
+    expect(pldm_msgbuf_insert(ctx, src) == 0);
 
     struct pldm_msgbuf _ctxExtract;
     struct pldm_msgbuf* ctxExtract = &_ctxExtract;
 
-    expect(pldm_msgbuf_init_cc(ctxExtract, 0, buf, sizeof(buf)) ==
-           PLDM_SUCCESS);
-    expect(pldm_msgbuf_extract(ctxExtract, checkVal) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctxExtract, 0, buf, sizeof(buf)) == 0);
+    expect(pldm_msgbuf_extract(ctxExtract, checkVal) == 0);
 
     expect(src == checkVal);
-    expect(pldm_msgbuf_destroy(ctxExtract) == PLDM_SUCCESS);
-    expect(pldm_msgbuf_destroy(ctx) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_destroy(ctxExtract) == 0);
+    expect(pldm_msgbuf_destroy(ctx) == 0);
 }
 
 static void test_msgbuf_insert_generic_uint32(void)
@@ -175,19 +166,18 @@
     uint32_t checkVal = 0;
     uint8_t buf[sizeof(uint32_t)] = {0};
 
-    expect(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(buf)) == PLDM_SUCCESS);
-    expect(pldm_msgbuf_insert(ctx, src) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(buf)) == 0);
+    expect(pldm_msgbuf_insert(ctx, src) == 0);
 
     struct pldm_msgbuf _ctxExtract;
     struct pldm_msgbuf* ctxExtract = &_ctxExtract;
 
-    expect(pldm_msgbuf_init_cc(ctxExtract, 0, buf, sizeof(buf)) ==
-           PLDM_SUCCESS);
-    expect(pldm_msgbuf_extract(ctxExtract, checkVal) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctxExtract, 0, buf, sizeof(buf)) == 0);
+    expect(pldm_msgbuf_extract(ctxExtract, checkVal) == 0);
 
     expect(src == checkVal);
-    expect(pldm_msgbuf_destroy(ctxExtract) == PLDM_SUCCESS);
-    expect(pldm_msgbuf_destroy(ctx) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_destroy(ctxExtract) == 0);
+    expect(pldm_msgbuf_destroy(ctx) == 0);
 }
 
 static void test_msgbuf_insert_generic_uint16(void)
@@ -198,19 +188,18 @@
     uint16_t checkVal = 0;
     uint8_t buf[sizeof(uint16_t)] = {0};
 
-    expect(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(uint16_t)) == PLDM_SUCCESS);
-    expect(pldm_msgbuf_insert(ctx, src) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(uint16_t)) == 0);
+    expect(pldm_msgbuf_insert(ctx, src) == 0);
 
     struct pldm_msgbuf _ctxExtract;
     struct pldm_msgbuf* ctxExtract = &_ctxExtract;
 
-    expect(pldm_msgbuf_init_cc(ctxExtract, 0, buf, sizeof(buf)) ==
-           PLDM_SUCCESS);
-    expect(pldm_msgbuf_extract(ctxExtract, checkVal) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctxExtract, 0, buf, sizeof(buf)) == 0);
+    expect(pldm_msgbuf_extract(ctxExtract, checkVal) == 0);
 
     expect(src == checkVal);
-    expect(pldm_msgbuf_destroy(ctxExtract) == PLDM_SUCCESS);
-    expect(pldm_msgbuf_destroy(ctx) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_destroy(ctxExtract) == 0);
+    expect(pldm_msgbuf_destroy(ctx) == 0);
 }
 
 static void test_msgbuf_insert_generic_int16(void)
@@ -221,19 +210,18 @@
     int16_t checkVal = 0;
     uint8_t buf[sizeof(int16_t)] = {0};
 
-    expect(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(uint16_t)) == PLDM_SUCCESS);
-    expect(pldm_msgbuf_insert(ctx, src) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(uint16_t)) == 0);
+    expect(pldm_msgbuf_insert(ctx, src) == 0);
 
     struct pldm_msgbuf _ctxExtract;
     struct pldm_msgbuf* ctxExtract = &_ctxExtract;
 
-    expect(pldm_msgbuf_init_cc(ctxExtract, 0, buf, sizeof(buf)) ==
-           PLDM_SUCCESS);
-    expect(pldm_msgbuf_extract(ctxExtract, checkVal) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctxExtract, 0, buf, sizeof(buf)) == 0);
+    expect(pldm_msgbuf_extract(ctxExtract, checkVal) == 0);
 
     expect(src == checkVal);
-    expect(pldm_msgbuf_destroy(ctxExtract) == PLDM_SUCCESS);
-    expect(pldm_msgbuf_destroy(ctx) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_destroy(ctxExtract) == 0);
+    expect(pldm_msgbuf_destroy(ctx) == 0);
 }
 
 static void test_msgbuf_insert_generic_uint8(void)
@@ -244,19 +232,18 @@
     uint8_t checkVal = 0;
     uint8_t buf[sizeof(uint8_t)] = {0};
 
-    expect(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(buf)) == PLDM_SUCCESS);
-    expect(pldm_msgbuf_insert(ctx, src) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(buf)) == 0);
+    expect(pldm_msgbuf_insert(ctx, src) == 0);
 
     struct pldm_msgbuf _ctxExtract;
     struct pldm_msgbuf* ctxExtract = &_ctxExtract;
 
-    expect(pldm_msgbuf_init_cc(ctxExtract, 0, buf, sizeof(buf)) ==
-           PLDM_SUCCESS);
-    expect(pldm_msgbuf_extract(ctxExtract, checkVal) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctxExtract, 0, buf, sizeof(buf)) == 0);
+    expect(pldm_msgbuf_extract(ctxExtract, checkVal) == 0);
 
     expect(src == checkVal);
-    expect(pldm_msgbuf_destroy(ctxExtract) == PLDM_SUCCESS);
-    expect(pldm_msgbuf_destroy(ctx) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_destroy(ctxExtract) == 0);
+    expect(pldm_msgbuf_destroy(ctx) == 0);
 }
 
 static void test_msgbuf_insert_generic_int8(void)
@@ -267,19 +254,18 @@
     int8_t checkVal = 0;
     uint8_t buf[sizeof(int8_t)] = {0};
 
-    expect(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(buf)) == PLDM_SUCCESS);
-    expect(pldm_msgbuf_insert(ctx, src) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(buf)) == 0);
+    expect(pldm_msgbuf_insert(ctx, src) == 0);
 
     struct pldm_msgbuf _ctxExtract;
     struct pldm_msgbuf* ctxExtract = &_ctxExtract;
 
-    expect(pldm_msgbuf_init_cc(ctxExtract, 0, buf, sizeof(buf)) ==
-           PLDM_SUCCESS);
-    expect(pldm_msgbuf_extract(ctxExtract, checkVal) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctxExtract, 0, buf, sizeof(buf)) == 0);
+    expect(pldm_msgbuf_extract(ctxExtract, checkVal) == 0);
 
     expect(src == checkVal);
-    expect(pldm_msgbuf_destroy(ctxExtract) == PLDM_SUCCESS);
-    expect(pldm_msgbuf_destroy(ctx) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_destroy(ctxExtract) == 0);
+    expect(pldm_msgbuf_destroy(ctx) == 0);
 }
 
 static void test_msgbuf_insert_array_generic_uint8(void)
@@ -290,21 +276,19 @@
     uint8_t buf[6] = {0};
     uint8_t retBuff[6] = {0};
 
-    expect(pldm_msgbuf_init_cc(ctx, 0, buf, sizeof(buf)) == PLDM_SUCCESS);
-    expect(pldm_msgbuf_insert_array(ctx, sizeof(src), src, sizeof(src)) ==
-           PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctx, 0, buf, sizeof(buf)) == 0);
+    expect(pldm_msgbuf_insert_array(ctx, sizeof(src), src, sizeof(src)) == 0);
 
     struct pldm_msgbuf _ctxExtract;
     struct pldm_msgbuf* ctxExtract = &_ctxExtract;
 
-    expect(pldm_msgbuf_init_cc(ctxExtract, 0, buf, sizeof(buf)) ==
-           PLDM_SUCCESS);
+    expect(pldm_msgbuf_init_errno(ctxExtract, 0, buf, sizeof(buf)) == 0);
     expect(pldm_msgbuf_extract_array(ctxExtract, sizeof(retBuff), retBuff,
-                                     sizeof(retBuff)) == PLDM_SUCCESS);
+                                     sizeof(retBuff)) == 0);
 
     expect(memcmp(src, retBuff, sizeof(retBuff)) == 0);
-    expect(pldm_msgbuf_destroy(ctxExtract) == PLDM_SUCCESS);
-    expect(pldm_msgbuf_destroy(ctx) == PLDM_SUCCESS);
+    expect(pldm_msgbuf_destroy(ctxExtract) == 0);
+    expect(pldm_msgbuf_destroy(ctx) == 0);
 }
 
 typedef void (*testfn)(void);
