Re: [Gems-users] How to add to CoherenceRequestType?


Date: Fri, 19 Jan 2007 14:11:12 -0600
From: "Lei Yang" <lya755@xxxxxxxxxxxxxxxxxxxx>
Subject: Re: [Gems-users] How to add to CoherenceRequestType?
That's right. Thanks Mike!
 
Lei
----- Original Message -----
From: Mike Marty
Sent: Friday, January 19, 2007 9:09 AM
Subject: Re: [Gems-users] How to add to CoherenceRequestType?

You shouldn't modify a generated file.  It will just get overwritten the next time you compile your protocol. 
 
Add the request type to the -msg.sm file for whatever protocol you are using
 
--Mike
 
----- Original Message -----
From: Lei Yang
Sent: Thursday, January 18, 2007 11:34 PM
Subject: [Gems-users] How to add to CoherenceRequestType?

Dear List,
 
I wanted to add a new type for CoherenceRequestType and use that in my slicc .sm file. I did this by adding a new enum in generated file CoherenceRequestType.h as follows:
 
enum CoherenceRequestType {
  CoherenceRequestType_FIRST,
  CoherenceRequestType_GETX = CoherenceRequestType_FIRST,
  CoherenceRequestType_UPGRADE,
  CoherenceRequestType_GETS,
  CoherenceRequestType_GET_INSTR,
  CoherenceRequestType_PUTX,
  CoherenceRequestType_PUTS,
  CoherenceRequestType_INV,
  CoherenceRequestType_INV_S,
  CoherenceRequestType_L1_DG,
  CoherenceRequestType_WB_ACK,
  CoherenceRequestType_EXE_ACK,
  CoherenceRequestType_NUM,
// a new request type
  CoherenceRequestType_FRED
};
 
Then when I attempt to compile the protocol, I got an error message indicating that Type 'CoherenceRequestType' does not have enumeration 'FRED'. I also tried to modify protocols/RubySlicc_Exports.sm,
 
enumeration(GenericRequestType, desc="...", default="GenericRequestType_NULL") {
  GETS,        desc="gets request";
  GET_INSTR,   desc="get instr request";
  GETX,        desc="getx request";
  UPGRADE,     desc="upgrade request";
  DOWNGRADE,   desc="downgrade request";
  INV,         desc="invalidate request";
  INV_S,       desc="invalidate shared copy request";
  PUTS,        desc="puts request";
  PUTO,        desc="puto request";
  PUTX,        desc="putx request";
  L2_PF,       desc="L2 prefetch";
  LD,          desc="Load";
  ST,          desc="Store";
  ATOMIC,      desc="Atomic Load/Store";
  IFETCH,      desc="Instruction fetch";
  IO,          desc="I/O";
// a new request type
  FRED,         desc="FRED request";
  NACK,        desc="Nack";
  REPLACEMENT, desc="Replacement";
  WB_ACK,      desc="WriteBack ack";
  EXE_ACK,     desc="Execlusive ack";
  COMMIT,      desc="Commit version";
  LD_XACT,     desc="Transactional Load";
  LDX_XACT,     desc="Transactional Load-Intend-Modify";
  ST_XACT,     desc="Transactional Store";
  BEGIN_XACT,  desc="Begin Transaction";
  COMMIT_XACT, desc="Commit Transaction";
  ABORT_XACT,  desc="Abort Transaction";
  NULL,        desc="null request type";
}
That gives me the same error. I suspect that this is a slicc limitation. Could anyone please give me a hint on how to add a new type to CoherenceRequestType?
 
Thanks in advance!
 
Lei


_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/" to your search.

[← Prev in Thread] Current Thread [Next in Thread→]