Sockeye: Add possibility to add reserved blocks
[barrelfish] / tools / sockeye / SockeyeAST.hs
index bf7b359..535ddf3 100644 (file)
@@ -16,7 +16,6 @@
 module SockeyeAST where
 
 import Data.Map (Map)
-import Data.Set (Set)
 
 newtype SockeyeSpec = SockeyeSpec
     { modules :: Map String Module }
@@ -43,11 +42,11 @@ instance Show ModuleParamType where
 data Port
     = InputPort 
         { portId    :: Identifier
-        , portWidth :: !Word
+        , portWidth :: !Integer
         }
     | OutputPort
         { portId    :: Identifier
-        , portWidth :: !Word
+        , portWidth :: !Integer
         }
     | MultiPort (For Port)
     deriving (Show)
@@ -64,8 +63,8 @@ data ModuleInst
     deriving (Show)
 
 data ModuleArg
-    = AddressArg !Word
-    | NaturalArg !Word
+    = AddressArg !Integer
+    | NaturalArg !Integer
     | ParamArg !String
     deriving (Show)
 
@@ -98,6 +97,7 @@ data NodeSpec = NodeSpec
     { nodeType  :: Maybe NodeType
     , accept    :: [BlockSpec]
     , translate :: [MapSpec]
+    , reserved  :: [BlockSpec]
     , overlay   :: Maybe OverlaySpec
     } deriving (Show)
 
@@ -115,7 +115,7 @@ data BlockSpec
         }
     | LengthBlock
         { base :: Address
-        , bits :: !Word
+        , bits :: !Integer
         }
     deriving (Show)
 
@@ -129,11 +129,11 @@ data MapSpec
 data OverlaySpec
     = OverlaySpec
         { over  :: Identifier
-        , width :: !Word
+        , width :: !Integer
         } deriving (Show)
 
 data Address
-    = LiteralAddress !Word
+    = LiteralAddress !Integer
     | ParamAddress !String
     deriving (Show)
 
@@ -150,6 +150,6 @@ data ForRange
     } deriving (Show)
 
 data ForLimit 
-    = LiteralLimit !Word
+    = LiteralLimit !Integer
     | ParamLimit !String
     deriving (Show)