1
0

tilelink2: define is{Request,Response} based on spec

This commit is contained in:
Wesley W. Terpstra
2017-03-20 13:27:24 -07:00
parent 778e189bba
commit 278f6fea24
3 changed files with 15 additions and 3 deletions

View File

@ -57,7 +57,7 @@ class TLEdge(
}
}
def hasFollowUp(x: TLChannel): Bool = {
def isRequest(x: TLChannel): Bool = {
x match {
case a: TLBundleA => Bool(true)
case b: TLBundleB => Bool(true)
@ -71,6 +71,18 @@ class TLEdge(
}
}
def isResponse(x: TLChannel): Bool = {
x match {
case a: TLBundleA => Bool(false)
case b: TLBundleB => Bool(false)
case c: TLBundleC => !c.opcode(2) || !c.opcode(1)
// opcode =/= TLMessages.Release &&
// opcode =/= TLMessages.ReleaseData
case d: TLBundleD => Bool(true) // Grant isResponse + isRequest
case e: TLBundleE => Bool(true)
}
}
def hasData(x: TLChannel): Bool = {
val opdata = x match {
case a: TLBundleA => !a.opcode(2)