1
0

tilelink2: transfers must never exceed 4kB

This commit is contained in:
Wesley W. Terpstra 2016-08-30 10:40:35 -07:00
parent dd27a60daa
commit 32894a8e20

View File

@ -50,6 +50,7 @@ case class TransferSizes(min: Int, max: Int)
require (min != 0 || max == 0) require (min != 0 || max == 0)
require (max == 0 || isPow2(max)) require (max == 0 || isPow2(max))
require (min == 0 || isPow2(min)) require (min == 0 || isPow2(min))
require (max <= TransferSizes.maxAllowed)
def none = min == 0 def none = min == 0
def contains(x: Int) = isPow2(x) && min <= x && x <= max def contains(x: Int) = isPow2(x) && min <= x && x <= max
@ -69,6 +70,7 @@ case class TransferSizes(min: Int, max: Int)
object TransferSizes { object TransferSizes {
def apply(x: Int) = new TransferSizes(x) def apply(x: Int) = new TransferSizes(x)
val none = new TransferSizes(0) val none = new TransferSizes(0)
val maxAllowed = 4096 // transfers larger than 4kB are forbidden in TL2
implicit def asBool(x: TransferSizes) = !x.none implicit def asBool(x: TransferSizes) = !x.none
} }