about summary refs log tree commit diff stats
path: root/src/miasm/jitter/csts.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/miasm/jitter/csts.py')
-rw-r--r--src/miasm/jitter/csts.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/miasm/jitter/csts.py b/src/miasm/jitter/csts.py
new file mode 100644
index 00000000..f40cbe74
--- /dev/null
+++ b/src/miasm/jitter/csts.py
@@ -0,0 +1,50 @@
+#-*- coding:utf-8 -*-
+
+
+# VM Mngr Exceptions
+EXCEPT_DO_NOT_UPDATE_PC = 1 << 25
+EXCEPT_NUM_UPDT_EIP = (1<<11)
+
+EXCEPT_CODE_AUTOMOD = (1 << 0)
+EXCEPT_SOFT_BP = (1 << 1)
+EXCEPT_INT_XX = (1 << 2)
+EXCEPT_SPR_ACCESS = (1 << 3)
+EXCEPT_SYSCALL = (1 << 4)
+EXCEPT_BREAKPOINT_MEMORY = (1 << 10)
+# Deprecated
+EXCEPT_BREAKPOINT_INTERN = EXCEPT_BREAKPOINT_MEMORY
+
+EXCEPT_ACCESS_VIOL = ((1 << 14) | EXCEPT_DO_NOT_UPDATE_PC)
+EXCEPT_DIV_BY_ZERO = ((1 << 16) | EXCEPT_DO_NOT_UPDATE_PC)
+EXCEPT_PRIV_INSN = ((1 << 17) | EXCEPT_DO_NOT_UPDATE_PC)
+EXCEPT_ILLEGAL_INSN = ((1 << 18) | EXCEPT_DO_NOT_UPDATE_PC)
+EXCEPT_UNK_MNEMO = ((1 << 19) | EXCEPT_DO_NOT_UPDATE_PC)
+EXCEPT_INT_1 = ((1 << 20) | EXCEPT_DO_NOT_UPDATE_PC)
+
+JitterExceptions = {
+    "DO_NOT_UPDATE_PC": EXCEPT_DO_NOT_UPDATE_PC,
+    "NUM_UPDT_EIP": EXCEPT_NUM_UPDT_EIP,
+    "CODE_AUTOMOD": EXCEPT_CODE_AUTOMOD,
+    "SOFT_BP": EXCEPT_SOFT_BP,
+    "INT_XX": EXCEPT_INT_XX,
+    "SPR_ACCESS": EXCEPT_SPR_ACCESS,
+    "SYSCALL": EXCEPT_SYSCALL,
+    "BREAKPOINT_MEMORY": EXCEPT_BREAKPOINT_MEMORY,
+    "BREAKPOINT_INTERN": EXCEPT_BREAKPOINT_INTERN,
+    "ACCESS_VIOL": EXCEPT_ACCESS_VIOL,
+    "DIV_BY_ZERO": EXCEPT_DIV_BY_ZERO,
+    "PRIV_INSN": EXCEPT_PRIV_INSN,
+    "ILLEGAL_INSN": EXCEPT_ILLEGAL_INSN,
+    "UNK_MNEMO": EXCEPT_UNK_MNEMO,
+    "INT_1": EXCEPT_INT_1,
+}
+
+# VM Mngr constants
+
+PAGE_READ = 1
+PAGE_WRITE = 2
+PAGE_EXEC = 4
+
+BREAKPOINT_READ = 1
+BREAKPOINT_WRITE = 2
+