Parcourir la source

Begin shaping the outlink

Fabio Battaglia il y a 5 ans
Parent
commit
65215f81f0

+ 29 - 0
src/main/java/info/hkzlab/dupal/analyzer/palanalisys/OutLink.java

@@ -0,0 +1,29 @@
+package info.hkzlab.dupal.analyzer.palanalisys;
+
+public class OutLink {
+
+   public final int inputs;
+   public final OutLink src, dest;
+   
+   public OutLink(OutLink src, OutLink dest, int inputs) {
+       this.src = src;
+       this.dest = dest;
+       this.inputs = inputs;
+   }
+
+    @Override
+    public int hashCode() {
+        int hash = 7;
+
+        hash = hash*31 + inputs;
+        hash = hash*31 + src.hashCode();
+        hash = hash*31 + dest.hashCode();
+
+        return hash;
+    }
+
+    @Override
+    public String toString() {
+        return "<"+src+">-OL["+String.format("%08X", inputs)+"]-<"+dest+">";
+    }
+}

+ 25 - 4
src/main/java/info/hkzlab/dupal/analyzer/palanalisys/OutState.java

@@ -1,11 +1,32 @@
 package info.hkzlab.dupal.analyzer.palanalisys;
 
+import java.util.ArrayList;
+
 public class OutState {
-    int hiz_state = 0;
-    int o_state = 0;
-    int io_state = 0;
+    public final static int IDX_O = 0;
+    public final static int IDX_IO = 1;
+    public final static int IDX_HIZ = 2;
+
+    public final int[] status;
+    private OutLink[] links;
+
+    public OutState(int o_state, int io_state, int hiz_state, int totLinks) {
+        status = new int[]{o_state, io_state, hiz_state};
+        links = new OutLink[totLinks];
+    }
 
-    public OutState() {
+    @Override
+    public int hashCode() {
+        int hash = 7;
 
+        for(int s : status) hash = hash*31 + s;
+
+        return hash;
+    }
+
+    @Override
+    public String toString() {
+        return "OS["+String.format("%08X", status[0])+"|"+String.format("%08X", status[1])+"|"+String.format("%08X", status[2])+"]";
     }
+
 }

+ 5 - 0
src/main/java/info/hkzlab/dupal/analyzer/palanalisys/RegState.java

@@ -0,0 +1,5 @@
+package info.hkzlab.dupal.analyzer.palanalisys;
+
+public class RegState {
+    
+}