//Redirect work to the appropriate function void TYPE(_protocol)::process_snoop_request (Mreq *request) { switch (state) { case TYPE(_CACHE_I): do_snoop_I (request); break; case TYPE(_CACHE_S): do_snoop_S (request); break; case TYPE(_CACHE_O): do_snoop_O (request); break; case TYPE(_CACHE_M): do_snoop_M (request); break; case TYPE(_CACHE_IE): do_snoop_IE (request); break; case TYPE(_CACHE_IM): do_snoop_IM (request); break; case TYPE(_CACHE_SM): do_snoop_SM (request); break; case TYPE(_CACHE_FM): do_snoop_FM (request); break; default: fatal_error ("Invalid Cache State for TYPE Protocol\n"); } }
void MOESIF_protocol::process_snoop_request (Mreq *request) { switch (state) { case MOESIF_CACHE_I: do_snoop_I (request); break; case MOESIF_CACHE_IS: do_snoop_IS (request); break; case MOESIF_CACHE_S: do_snoop_S (request); break; case MOESIF_CACHE_SM: do_snoop_SM (request); break; case MOESIF_CACHE_E: do_snoop_E (request); break; case MOESIF_CACHE_OM: do_snoop_OM (request); break; case MOESIF_CACHE_IM: do_snoop_IM (request); break; case MOESIF_CACHE_M: do_snoop_M (request); break; case MOESIF_CACHE_O: do_snoop_O (request); break; case MOESIF_CACHE_FM: do_snoop_FM (request); break; case MOESIF_CACHE_F: do_snoop_F (request); break; default: fatal_error ("Invalid Cache State for MOESIF Protocol\n"); } }