From 4adbc6b8b5821cecfa7c5aae14291450837b9874 Mon Sep 17 00:00:00 2001 From: megacz Date: Fri, 12 Dec 2008 21:37:35 -0800 Subject: [PATCH] Add DebugDock.java --- src/edu/berkeley/fleet/interpreter/DebugDock.java | 58 +++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/edu/berkeley/fleet/interpreter/DebugDock.java diff --git a/src/edu/berkeley/fleet/interpreter/DebugDock.java b/src/edu/berkeley/fleet/interpreter/DebugDock.java new file mode 100644 index 0000000..8bba7df --- /dev/null +++ b/src/edu/berkeley/fleet/interpreter/DebugDock.java @@ -0,0 +1,58 @@ +package edu.berkeley.fleet.interpreter; +import java.util.*; +import edu.berkeley.fleet.two.*; +import edu.berkeley.fleet.api.*; +import edu.berkeley.fleet.api.Instruction; +import static edu.berkeley.fleet.api.Predicate.*; + +/** EXPERIMENTAL -- DO NOT RELY ON THIS INTERFACE */ +public class DebugDock { + final InterpreterDock dock; + + public DebugDock(Dock d) { + dock = (InterpreterDock)d; + } + + public Dock getDock() { return dock; } + public int getOLC() { return dock.olc; } + public int getILC() { return dock.ilc; } + public Instruction getExecuting() { return dock.executing; } + public Queue getInstructions() { return dock.instructions; } + public Queue getEpilogue() { return dock.epilogue; } + public boolean getDataReadyForShip() { return dock.dataReadyForShip; } + public boolean getReadyForDataFromShip(){ return dock.readyForDataFromShip;} + public long getDataFromShip() { return dock.dataFromShip; } + public boolean getTorpedoWaiting() { return dock.torpedoWaiting; } + public boolean isHatchOpen() { return dock.hatchIsOpen; } + public boolean isInputDock() { return dock.hatchIsOpen; } + public boolean getFlagA() { return dock.flag_a; } + public boolean getFlagB() { return dock.flag_b; } + public boolean getFlagC() { return dock.flag_c; } + public BitVector getDataLatch() { return dock.dataLatch; } + public Queue getDataDestPackets() { + Queue values = new LinkedList(); + for (Packet p : dock.dataDestination.packets) { + if (p.isToken) + continue; + values.add(p.value); + } + return values; + } + public Queue getInstructionsInFabric() { + Queue instr = new LinkedList(); + + for (Packet p : dock.instructionDestination.packets) { + if (p.isToken) + continue; + + BitVector bv = p.value; + long val = 0; + for(int i=0; i