/*
- * Copyright (c) 2013-2015 ARM Limited
+ * Copyright (c) 2013-2016 ARM Limited
* All rights reserved
*
* The license below extends only to copyright in the software and shall
#ifndef __MEM_SNOOP_FILTER_HH__
#define __MEM_SNOOP_FILTER_HH__
+#include <unordered_map>
#include <utility>
-#include "base/hashmap.hh"
#include "mem/packet.hh"
#include "mem/port.hh"
#include "mem/qport.hh"
* reqLookupResult.
*
* @param will_retry This request will retry on this bus / snoop filter
- * @param cpkt Request packet, merely for sanity checking
+ * @param addr Packet address, merely for sanity checking
*/
- void finishRequest(bool will_retry, const Packet* cpkt);
+ void finishRequest(bool will_retry, Addr addr, bool is_secure);
/**
* Handle an incoming snoop from below (the master port). These
/**
* HashMap of SnoopItems indexed by line address
*/
- typedef m5::hash_map<Addr, SnoopItem> SnoopFilterCache;
+ typedef std::unordered_map<Addr, SnoopItem> SnoopFilterCache;
/**
* Simple factory methods for standard return values.
/** Max capacity in terms of cache blocks tracked, for sanity checking */
const unsigned maxEntryCount;
+ /**
+ * Use the lower bits of the address to keep track of the line status
+ */
+ enum LineStatus {
+ /** block holds data from the secure memory space */
+ LineSecure = 0x01,
+ };
+
/** Statistics */
Stats::Scalar totRequests;
Stats::Scalar hitSingleRequests;