machine(Directory, "Network_test Directory")
-:
+ : MessageBuffer * requestToDir, network="From", virtual_network="0",
+ ordered="false", vnet_type = "request";
+ MessageBuffer * forwardToDir, network="From", virtual_network="1",
+ ordered="false", vnet_type = "forward";
+ MessageBuffer * responseToDir, network="From", virtual_network="2",
+ ordered="false", vnet_type = "response";
{
-
- MessageBuffer requestToDir, network="From", virtual_network="0", ordered="false";
- MessageBuffer forwardToDir, network="From", virtual_network="1", ordered="false";
- MessageBuffer responseToDir, network="From", virtual_network="2", ordered="false";
-
// STATES
state_declaration(State, desc="Directory states", default="Directory_State_I") {
// Base states
// TYPES
// DirectoryEntry
- structure(Entry, desc="...") {
+ structure(Entry, desc="...", interface="AbstractEntry") {
State DirectoryState, desc="Directory state";
DataBlock DataBlk, desc="data for the block";
}
}
+ AccessPermission getAccessPermission(Address addr) {
+ return AccessPermission:NotPresent;
+ }
+
+ void setAccessPermission(Address addr, State state) {
+ }
+
+ DataBlock getDataBlock(Address addr), return_by_ref="yes" {
+ error("Network Test does not support get data block.");
+ }
+
// ** IN_PORTS **
in_port(requestQueue_in, RequestMsg, requestToDir) {
if (requestQueue_in.isReady()) {
peek(requestQueue_in, RequestMsg) {
if (in_msg.Type == CoherenceRequestType:MSG) {
- trigger(Event:Receive_Request, in_msg.Address);
+ trigger(Event:Receive_Request, in_msg.Addr);
} else {
error("Invalid message");
}
if (forwardQueue_in.isReady()) {
peek(forwardQueue_in, RequestMsg) {
if (in_msg.Type == CoherenceRequestType:MSG) {
- trigger(Event:Receive_Forward, in_msg.Address);
+ trigger(Event:Receive_Forward, in_msg.Addr);
} else {
error("Invalid message");
}
if (responseQueue_in.isReady()) {
peek(responseQueue_in, RequestMsg) {
if (in_msg.Type == CoherenceRequestType:MSG) {
- trigger(Event:Receive_Response, in_msg.Address);
+ trigger(Event:Receive_Response, in_msg.Addr);
} else {
error("Invalid message");
}