[Gems-users] How to add to CoherenceRequestType?


Date: Thu, 18 Jan 2007 23:34:23 -0600
From: "Lei Yang" <lya755@xxxxxxxxxxxxxxxxxxxx>
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

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