common.c 1.39 KB
/*
 * Copyright (C) 1996-1998 by the Board of Trustees
 *    of Leland Stanford Junior University.
 * 
 * This file is part of the SimOS distribution. 
 * See LICENSE file for terms of the license. 
 *
 */

/*****************************************************************
 *
 * 
 * Author: $Author: blythe $
 * Date: $Date: 2002/05/29 01:09:11 $
 *****************************************************************/
#include <string.h>
#include "syslimits.h"
#include "machine_params.h"
#include "sim_error.h"
#include "simutil.h"
#include "../memsys.h"

MemsysVector memsysVec;

extern void   BusUmaInit(void);
extern void   Chal2MemInit(void);
extern void   NumaInit(void);
extern void   PerfectMemInit(void);
extern void   FlashliteInit(void);

/* 
 * Initialize the selected memory system. Each one is responsible to
 * initialize the memsysVec indirection entries.  
 */

void
MemsysInit(void)
{
   if (!strcmp(MEMSYS_MODEL, "Numa")) {
      NumaInit();
   } else if (!strcmp(MEMSYS_MODEL, "BusUma")) {
      BusUmaInit();
   } else if (!strcmp(MEMSYS_MODEL, "Perfect")) {
      PerfectMemInit();
#if defined(SIM_X86)
   } else if (!strcmp(MEMSYS_MODEL, "Chal2")) {
      Chal2MemInit();
#endif
#if defined(SIM_MIPS32) || defined(SIM_MIPS64)
   } else if (!strcmp(MEMSYS_MODEL, "Flashlite")) {
      FlashliteInit();
#endif
   } else {
      CPUError("Unknown MemSys configuration value: %s\n", MEMSYS_MODEL);
   }
}