/*
 * $Id: Parameters_msg_error.cpp 88 2008-12-10 18:31:39Z rosiere $
 *
 * [ Description ]
 * 
 */

#include "Behavioural/include/Types.h"
#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/include/Parameters.h"
#include <sstream>

namespace morpheo                    {
namespace behavioural {
namespace core {
namespace multi_ooo_engine {
namespace ooo_engine {
namespace special_register_unit {


#undef  FUNCTION
#define FUNCTION "Special_Register_unit::msg_error"
  Parameters_test Parameters::msg_error(void)
  {
    log_begin(Special_Register_unit,FUNCTION);

    Parameters_test test ("Special_Register_unit");

    for (uint32_t i=0; i<_nb_front_end; i++)
      for (uint32_t j=0; j<_nb_context[i]; j++)
	{
	  if (_implement_group [i][j][GROUP_SYSTEM_AND_CONTROL ] == false)
	    test.error(toString(_("Thread [%d][%d] : Group \"SYSTEM_AND_CONTROL\" must be implemented.\n"),i,j));
	  
	  if (_implement_group [i][j][GROUP_DMMU               ] == true )
	    test.error(toString(_("Thread [%d][%d] : Group \"DMMU\" can't be implemented : not yet supported.\n"),i,j));

	  if (_implement_group [i][j][GROUP_IMMU               ] == true )
	    test.error(toString(_("Thread [%d][%d] : Group \"IMMU\" can't be implemented : not yet supported.\n"),i,j));

// 	  if (_implement_group [i][j][GROUP_DCACHE             ] == false)
// 	    test.error(toString(_("Thread [%d][%d] : Group \"DCACHE\" must be implemented.\n"),i,j));

	  if (_implement_group [i][j][GROUP_ICACHE             ] == true)
	    test.error(toString(_("Thread [%d][%d] : Group \"ICACHE\" can't be implemented : not yet supported.\n"),i,j));

// 	  if (_implement_group [i][j][GROUP_MAC                ] == true)
// 	    test.error(toString(_("Thread [%d][%d] : Group \"MAC\" can't be implemented here. See functionnal_unit.\n"),i,j));

	  if (_implement_group [i][j][GROUP_DEBUG              ] == true)
	    test.error(toString(_("Thread [%d][%d] : Group \"DEBUG\" can't be implemented : not yet supported.\n"),i,j));
	  
	  if (_implement_group [i][j][GROUP_PERFORMANCE_COUNTER] == true)
	    test.error(toString(_("Thread [%d][%d] : Group \"PERFORMANCE_COUNTER\" can't be implemented : not yet supported.\n"),i,j));
	  
	  if (_implement_group [i][j][GROUP_POWER_MANAGEMENT   ] == true)
	    test.error(toString(_("Thread [%d][%d] : Group \"POWER_MANAGEMENT\" can't be implemented : not yet supported.\n"),i,j));

	  if (_implement_group [i][j][GROUP_PIC                ] == true)
	    test.error(toString(_("Thread [%d][%d] : Group \"PIC\" can't be implemented : not yet supported.\n"),i,j));

	  if (_implement_group [i][j][GROUP_TICK_TIMER         ] == true)
	    test.error(toString(_("Thread [%d][%d] : Group \"TICK_TIMER\" can't be implemented : not yet supported.\n"),i,j));

	  if (_implement_group [i][j][GROUP_FLOATING_POINT     ] == true)
	    test.error(toString(_("Thread [%d][%d] : Group \"FLOATIN_POINT\" can't be implemented : not yet supported.\n"),i,j));

	  if (_implement_group [i][j][GROUP_RESERVED_1         ] == true)
	    test.error(toString(_("Thread [%d][%d] : Group \"RESERVED_1\" can't be implemented.\n"),i,j));
	  
	  if (_implement_group [i][j][GROUP_RESERVED_2         ] == true)
	    test.error(toString(_("Thread [%d][%d] : Group \"RESERVED_2\" can't be implemented.\n"),i,j));
	  
	  if (_implement_group [i][j][GROUP_RESERVED_3         ] == true)
	    test.error(toString(_("Thread [%d][%d] : Group \"RESERVED_3\" can't be implemented.\n"),i,j));
	  
	  if (_implement_group [i][j][GROUP_RESERVED_4         ] == true)
	    test.error(toString(_("Thread [%d][%d] : Group \"RESERVED_4\" can't be implemented.\n"),i,j));
	  
	  if (_implement_group [i][j][GROUP_RESERVED_5         ] == true)
	    test.error(toString(_("Thread [%d][%d] : Group \"RESERVED_5\" can't be implemented.\n"),i,j));
	  
	  if (_implement_group [i][j][GROUP_RESERVED_6         ] == true)
	    test.error(toString(_("Thread [%d][%d] : Group \"RESERVED_6\" can't be implemented.\n"),i,j));
	  
	  if (_implement_group [i][j][GROUP_RESERVED_7         ] == true)
	    test.error(toString(_("Thread [%d][%d] : Group \"RESERVED_7\" can't be implemented.\n"),i,j));
	  
	  if (_implement_group [i][j][GROUP_RESERVED_8         ] == true)
	    test.error(toString(_("Thread [%d][%d] : Group \"RESERVED_8\" can't be implemented.\n"),i,j));
	  
	  if (_implement_group [i][j][GROUP_RESERVED_9         ] == true)
	    test.error(toString(_("Thread [%d][%d] : Group \"RESERVED_9\" can't be implemented.\n"),i,j));
	  
	  if (_implement_group [i][j][GROUP_RESERVED_10        ] == true)
	    test.error(toString(_("Thread [%d][%d] : Group \"RESERVED_10\" can't be implemented.\n"),i,j));
	  
	  if (_implement_group [i][j][GROUP_RESERVED_11        ] == true)
	    test.error(toString(_("Thread [%d][%d] : Group \"RESERVED_11\" can't be implemented.\n"),i,j));
	  
	  if (_implement_group [i][j][GROUP_RESERVED_12        ] == true)
	    test.error(toString(_("Thread [%d][%d] : Group \"RESERVED_12\" can't be implemented.\n"),i,j));
	  
// 	  if (_implement_group [i][j][GROUP_CUSTOM_1           ] == true)
// 	    test.error(toString(_("Thread [%d][%d] : Group \"CUSTOM_1\" can't be implemented here. See functionnal_unit.\n"),i,j));
	  
// 	  if (_implement_group [i][j][GROUP_CUSTOM_2           ] == true)
// 	    test.error(toString(_("Thread [%d][%d] : Group \"CUSTOM_2\" can't be implemented here. See functionnal_unit.\n"),i,j));
	  
// 	  if (_implement_group [i][j][GROUP_CUSTOM_3           ] == true)
// 	    test.error(toString(_("Thread [%d][%d] : Group \"CUSTOM_3\" can't be implemented here. See functionnal_unit.\n"),i,j));
	  
// 	  if (_implement_group [i][j][GROUP_CUSTOM_4           ] == true)
// 	    test.error(toString(_("Thread [%d][%d] : Group \"CUSTOM_4\" can't be implemented here. See functionnal_unit.\n"),i,j));
	  
// 	  if (_implement_group [i][j][GROUP_CUSTOM_5           ] == true)
// 	    test.error(toString(_("Thread [%d][%d] : Group \"CUSTOM_5\" can't be implemented here. See functionnal_unit.\n"),i,j));
	  
// 	  if (_implement_group [i][j][GROUP_CUSTOM_6           ] == true)
// 	    test.error(toString(_("Thread [%d][%d] : Group \"CUSTOM_6\" can't be implemented here. See functionnal_unit.\n"),i,j));
	  
// 	  if (_implement_group [i][j][GROUP_CUSTOM_7           ] == true)
// 	    test.error(toString(_("Thread [%d][%d] : Group \"CUSTOM_7\" can't be implemented here. See functionnal_unit.\n"),i,j));
	  
// 	  if (_implement_group [i][j][GROUP_CUSTOM_8           ] == true)
// 	    test.error(toString(_("Thread [%d][%d] : Group \"CUSTOM_8\" can't be implemented here. See functionnal_unit.\n"),i,j));
	}

    log_end(Special_Register_unit,FUNCTION);

    return test;
  };

}; // end namespace special_register_unit
}; // end namespace ooo_engine
}; // end namespace multi_ooo_engine
}; // end namespace core

}; // end namespace behavioural
}; // end namespace morpheo              
