summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Waterman2015-08-13 16:12:35 -0700
committerAndrew Waterman2015-08-13 16:13:01 -0700
commitf676dffc8766ce3d4df390b7c0802ab5b60385a8 (patch)
tree907bbcfdf6b80c0214e98207e3f624b912815c1f /src
parentad96b03f84d0182f5e74f11117331d69752ea0a0 (diff)
Tighten permissions on some classes & members
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/Chisel/Builder.scala19
-rw-r--r--src/main/scala/Chisel/Core.scala12
-rw-r--r--src/main/scala/Chisel/Emitter.scala2
3 files changed, 16 insertions, 17 deletions
diff --git a/src/main/scala/Chisel/Builder.scala b/src/main/scala/Chisel/Builder.scala
index 0d25b177..3a6db75e 100644
--- a/src/main/scala/Chisel/Builder.scala
+++ b/src/main/scala/Chisel/Builder.scala
@@ -36,27 +36,26 @@ private class IdGen {
private[Chisel] trait HasId {
private[Chisel] val _id = Builder.idGen.next
- def setRef() = Builder.globalRefMap.setRef(this, s"T_${_id}")
- def setRef(imm: Immediate) = Builder.globalRefMap.setRef(this, imm)
- def setRef(name: String) = Builder.globalRefMap.setRef(this, name)
- def setRef(parent: HasId, name: String) = Builder.globalRefMap.setField(parent, this, name)
- def setRef(parent: HasId, index: Int) = Builder.globalRefMap.setIndex(parent, this, index)
+ private[Chisel] def setRef() = Builder.globalRefMap.setRef(this, s"T_${_id}")
+ private[Chisel] def setRef(imm: Immediate) = Builder.globalRefMap.setRef(this, imm)
+ private[Chisel] def setRef(name: String) = Builder.globalRefMap.setRef(this, name)
+ private[Chisel] def setRef(parent: HasId, name: String) = Builder.globalRefMap.setField(parent, this, name)
+ private[Chisel] def setRef(parent: HasId, index: Int) = Builder.globalRefMap.setIndex(parent, this, index)
}
class RefMap {
private val _refmap = new HashMap[Long,Immediate]()
- def setRef(id: HasId, ref: Immediate): Unit =
+ private[Chisel] def setRef(id: HasId, ref: Immediate): Unit =
_refmap(id._id) = ref
- def setRef(id: HasId, name: String): Unit =
+ private[Chisel] def setRef(id: HasId, name: String): Unit =
if (!_refmap.contains(id._id)) setRef(id, Ref(name))
- def setField(parentid: HasId, id: HasId, name: String): Unit = {
+ private[Chisel] def setField(parentid: HasId, id: HasId, name: String): Unit =
_refmap(id._id) = Slot(Alias(parentid), name)
- }
- def setIndex(parentid: HasId, id: HasId, index: Int): Unit =
+ private[Chisel] def setIndex(parentid: HasId, id: HasId, index: Int): Unit =
_refmap(id._id) = Index(Alias(parentid), index)
def apply(id: HasId): Immediate = _refmap(id._id)
diff --git a/src/main/scala/Chisel/Core.scala b/src/main/scala/Chisel/Core.scala
index 178eed0f..d89a4557 100644
--- a/src/main/scala/Chisel/Core.scala
+++ b/src/main/scala/Chisel/Core.scala
@@ -6,7 +6,7 @@ import Builder.pushOp
import Builder.dynamicContext
import PrimOp._
-object Literal {
+private object Literal {
def sizeof(x: BigInt): Int = x.bitLength
def decodeBase(base: Char): Int = base match {
@@ -138,7 +138,7 @@ object Mem {
}
}
-class Mem[T <: Data](t: T, val length: Int) extends Aggregate(NO_DIR) with VecLike[T] {
+sealed class Mem[T <: Data](t: T, val length: Int) extends Aggregate(NO_DIR) with VecLike[T] {
def apply(idx: Int): T = apply(UInt(idx))
def apply(idx: UInt): T = {
val x = t.cloneType
@@ -165,7 +165,7 @@ object SeqMem {
}
// For now, implement SeqMem in terms of Mem
-class SeqMem[T <: Data](t: T, n: Int) {
+sealed class SeqMem[T <: Data](t: T, n: Int) {
private val mem = Mem(t, n)
def read(addr: UInt): T = mem.read(Reg(next = addr))
@@ -197,12 +197,12 @@ object Vec {
apply(gen, n)
}
-abstract class Aggregate(dirArg: Direction) extends Data(dirArg) {
+sealed abstract class Aggregate(dirArg: Direction) extends Data(dirArg) {
def cloneTypeWidth(width: Width): this.type = cloneType
def width: Width = flatten.map(_.width).reduce(_ + _)
}
-class Vec[T <: Data](gen: => T, val length: Int)
+sealed class Vec[T <: Data](gen: => T, val length: Int)
extends Aggregate(gen.dir) with VecLike[T] {
private val self = IndexedSeq.fill(length)(gen)
@@ -303,7 +303,7 @@ object BitPat {
}
}
-class BitPat(val value: BigInt, val mask: BigInt, width: Int) {
+sealed class BitPat(val value: BigInt, val mask: BigInt, width: Int) {
def getWidth: Int = width
def === (other: UInt): Bool = UInt(value) === (other & UInt(mask))
def != (other: UInt): Bool = !(this === other)
diff --git a/src/main/scala/Chisel/Emitter.scala b/src/main/scala/Chisel/Emitter.scala
index 0e75c9a9..2fbb5d22 100644
--- a/src/main/scala/Chisel/Emitter.scala
+++ b/src/main/scala/Chisel/Emitter.scala
@@ -1,6 +1,6 @@
package Chisel
-class Emitter(circuit: Circuit) {
+private class Emitter(circuit: Circuit) {
override def toString = res.toString
def join(parts: Seq[String], sep: String): StringBuilder =