Sequencer.hh (6846:60e0df8086f0) Sequencer.hh (6859:5de565c4b7bd)
1
2/*
3 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
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

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

83 void readCallback(const Address& address, DataBlock& data);
84
85 // called by Tester or Simics
86 int64_t makeRequest(const RubyRequest & request);
87 int isReady(const RubyRequest& request);
88 bool empty() const;
89
90 void print(ostream& out) const;
1
2/*
3 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
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

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

83 void readCallback(const Address& address, DataBlock& data);
84
85 // called by Tester or Simics
86 int64_t makeRequest(const RubyRequest & request);
87 int isReady(const RubyRequest& request);
88 bool empty() const;
89
90 void print(ostream& out) const;
91 void printStats(ostream & out) const;
91 void checkCoherence(const Address& address);
92
93 // bool getRubyMemoryValue(const Address& addr, char* value, unsigned int size_in_bytes);
94 // bool setRubyMemoryValue(const Address& addr, char *value, unsigned int size_in_bytes);
95
96 void removeRequest(SequencerRequest* request);
97private:
98 // Private Methods

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

122
123 Map<Address, SequencerRequest*> m_writeRequestTable;
124 Map<Address, SequencerRequest*> m_readRequestTable;
125 // Global outstanding request count, across all request tables
126 int m_outstanding_count;
127 bool m_deadlock_check_scheduled;
128 int m_atomic_reads;
129 int m_atomic_writes;
92 void checkCoherence(const Address& address);
93
94 // bool getRubyMemoryValue(const Address& addr, char* value, unsigned int size_in_bytes);
95 // bool setRubyMemoryValue(const Address& addr, char *value, unsigned int size_in_bytes);
96
97 void removeRequest(SequencerRequest* request);
98private:
99 // Private Methods

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

123
124 Map<Address, SequencerRequest*> m_writeRequestTable;
125 Map<Address, SequencerRequest*> m_readRequestTable;
126 // Global outstanding request count, across all request tables
127 int m_outstanding_count;
128 bool m_deadlock_check_scheduled;
129 int m_atomic_reads;
130 int m_atomic_writes;
131
132 int m_store_waiting_on_load_cycles;
133 int m_store_waiting_on_store_cycles;
134 int m_load_waiting_on_store_cycles;
135 int m_load_waiting_on_load_cycles;
130};
131
132// Output operator declaration
133ostream& operator<<(ostream& out, const Sequencer& obj);
134
135// ******************* Definitions *******************
136
137// Output operator definition
138extern inline
139ostream& operator<<(ostream& out, const Sequencer& obj)
140{
141 obj.print(out);
142 out << flush;
143 return out;
144}
145
146#endif //SEQUENCER_H
147
136};
137
138// Output operator declaration
139ostream& operator<<(ostream& out, const Sequencer& obj);
140
141// ******************* Definitions *******************
142
143// Output operator definition
144extern inline
145ostream& operator<<(ostream& out, const Sequencer& obj)
146{
147 obj.print(out);
148 out << flush;
149 return out;
150}
151
152#endif //SEQUENCER_H
153