summaryrefslogtreecommitdiff
path: root/src/mem/ruby/interfaces
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/ruby/interfaces')
-rw-r--r--src/mem/ruby/interfaces/mf_api.hh165
1 files changed, 0 insertions, 165 deletions
diff --git a/src/mem/ruby/interfaces/mf_api.hh b/src/mem/ruby/interfaces/mf_api.hh
deleted file mode 100644
index c04a39308..000000000
--- a/src/mem/ruby/interfaces/mf_api.hh
+++ /dev/null
@@ -1,165 +0,0 @@
-
-/*
- * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met: redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer;
- * redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution;
- * neither the name of the copyright holders nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*------------------------------------------------------------------------*/
-/* Includes */
-/*------------------------------------------------------------------------*/
-
-/*------------------------------------------------------------------------*/
-/* Macro declarations */
-/*------------------------------------------------------------------------*/
-
-#ifndef _MF_MEMORY_API_H_
-#define _MF_MEMORY_API_H_
-
-#ifdef SIMICS30
-#ifndef pa_t
-typedef physical_address_t pa_t;
-typedef physical_address_t la_t;
-#endif
-#endif
-
-/**
- * Defines types of memory requests
- */
-typedef enum OpalMemop {
- OPAL_LOAD,
- OPAL_STORE,
- OPAL_IFETCH,
- OPAL_ATOMIC,
-} OpalMemop_t;
-
-/*------------------------------------------------------------------------*/
-/* Class declaration(s) */
-/*------------------------------------------------------------------------*/
-
-/**
-* structure which provides an interface between ruby and opal.
-*/
-typedef struct mf_opal_api {
- /**
- * @name Methods
- */
- //@{
- /**
- * notify processor model that data from address address is available at proc
- */
- void (*hitCallback)( int cpuNumber, pa_t phys_address, OpalMemop_t type, int thread );
-
- /**
- * notify opal that ruby is loaded, or removed
- */
- void (*notifyCallback)( int status );
-
- /**
- * query for the number of instructions executed on a given processor.
- */
- integer_t (*getInstructionCount)( int cpuNumber );
-
- // for printing out debug info on crash
- void (*printDebug)();
-
- /** query Opal for the current time */
- uint64 (*getOpalTime)(int cpuNumber);
-
- /** For WATTCH power stats */
- // Called whenever L2 is accessed
- void (*incrementL2Access)(int cpuNumber);
- // Called whenever prefetcher is accessed
- void (*incrementPrefetcherAccess)(int cpuNumber, int num_prefetches, int isinstr);
-
- /* Called whenever there's an L2 miss */
- void (*notifyL2Miss)(int cpuNumber, physical_address_t physicalAddr, OpalMemop_t type, int tagexists);
-
- //@}
-} mf_opal_api_t;
-
-typedef struct mf_ruby_api {
- /**
- * @name Methods
- */
- //@{
- /**
- * Check to see if the system is ready for more requests
- */
- int (*isReady)( int cpuNumber, la_t logicalAddr, pa_t physicalAddr, OpalMemop_t typeOfRequest, int thread );
-
- /**
- * Make a 'mandatory' request to the memory hierarchy
- */
- void (*makeRequest)( int cpuNumber, la_t logicalAddr, pa_t physicalAddr,
- int requestSize, OpalMemop_t typeOfRequest,
- la_t virtualPC, int isPriv, int thread);
-
- /**
- * Make a prefetch request to the memory hierarchy
- */
- void (*makePrefetch)( int cpuNumber, la_t logicalAddr, pa_t physicalAddr,
- int requestSize, OpalMemop_t typeOfRequest,
- la_t virtualPC, int isPriv, int thread);
-
- /**
- * Ask the memory hierarchy for 'stale' data that can be used for speculation
- * Returns true (1) if the tag matches, false (0) if not.
- */
- int (*staleDataRequest)( int cpuNumber, pa_t physicalAddr,
- int requestSize, int8 *buffer );
-
- /**
- * Advance ruby's cycle time one step
- */
- void (*advanceTime)( void );
-
- /**
- * Get ruby's cycle time count.
- */
- uint64 (*getTime)( void );
-
- /** prints Ruby's outstanding request table */
- void (*printProgress)(int cpuNumber);
-
- /**
- * notify ruby that opal is loaded, or removed
- */
- void (*notifyCallback)( int status );
-
- // Returns the number of outstanding request
- int (*getNumberOutstanding)(int cpuNumber);
-
- // Returns the number of outstanding demand requests
- int (*getNumberOutstandingDemand)(int cpuNumber );
-
- // Returns the number of outstanding prefetch request
- int (*getNumberOutstandingPrefetch)(int cpuNumber );
-
-
- //@}
-} mf_ruby_api_t;
-
-#endif //_MF_MEMORY_API_H_