build/X86_MESI_Two_Level/mem/protocol/L2Cache_Controller.cc
/** \brief Send ack to memory for clean replacement */
\brief Send ack to memory for clean replacement
\ brief Send ack to memory for clean replacement
void
L2Cache_Controller::c_exclusiveCleanReplacement(L2Cache_TBE*& m_tbe_ptr, L2Cache_Entry*& m_cache_entry_ptr, Addr addr, int core_id)
{
    DPRINTF(RubyGenerated, "executing c_exclusiveCleanReplacement\n");
    try {
       {
    std::shared_ptr<ResponseMsg> out_msg = std::make_shared<ResponseMsg>(clockEdge());
    (*out_msg).m_addr = addr;
    (*out_msg).m_Type = CoherenceResponseType_ACK;
    (*out_msg).m_Sender = m_machineID;
    (((*out_msg).m_Destination).add((map_Address_to_Directory(addr))));
    (*out_msg).m_MessageSize = MessageSizeType_Response_Control;
    ((*m_responseFromL2Cache_ptr)).enqueue(out_msg, clockEdge(), cyclesToTicks(Cycles(m_l2_response_latency)));
}
    } catch (const RejectException & e) {
       fatal("Error in action L2Cache:c_exclusiveCleanReplacement: "
             "executed a peek statement with the wrong message "
             "type specified. ");
    }
}
void L2Cache_Controller :: c_exclusiveCleanReplacement ( 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 ( ) ) ; ( * out_msg ) . m_addr = addr ; ( * out_msg ) . m_Type = CoherenceResponseType_ACK ; ( * out_msg ) . m_Sender = m_machineID ; ( ( ( * out_msg ) . m_Destination ) . add ( ( map_Address_to_Directory ( addr ) ) ) ) ; ( * out_msg ) . m_MessageSize = MessageSizeType_Response_Control ; ( ( * m_responseFromL2Cache_ptr ) ) . enqueue ( out_msg , clockEdge ( ) , cyclesToTicks ( Cycles ( m_l2_response_latency ) ) ) ; } } catch ( const RejectException & e ) { fatal ( " " " " " " ) ; } }
\brief Send ack to memory for clean replacement
\ brief Send ack to memory for clean replacement
//fanyao added core_id