// We only pack m_length bytes of the m_data array, even if m_data is larger// than m_length. Same treatment for the byte-enable array. We do not pack// the extensions, if any, as we will be unable to unpack them.functionvoiddo_pack(uvm_packerpacker);super.do_pack(packer);if(m_length>m_data.size())`uvm_fatal("PACK_DATA_ARR",$sformatf("Data array m_length property (%0d) greater than m_data.size (%0d)",m_length,m_data.size()))if(m_byte_enable_length>m_byte_enable.size())`uvm_fatal("PACK_DATA_ARR",$sformatf("Data array m_byte_enable_length property (%0d) greater than m_byte_enable.size (%0d)",m_byte_enable_length,m_byte_enable.size()))`uvm_pack_intN(m_address,64)`uvm_pack_enumN(m_command,32)`uvm_pack_intN(m_length,32)for(inti=0;i<m_length;i++)`uvm_pack_intN(m_data[i],8)`ifdefVCS_TLI_GP_PACKING
// is greater than their current size. We do not unpack extensions// because we do not know what object types to allocate before we// unpack into them. Extensions must be handled by user code.functionvoiddo_unpack(uvm_packerpacker);super.do_unpack(packer);`uvm_unpack_intN(m_address,64)`uvm_unpack_enumN(m_command,32,uvm_tlm_command_e)`uvm_unpack_intN(m_length,32)if(m_data.size()<m_length)m_data=new[m_length];`ifdefUVM_TLM_GP_BUF_OVERFLOW_FIXfor(inti=0;i<m_length;i++)`elseforeach(m_data[i])`endif`uvm_unpack_intN(m_data[i],8)`ifdefVCS_TLI_GP_PACKING`uvm_unpack_intN(m_length,32)`endif
//// @uvm-ieee 1800.2-2020 auto 12.3.4.2.5functionvoiddo_unpack(uvm_packerpacker);super.do_unpack(packer);`uvm_unpack_intN(m_address,64)`uvm_unpack_enumN(m_command,32,uvm_tlm_command_e)`uvm_unpack_intN(m_length,32)`uvm_unpack_intN(m_dmi,1)if(m_data.size()<m_length)m_data=new[m_length];`ifdefUVM_TLM_GP_BUF_OVERFLOW_FIXfor(inti=0;i<m_length;i++)`elseforeach(m_data[i])`endif`uvm_unpack_intN(m_data[i],8)`ifdefVCS_TLI_GP_PACKING`uvm_unpack_intN(m_length,32)