build/X86_MESI_Two_Level/mem/protocol/L2Cache_Controller.cc
/** \brief Send data to memory */
\brief Send data to memory
\ brief Send data to memory
void
L2Cache_Controller::ct_exclusiveReplacementFromTBE(L2Cache_TBE*& m_tbe_ptr, L2Cache_Entry*& m_cache_entry_ptr, Addr addr, int core_id)
{
    DPRINTF(RubyGenerated, "executing ct_exclusiveReplacementFromTBE\n");
    try {
       {
    std::shared_ptr<ResponseMsg> out_msg = std::make_shared<ResponseMsg>(clockEdge());
    #ifndef NDEBUG
    if (!((m_tbe_ptr != NULL))) {
        panic("Runtime Error at MESI_Two_Level-L2cache.sm:510: %s.\n", "assert failure");
    }
    #endif
    ;
    (*out_msg).m_addr = addr;
    (*out_msg).m_Type = CoherenceResponseType_MEMORY_DATA;
    (*out_msg).m_Sender = m_machineID;
    (((*out_msg).m_Destination).add((map_Address_to_Directory(addr))));
    (*out_msg).m_DataBlk = (*m_tbe_ptr).m_DataBlk;
    (*out_msg).m_Dirty = (*m_tbe_ptr).m_Dirty;
    (*out_msg).m_MessageSize = MessageSizeType_Response_Data;
    ((*m_responseFromL2Cache_ptr)).enqueue(out_msg, clockEdge(), cyclesToTicks(Cycles(m_l2_response_latency)));
}
    } catch (const RejectException & e) {
       fatal("Error in action L2Cache:ct_exclusiveReplacementFromTBE: "
             "executed a peek statement with the wrong message "
             "type specified. ");
    }
}
void L2Cache_Controller :: ct_exclusiveReplacementFromTBE ( L2Cache_TBE * & m_tbe_ptr , L2Cache_Entry * & m_cache_entry_ptr , Addr addr , int core_id ) { DPRINTF ( RubyGenerated , " \n " ) ; try { { std :: shared_ptr < ResponseMsg > out_msg = std :: make_shared < ResponseMsg > ( clockEdge ( ) ) ; #ifndef NDEBUG if ( ! ( ( m_tbe_ptr != NULL ) ) ) { panic ( " \n " , " " ) ; } #endif ; ( * out_msg ) . m_addr = addr ; ( * out_msg ) . m_Type = CoherenceResponseType_MEMORY_DATA ; ( * out_msg ) . m_Sender = m_machineID ; ( ( ( * out_msg ) . m_Destination ) . add ( ( map_Address_to_Directory ( addr ) ) ) ) ; ( * out_msg ) . m_DataBlk = ( * m_tbe_ptr ) . m_DataBlk ; ( * out_msg ) . m_Dirty = ( * m_tbe_ptr ) . m_Dirty ; ( * out_msg ) . m_MessageSize = MessageSizeType_Response_Data ; ( ( * m_responseFromL2Cache_ptr ) ) . enqueue ( out_msg , clockEdge ( ) , cyclesToTicks ( Cycles ( m_l2_response_latency ) ) ) ; } } catch ( const RejectException & e ) { fatal ( " " " " " " ) ; } }
\brief Send data to memory
\ brief Send data to memory
//fanyao added core_id