Check.hh (10920:58fbfddff18d) Check.hh (11025:4872dbdea907)
1/*
2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
3 * Copyright (c) 2009 Advanced Micro Devices, Inc.
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met: redistributions of source code must retain the above copyright

--- 31 unchanged lines hidden (view full) ---

40class SubBlock;
41
42const int CHECK_SIZE_BITS = 2;
43const int CHECK_SIZE = (1 << CHECK_SIZE_BITS);
44
45class Check
46{
47 public:
1/*
2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
3 * Copyright (c) 2009 Advanced Micro Devices, Inc.
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met: redistributions of source code must retain the above copyright

--- 31 unchanged lines hidden (view full) ---

40class SubBlock;
41
42const int CHECK_SIZE_BITS = 2;
43const int CHECK_SIZE = (1 << CHECK_SIZE_BITS);
44
45class Check
46{
47 public:
48 Check(const Address& address, const Address& pc, int _num_writers,
48 Check(Addr address, Addr pc, int _num_writers,
49 int _num_readers, RubyTester* _tester);
50
51 void initiate(); // Does Action or Check or nether
52 void performCallback(NodeID proc, SubBlock* data, Cycles curTime);
49 int _num_readers, RubyTester* _tester);
50
51 void initiate(); // Does Action or Check or nether
52 void performCallback(NodeID proc, SubBlock* data, Cycles curTime);
53 const Address& getAddress() { return m_address; }
54 void changeAddress(const Address& address);
53 Addr getAddress() const { return m_address; }
54 void changeAddress(Addr address);
55
56 void print(std::ostream& out) const;
57
58 private:
59 void initiateFlush();
60 void initiatePrefetch();
61 void initiateAction();
62 void initiateCheck();
63
64 void pickValue();
65 void pickInitiatingNode();
66
67 void debugPrint();
68
69 TesterStatus m_status;
70 uint8_t m_value;
71 int m_store_count;
72 NodeID m_initiatingNode;
55
56 void print(std::ostream& out) const;
57
58 private:
59 void initiateFlush();
60 void initiatePrefetch();
61 void initiateAction();
62 void initiateCheck();
63
64 void pickValue();
65 void pickInitiatingNode();
66
67 void debugPrint();
68
69 TesterStatus m_status;
70 uint8_t m_value;
71 int m_store_count;
72 NodeID m_initiatingNode;
73 Address m_address;
74 Address m_pc;
73 Addr m_address;
74 Addr m_pc;
75 RubyAccessMode m_access_mode;
76 int m_num_writers;
77 int m_num_readers;
78 RubyTester* m_tester_ptr;
79};
80
81inline std::ostream&
82operator<<(std::ostream& out, const Check& obj)
83{
84 obj.print(out);
85 out << std::flush;
86 return out;
87}
88
89#endif // __CPU_RUBYTEST_CHECK_HH__
75 RubyAccessMode m_access_mode;
76 int m_num_writers;
77 int m_num_readers;
78 RubyTester* m_tester_ptr;
79};
80
81inline std::ostream&
82operator<<(std::ostream& out, const Check& obj)
83{
84 obj.print(out);
85 out << std::flush;
86 return out;
87}
88
89#endif // __CPU_RUBYTEST_CHECK_HH__