1
0

Add atomics support to DTS JSON file.

This commit is contained in:
Richard Xia
2017-10-18 15:16:01 -07:00
parent e9e05b5f3b
commit 5a951799aa
4 changed files with 11 additions and 8 deletions

View File

@ -26,12 +26,12 @@ object JSON
}
private def helper(res: ResourceValue)(implicit path: Map[String, String]): Seq[String] = res match {
case ResourceAddress(address, ResourcePermissions(r, w, x, c)) =>
case ResourceAddress(address, ResourcePermissions(r, w, x, c, a)) =>
AddressRange.fromSets(address).map { case AddressRange(base, size) =>
s"""{"base":${base},"size":${size},"r":${r},"w":${w},"x":${x},"c":${c}}"""}
case ResourceMapping(address, offset, ResourcePermissions(r, w, x, c)) =>
s"""{"base":${base},"size":${size},"r":${r},"w":${w},"x":${x},"c":${c},"a":${a}}"""}
case ResourceMapping(address, offset, ResourcePermissions(r, w, x, c, a)) =>
AddressRange.fromSets(address).map { case AddressRange(base, size) =>
s"""{"base":${base},"size":${size},"offset":${offset},"r":${r},"w":${w},"x":${x},"c":${c}}"""}
s"""{"base":${base},"size":${size},"offset":${offset},"r":${r},"w":${w},"x":${x},"c":${c},"a":${a}}"""}
case ResourceInt(value) => Seq(value.toString)
case ResourceString(value) => Seq("\"" + value + "\"")
case ResourceReference(value) => Seq("\"&" + path(value) + "\"")

View File

@ -12,8 +12,9 @@ sealed trait ResourceValue
* @param w writable.
* @param x executable.
* @param c cacheable.
* @param a supports all atomic operations.
*/
case class ResourcePermissions(r: Boolean, w: Boolean, x: Boolean, c: Boolean) // Not part of DTS
case class ResourcePermissions(r: Boolean, w: Boolean, x: Boolean, c: Boolean, a: Boolean) // Not part of DTS
/** An address space description.
* @param address the address space.