summaryrefslogtreecommitdiff
path: root/src/mem/ruby/structures/SBETable.hh
blob: cf21acd714f375e2e6aca16511dc7ba6faf9f924 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#ifndef __MEM_RUBY_STRUCTURES_SBETABLE_HH__
#define __MEM_RUBY_STRUCTURES_SBETABLE_HH__

#include <iostream>
#include <unordered_map>

#include "mem/ruby/common/Address.hh"
#include "mem/protocol/DataBlock.hh"

class SBE
{
  public:
    SBE() {}

    Addr m_addr;
    DataBlock m_DataBlk;
};

class SBETable
{
  public:
    SBETable() {}

    // bool isPresent(Addr address) const;
    void allocate(Addr address);
    // void deallocate(Addr address);

  private:
    std::unordered_map<Addr, SBE> m_map;
};

inline void
SBETable::allocate(Addr address)
{
    // assert(!isPresent(address));
    m_map[address] = SBE();
    m_map[address].m_addr = address;
}

#endif // __MEM_RUBY_STRUCTURES_SBETABLE_HH__