Merge branch 'dev' into patch

This commit is contained in:
Bet4
2021-11-02 18:36:22 +08:00
151 changed files with 10014 additions and 4460 deletions

View File

@@ -24,8 +24,8 @@ build:
$(MAKE) -C go gen_const
$(MAKE) -C java gen_const
$(MAKE) -C ruby gen_const
python const_generator.py dotnet
python const_generator.py pascal
python3 const_generator.py dotnet
python3 const_generator.py pascal
install: build
$(MAKE) -C python install
@@ -40,7 +40,7 @@ python:
%.c.txt: c
$(ENV_VARS) ../samples/$(@:%.c.txt=%) > $@
%.py.txt: python
$(ENV_VARS) python python/$(@:%.txt=%) > $@
$(ENV_VARS) python3 python/$(@:%.txt=%) > $@
%.py.test: %.c.txt %.py.txt
$(DIFF) -u $(@:%.py.test=%.c.txt) $(@:%.py.test=%.py.txt)

View File

@@ -136,7 +136,20 @@ def gen(lang):
previous = {}
count = 0
for line in lines:
skip = 0
in_comment = False
for lno, line in enumerate(lines):
if "/*" in line:
in_comment = True
if "*/" in line:
in_comment = False
if in_comment:
continue
if skip > 0:
# Due to clang-format, values may come up in the next line
skip -= 1
continue
line = line.strip()
if line.startswith(MARKUP): # markup for comments
@@ -148,6 +161,8 @@ def gen(lang):
continue
tmp = line.strip().split(',')
if len(tmp) >= 2 and tmp[0] != "#define" and not tmp[0].startswith("UC_"):
continue
for t in tmp:
t = t.strip()
if not t or t.startswith('//'): continue
@@ -159,18 +174,52 @@ def gen(lang):
define = True
f.pop(0)
f.insert(1, '=')
if f[0].startswith("UC_" + prefix.upper()):
if f[0].startswith("UC_" + prefix.upper()) or f[0].startswith("UC_CPU"):
if len(f) > 1 and f[1] not in ('//', '='):
print("WARNING: Unable to convert %s" % f)
print(" Line =", line)
continue
elif len(f) > 1 and f[1] == '=':
rhs = ''.join(f[2:])
# Like:
# UC_A =
# (1 << 2)
# #define UC_B \
# (UC_A | UC_C)
# Let's search the next line
if len(f) == 2:
if lno == len(lines) - 1:
print("WARNING: Unable to convert %s" % f)
print(" Line =", line)
continue
skip += 1
next_line = lines[lno + 1]
next_line_tmp = next_line.strip().split(",")
rhs = next_line_tmp[0]
elif f[-1] == "\\":
idx = 0
rhs = ""
while True:
idx += 1
if lno + idx == len(lines):
print("WARNING: Unable to convert %s" % f)
print(" Line =", line)
continue
skip += 1
next_line = lines[lno + idx]
next_line_f = re.split('\s+', next_line.strip())
if next_line_f[-1] == "\\":
rhs += "".join(next_line_f[:-1])
else:
rhs += next_line.strip()
break
else:
rhs = ''.join(f[2:])
else:
rhs = str(count)
lhs = f[0].strip()
#print(f'lhs: {lhs} rhs: {rhs} f:{f}')
# evaluate bitshifts in constants e.g. "UC_X86 = 1 << 1"
match = re.match(r'(?P<rhs>\s*\d+\s*<<\s*\d+\s*)', rhs)
if match:

View File

@@ -7,6 +7,40 @@ open System
[<AutoOpen>]
module Arm =
let UC_CPU_ARM_926 = 0
let UC_CPU_ARM_946 = 1
let UC_CPU_ARM_1026 = 2
let UC_CPU_ARM_1136_R2 = 3
let UC_CPU_ARM_1136 = 4
let UC_CPU_ARM_1176 = 5
let UC_CPU_ARM_11MPCORE = 6
let UC_CPU_ARM_CORTEX_M0 = 7
let UC_CPU_ARM_CORTEX_M3 = 8
let UC_CPU_ARM_CORTEX_M4 = 9
let UC_CPU_ARM_CORTEX_M7 = 10
let UC_CPU_ARM_CORTEX_M33 = 11
let UC_CPU_ARM_CORTEX_R5 = 12
let UC_CPU_ARM_CORTEX_R5F = 13
let UC_CPU_ARM_CORTEX_A8 = 14
let UC_CPU_ARM_CORTEX_A9 = 15
let UC_CPU_ARM_CORTEX_A7 = 16
let UC_CPU_ARM_CORTEX_A15 = 17
let UC_CPU_ARM_TI925T = 18
let UC_CPU_ARM_SA1100 = 19
let UC_CPU_ARM_SA1110 = 20
let UC_CPU_ARM_PXA250 = 21
let UC_CPU_ARM_PXA255 = 22
let UC_CPU_ARM_PXA260 = 23
let UC_CPU_ARM_PXA261 = 24
let UC_CPU_ARM_PXA262 = 25
let UC_CPU_ARM_PXA270A0 = 26
let UC_CPU_ARM_PXA270A1 = 27
let UC_CPU_ARM_PXA270B0 = 28
let UC_CPU_ARM_PXA270B1 = 29
let UC_CPU_ARM_PXA270C0 = 30
let UC_CPU_ARM_PXA270C5 = 31
let UC_CPU_ARM_MAX = 32
// ARM registers
let UC_ARM_REG_INVALID = 0

View File

@@ -7,6 +7,11 @@ open System
[<AutoOpen>]
module Arm64 =
let UC_CPU_AARCH64_A57 = 0
let UC_CPU_AARCH64_A53 = 1
let UC_CPU_AARCH64_A72 = 2
let UC_CPU_AARCH64_MAX = 3
// ARM64 registers
let UC_ARM64_REG_INVALID = 0

View File

@@ -112,6 +112,22 @@ module Common =
let UC_QUERY_ARCH = 3
let UC_QUERY_TIMEOUT = 4
let UC_CTL_IO_NONE = 0
let UC_CTL_IO_WRITE = 1
let UC_CTL_IO_READ = 2
let UC_CTL_IO_READ_WRITE = 3
let UC_CTL_UC_MODE = 0
let UC_CTL_UC_PAGE_SIZE = 1
let UC_CTL_UC_ARCH = 2
let UC_CTL_UC_TIMEOUT = 3
let UC_CTL_UC_EXITS_CNT = 4
let UC_CTL_UC_EXITS = 5
let UC_CTL_CPU_MODEL = 6
let UC_CTL_TB_EDGE = 7
let UC_CTL_TB_REQUEST_CACHE = 8
let UC_CTL_TB_REMOVE_CACHE = 9
let UC_PROT_NONE = 0
let UC_PROT_READ = 1
let UC_PROT_WRITE = 2

View File

@@ -7,6 +7,16 @@ open System
[<AutoOpen>]
module M68k =
let UC_CPU_M5206_CPU = 0
let UC_CPU_M68000_CPU = 1
let UC_CPU_M68020_CPU = 2
let UC_CPU_M68030_CPU = 3
let UC_CPU_M68040_CPU = 4
let UC_CPU_M68060_CPU = 5
let UC_CPU_M5208_CPU = 6
let UC_CPU_CFV4E_CPU = 7
let UC_CPU_ANY_CPU = 8
// M68K registers
let UC_M68K_REG_INVALID = 0

View File

@@ -7,6 +7,36 @@ open System
[<AutoOpen>]
module Mips =
let UC_CPU_MIPS_4KC = 0
let UC_CPU_MIPS_4KM = 1
let UC_CPU_MIPS_4KECR1 = 2
let UC_CPU_MIPS_4KEMR1 = 3
let UC_CPU_MIPS_4KEC = 4
let UC_CPU_MIPS_4KEM = 5
let UC_CPU_MIPS_24KC = 6
let UC_CPU_MIPS_24KEC = 7
let UC_CPU_MIPS_24KF = 8
let UC_CPU_MIPS_34KF = 9
let UC_CPU_MIPS_74KF = 10
let UC_CPU_MIPS_M14K = 11
let UC_CPU_MIPS_M14KC = 12
let UC_CPU_MIPS_P5600 = 13
let UC_CPU_MIPS_MIPS32R6_GENERIC = 14
let UC_CPU_MIPS_I7200 = 15
let UC_CPU_MIPS_R4000 = 16
let UC_CPU_MIPS_VR5432 = 17
let UC_CPU_MIPS_5KC = 18
let UC_CPU_MIPS_5KF = 19
let UC_CPU_MIPS_20KC = 20
let UC_CPU_MIPS_MIPS64R2_GENERIC = 21
let UC_CPU_MIPS_5KEC = 22
let UC_CPU_MIPS_5KEF = 23
let UC_CPU_MIPS_I6400 = 24
let UC_CPU_MIPS_I6500 = 25
let UC_CPU_MIPS_LOONGSON_2E = 26
let UC_CPU_MIPS_LOONGSON_2F = 27
let UC_CPU_MIPS_MIPS64DSPR2 = 28
// MIPS registers
let UC_MIPS_REG_INVALID = 0

View File

@@ -7,6 +7,307 @@ open System
[<AutoOpen>]
module Ppc =
let UC_CPU_PPC_401A1 = 0
let UC_CPU_PPC_401B2 = 1
let UC_CPU_PPC_401C2 = 2
let UC_CPU_PPC_401D2 = 3
let UC_CPU_PPC_401E2 = 4
let UC_CPU_PPC_401F2 = 5
let UC_CPU_PPC_401G2 = 6
let UC_CPU_PPC_COBRA = 7
let UC_CPU_PPC_403GA = 8
let UC_CPU_PPC_403GB = 9
let UC_CPU_PPC_403GC = 10
let UC_CPU_PPC_403GCX = 11
let UC_CPU_PPC_405D2 = 12
let UC_CPU_PPC_405D4 = 13
let UC_CPU_PPC_405CRA = 14
let UC_CPU_PPC_405CRB = 15
let UC_CPU_PPC_405CRC = 16
let UC_CPU_PPC_405EP = 17
let UC_CPU_PPC_405EZ = 18
let UC_CPU_PPC_405GPA = 19
let UC_CPU_PPC_405GPB = 20
let UC_CPU_PPC_405GPC = 21
let UC_CPU_PPC_405GPD = 22
let UC_CPU_PPC_405GPR = 23
let UC_CPU_PPC_405LP = 24
let UC_CPU_PPC_NPE405H = 25
let UC_CPU_PPC_NPE405H2 = 26
let UC_CPU_PPC_NPE405L = 27
let UC_CPU_PPC_NPE4GS3 = 28
let UC_CPU_PPC_STB03 = 29
let UC_CPU_PPC_STB04 = 30
let UC_CPU_PPC_STB25 = 31
let UC_CPU_PPC_X2VP4 = 32
let UC_CPU_PPC_440_XILINX = 33
let UC_CPU_PPC_440EPA = 34
let UC_CPU_PPC_440EPB = 35
let UC_CPU_PPC_440GPB = 36
let UC_CPU_PPC_440GPC = 37
let UC_CPU_PPC_440GRX = 38
let UC_CPU_PPC_440GXA = 39
let UC_CPU_PPC_440GXB = 40
let UC_CPU_PPC_440GXC = 41
let UC_CPU_PPC_440GXF = 42
let UC_CPU_PPC_440SP = 43
let UC_CPU_PPC_440SP2 = 44
let UC_CPU_PPC_440SPE = 45
let UC_CPU_PPC_460EXB = 46
let UC_CPU_PPC_MPC5XX = 47
let UC_CPU_PPC_MPC8XX = 48
let UC_CPU_PPC_G2 = 49
let UC_CPU_PPC_G2H4 = 50
let UC_CPU_PPC_G2GP = 51
let UC_CPU_PPC_G2LS = 52
let UC_CPU_PPC_MPC603 = 53
let UC_CPU_PPC_G2_HIP3 = 54
let UC_CPU_PPC_G2_HIP4 = 55
let UC_CPU_PPC_G2LE = 56
let UC_CPU_PPC_G2LEGP = 57
let UC_CPU_PPC_G2LELS = 58
let UC_CPU_PPC_G2LEGP1 = 59
let UC_CPU_PPC_G2LEGP3 = 60
let UC_CPU_PPC_E200Z5 = 61
let UC_CPU_PPC_E200Z6 = 62
let UC_CPU_PPC_E300C1 = 63
let UC_CPU_PPC_E300C2 = 64
let UC_CPU_PPC_E300C3 = 65
let UC_CPU_PPC_E300C4 = 66
let UC_CPU_PPC_E500V1_V10 = 67
let UC_CPU_PPC_E500V1_V20 = 68
let UC_CPU_PPC_E500V2_V10 = 69
let UC_CPU_PPC_E500V2_V11 = 70
let UC_CPU_PPC_E500V2_V20 = 71
let UC_CPU_PPC_E500V2_V21 = 72
let UC_CPU_PPC_E500V2_V22 = 73
let UC_CPU_PPC_E500V2_V30 = 74
let UC_CPU_PPC_E500MC = 75
let UC_CPU_PPC_E5500 = 76
let UC_CPU_PPC_E6500 = 77
let UC_CPU_PPC_E600 = 78
let UC_CPU_PPC_601_V0 = 79
let UC_CPU_PPC_601_V1 = 80
let UC_CPU_PPC_601_V2 = 81
let UC_CPU_PPC_602 = 82
let UC_CPU_PPC_603 = 83
let UC_CPU_PPC_603E_V11 = 84
let UC_CPU_PPC_603E_V12 = 85
let UC_CPU_PPC_603E_V13 = 86
let UC_CPU_PPC_603E_V14 = 87
let UC_CPU_PPC_603E_V22 = 88
let UC_CPU_PPC_603E_V3 = 89
let UC_CPU_PPC_603E_V4 = 90
let UC_CPU_PPC_603E_V41 = 91
let UC_CPU_PPC_603E7T = 92
let UC_CPU_PPC_603E7V = 93
let UC_CPU_PPC_603E7V1 = 94
let UC_CPU_PPC_603E7V2 = 95
let UC_CPU_PPC_603E7 = 96
let UC_CPU_PPC_603P = 97
let UC_CPU_PPC_604 = 98
let UC_CPU_PPC_604E_V10 = 99
let UC_CPU_PPC_604E_V22 = 100
let UC_CPU_PPC_604E_V24 = 101
let UC_CPU_PPC_604R = 102
let UC_CPU_PPC_7X0_V10 = 103
let UC_CPU_PPC_7X0_V20 = 104
let UC_CPU_PPC_7X0_V21 = 105
let UC_CPU_PPC_7X0_V22 = 106
let UC_CPU_PPC_7X0_V30 = 107
let UC_CPU_PPC_7X0_V31 = 108
let UC_CPU_PPC_740E = 109
let UC_CPU_PPC_750E = 110
let UC_CPU_PPC_7X0P = 111
let UC_CPU_PPC_750CL_V10 = 112
let UC_CPU_PPC_750CL_V20 = 113
let UC_CPU_PPC_750CX_V10 = 114
let UC_CPU_PPC_750CX_V20 = 115
let UC_CPU_PPC_750CX_V21 = 116
let UC_CPU_PPC_750CX_V22 = 117
let UC_CPU_PPC_750CXE_V21 = 118
let UC_CPU_PPC_750CXE_V22 = 119
let UC_CPU_PPC_750CXE_V23 = 120
let UC_CPU_PPC_750CXE_V24 = 121
let UC_CPU_PPC_750CXE_V24B = 122
let UC_CPU_PPC_750CXE_V30 = 123
let UC_CPU_PPC_750CXE_V31 = 124
let UC_CPU_PPC_750CXE_V31B = 125
let UC_CPU_PPC_750CXR = 126
let UC_CPU_PPC_750FL = 127
let UC_CPU_PPC_750FX_V10 = 128
let UC_CPU_PPC_750FX_V20 = 129
let UC_CPU_PPC_750FX_V21 = 130
let UC_CPU_PPC_750FX_V22 = 131
let UC_CPU_PPC_750FX_V23 = 132
let UC_CPU_PPC_750GL = 133
let UC_CPU_PPC_750GX_V10 = 134
let UC_CPU_PPC_750GX_V11 = 135
let UC_CPU_PPC_750GX_V12 = 136
let UC_CPU_PPC_750L_V20 = 137
let UC_CPU_PPC_750L_V21 = 138
let UC_CPU_PPC_750L_V22 = 139
let UC_CPU_PPC_750L_V30 = 140
let UC_CPU_PPC_750L_V32 = 141
let UC_CPU_PPC_7X5_V10 = 142
let UC_CPU_PPC_7X5_V11 = 143
let UC_CPU_PPC_7X5_V20 = 144
let UC_CPU_PPC_7X5_V21 = 145
let UC_CPU_PPC_7X5_V22 = 146
let UC_CPU_PPC_7X5_V23 = 147
let UC_CPU_PPC_7X5_V24 = 148
let UC_CPU_PPC_7X5_V25 = 149
let UC_CPU_PPC_7X5_V26 = 150
let UC_CPU_PPC_7X5_V27 = 151
let UC_CPU_PPC_7X5_V28 = 152
let UC_CPU_PPC_7400_V10 = 153
let UC_CPU_PPC_7400_V11 = 154
let UC_CPU_PPC_7400_V20 = 155
let UC_CPU_PPC_7400_V21 = 156
let UC_CPU_PPC_7400_V22 = 157
let UC_CPU_PPC_7400_V26 = 158
let UC_CPU_PPC_7400_V27 = 159
let UC_CPU_PPC_7400_V28 = 160
let UC_CPU_PPC_7400_V29 = 161
let UC_CPU_PPC_7410_V10 = 162
let UC_CPU_PPC_7410_V11 = 163
let UC_CPU_PPC_7410_V12 = 164
let UC_CPU_PPC_7410_V13 = 165
let UC_CPU_PPC_7410_V14 = 166
let UC_CPU_PPC_7448_V10 = 167
let UC_CPU_PPC_7448_V11 = 168
let UC_CPU_PPC_7448_V20 = 169
let UC_CPU_PPC_7448_V21 = 170
let UC_CPU_PPC_7450_V10 = 171
let UC_CPU_PPC_7450_V11 = 172
let UC_CPU_PPC_7450_V12 = 173
let UC_CPU_PPC_7450_V20 = 174
let UC_CPU_PPC_7450_V21 = 175
let UC_CPU_PPC_74X1_V23 = 176
let UC_CPU_PPC_74X1_V210 = 177
let UC_CPU_PPC_74X5_V10 = 178
let UC_CPU_PPC_74X5_V21 = 179
let UC_CPU_PPC_74X5_V32 = 180
let UC_CPU_PPC_74X5_V33 = 181
let UC_CPU_PPC_74X5_V34 = 182
let UC_CPU_PPC_74X7_V10 = 183
let UC_CPU_PPC_74X7_V11 = 184
let UC_CPU_PPC_74X7_V12 = 185
let UC_CPU_PPC_74X7A_V10 = 186
let UC_CPU_PPC_74X7A_V11 = 187
let UC_CPU_PPC_74X7A_V12 = 188
let UC_CPU_PPC_IOP480 = 1
let UC_CPU_PPC_X2VP20 = 42
let UC_CPU_PPC_440GRA = 35
let UC_CPU_PPC_440EPX = 38
let UC_CPU_PPC_MPC5200_V10 = 59
let UC_CPU_PPC_MPC5200_V11 = 59
let UC_CPU_PPC_MPC5200_V12 = 59
let UC_CPU_PPC_MPC5200B_V20 = 59
let UC_CPU_PPC_MPC5200B_V21 = 59
let UC_CPU_PPC_MPC834X = 63
let UC_CPU_PPC_MPC837X = 66
let UC_CPU_PPC_E500 = 73
let UC_CPU_PPC_MPC8533_V10 = 72
let UC_CPU_PPC_MPC8533_V11 = 73
let UC_CPU_PPC_MPC8533E_V10 = 72
let UC_CPU_PPC_MPC8533E_V11 = 73
let UC_CPU_PPC_MPC8540_V10 = 67
let UC_CPU_PPC_MPC8540_V20 = 68
let UC_CPU_PPC_MPC8540_V21 = 68
let UC_CPU_PPC_MPC8541_V10 = 68
let UC_CPU_PPC_MPC8541_V11 = 68
let UC_CPU_PPC_MPC8541E_V10 = 68
let UC_CPU_PPC_MPC8541E_V11 = 68
let UC_CPU_PPC_MPC8543_V10 = 69
let UC_CPU_PPC_MPC8543_V11 = 70
let UC_CPU_PPC_MPC8543_V20 = 71
let UC_CPU_PPC_MPC8543_V21 = 72
let UC_CPU_PPC_MPC8543E_V10 = 69
let UC_CPU_PPC_MPC8543E_V11 = 70
let UC_CPU_PPC_MPC8543E_V20 = 71
let UC_CPU_PPC_MPC8543E_V21 = 72
let UC_CPU_PPC_MPC8544_V10 = 72
let UC_CPU_PPC_MPC8544_V11 = 73
let UC_CPU_PPC_MPC8544E_V11 = 73
let UC_CPU_PPC_MPC8544E_V10 = 72
let UC_CPU_PPC_MPC8545_V10 = 69
let UC_CPU_PPC_MPC8545_V20 = 71
let UC_CPU_PPC_MPC8545_V21 = 72
let UC_CPU_PPC_MPC8545E_V10 = 69
let UC_CPU_PPC_MPC8545E_V20 = 71
let UC_CPU_PPC_MPC8545E_V21 = 72
let UC_CPU_PPC_MPC8547E_V10 = 69
let UC_CPU_PPC_MPC8547E_V20 = 71
let UC_CPU_PPC_MPC8547E_V21 = 72
let UC_CPU_PPC_MPC8548_V10 = 69
let UC_CPU_PPC_MPC8548_V11 = 70
let UC_CPU_PPC_MPC8548_V20 = 71
let UC_CPU_PPC_MPC8548_V21 = 72
let UC_CPU_PPC_MPC8548E_V10 = 69
let UC_CPU_PPC_MPC8548E_V11 = 70
let UC_CPU_PPC_MPC8548E_V20 = 71
let UC_CPU_PPC_MPC8548E_V21 = 72
let UC_CPU_PPC_MPC8555_V10 = 69
let UC_CPU_PPC_MPC8555_V11 = 70
let UC_CPU_PPC_MPC8555E_V10 = 69
let UC_CPU_PPC_MPC8555E_V11 = 70
let UC_CPU_PPC_MPC8560_V10 = 69
let UC_CPU_PPC_MPC8560_V20 = 71
let UC_CPU_PPC_MPC8560_V21 = 72
let UC_CPU_PPC_MPC8567 = 73
let UC_CPU_PPC_MPC8567E = 73
let UC_CPU_PPC_MPC8568 = 73
let UC_CPU_PPC_MPC8568E = 73
let UC_CPU_PPC_MPC8572 = 74
let UC_CPU_PPC_MPC8572E = 74
let UC_CPU_PPC_MPC8610 = 78
let UC_CPU_PPC_MPC8641 = 78
let UC_CPU_PPC_MPC8641D = 78
let UC_CPU_PPC64_620 = 0
let UC_CPU_PPC64_630 = 1
let UC_CPU_PPC64_631 = 2
let UC_CPU_PPC64_POWER4 = 3
let UC_CPU_PPC64_POWER4P = 4
let UC_CPU_PPC64_POWER5 = 5
let UC_CPU_PPC64_POWER5P_V21 = 6
let UC_CPU_PPC64_POWER6 = 7
let UC_CPU_PPC64_POWER_SERVER_MASK = 8
let UC_CPU_PPC64_POWER7_BASE = 9
let UC_CPU_PPC64_POWER7_V23 = 10
let UC_CPU_PPC64_POWER7P_BASE = 11
let UC_CPU_PPC64_POWER7P_V21 = 12
let UC_CPU_PPC64_POWER8E_BASE = 13
let UC_CPU_PPC64_POWER8E_V21 = 14
let UC_CPU_PPC64_POWER8_BASE = 15
let UC_CPU_PPC64_POWER8_V20 = 16
let UC_CPU_PPC64_POWER8NVL_BASE = 17
let UC_CPU_PPC64_POWER8NVL_V10 = 18
let UC_CPU_PPC64_POWER9_BASE = 19
let UC_CPU_PPC64_POWER9_DD1 = 20
let UC_CPU_PPC64_POWER9_DD20 = 21
let UC_CPU_PPC64_POWER10_BASE = 22
let UC_CPU_PPC64_POWER10_DD1 = 23
let UC_CPU_PPC64_970_V22 = 24
let UC_CPU_PPC64_970FX_V10 = 25
let UC_CPU_PPC64_970FX_V20 = 26
let UC_CPU_PPC64_970FX_V21 = 27
let UC_CPU_PPC64_970FX_V30 = 28
let UC_CPU_PPC64_970FX_V31 = 29
let UC_CPU_PPC64_970MP_V10 = 30
let UC_CPU_PPC64_970MP_V11 = 31
let UC_CPU_PPC64_CELL_V10 = 32
let UC_CPU_PPC64_CELL_V20 = 33
let UC_CPU_PPC64_CELL_V30 = 34
let UC_CPU_PPC64_CELL_V31 = 35
let UC_CPU_PPC64_RS64 = 36
let UC_CPU_PPC64_RS64II = 37
let UC_CPU_PPC64_RS64III = 38
let UC_CPU_PPC64_RS64IV = 39
let UC_CPU_PPC64_CELL_V32 = 35
let UC_CPU_PPC64_CELL = 35
// PPC registers
let UC_PPC_REG_INVALID = 0

View File

@@ -7,6 +7,16 @@ open System
[<AutoOpen>]
module Riscv =
let UC_CPU_RISCV32_ANY = 0
let UC_CPU_RISCV32_BASE32 = 1
let UC_CPU_RISCV32_SIFIVE_E31 = 2
let UC_CPU_RISCV32_SIFIVE_U34 = 3
let UC_CPU_RISCV64_ANY = 0
let UC_CPU_RISCV64_BASE64 = 1
let UC_CPU_RISCV64_SIFIVE_E51 = 2
let UC_CPU_RISCV64_SIFIVE_U54 = 3
// RISCV registers
let UC_RISCV_REG_INVALID = 0

View File

@@ -7,6 +7,38 @@ open System
[<AutoOpen>]
module Sparc =
let UC_CPU_SPARC_FUJITSU_MB86904 = 0
let UC_CPU_SPARC_FUJITSU_MB86907 = 1
let UC_CPU_SPARC_TI_MICROSPARC_I = 2
let UC_CPU_SPARC_TI_MICROSPARC_II = 3
let UC_CPU_SPARC_TI_MICROSPARC_IIEP = 4
let UC_CPU_SPARC_TI_SUPERSPARC_40 = 5
let UC_CPU_SPARC_TI_SUPERSPARC_50 = 6
let UC_CPU_SPARC_TI_SUPERSPARC_51 = 7
let UC_CPU_SPARC_TI_SUPERSPARC_60 = 8
let UC_CPU_SPARC_TI_SUPERSPARC_61 = 9
let UC_CPU_SPARC_TI_SUPERSPARC_II = 10
let UC_CPU_SPARC_LEON2 = 11
let UC_CPU_SPARC_LEON3 = 12
let UC_CPU_SPARC64_FUJITSU = 0
let UC_CPU_SPARC64_FUJITSU_III = 1
let UC_CPU_SPARC64_FUJITSU_IV = 2
let UC_CPU_SPARC64_FUJITSU_V = 3
let UC_CPU_SPARC64_TI_ULTRASPARC_I = 4
let UC_CPU_SPARC64_TI_ULTRASPARC_II = 5
let UC_CPU_SPARC64_TI_ULTRASPARC_III = 6
let UC_CPU_SPARC64_TI_ULTRASPARC_IIE = 7
let UC_CPU_SPARC64_SUN_ULTRASPARC_III = 8
let UC_CPU_SPARC64_SUN_ULTRASPARC_III_CU = 9
let UC_CPU_SPARC64_SUN_ULTRASPARC_IIII = 10
let UC_CPU_SPARC64_SUN_ULTRASPARC_IV = 11
let UC_CPU_SPARC64_SUN_ULTRASPARC_IV_PLUS = 12
let UC_CPU_SPARC64_SUN_ULTRASPARC_IIII_PLUS = 13
let UC_CPU_SPARC64_SUN_ULTRASPARC_T1 = 14
let UC_CPU_SPARC64_SUN_ULTRASPARC_T2 = 15
let UC_CPU_SPARC64_NEC_ULTRASPARC_I = 16
// SPARC registers
let UC_SPARC_REG_INVALID = 0

View File

@@ -7,6 +7,45 @@ open System
[<AutoOpen>]
module X86 =
let UC_CPU_X86_QEMU64 = 0
let UC_CPU_X86_PHENOM = 1
let UC_CPU_X86_CORE2DUO = 2
let UC_CPU_X86_KVM64 = 3
let UC_CPU_X86_QEMU32 = 4
let UC_CPU_X86_KVM32 = 5
let UC_CPU_X86_COREDUO = 6
let UC_CPU_X86_486 = 7
let UC_CPU_X86_PENTIUM = 8
let UC_CPU_X86_PENTIUM2 = 9
let UC_CPU_X86_PENTIUM3 = 10
let UC_CPU_X86_ATHLON = 11
let UC_CPU_X86_N270 = 12
let UC_CPU_X86_CONROE = 13
let UC_CPU_X86_PENRYN = 14
let UC_CPU_X86_NEHALEM = 15
let UC_CPU_X86_WESTMERE = 16
let UC_CPU_X86_SANDYBRIDGE = 17
let UC_CPU_X86_IVYBRIDGE = 18
let UC_CPU_X86_HASWELL = 19
let UC_CPU_X86_BROADWELL = 20
let UC_CPU_X86_SKYLAKE_CLIENT = 21
let UC_CPU_X86_SKYLAKE_SERVER = 22
let UC_CPU_X86_CASCADELAKE_SERVER = 23
let UC_CPU_X86_COOPERLAKE = 24
let UC_CPU_X86_ICELAKE_CLIENT = 25
let UC_CPU_X86_ICELAKE_SERVER = 26
let UC_CPU_X86_DENVERTON = 27
let UC_CPU_X86_SNOWRIDGE = 28
let UC_CPU_X86_KNIGHTSMILL = 29
let UC_CPU_X86_OPTERON_G1 = 30
let UC_CPU_X86_OPTERON_G2 = 31
let UC_CPU_X86_OPTERON_G3 = 32
let UC_CPU_X86_OPTERON_G4 = 33
let UC_CPU_X86_OPTERON_G5 = 34
let UC_CPU_X86_EPYC = 35
let UC_CPU_X86_DHYANA = 36
let UC_CPU_X86_EPYC_ROME = 37
// X86 registers
let UC_X86_REG_INVALID = 0

View File

@@ -6,7 +6,7 @@ all: gen_const
cd unicorn && go build
gen_const:
cd .. && python const_generator.py go
cd .. && python3 const_generator.py go
test: all
cd unicorn && LD_LIBRARY_PATH=../../../ DYLD_LIBRARY_PATH=../../../ go test

View File

@@ -2,6 +2,11 @@ package unicorn
// For Unicorn Engine. AUTO-GENERATED FILE, DO NOT EDIT [arm64_const.go]
const (
CPU_AARCH64_A57 = 0
CPU_AARCH64_A53 = 1
CPU_AARCH64_A72 = 2
CPU_AARCH64_MAX = 3
// ARM64 registers
ARM64_REG_INVALID = 0

View File

@@ -2,6 +2,40 @@ package unicorn
// For Unicorn Engine. AUTO-GENERATED FILE, DO NOT EDIT [arm_const.go]
const (
CPU_ARM_926 = 0
CPU_ARM_946 = 1
CPU_ARM_1026 = 2
CPU_ARM_1136_R2 = 3
CPU_ARM_1136 = 4
CPU_ARM_1176 = 5
CPU_ARM_11MPCORE = 6
CPU_ARM_CORTEX_M0 = 7
CPU_ARM_CORTEX_M3 = 8
CPU_ARM_CORTEX_M4 = 9
CPU_ARM_CORTEX_M7 = 10
CPU_ARM_CORTEX_M33 = 11
CPU_ARM_CORTEX_R5 = 12
CPU_ARM_CORTEX_R5F = 13
CPU_ARM_CORTEX_A8 = 14
CPU_ARM_CORTEX_A9 = 15
CPU_ARM_CORTEX_A7 = 16
CPU_ARM_CORTEX_A15 = 17
CPU_ARM_TI925T = 18
CPU_ARM_SA1100 = 19
CPU_ARM_SA1110 = 20
CPU_ARM_PXA250 = 21
CPU_ARM_PXA255 = 22
CPU_ARM_PXA260 = 23
CPU_ARM_PXA261 = 24
CPU_ARM_PXA262 = 25
CPU_ARM_PXA270A0 = 26
CPU_ARM_PXA270A1 = 27
CPU_ARM_PXA270B0 = 28
CPU_ARM_PXA270B1 = 29
CPU_ARM_PXA270C0 = 30
CPU_ARM_PXA270C5 = 31
CPU_ARM_MAX = 32
// ARM registers
ARM_REG_INVALID = 0

View File

@@ -2,6 +2,16 @@ package unicorn
// For Unicorn Engine. AUTO-GENERATED FILE, DO NOT EDIT [m68k_const.go]
const (
CPU_M5206_CPU = 0
CPU_M68000_CPU = 1
CPU_M68020_CPU = 2
CPU_M68030_CPU = 3
CPU_M68040_CPU = 4
CPU_M68060_CPU = 5
CPU_M5208_CPU = 6
CPU_CFV4E_CPU = 7
CPU_ANY_CPU = 8
// M68K registers
M68K_REG_INVALID = 0

View File

@@ -2,6 +2,36 @@ package unicorn
// For Unicorn Engine. AUTO-GENERATED FILE, DO NOT EDIT [mips_const.go]
const (
CPU_MIPS_4KC = 0
CPU_MIPS_4KM = 1
CPU_MIPS_4KECR1 = 2
CPU_MIPS_4KEMR1 = 3
CPU_MIPS_4KEC = 4
CPU_MIPS_4KEM = 5
CPU_MIPS_24KC = 6
CPU_MIPS_24KEC = 7
CPU_MIPS_24KF = 8
CPU_MIPS_34KF = 9
CPU_MIPS_74KF = 10
CPU_MIPS_M14K = 11
CPU_MIPS_M14KC = 12
CPU_MIPS_P5600 = 13
CPU_MIPS_MIPS32R6_GENERIC = 14
CPU_MIPS_I7200 = 15
CPU_MIPS_R4000 = 16
CPU_MIPS_VR5432 = 17
CPU_MIPS_5KC = 18
CPU_MIPS_5KF = 19
CPU_MIPS_20KC = 20
CPU_MIPS_MIPS64R2_GENERIC = 21
CPU_MIPS_5KEC = 22
CPU_MIPS_5KEF = 23
CPU_MIPS_I6400 = 24
CPU_MIPS_I6500 = 25
CPU_MIPS_LOONGSON_2E = 26
CPU_MIPS_LOONGSON_2F = 27
CPU_MIPS_MIPS64DSPR2 = 28
// MIPS registers
MIPS_REG_INVALID = 0

View File

@@ -2,6 +2,307 @@ package unicorn
// For Unicorn Engine. AUTO-GENERATED FILE, DO NOT EDIT [ppc_const.go]
const (
CPU_PPC_401A1 = 0
CPU_PPC_401B2 = 1
CPU_PPC_401C2 = 2
CPU_PPC_401D2 = 3
CPU_PPC_401E2 = 4
CPU_PPC_401F2 = 5
CPU_PPC_401G2 = 6
CPU_PPC_COBRA = 7
CPU_PPC_403GA = 8
CPU_PPC_403GB = 9
CPU_PPC_403GC = 10
CPU_PPC_403GCX = 11
CPU_PPC_405D2 = 12
CPU_PPC_405D4 = 13
CPU_PPC_405CRA = 14
CPU_PPC_405CRB = 15
CPU_PPC_405CRC = 16
CPU_PPC_405EP = 17
CPU_PPC_405EZ = 18
CPU_PPC_405GPA = 19
CPU_PPC_405GPB = 20
CPU_PPC_405GPC = 21
CPU_PPC_405GPD = 22
CPU_PPC_405GPR = 23
CPU_PPC_405LP = 24
CPU_PPC_NPE405H = 25
CPU_PPC_NPE405H2 = 26
CPU_PPC_NPE405L = 27
CPU_PPC_NPE4GS3 = 28
CPU_PPC_STB03 = 29
CPU_PPC_STB04 = 30
CPU_PPC_STB25 = 31
CPU_PPC_X2VP4 = 32
CPU_PPC_440_XILINX = 33
CPU_PPC_440EPA = 34
CPU_PPC_440EPB = 35
CPU_PPC_440GPB = 36
CPU_PPC_440GPC = 37
CPU_PPC_440GRX = 38
CPU_PPC_440GXA = 39
CPU_PPC_440GXB = 40
CPU_PPC_440GXC = 41
CPU_PPC_440GXF = 42
CPU_PPC_440SP = 43
CPU_PPC_440SP2 = 44
CPU_PPC_440SPE = 45
CPU_PPC_460EXB = 46
CPU_PPC_MPC5XX = 47
CPU_PPC_MPC8XX = 48
CPU_PPC_G2 = 49
CPU_PPC_G2H4 = 50
CPU_PPC_G2GP = 51
CPU_PPC_G2LS = 52
CPU_PPC_MPC603 = 53
CPU_PPC_G2_HIP3 = 54
CPU_PPC_G2_HIP4 = 55
CPU_PPC_G2LE = 56
CPU_PPC_G2LEGP = 57
CPU_PPC_G2LELS = 58
CPU_PPC_G2LEGP1 = 59
CPU_PPC_G2LEGP3 = 60
CPU_PPC_E200Z5 = 61
CPU_PPC_E200Z6 = 62
CPU_PPC_E300C1 = 63
CPU_PPC_E300C2 = 64
CPU_PPC_E300C3 = 65
CPU_PPC_E300C4 = 66
CPU_PPC_E500V1_V10 = 67
CPU_PPC_E500V1_V20 = 68
CPU_PPC_E500V2_V10 = 69
CPU_PPC_E500V2_V11 = 70
CPU_PPC_E500V2_V20 = 71
CPU_PPC_E500V2_V21 = 72
CPU_PPC_E500V2_V22 = 73
CPU_PPC_E500V2_V30 = 74
CPU_PPC_E500MC = 75
CPU_PPC_E5500 = 76
CPU_PPC_E6500 = 77
CPU_PPC_E600 = 78
CPU_PPC_601_V0 = 79
CPU_PPC_601_V1 = 80
CPU_PPC_601_V2 = 81
CPU_PPC_602 = 82
CPU_PPC_603 = 83
CPU_PPC_603E_V11 = 84
CPU_PPC_603E_V12 = 85
CPU_PPC_603E_V13 = 86
CPU_PPC_603E_V14 = 87
CPU_PPC_603E_V22 = 88
CPU_PPC_603E_V3 = 89
CPU_PPC_603E_V4 = 90
CPU_PPC_603E_V41 = 91
CPU_PPC_603E7T = 92
CPU_PPC_603E7V = 93
CPU_PPC_603E7V1 = 94
CPU_PPC_603E7V2 = 95
CPU_PPC_603E7 = 96
CPU_PPC_603P = 97
CPU_PPC_604 = 98
CPU_PPC_604E_V10 = 99
CPU_PPC_604E_V22 = 100
CPU_PPC_604E_V24 = 101
CPU_PPC_604R = 102
CPU_PPC_7X0_V10 = 103
CPU_PPC_7X0_V20 = 104
CPU_PPC_7X0_V21 = 105
CPU_PPC_7X0_V22 = 106
CPU_PPC_7X0_V30 = 107
CPU_PPC_7X0_V31 = 108
CPU_PPC_740E = 109
CPU_PPC_750E = 110
CPU_PPC_7X0P = 111
CPU_PPC_750CL_V10 = 112
CPU_PPC_750CL_V20 = 113
CPU_PPC_750CX_V10 = 114
CPU_PPC_750CX_V20 = 115
CPU_PPC_750CX_V21 = 116
CPU_PPC_750CX_V22 = 117
CPU_PPC_750CXE_V21 = 118
CPU_PPC_750CXE_V22 = 119
CPU_PPC_750CXE_V23 = 120
CPU_PPC_750CXE_V24 = 121
CPU_PPC_750CXE_V24B = 122
CPU_PPC_750CXE_V30 = 123
CPU_PPC_750CXE_V31 = 124
CPU_PPC_750CXE_V31B = 125
CPU_PPC_750CXR = 126
CPU_PPC_750FL = 127
CPU_PPC_750FX_V10 = 128
CPU_PPC_750FX_V20 = 129
CPU_PPC_750FX_V21 = 130
CPU_PPC_750FX_V22 = 131
CPU_PPC_750FX_V23 = 132
CPU_PPC_750GL = 133
CPU_PPC_750GX_V10 = 134
CPU_PPC_750GX_V11 = 135
CPU_PPC_750GX_V12 = 136
CPU_PPC_750L_V20 = 137
CPU_PPC_750L_V21 = 138
CPU_PPC_750L_V22 = 139
CPU_PPC_750L_V30 = 140
CPU_PPC_750L_V32 = 141
CPU_PPC_7X5_V10 = 142
CPU_PPC_7X5_V11 = 143
CPU_PPC_7X5_V20 = 144
CPU_PPC_7X5_V21 = 145
CPU_PPC_7X5_V22 = 146
CPU_PPC_7X5_V23 = 147
CPU_PPC_7X5_V24 = 148
CPU_PPC_7X5_V25 = 149
CPU_PPC_7X5_V26 = 150
CPU_PPC_7X5_V27 = 151
CPU_PPC_7X5_V28 = 152
CPU_PPC_7400_V10 = 153
CPU_PPC_7400_V11 = 154
CPU_PPC_7400_V20 = 155
CPU_PPC_7400_V21 = 156
CPU_PPC_7400_V22 = 157
CPU_PPC_7400_V26 = 158
CPU_PPC_7400_V27 = 159
CPU_PPC_7400_V28 = 160
CPU_PPC_7400_V29 = 161
CPU_PPC_7410_V10 = 162
CPU_PPC_7410_V11 = 163
CPU_PPC_7410_V12 = 164
CPU_PPC_7410_V13 = 165
CPU_PPC_7410_V14 = 166
CPU_PPC_7448_V10 = 167
CPU_PPC_7448_V11 = 168
CPU_PPC_7448_V20 = 169
CPU_PPC_7448_V21 = 170
CPU_PPC_7450_V10 = 171
CPU_PPC_7450_V11 = 172
CPU_PPC_7450_V12 = 173
CPU_PPC_7450_V20 = 174
CPU_PPC_7450_V21 = 175
CPU_PPC_74X1_V23 = 176
CPU_PPC_74X1_V210 = 177
CPU_PPC_74X5_V10 = 178
CPU_PPC_74X5_V21 = 179
CPU_PPC_74X5_V32 = 180
CPU_PPC_74X5_V33 = 181
CPU_PPC_74X5_V34 = 182
CPU_PPC_74X7_V10 = 183
CPU_PPC_74X7_V11 = 184
CPU_PPC_74X7_V12 = 185
CPU_PPC_74X7A_V10 = 186
CPU_PPC_74X7A_V11 = 187
CPU_PPC_74X7A_V12 = 188
CPU_PPC_IOP480 = 1
CPU_PPC_X2VP20 = 42
CPU_PPC_440GRA = 35
CPU_PPC_440EPX = 38
CPU_PPC_MPC5200_V10 = 59
CPU_PPC_MPC5200_V11 = 59
CPU_PPC_MPC5200_V12 = 59
CPU_PPC_MPC5200B_V20 = 59
CPU_PPC_MPC5200B_V21 = 59
CPU_PPC_MPC834X = 63
CPU_PPC_MPC837X = 66
CPU_PPC_E500 = 73
CPU_PPC_MPC8533_V10 = 72
CPU_PPC_MPC8533_V11 = 73
CPU_PPC_MPC8533E_V10 = 72
CPU_PPC_MPC8533E_V11 = 73
CPU_PPC_MPC8540_V10 = 67
CPU_PPC_MPC8540_V20 = 68
CPU_PPC_MPC8540_V21 = 68
CPU_PPC_MPC8541_V10 = 68
CPU_PPC_MPC8541_V11 = 68
CPU_PPC_MPC8541E_V10 = 68
CPU_PPC_MPC8541E_V11 = 68
CPU_PPC_MPC8543_V10 = 69
CPU_PPC_MPC8543_V11 = 70
CPU_PPC_MPC8543_V20 = 71
CPU_PPC_MPC8543_V21 = 72
CPU_PPC_MPC8543E_V10 = 69
CPU_PPC_MPC8543E_V11 = 70
CPU_PPC_MPC8543E_V20 = 71
CPU_PPC_MPC8543E_V21 = 72
CPU_PPC_MPC8544_V10 = 72
CPU_PPC_MPC8544_V11 = 73
CPU_PPC_MPC8544E_V11 = 73
CPU_PPC_MPC8544E_V10 = 72
CPU_PPC_MPC8545_V10 = 69
CPU_PPC_MPC8545_V20 = 71
CPU_PPC_MPC8545_V21 = 72
CPU_PPC_MPC8545E_V10 = 69
CPU_PPC_MPC8545E_V20 = 71
CPU_PPC_MPC8545E_V21 = 72
CPU_PPC_MPC8547E_V10 = 69
CPU_PPC_MPC8547E_V20 = 71
CPU_PPC_MPC8547E_V21 = 72
CPU_PPC_MPC8548_V10 = 69
CPU_PPC_MPC8548_V11 = 70
CPU_PPC_MPC8548_V20 = 71
CPU_PPC_MPC8548_V21 = 72
CPU_PPC_MPC8548E_V10 = 69
CPU_PPC_MPC8548E_V11 = 70
CPU_PPC_MPC8548E_V20 = 71
CPU_PPC_MPC8548E_V21 = 72
CPU_PPC_MPC8555_V10 = 69
CPU_PPC_MPC8555_V11 = 70
CPU_PPC_MPC8555E_V10 = 69
CPU_PPC_MPC8555E_V11 = 70
CPU_PPC_MPC8560_V10 = 69
CPU_PPC_MPC8560_V20 = 71
CPU_PPC_MPC8560_V21 = 72
CPU_PPC_MPC8567 = 73
CPU_PPC_MPC8567E = 73
CPU_PPC_MPC8568 = 73
CPU_PPC_MPC8568E = 73
CPU_PPC_MPC8572 = 74
CPU_PPC_MPC8572E = 74
CPU_PPC_MPC8610 = 78
CPU_PPC_MPC8641 = 78
CPU_PPC_MPC8641D = 78
CPU_PPC64_620 = 0
CPU_PPC64_630 = 1
CPU_PPC64_631 = 2
CPU_PPC64_POWER4 = 3
CPU_PPC64_POWER4P = 4
CPU_PPC64_POWER5 = 5
CPU_PPC64_POWER5P_V21 = 6
CPU_PPC64_POWER6 = 7
CPU_PPC64_POWER_SERVER_MASK = 8
CPU_PPC64_POWER7_BASE = 9
CPU_PPC64_POWER7_V23 = 10
CPU_PPC64_POWER7P_BASE = 11
CPU_PPC64_POWER7P_V21 = 12
CPU_PPC64_POWER8E_BASE = 13
CPU_PPC64_POWER8E_V21 = 14
CPU_PPC64_POWER8_BASE = 15
CPU_PPC64_POWER8_V20 = 16
CPU_PPC64_POWER8NVL_BASE = 17
CPU_PPC64_POWER8NVL_V10 = 18
CPU_PPC64_POWER9_BASE = 19
CPU_PPC64_POWER9_DD1 = 20
CPU_PPC64_POWER9_DD20 = 21
CPU_PPC64_POWER10_BASE = 22
CPU_PPC64_POWER10_DD1 = 23
CPU_PPC64_970_V22 = 24
CPU_PPC64_970FX_V10 = 25
CPU_PPC64_970FX_V20 = 26
CPU_PPC64_970FX_V21 = 27
CPU_PPC64_970FX_V30 = 28
CPU_PPC64_970FX_V31 = 29
CPU_PPC64_970MP_V10 = 30
CPU_PPC64_970MP_V11 = 31
CPU_PPC64_CELL_V10 = 32
CPU_PPC64_CELL_V20 = 33
CPU_PPC64_CELL_V30 = 34
CPU_PPC64_CELL_V31 = 35
CPU_PPC64_RS64 = 36
CPU_PPC64_RS64II = 37
CPU_PPC64_RS64III = 38
CPU_PPC64_RS64IV = 39
CPU_PPC64_CELL_V32 = 35
CPU_PPC64_CELL = 35
// PPC registers
PPC_REG_INVALID = 0

View File

@@ -2,6 +2,16 @@ package unicorn
// For Unicorn Engine. AUTO-GENERATED FILE, DO NOT EDIT [riscv_const.go]
const (
CPU_RISCV32_ANY = 0
CPU_RISCV32_BASE32 = 1
CPU_RISCV32_SIFIVE_E31 = 2
CPU_RISCV32_SIFIVE_U34 = 3
CPU_RISCV64_ANY = 0
CPU_RISCV64_BASE64 = 1
CPU_RISCV64_SIFIVE_E51 = 2
CPU_RISCV64_SIFIVE_U54 = 3
// RISCV registers
RISCV_REG_INVALID = 0

View File

@@ -2,6 +2,38 @@ package unicorn
// For Unicorn Engine. AUTO-GENERATED FILE, DO NOT EDIT [sparc_const.go]
const (
CPU_SPARC_FUJITSU_MB86904 = 0
CPU_SPARC_FUJITSU_MB86907 = 1
CPU_SPARC_TI_MICROSPARC_I = 2
CPU_SPARC_TI_MICROSPARC_II = 3
CPU_SPARC_TI_MICROSPARC_IIEP = 4
CPU_SPARC_TI_SUPERSPARC_40 = 5
CPU_SPARC_TI_SUPERSPARC_50 = 6
CPU_SPARC_TI_SUPERSPARC_51 = 7
CPU_SPARC_TI_SUPERSPARC_60 = 8
CPU_SPARC_TI_SUPERSPARC_61 = 9
CPU_SPARC_TI_SUPERSPARC_II = 10
CPU_SPARC_LEON2 = 11
CPU_SPARC_LEON3 = 12
CPU_SPARC64_FUJITSU = 0
CPU_SPARC64_FUJITSU_III = 1
CPU_SPARC64_FUJITSU_IV = 2
CPU_SPARC64_FUJITSU_V = 3
CPU_SPARC64_TI_ULTRASPARC_I = 4
CPU_SPARC64_TI_ULTRASPARC_II = 5
CPU_SPARC64_TI_ULTRASPARC_III = 6
CPU_SPARC64_TI_ULTRASPARC_IIE = 7
CPU_SPARC64_SUN_ULTRASPARC_III = 8
CPU_SPARC64_SUN_ULTRASPARC_III_CU = 9
CPU_SPARC64_SUN_ULTRASPARC_IIII = 10
CPU_SPARC64_SUN_ULTRASPARC_IV = 11
CPU_SPARC64_SUN_ULTRASPARC_IV_PLUS = 12
CPU_SPARC64_SUN_ULTRASPARC_IIII_PLUS = 13
CPU_SPARC64_SUN_ULTRASPARC_T1 = 14
CPU_SPARC64_SUN_ULTRASPARC_T2 = 15
CPU_SPARC64_NEC_ULTRASPARC_I = 16
// SPARC registers
SPARC_REG_INVALID = 0

View File

@@ -107,6 +107,22 @@ const (
QUERY_ARCH = 3
QUERY_TIMEOUT = 4
CTL_IO_NONE = 0
CTL_IO_WRITE = 1
CTL_IO_READ = 2
CTL_IO_READ_WRITE = 3
CTL_UC_MODE = 0
CTL_UC_PAGE_SIZE = 1
CTL_UC_ARCH = 2
CTL_UC_TIMEOUT = 3
CTL_UC_EXITS_CNT = 4
CTL_UC_EXITS = 5
CTL_CPU_MODEL = 6
CTL_TB_EDGE = 7
CTL_TB_REQUEST_CACHE = 8
CTL_TB_REMOVE_CACHE = 9
PROT_NONE = 0
PROT_READ = 1
PROT_WRITE = 2

View File

@@ -2,6 +2,45 @@ package unicorn
// For Unicorn Engine. AUTO-GENERATED FILE, DO NOT EDIT [x86_const.go]
const (
CPU_X86_QEMU64 = 0
CPU_X86_PHENOM = 1
CPU_X86_CORE2DUO = 2
CPU_X86_KVM64 = 3
CPU_X86_QEMU32 = 4
CPU_X86_KVM32 = 5
CPU_X86_COREDUO = 6
CPU_X86_486 = 7
CPU_X86_PENTIUM = 8
CPU_X86_PENTIUM2 = 9
CPU_X86_PENTIUM3 = 10
CPU_X86_ATHLON = 11
CPU_X86_N270 = 12
CPU_X86_CONROE = 13
CPU_X86_PENRYN = 14
CPU_X86_NEHALEM = 15
CPU_X86_WESTMERE = 16
CPU_X86_SANDYBRIDGE = 17
CPU_X86_IVYBRIDGE = 18
CPU_X86_HASWELL = 19
CPU_X86_BROADWELL = 20
CPU_X86_SKYLAKE_CLIENT = 21
CPU_X86_SKYLAKE_SERVER = 22
CPU_X86_CASCADELAKE_SERVER = 23
CPU_X86_COOPERLAKE = 24
CPU_X86_ICELAKE_CLIENT = 25
CPU_X86_ICELAKE_SERVER = 26
CPU_X86_DENVERTON = 27
CPU_X86_SNOWRIDGE = 28
CPU_X86_KNIGHTSMILL = 29
CPU_X86_OPTERON_G1 = 30
CPU_X86_OPTERON_G2 = 31
CPU_X86_OPTERON_G3 = 32
CPU_X86_OPTERON_G4 = 33
CPU_X86_OPTERON_G5 = 34
CPU_X86_EPYC = 35
CPU_X86_DHYANA = 36
CPU_X86_EPYC_ROME = 37
// X86 registers
X86_REG_INVALID = 0

View File

@@ -19,7 +19,7 @@ uninstall:
$(MAKE) -f Makefile.build uninstall
gen_const:
cd .. && python const_generator.py java
cd .. && python3 const_generator.py java
clean:
rm -f unicorn/*.class

View File

@@ -4,6 +4,11 @@ package unicorn;
public interface Arm64Const {
public static final int UC_CPU_AARCH64_A57 = 0;
public static final int UC_CPU_AARCH64_A53 = 1;
public static final int UC_CPU_AARCH64_A72 = 2;
public static final int UC_CPU_AARCH64_MAX = 3;
// ARM64 registers
public static final int UC_ARM64_REG_INVALID = 0;

View File

@@ -4,6 +4,40 @@ package unicorn;
public interface ArmConst {
public static final int UC_CPU_ARM_926 = 0;
public static final int UC_CPU_ARM_946 = 1;
public static final int UC_CPU_ARM_1026 = 2;
public static final int UC_CPU_ARM_1136_R2 = 3;
public static final int UC_CPU_ARM_1136 = 4;
public static final int UC_CPU_ARM_1176 = 5;
public static final int UC_CPU_ARM_11MPCORE = 6;
public static final int UC_CPU_ARM_CORTEX_M0 = 7;
public static final int UC_CPU_ARM_CORTEX_M3 = 8;
public static final int UC_CPU_ARM_CORTEX_M4 = 9;
public static final int UC_CPU_ARM_CORTEX_M7 = 10;
public static final int UC_CPU_ARM_CORTEX_M33 = 11;
public static final int UC_CPU_ARM_CORTEX_R5 = 12;
public static final int UC_CPU_ARM_CORTEX_R5F = 13;
public static final int UC_CPU_ARM_CORTEX_A8 = 14;
public static final int UC_CPU_ARM_CORTEX_A9 = 15;
public static final int UC_CPU_ARM_CORTEX_A7 = 16;
public static final int UC_CPU_ARM_CORTEX_A15 = 17;
public static final int UC_CPU_ARM_TI925T = 18;
public static final int UC_CPU_ARM_SA1100 = 19;
public static final int UC_CPU_ARM_SA1110 = 20;
public static final int UC_CPU_ARM_PXA250 = 21;
public static final int UC_CPU_ARM_PXA255 = 22;
public static final int UC_CPU_ARM_PXA260 = 23;
public static final int UC_CPU_ARM_PXA261 = 24;
public static final int UC_CPU_ARM_PXA262 = 25;
public static final int UC_CPU_ARM_PXA270A0 = 26;
public static final int UC_CPU_ARM_PXA270A1 = 27;
public static final int UC_CPU_ARM_PXA270B0 = 28;
public static final int UC_CPU_ARM_PXA270B1 = 29;
public static final int UC_CPU_ARM_PXA270C0 = 30;
public static final int UC_CPU_ARM_PXA270C5 = 31;
public static final int UC_CPU_ARM_MAX = 32;
// ARM registers
public static final int UC_ARM_REG_INVALID = 0;

View File

@@ -4,6 +4,16 @@ package unicorn;
public interface M68kConst {
public static final int UC_CPU_M5206_CPU = 0;
public static final int UC_CPU_M68000_CPU = 1;
public static final int UC_CPU_M68020_CPU = 2;
public static final int UC_CPU_M68030_CPU = 3;
public static final int UC_CPU_M68040_CPU = 4;
public static final int UC_CPU_M68060_CPU = 5;
public static final int UC_CPU_M5208_CPU = 6;
public static final int UC_CPU_CFV4E_CPU = 7;
public static final int UC_CPU_ANY_CPU = 8;
// M68K registers
public static final int UC_M68K_REG_INVALID = 0;

View File

@@ -4,6 +4,36 @@ package unicorn;
public interface MipsConst {
public static final int UC_CPU_MIPS_4KC = 0;
public static final int UC_CPU_MIPS_4KM = 1;
public static final int UC_CPU_MIPS_4KECR1 = 2;
public static final int UC_CPU_MIPS_4KEMR1 = 3;
public static final int UC_CPU_MIPS_4KEC = 4;
public static final int UC_CPU_MIPS_4KEM = 5;
public static final int UC_CPU_MIPS_24KC = 6;
public static final int UC_CPU_MIPS_24KEC = 7;
public static final int UC_CPU_MIPS_24KF = 8;
public static final int UC_CPU_MIPS_34KF = 9;
public static final int UC_CPU_MIPS_74KF = 10;
public static final int UC_CPU_MIPS_M14K = 11;
public static final int UC_CPU_MIPS_M14KC = 12;
public static final int UC_CPU_MIPS_P5600 = 13;
public static final int UC_CPU_MIPS_MIPS32R6_GENERIC = 14;
public static final int UC_CPU_MIPS_I7200 = 15;
public static final int UC_CPU_MIPS_R4000 = 16;
public static final int UC_CPU_MIPS_VR5432 = 17;
public static final int UC_CPU_MIPS_5KC = 18;
public static final int UC_CPU_MIPS_5KF = 19;
public static final int UC_CPU_MIPS_20KC = 20;
public static final int UC_CPU_MIPS_MIPS64R2_GENERIC = 21;
public static final int UC_CPU_MIPS_5KEC = 22;
public static final int UC_CPU_MIPS_5KEF = 23;
public static final int UC_CPU_MIPS_I6400 = 24;
public static final int UC_CPU_MIPS_I6500 = 25;
public static final int UC_CPU_MIPS_LOONGSON_2E = 26;
public static final int UC_CPU_MIPS_LOONGSON_2F = 27;
public static final int UC_CPU_MIPS_MIPS64DSPR2 = 28;
// MIPS registers
public static final int UC_MIPS_REG_INVALID = 0;

View File

@@ -4,6 +4,307 @@ package unicorn;
public interface PpcConst {
public static final int UC_CPU_PPC_401A1 = 0;
public static final int UC_CPU_PPC_401B2 = 1;
public static final int UC_CPU_PPC_401C2 = 2;
public static final int UC_CPU_PPC_401D2 = 3;
public static final int UC_CPU_PPC_401E2 = 4;
public static final int UC_CPU_PPC_401F2 = 5;
public static final int UC_CPU_PPC_401G2 = 6;
public static final int UC_CPU_PPC_COBRA = 7;
public static final int UC_CPU_PPC_403GA = 8;
public static final int UC_CPU_PPC_403GB = 9;
public static final int UC_CPU_PPC_403GC = 10;
public static final int UC_CPU_PPC_403GCX = 11;
public static final int UC_CPU_PPC_405D2 = 12;
public static final int UC_CPU_PPC_405D4 = 13;
public static final int UC_CPU_PPC_405CRA = 14;
public static final int UC_CPU_PPC_405CRB = 15;
public static final int UC_CPU_PPC_405CRC = 16;
public static final int UC_CPU_PPC_405EP = 17;
public static final int UC_CPU_PPC_405EZ = 18;
public static final int UC_CPU_PPC_405GPA = 19;
public static final int UC_CPU_PPC_405GPB = 20;
public static final int UC_CPU_PPC_405GPC = 21;
public static final int UC_CPU_PPC_405GPD = 22;
public static final int UC_CPU_PPC_405GPR = 23;
public static final int UC_CPU_PPC_405LP = 24;
public static final int UC_CPU_PPC_NPE405H = 25;
public static final int UC_CPU_PPC_NPE405H2 = 26;
public static final int UC_CPU_PPC_NPE405L = 27;
public static final int UC_CPU_PPC_NPE4GS3 = 28;
public static final int UC_CPU_PPC_STB03 = 29;
public static final int UC_CPU_PPC_STB04 = 30;
public static final int UC_CPU_PPC_STB25 = 31;
public static final int UC_CPU_PPC_X2VP4 = 32;
public static final int UC_CPU_PPC_440_XILINX = 33;
public static final int UC_CPU_PPC_440EPA = 34;
public static final int UC_CPU_PPC_440EPB = 35;
public static final int UC_CPU_PPC_440GPB = 36;
public static final int UC_CPU_PPC_440GPC = 37;
public static final int UC_CPU_PPC_440GRX = 38;
public static final int UC_CPU_PPC_440GXA = 39;
public static final int UC_CPU_PPC_440GXB = 40;
public static final int UC_CPU_PPC_440GXC = 41;
public static final int UC_CPU_PPC_440GXF = 42;
public static final int UC_CPU_PPC_440SP = 43;
public static final int UC_CPU_PPC_440SP2 = 44;
public static final int UC_CPU_PPC_440SPE = 45;
public static final int UC_CPU_PPC_460EXB = 46;
public static final int UC_CPU_PPC_MPC5XX = 47;
public static final int UC_CPU_PPC_MPC8XX = 48;
public static final int UC_CPU_PPC_G2 = 49;
public static final int UC_CPU_PPC_G2H4 = 50;
public static final int UC_CPU_PPC_G2GP = 51;
public static final int UC_CPU_PPC_G2LS = 52;
public static final int UC_CPU_PPC_MPC603 = 53;
public static final int UC_CPU_PPC_G2_HIP3 = 54;
public static final int UC_CPU_PPC_G2_HIP4 = 55;
public static final int UC_CPU_PPC_G2LE = 56;
public static final int UC_CPU_PPC_G2LEGP = 57;
public static final int UC_CPU_PPC_G2LELS = 58;
public static final int UC_CPU_PPC_G2LEGP1 = 59;
public static final int UC_CPU_PPC_G2LEGP3 = 60;
public static final int UC_CPU_PPC_E200Z5 = 61;
public static final int UC_CPU_PPC_E200Z6 = 62;
public static final int UC_CPU_PPC_E300C1 = 63;
public static final int UC_CPU_PPC_E300C2 = 64;
public static final int UC_CPU_PPC_E300C3 = 65;
public static final int UC_CPU_PPC_E300C4 = 66;
public static final int UC_CPU_PPC_E500V1_V10 = 67;
public static final int UC_CPU_PPC_E500V1_V20 = 68;
public static final int UC_CPU_PPC_E500V2_V10 = 69;
public static final int UC_CPU_PPC_E500V2_V11 = 70;
public static final int UC_CPU_PPC_E500V2_V20 = 71;
public static final int UC_CPU_PPC_E500V2_V21 = 72;
public static final int UC_CPU_PPC_E500V2_V22 = 73;
public static final int UC_CPU_PPC_E500V2_V30 = 74;
public static final int UC_CPU_PPC_E500MC = 75;
public static final int UC_CPU_PPC_E5500 = 76;
public static final int UC_CPU_PPC_E6500 = 77;
public static final int UC_CPU_PPC_E600 = 78;
public static final int UC_CPU_PPC_601_V0 = 79;
public static final int UC_CPU_PPC_601_V1 = 80;
public static final int UC_CPU_PPC_601_V2 = 81;
public static final int UC_CPU_PPC_602 = 82;
public static final int UC_CPU_PPC_603 = 83;
public static final int UC_CPU_PPC_603E_V11 = 84;
public static final int UC_CPU_PPC_603E_V12 = 85;
public static final int UC_CPU_PPC_603E_V13 = 86;
public static final int UC_CPU_PPC_603E_V14 = 87;
public static final int UC_CPU_PPC_603E_V22 = 88;
public static final int UC_CPU_PPC_603E_V3 = 89;
public static final int UC_CPU_PPC_603E_V4 = 90;
public static final int UC_CPU_PPC_603E_V41 = 91;
public static final int UC_CPU_PPC_603E7T = 92;
public static final int UC_CPU_PPC_603E7V = 93;
public static final int UC_CPU_PPC_603E7V1 = 94;
public static final int UC_CPU_PPC_603E7V2 = 95;
public static final int UC_CPU_PPC_603E7 = 96;
public static final int UC_CPU_PPC_603P = 97;
public static final int UC_CPU_PPC_604 = 98;
public static final int UC_CPU_PPC_604E_V10 = 99;
public static final int UC_CPU_PPC_604E_V22 = 100;
public static final int UC_CPU_PPC_604E_V24 = 101;
public static final int UC_CPU_PPC_604R = 102;
public static final int UC_CPU_PPC_7X0_V10 = 103;
public static final int UC_CPU_PPC_7X0_V20 = 104;
public static final int UC_CPU_PPC_7X0_V21 = 105;
public static final int UC_CPU_PPC_7X0_V22 = 106;
public static final int UC_CPU_PPC_7X0_V30 = 107;
public static final int UC_CPU_PPC_7X0_V31 = 108;
public static final int UC_CPU_PPC_740E = 109;
public static final int UC_CPU_PPC_750E = 110;
public static final int UC_CPU_PPC_7X0P = 111;
public static final int UC_CPU_PPC_750CL_V10 = 112;
public static final int UC_CPU_PPC_750CL_V20 = 113;
public static final int UC_CPU_PPC_750CX_V10 = 114;
public static final int UC_CPU_PPC_750CX_V20 = 115;
public static final int UC_CPU_PPC_750CX_V21 = 116;
public static final int UC_CPU_PPC_750CX_V22 = 117;
public static final int UC_CPU_PPC_750CXE_V21 = 118;
public static final int UC_CPU_PPC_750CXE_V22 = 119;
public static final int UC_CPU_PPC_750CXE_V23 = 120;
public static final int UC_CPU_PPC_750CXE_V24 = 121;
public static final int UC_CPU_PPC_750CXE_V24B = 122;
public static final int UC_CPU_PPC_750CXE_V30 = 123;
public static final int UC_CPU_PPC_750CXE_V31 = 124;
public static final int UC_CPU_PPC_750CXE_V31B = 125;
public static final int UC_CPU_PPC_750CXR = 126;
public static final int UC_CPU_PPC_750FL = 127;
public static final int UC_CPU_PPC_750FX_V10 = 128;
public static final int UC_CPU_PPC_750FX_V20 = 129;
public static final int UC_CPU_PPC_750FX_V21 = 130;
public static final int UC_CPU_PPC_750FX_V22 = 131;
public static final int UC_CPU_PPC_750FX_V23 = 132;
public static final int UC_CPU_PPC_750GL = 133;
public static final int UC_CPU_PPC_750GX_V10 = 134;
public static final int UC_CPU_PPC_750GX_V11 = 135;
public static final int UC_CPU_PPC_750GX_V12 = 136;
public static final int UC_CPU_PPC_750L_V20 = 137;
public static final int UC_CPU_PPC_750L_V21 = 138;
public static final int UC_CPU_PPC_750L_V22 = 139;
public static final int UC_CPU_PPC_750L_V30 = 140;
public static final int UC_CPU_PPC_750L_V32 = 141;
public static final int UC_CPU_PPC_7X5_V10 = 142;
public static final int UC_CPU_PPC_7X5_V11 = 143;
public static final int UC_CPU_PPC_7X5_V20 = 144;
public static final int UC_CPU_PPC_7X5_V21 = 145;
public static final int UC_CPU_PPC_7X5_V22 = 146;
public static final int UC_CPU_PPC_7X5_V23 = 147;
public static final int UC_CPU_PPC_7X5_V24 = 148;
public static final int UC_CPU_PPC_7X5_V25 = 149;
public static final int UC_CPU_PPC_7X5_V26 = 150;
public static final int UC_CPU_PPC_7X5_V27 = 151;
public static final int UC_CPU_PPC_7X5_V28 = 152;
public static final int UC_CPU_PPC_7400_V10 = 153;
public static final int UC_CPU_PPC_7400_V11 = 154;
public static final int UC_CPU_PPC_7400_V20 = 155;
public static final int UC_CPU_PPC_7400_V21 = 156;
public static final int UC_CPU_PPC_7400_V22 = 157;
public static final int UC_CPU_PPC_7400_V26 = 158;
public static final int UC_CPU_PPC_7400_V27 = 159;
public static final int UC_CPU_PPC_7400_V28 = 160;
public static final int UC_CPU_PPC_7400_V29 = 161;
public static final int UC_CPU_PPC_7410_V10 = 162;
public static final int UC_CPU_PPC_7410_V11 = 163;
public static final int UC_CPU_PPC_7410_V12 = 164;
public static final int UC_CPU_PPC_7410_V13 = 165;
public static final int UC_CPU_PPC_7410_V14 = 166;
public static final int UC_CPU_PPC_7448_V10 = 167;
public static final int UC_CPU_PPC_7448_V11 = 168;
public static final int UC_CPU_PPC_7448_V20 = 169;
public static final int UC_CPU_PPC_7448_V21 = 170;
public static final int UC_CPU_PPC_7450_V10 = 171;
public static final int UC_CPU_PPC_7450_V11 = 172;
public static final int UC_CPU_PPC_7450_V12 = 173;
public static final int UC_CPU_PPC_7450_V20 = 174;
public static final int UC_CPU_PPC_7450_V21 = 175;
public static final int UC_CPU_PPC_74X1_V23 = 176;
public static final int UC_CPU_PPC_74X1_V210 = 177;
public static final int UC_CPU_PPC_74X5_V10 = 178;
public static final int UC_CPU_PPC_74X5_V21 = 179;
public static final int UC_CPU_PPC_74X5_V32 = 180;
public static final int UC_CPU_PPC_74X5_V33 = 181;
public static final int UC_CPU_PPC_74X5_V34 = 182;
public static final int UC_CPU_PPC_74X7_V10 = 183;
public static final int UC_CPU_PPC_74X7_V11 = 184;
public static final int UC_CPU_PPC_74X7_V12 = 185;
public static final int UC_CPU_PPC_74X7A_V10 = 186;
public static final int UC_CPU_PPC_74X7A_V11 = 187;
public static final int UC_CPU_PPC_74X7A_V12 = 188;
public static final int UC_CPU_PPC_IOP480 = 1;
public static final int UC_CPU_PPC_X2VP20 = 42;
public static final int UC_CPU_PPC_440GRA = 35;
public static final int UC_CPU_PPC_440EPX = 38;
public static final int UC_CPU_PPC_MPC5200_V10 = 59;
public static final int UC_CPU_PPC_MPC5200_V11 = 59;
public static final int UC_CPU_PPC_MPC5200_V12 = 59;
public static final int UC_CPU_PPC_MPC5200B_V20 = 59;
public static final int UC_CPU_PPC_MPC5200B_V21 = 59;
public static final int UC_CPU_PPC_MPC834X = 63;
public static final int UC_CPU_PPC_MPC837X = 66;
public static final int UC_CPU_PPC_E500 = 73;
public static final int UC_CPU_PPC_MPC8533_V10 = 72;
public static final int UC_CPU_PPC_MPC8533_V11 = 73;
public static final int UC_CPU_PPC_MPC8533E_V10 = 72;
public static final int UC_CPU_PPC_MPC8533E_V11 = 73;
public static final int UC_CPU_PPC_MPC8540_V10 = 67;
public static final int UC_CPU_PPC_MPC8540_V20 = 68;
public static final int UC_CPU_PPC_MPC8540_V21 = 68;
public static final int UC_CPU_PPC_MPC8541_V10 = 68;
public static final int UC_CPU_PPC_MPC8541_V11 = 68;
public static final int UC_CPU_PPC_MPC8541E_V10 = 68;
public static final int UC_CPU_PPC_MPC8541E_V11 = 68;
public static final int UC_CPU_PPC_MPC8543_V10 = 69;
public static final int UC_CPU_PPC_MPC8543_V11 = 70;
public static final int UC_CPU_PPC_MPC8543_V20 = 71;
public static final int UC_CPU_PPC_MPC8543_V21 = 72;
public static final int UC_CPU_PPC_MPC8543E_V10 = 69;
public static final int UC_CPU_PPC_MPC8543E_V11 = 70;
public static final int UC_CPU_PPC_MPC8543E_V20 = 71;
public static final int UC_CPU_PPC_MPC8543E_V21 = 72;
public static final int UC_CPU_PPC_MPC8544_V10 = 72;
public static final int UC_CPU_PPC_MPC8544_V11 = 73;
public static final int UC_CPU_PPC_MPC8544E_V11 = 73;
public static final int UC_CPU_PPC_MPC8544E_V10 = 72;
public static final int UC_CPU_PPC_MPC8545_V10 = 69;
public static final int UC_CPU_PPC_MPC8545_V20 = 71;
public static final int UC_CPU_PPC_MPC8545_V21 = 72;
public static final int UC_CPU_PPC_MPC8545E_V10 = 69;
public static final int UC_CPU_PPC_MPC8545E_V20 = 71;
public static final int UC_CPU_PPC_MPC8545E_V21 = 72;
public static final int UC_CPU_PPC_MPC8547E_V10 = 69;
public static final int UC_CPU_PPC_MPC8547E_V20 = 71;
public static final int UC_CPU_PPC_MPC8547E_V21 = 72;
public static final int UC_CPU_PPC_MPC8548_V10 = 69;
public static final int UC_CPU_PPC_MPC8548_V11 = 70;
public static final int UC_CPU_PPC_MPC8548_V20 = 71;
public static final int UC_CPU_PPC_MPC8548_V21 = 72;
public static final int UC_CPU_PPC_MPC8548E_V10 = 69;
public static final int UC_CPU_PPC_MPC8548E_V11 = 70;
public static final int UC_CPU_PPC_MPC8548E_V20 = 71;
public static final int UC_CPU_PPC_MPC8548E_V21 = 72;
public static final int UC_CPU_PPC_MPC8555_V10 = 69;
public static final int UC_CPU_PPC_MPC8555_V11 = 70;
public static final int UC_CPU_PPC_MPC8555E_V10 = 69;
public static final int UC_CPU_PPC_MPC8555E_V11 = 70;
public static final int UC_CPU_PPC_MPC8560_V10 = 69;
public static final int UC_CPU_PPC_MPC8560_V20 = 71;
public static final int UC_CPU_PPC_MPC8560_V21 = 72;
public static final int UC_CPU_PPC_MPC8567 = 73;
public static final int UC_CPU_PPC_MPC8567E = 73;
public static final int UC_CPU_PPC_MPC8568 = 73;
public static final int UC_CPU_PPC_MPC8568E = 73;
public static final int UC_CPU_PPC_MPC8572 = 74;
public static final int UC_CPU_PPC_MPC8572E = 74;
public static final int UC_CPU_PPC_MPC8610 = 78;
public static final int UC_CPU_PPC_MPC8641 = 78;
public static final int UC_CPU_PPC_MPC8641D = 78;
public static final int UC_CPU_PPC64_620 = 0;
public static final int UC_CPU_PPC64_630 = 1;
public static final int UC_CPU_PPC64_631 = 2;
public static final int UC_CPU_PPC64_POWER4 = 3;
public static final int UC_CPU_PPC64_POWER4P = 4;
public static final int UC_CPU_PPC64_POWER5 = 5;
public static final int UC_CPU_PPC64_POWER5P_V21 = 6;
public static final int UC_CPU_PPC64_POWER6 = 7;
public static final int UC_CPU_PPC64_POWER_SERVER_MASK = 8;
public static final int UC_CPU_PPC64_POWER7_BASE = 9;
public static final int UC_CPU_PPC64_POWER7_V23 = 10;
public static final int UC_CPU_PPC64_POWER7P_BASE = 11;
public static final int UC_CPU_PPC64_POWER7P_V21 = 12;
public static final int UC_CPU_PPC64_POWER8E_BASE = 13;
public static final int UC_CPU_PPC64_POWER8E_V21 = 14;
public static final int UC_CPU_PPC64_POWER8_BASE = 15;
public static final int UC_CPU_PPC64_POWER8_V20 = 16;
public static final int UC_CPU_PPC64_POWER8NVL_BASE = 17;
public static final int UC_CPU_PPC64_POWER8NVL_V10 = 18;
public static final int UC_CPU_PPC64_POWER9_BASE = 19;
public static final int UC_CPU_PPC64_POWER9_DD1 = 20;
public static final int UC_CPU_PPC64_POWER9_DD20 = 21;
public static final int UC_CPU_PPC64_POWER10_BASE = 22;
public static final int UC_CPU_PPC64_POWER10_DD1 = 23;
public static final int UC_CPU_PPC64_970_V22 = 24;
public static final int UC_CPU_PPC64_970FX_V10 = 25;
public static final int UC_CPU_PPC64_970FX_V20 = 26;
public static final int UC_CPU_PPC64_970FX_V21 = 27;
public static final int UC_CPU_PPC64_970FX_V30 = 28;
public static final int UC_CPU_PPC64_970FX_V31 = 29;
public static final int UC_CPU_PPC64_970MP_V10 = 30;
public static final int UC_CPU_PPC64_970MP_V11 = 31;
public static final int UC_CPU_PPC64_CELL_V10 = 32;
public static final int UC_CPU_PPC64_CELL_V20 = 33;
public static final int UC_CPU_PPC64_CELL_V30 = 34;
public static final int UC_CPU_PPC64_CELL_V31 = 35;
public static final int UC_CPU_PPC64_RS64 = 36;
public static final int UC_CPU_PPC64_RS64II = 37;
public static final int UC_CPU_PPC64_RS64III = 38;
public static final int UC_CPU_PPC64_RS64IV = 39;
public static final int UC_CPU_PPC64_CELL_V32 = 35;
public static final int UC_CPU_PPC64_CELL = 35;
// PPC registers
public static final int UC_PPC_REG_INVALID = 0;

View File

@@ -4,6 +4,16 @@ package unicorn;
public interface RiscvConst {
public static final int UC_CPU_RISCV32_ANY = 0;
public static final int UC_CPU_RISCV32_BASE32 = 1;
public static final int UC_CPU_RISCV32_SIFIVE_E31 = 2;
public static final int UC_CPU_RISCV32_SIFIVE_U34 = 3;
public static final int UC_CPU_RISCV64_ANY = 0;
public static final int UC_CPU_RISCV64_BASE64 = 1;
public static final int UC_CPU_RISCV64_SIFIVE_E51 = 2;
public static final int UC_CPU_RISCV64_SIFIVE_U54 = 3;
// RISCV registers
public static final int UC_RISCV_REG_INVALID = 0;

View File

@@ -4,6 +4,38 @@ package unicorn;
public interface SparcConst {
public static final int UC_CPU_SPARC_FUJITSU_MB86904 = 0;
public static final int UC_CPU_SPARC_FUJITSU_MB86907 = 1;
public static final int UC_CPU_SPARC_TI_MICROSPARC_I = 2;
public static final int UC_CPU_SPARC_TI_MICROSPARC_II = 3;
public static final int UC_CPU_SPARC_TI_MICROSPARC_IIEP = 4;
public static final int UC_CPU_SPARC_TI_SUPERSPARC_40 = 5;
public static final int UC_CPU_SPARC_TI_SUPERSPARC_50 = 6;
public static final int UC_CPU_SPARC_TI_SUPERSPARC_51 = 7;
public static final int UC_CPU_SPARC_TI_SUPERSPARC_60 = 8;
public static final int UC_CPU_SPARC_TI_SUPERSPARC_61 = 9;
public static final int UC_CPU_SPARC_TI_SUPERSPARC_II = 10;
public static final int UC_CPU_SPARC_LEON2 = 11;
public static final int UC_CPU_SPARC_LEON3 = 12;
public static final int UC_CPU_SPARC64_FUJITSU = 0;
public static final int UC_CPU_SPARC64_FUJITSU_III = 1;
public static final int UC_CPU_SPARC64_FUJITSU_IV = 2;
public static final int UC_CPU_SPARC64_FUJITSU_V = 3;
public static final int UC_CPU_SPARC64_TI_ULTRASPARC_I = 4;
public static final int UC_CPU_SPARC64_TI_ULTRASPARC_II = 5;
public static final int UC_CPU_SPARC64_TI_ULTRASPARC_III = 6;
public static final int UC_CPU_SPARC64_TI_ULTRASPARC_IIE = 7;
public static final int UC_CPU_SPARC64_SUN_ULTRASPARC_III = 8;
public static final int UC_CPU_SPARC64_SUN_ULTRASPARC_III_CU = 9;
public static final int UC_CPU_SPARC64_SUN_ULTRASPARC_IIII = 10;
public static final int UC_CPU_SPARC64_SUN_ULTRASPARC_IV = 11;
public static final int UC_CPU_SPARC64_SUN_ULTRASPARC_IV_PLUS = 12;
public static final int UC_CPU_SPARC64_SUN_ULTRASPARC_IIII_PLUS = 13;
public static final int UC_CPU_SPARC64_SUN_ULTRASPARC_T1 = 14;
public static final int UC_CPU_SPARC64_SUN_ULTRASPARC_T2 = 15;
public static final int UC_CPU_SPARC64_NEC_ULTRASPARC_I = 16;
// SPARC registers
public static final int UC_SPARC_REG_INVALID = 0;

View File

@@ -109,6 +109,22 @@ public interface UnicornConst {
public static final int UC_QUERY_ARCH = 3;
public static final int UC_QUERY_TIMEOUT = 4;
public static final int UC_CTL_IO_NONE = 0;
public static final int UC_CTL_IO_WRITE = 1;
public static final int UC_CTL_IO_READ = 2;
public static final int UC_CTL_IO_READ_WRITE = 3;
public static final int UC_CTL_UC_MODE = 0;
public static final int UC_CTL_UC_PAGE_SIZE = 1;
public static final int UC_CTL_UC_ARCH = 2;
public static final int UC_CTL_UC_TIMEOUT = 3;
public static final int UC_CTL_UC_EXITS_CNT = 4;
public static final int UC_CTL_UC_EXITS = 5;
public static final int UC_CTL_CPU_MODEL = 6;
public static final int UC_CTL_TB_EDGE = 7;
public static final int UC_CTL_TB_REQUEST_CACHE = 8;
public static final int UC_CTL_TB_REMOVE_CACHE = 9;
public static final int UC_PROT_NONE = 0;
public static final int UC_PROT_READ = 1;
public static final int UC_PROT_WRITE = 2;

View File

@@ -4,6 +4,45 @@ package unicorn;
public interface X86Const {
public static final int UC_CPU_X86_QEMU64 = 0;
public static final int UC_CPU_X86_PHENOM = 1;
public static final int UC_CPU_X86_CORE2DUO = 2;
public static final int UC_CPU_X86_KVM64 = 3;
public static final int UC_CPU_X86_QEMU32 = 4;
public static final int UC_CPU_X86_KVM32 = 5;
public static final int UC_CPU_X86_COREDUO = 6;
public static final int UC_CPU_X86_486 = 7;
public static final int UC_CPU_X86_PENTIUM = 8;
public static final int UC_CPU_X86_PENTIUM2 = 9;
public static final int UC_CPU_X86_PENTIUM3 = 10;
public static final int UC_CPU_X86_ATHLON = 11;
public static final int UC_CPU_X86_N270 = 12;
public static final int UC_CPU_X86_CONROE = 13;
public static final int UC_CPU_X86_PENRYN = 14;
public static final int UC_CPU_X86_NEHALEM = 15;
public static final int UC_CPU_X86_WESTMERE = 16;
public static final int UC_CPU_X86_SANDYBRIDGE = 17;
public static final int UC_CPU_X86_IVYBRIDGE = 18;
public static final int UC_CPU_X86_HASWELL = 19;
public static final int UC_CPU_X86_BROADWELL = 20;
public static final int UC_CPU_X86_SKYLAKE_CLIENT = 21;
public static final int UC_CPU_X86_SKYLAKE_SERVER = 22;
public static final int UC_CPU_X86_CASCADELAKE_SERVER = 23;
public static final int UC_CPU_X86_COOPERLAKE = 24;
public static final int UC_CPU_X86_ICELAKE_CLIENT = 25;
public static final int UC_CPU_X86_ICELAKE_SERVER = 26;
public static final int UC_CPU_X86_DENVERTON = 27;
public static final int UC_CPU_X86_SNOWRIDGE = 28;
public static final int UC_CPU_X86_KNIGHTSMILL = 29;
public static final int UC_CPU_X86_OPTERON_G1 = 30;
public static final int UC_CPU_X86_OPTERON_G2 = 31;
public static final int UC_CPU_X86_OPTERON_G3 = 32;
public static final int UC_CPU_X86_OPTERON_G4 = 33;
public static final int UC_CPU_X86_OPTERON_G5 = 34;
public static final int UC_CPU_X86_EPYC = 35;
public static final int UC_CPU_X86_DHYANA = 36;
public static final int UC_CPU_X86_EPYC_ROME = 37;
// X86 registers
public static final int UC_X86_REG_INVALID = 0;

View File

@@ -5,6 +5,11 @@ unit Arm64Const;
interface
const
UC_CPU_AARCH64_A57 = 0;
UC_CPU_AARCH64_A53 = 1;
UC_CPU_AARCH64_A72 = 2;
UC_CPU_AARCH64_MAX = 3;
// ARM64 registers
UC_ARM64_REG_INVALID = 0;

View File

@@ -5,6 +5,40 @@ unit ArmConst;
interface
const
UC_CPU_ARM_926 = 0;
UC_CPU_ARM_946 = 1;
UC_CPU_ARM_1026 = 2;
UC_CPU_ARM_1136_R2 = 3;
UC_CPU_ARM_1136 = 4;
UC_CPU_ARM_1176 = 5;
UC_CPU_ARM_11MPCORE = 6;
UC_CPU_ARM_CORTEX_M0 = 7;
UC_CPU_ARM_CORTEX_M3 = 8;
UC_CPU_ARM_CORTEX_M4 = 9;
UC_CPU_ARM_CORTEX_M7 = 10;
UC_CPU_ARM_CORTEX_M33 = 11;
UC_CPU_ARM_CORTEX_R5 = 12;
UC_CPU_ARM_CORTEX_R5F = 13;
UC_CPU_ARM_CORTEX_A8 = 14;
UC_CPU_ARM_CORTEX_A9 = 15;
UC_CPU_ARM_CORTEX_A7 = 16;
UC_CPU_ARM_CORTEX_A15 = 17;
UC_CPU_ARM_TI925T = 18;
UC_CPU_ARM_SA1100 = 19;
UC_CPU_ARM_SA1110 = 20;
UC_CPU_ARM_PXA250 = 21;
UC_CPU_ARM_PXA255 = 22;
UC_CPU_ARM_PXA260 = 23;
UC_CPU_ARM_PXA261 = 24;
UC_CPU_ARM_PXA262 = 25;
UC_CPU_ARM_PXA270A0 = 26;
UC_CPU_ARM_PXA270A1 = 27;
UC_CPU_ARM_PXA270B0 = 28;
UC_CPU_ARM_PXA270B1 = 29;
UC_CPU_ARM_PXA270C0 = 30;
UC_CPU_ARM_PXA270C5 = 31;
UC_CPU_ARM_MAX = 32;
// ARM registers
UC_ARM_REG_INVALID = 0;

View File

@@ -5,6 +5,16 @@ unit M68kConst;
interface
const
UC_CPU_M5206_CPU = 0;
UC_CPU_M68000_CPU = 1;
UC_CPU_M68020_CPU = 2;
UC_CPU_M68030_CPU = 3;
UC_CPU_M68040_CPU = 4;
UC_CPU_M68060_CPU = 5;
UC_CPU_M5208_CPU = 6;
UC_CPU_CFV4E_CPU = 7;
UC_CPU_ANY_CPU = 8;
// M68K registers
UC_M68K_REG_INVALID = 0;

View File

@@ -5,6 +5,36 @@ unit MipsConst;
interface
const
UC_CPU_MIPS_4KC = 0;
UC_CPU_MIPS_4KM = 1;
UC_CPU_MIPS_4KECR1 = 2;
UC_CPU_MIPS_4KEMR1 = 3;
UC_CPU_MIPS_4KEC = 4;
UC_CPU_MIPS_4KEM = 5;
UC_CPU_MIPS_24KC = 6;
UC_CPU_MIPS_24KEC = 7;
UC_CPU_MIPS_24KF = 8;
UC_CPU_MIPS_34KF = 9;
UC_CPU_MIPS_74KF = 10;
UC_CPU_MIPS_M14K = 11;
UC_CPU_MIPS_M14KC = 12;
UC_CPU_MIPS_P5600 = 13;
UC_CPU_MIPS_MIPS32R6_GENERIC = 14;
UC_CPU_MIPS_I7200 = 15;
UC_CPU_MIPS_R4000 = 16;
UC_CPU_MIPS_VR5432 = 17;
UC_CPU_MIPS_5KC = 18;
UC_CPU_MIPS_5KF = 19;
UC_CPU_MIPS_20KC = 20;
UC_CPU_MIPS_MIPS64R2_GENERIC = 21;
UC_CPU_MIPS_5KEC = 22;
UC_CPU_MIPS_5KEF = 23;
UC_CPU_MIPS_I6400 = 24;
UC_CPU_MIPS_I6500 = 25;
UC_CPU_MIPS_LOONGSON_2E = 26;
UC_CPU_MIPS_LOONGSON_2F = 27;
UC_CPU_MIPS_MIPS64DSPR2 = 28;
// MIPS registers
UC_MIPS_REG_INVALID = 0;

View File

@@ -5,6 +5,307 @@ unit PpcConst;
interface
const
UC_CPU_PPC_401A1 = 0;
UC_CPU_PPC_401B2 = 1;
UC_CPU_PPC_401C2 = 2;
UC_CPU_PPC_401D2 = 3;
UC_CPU_PPC_401E2 = 4;
UC_CPU_PPC_401F2 = 5;
UC_CPU_PPC_401G2 = 6;
UC_CPU_PPC_COBRA = 7;
UC_CPU_PPC_403GA = 8;
UC_CPU_PPC_403GB = 9;
UC_CPU_PPC_403GC = 10;
UC_CPU_PPC_403GCX = 11;
UC_CPU_PPC_405D2 = 12;
UC_CPU_PPC_405D4 = 13;
UC_CPU_PPC_405CRA = 14;
UC_CPU_PPC_405CRB = 15;
UC_CPU_PPC_405CRC = 16;
UC_CPU_PPC_405EP = 17;
UC_CPU_PPC_405EZ = 18;
UC_CPU_PPC_405GPA = 19;
UC_CPU_PPC_405GPB = 20;
UC_CPU_PPC_405GPC = 21;
UC_CPU_PPC_405GPD = 22;
UC_CPU_PPC_405GPR = 23;
UC_CPU_PPC_405LP = 24;
UC_CPU_PPC_NPE405H = 25;
UC_CPU_PPC_NPE405H2 = 26;
UC_CPU_PPC_NPE405L = 27;
UC_CPU_PPC_NPE4GS3 = 28;
UC_CPU_PPC_STB03 = 29;
UC_CPU_PPC_STB04 = 30;
UC_CPU_PPC_STB25 = 31;
UC_CPU_PPC_X2VP4 = 32;
UC_CPU_PPC_440_XILINX = 33;
UC_CPU_PPC_440EPA = 34;
UC_CPU_PPC_440EPB = 35;
UC_CPU_PPC_440GPB = 36;
UC_CPU_PPC_440GPC = 37;
UC_CPU_PPC_440GRX = 38;
UC_CPU_PPC_440GXA = 39;
UC_CPU_PPC_440GXB = 40;
UC_CPU_PPC_440GXC = 41;
UC_CPU_PPC_440GXF = 42;
UC_CPU_PPC_440SP = 43;
UC_CPU_PPC_440SP2 = 44;
UC_CPU_PPC_440SPE = 45;
UC_CPU_PPC_460EXB = 46;
UC_CPU_PPC_MPC5XX = 47;
UC_CPU_PPC_MPC8XX = 48;
UC_CPU_PPC_G2 = 49;
UC_CPU_PPC_G2H4 = 50;
UC_CPU_PPC_G2GP = 51;
UC_CPU_PPC_G2LS = 52;
UC_CPU_PPC_MPC603 = 53;
UC_CPU_PPC_G2_HIP3 = 54;
UC_CPU_PPC_G2_HIP4 = 55;
UC_CPU_PPC_G2LE = 56;
UC_CPU_PPC_G2LEGP = 57;
UC_CPU_PPC_G2LELS = 58;
UC_CPU_PPC_G2LEGP1 = 59;
UC_CPU_PPC_G2LEGP3 = 60;
UC_CPU_PPC_E200Z5 = 61;
UC_CPU_PPC_E200Z6 = 62;
UC_CPU_PPC_E300C1 = 63;
UC_CPU_PPC_E300C2 = 64;
UC_CPU_PPC_E300C3 = 65;
UC_CPU_PPC_E300C4 = 66;
UC_CPU_PPC_E500V1_V10 = 67;
UC_CPU_PPC_E500V1_V20 = 68;
UC_CPU_PPC_E500V2_V10 = 69;
UC_CPU_PPC_E500V2_V11 = 70;
UC_CPU_PPC_E500V2_V20 = 71;
UC_CPU_PPC_E500V2_V21 = 72;
UC_CPU_PPC_E500V2_V22 = 73;
UC_CPU_PPC_E500V2_V30 = 74;
UC_CPU_PPC_E500MC = 75;
UC_CPU_PPC_E5500 = 76;
UC_CPU_PPC_E6500 = 77;
UC_CPU_PPC_E600 = 78;
UC_CPU_PPC_601_V0 = 79;
UC_CPU_PPC_601_V1 = 80;
UC_CPU_PPC_601_V2 = 81;
UC_CPU_PPC_602 = 82;
UC_CPU_PPC_603 = 83;
UC_CPU_PPC_603E_V11 = 84;
UC_CPU_PPC_603E_V12 = 85;
UC_CPU_PPC_603E_V13 = 86;
UC_CPU_PPC_603E_V14 = 87;
UC_CPU_PPC_603E_V22 = 88;
UC_CPU_PPC_603E_V3 = 89;
UC_CPU_PPC_603E_V4 = 90;
UC_CPU_PPC_603E_V41 = 91;
UC_CPU_PPC_603E7T = 92;
UC_CPU_PPC_603E7V = 93;
UC_CPU_PPC_603E7V1 = 94;
UC_CPU_PPC_603E7V2 = 95;
UC_CPU_PPC_603E7 = 96;
UC_CPU_PPC_603P = 97;
UC_CPU_PPC_604 = 98;
UC_CPU_PPC_604E_V10 = 99;
UC_CPU_PPC_604E_V22 = 100;
UC_CPU_PPC_604E_V24 = 101;
UC_CPU_PPC_604R = 102;
UC_CPU_PPC_7X0_V10 = 103;
UC_CPU_PPC_7X0_V20 = 104;
UC_CPU_PPC_7X0_V21 = 105;
UC_CPU_PPC_7X0_V22 = 106;
UC_CPU_PPC_7X0_V30 = 107;
UC_CPU_PPC_7X0_V31 = 108;
UC_CPU_PPC_740E = 109;
UC_CPU_PPC_750E = 110;
UC_CPU_PPC_7X0P = 111;
UC_CPU_PPC_750CL_V10 = 112;
UC_CPU_PPC_750CL_V20 = 113;
UC_CPU_PPC_750CX_V10 = 114;
UC_CPU_PPC_750CX_V20 = 115;
UC_CPU_PPC_750CX_V21 = 116;
UC_CPU_PPC_750CX_V22 = 117;
UC_CPU_PPC_750CXE_V21 = 118;
UC_CPU_PPC_750CXE_V22 = 119;
UC_CPU_PPC_750CXE_V23 = 120;
UC_CPU_PPC_750CXE_V24 = 121;
UC_CPU_PPC_750CXE_V24B = 122;
UC_CPU_PPC_750CXE_V30 = 123;
UC_CPU_PPC_750CXE_V31 = 124;
UC_CPU_PPC_750CXE_V31B = 125;
UC_CPU_PPC_750CXR = 126;
UC_CPU_PPC_750FL = 127;
UC_CPU_PPC_750FX_V10 = 128;
UC_CPU_PPC_750FX_V20 = 129;
UC_CPU_PPC_750FX_V21 = 130;
UC_CPU_PPC_750FX_V22 = 131;
UC_CPU_PPC_750FX_V23 = 132;
UC_CPU_PPC_750GL = 133;
UC_CPU_PPC_750GX_V10 = 134;
UC_CPU_PPC_750GX_V11 = 135;
UC_CPU_PPC_750GX_V12 = 136;
UC_CPU_PPC_750L_V20 = 137;
UC_CPU_PPC_750L_V21 = 138;
UC_CPU_PPC_750L_V22 = 139;
UC_CPU_PPC_750L_V30 = 140;
UC_CPU_PPC_750L_V32 = 141;
UC_CPU_PPC_7X5_V10 = 142;
UC_CPU_PPC_7X5_V11 = 143;
UC_CPU_PPC_7X5_V20 = 144;
UC_CPU_PPC_7X5_V21 = 145;
UC_CPU_PPC_7X5_V22 = 146;
UC_CPU_PPC_7X5_V23 = 147;
UC_CPU_PPC_7X5_V24 = 148;
UC_CPU_PPC_7X5_V25 = 149;
UC_CPU_PPC_7X5_V26 = 150;
UC_CPU_PPC_7X5_V27 = 151;
UC_CPU_PPC_7X5_V28 = 152;
UC_CPU_PPC_7400_V10 = 153;
UC_CPU_PPC_7400_V11 = 154;
UC_CPU_PPC_7400_V20 = 155;
UC_CPU_PPC_7400_V21 = 156;
UC_CPU_PPC_7400_V22 = 157;
UC_CPU_PPC_7400_V26 = 158;
UC_CPU_PPC_7400_V27 = 159;
UC_CPU_PPC_7400_V28 = 160;
UC_CPU_PPC_7400_V29 = 161;
UC_CPU_PPC_7410_V10 = 162;
UC_CPU_PPC_7410_V11 = 163;
UC_CPU_PPC_7410_V12 = 164;
UC_CPU_PPC_7410_V13 = 165;
UC_CPU_PPC_7410_V14 = 166;
UC_CPU_PPC_7448_V10 = 167;
UC_CPU_PPC_7448_V11 = 168;
UC_CPU_PPC_7448_V20 = 169;
UC_CPU_PPC_7448_V21 = 170;
UC_CPU_PPC_7450_V10 = 171;
UC_CPU_PPC_7450_V11 = 172;
UC_CPU_PPC_7450_V12 = 173;
UC_CPU_PPC_7450_V20 = 174;
UC_CPU_PPC_7450_V21 = 175;
UC_CPU_PPC_74X1_V23 = 176;
UC_CPU_PPC_74X1_V210 = 177;
UC_CPU_PPC_74X5_V10 = 178;
UC_CPU_PPC_74X5_V21 = 179;
UC_CPU_PPC_74X5_V32 = 180;
UC_CPU_PPC_74X5_V33 = 181;
UC_CPU_PPC_74X5_V34 = 182;
UC_CPU_PPC_74X7_V10 = 183;
UC_CPU_PPC_74X7_V11 = 184;
UC_CPU_PPC_74X7_V12 = 185;
UC_CPU_PPC_74X7A_V10 = 186;
UC_CPU_PPC_74X7A_V11 = 187;
UC_CPU_PPC_74X7A_V12 = 188;
UC_CPU_PPC_IOP480 = 1;
UC_CPU_PPC_X2VP20 = 42;
UC_CPU_PPC_440GRA = 35;
UC_CPU_PPC_440EPX = 38;
UC_CPU_PPC_MPC5200_V10 = 59;
UC_CPU_PPC_MPC5200_V11 = 59;
UC_CPU_PPC_MPC5200_V12 = 59;
UC_CPU_PPC_MPC5200B_V20 = 59;
UC_CPU_PPC_MPC5200B_V21 = 59;
UC_CPU_PPC_MPC834X = 63;
UC_CPU_PPC_MPC837X = 66;
UC_CPU_PPC_E500 = 73;
UC_CPU_PPC_MPC8533_V10 = 72;
UC_CPU_PPC_MPC8533_V11 = 73;
UC_CPU_PPC_MPC8533E_V10 = 72;
UC_CPU_PPC_MPC8533E_V11 = 73;
UC_CPU_PPC_MPC8540_V10 = 67;
UC_CPU_PPC_MPC8540_V20 = 68;
UC_CPU_PPC_MPC8540_V21 = 68;
UC_CPU_PPC_MPC8541_V10 = 68;
UC_CPU_PPC_MPC8541_V11 = 68;
UC_CPU_PPC_MPC8541E_V10 = 68;
UC_CPU_PPC_MPC8541E_V11 = 68;
UC_CPU_PPC_MPC8543_V10 = 69;
UC_CPU_PPC_MPC8543_V11 = 70;
UC_CPU_PPC_MPC8543_V20 = 71;
UC_CPU_PPC_MPC8543_V21 = 72;
UC_CPU_PPC_MPC8543E_V10 = 69;
UC_CPU_PPC_MPC8543E_V11 = 70;
UC_CPU_PPC_MPC8543E_V20 = 71;
UC_CPU_PPC_MPC8543E_V21 = 72;
UC_CPU_PPC_MPC8544_V10 = 72;
UC_CPU_PPC_MPC8544_V11 = 73;
UC_CPU_PPC_MPC8544E_V11 = 73;
UC_CPU_PPC_MPC8544E_V10 = 72;
UC_CPU_PPC_MPC8545_V10 = 69;
UC_CPU_PPC_MPC8545_V20 = 71;
UC_CPU_PPC_MPC8545_V21 = 72;
UC_CPU_PPC_MPC8545E_V10 = 69;
UC_CPU_PPC_MPC8545E_V20 = 71;
UC_CPU_PPC_MPC8545E_V21 = 72;
UC_CPU_PPC_MPC8547E_V10 = 69;
UC_CPU_PPC_MPC8547E_V20 = 71;
UC_CPU_PPC_MPC8547E_V21 = 72;
UC_CPU_PPC_MPC8548_V10 = 69;
UC_CPU_PPC_MPC8548_V11 = 70;
UC_CPU_PPC_MPC8548_V20 = 71;
UC_CPU_PPC_MPC8548_V21 = 72;
UC_CPU_PPC_MPC8548E_V10 = 69;
UC_CPU_PPC_MPC8548E_V11 = 70;
UC_CPU_PPC_MPC8548E_V20 = 71;
UC_CPU_PPC_MPC8548E_V21 = 72;
UC_CPU_PPC_MPC8555_V10 = 69;
UC_CPU_PPC_MPC8555_V11 = 70;
UC_CPU_PPC_MPC8555E_V10 = 69;
UC_CPU_PPC_MPC8555E_V11 = 70;
UC_CPU_PPC_MPC8560_V10 = 69;
UC_CPU_PPC_MPC8560_V20 = 71;
UC_CPU_PPC_MPC8560_V21 = 72;
UC_CPU_PPC_MPC8567 = 73;
UC_CPU_PPC_MPC8567E = 73;
UC_CPU_PPC_MPC8568 = 73;
UC_CPU_PPC_MPC8568E = 73;
UC_CPU_PPC_MPC8572 = 74;
UC_CPU_PPC_MPC8572E = 74;
UC_CPU_PPC_MPC8610 = 78;
UC_CPU_PPC_MPC8641 = 78;
UC_CPU_PPC_MPC8641D = 78;
UC_CPU_PPC64_620 = 0;
UC_CPU_PPC64_630 = 1;
UC_CPU_PPC64_631 = 2;
UC_CPU_PPC64_POWER4 = 3;
UC_CPU_PPC64_POWER4P = 4;
UC_CPU_PPC64_POWER5 = 5;
UC_CPU_PPC64_POWER5P_V21 = 6;
UC_CPU_PPC64_POWER6 = 7;
UC_CPU_PPC64_POWER_SERVER_MASK = 8;
UC_CPU_PPC64_POWER7_BASE = 9;
UC_CPU_PPC64_POWER7_V23 = 10;
UC_CPU_PPC64_POWER7P_BASE = 11;
UC_CPU_PPC64_POWER7P_V21 = 12;
UC_CPU_PPC64_POWER8E_BASE = 13;
UC_CPU_PPC64_POWER8E_V21 = 14;
UC_CPU_PPC64_POWER8_BASE = 15;
UC_CPU_PPC64_POWER8_V20 = 16;
UC_CPU_PPC64_POWER8NVL_BASE = 17;
UC_CPU_PPC64_POWER8NVL_V10 = 18;
UC_CPU_PPC64_POWER9_BASE = 19;
UC_CPU_PPC64_POWER9_DD1 = 20;
UC_CPU_PPC64_POWER9_DD20 = 21;
UC_CPU_PPC64_POWER10_BASE = 22;
UC_CPU_PPC64_POWER10_DD1 = 23;
UC_CPU_PPC64_970_V22 = 24;
UC_CPU_PPC64_970FX_V10 = 25;
UC_CPU_PPC64_970FX_V20 = 26;
UC_CPU_PPC64_970FX_V21 = 27;
UC_CPU_PPC64_970FX_V30 = 28;
UC_CPU_PPC64_970FX_V31 = 29;
UC_CPU_PPC64_970MP_V10 = 30;
UC_CPU_PPC64_970MP_V11 = 31;
UC_CPU_PPC64_CELL_V10 = 32;
UC_CPU_PPC64_CELL_V20 = 33;
UC_CPU_PPC64_CELL_V30 = 34;
UC_CPU_PPC64_CELL_V31 = 35;
UC_CPU_PPC64_RS64 = 36;
UC_CPU_PPC64_RS64II = 37;
UC_CPU_PPC64_RS64III = 38;
UC_CPU_PPC64_RS64IV = 39;
UC_CPU_PPC64_CELL_V32 = 35;
UC_CPU_PPC64_CELL = 35;
// PPC registers
UC_PPC_REG_INVALID = 0;

View File

@@ -5,6 +5,16 @@ unit RiscvConst;
interface
const
UC_CPU_RISCV32_ANY = 0;
UC_CPU_RISCV32_BASE32 = 1;
UC_CPU_RISCV32_SIFIVE_E31 = 2;
UC_CPU_RISCV32_SIFIVE_U34 = 3;
UC_CPU_RISCV64_ANY = 0;
UC_CPU_RISCV64_BASE64 = 1;
UC_CPU_RISCV64_SIFIVE_E51 = 2;
UC_CPU_RISCV64_SIFIVE_U54 = 3;
// RISCV registers
UC_RISCV_REG_INVALID = 0;

View File

@@ -5,6 +5,38 @@ unit SparcConst;
interface
const
UC_CPU_SPARC_FUJITSU_MB86904 = 0;
UC_CPU_SPARC_FUJITSU_MB86907 = 1;
UC_CPU_SPARC_TI_MICROSPARC_I = 2;
UC_CPU_SPARC_TI_MICROSPARC_II = 3;
UC_CPU_SPARC_TI_MICROSPARC_IIEP = 4;
UC_CPU_SPARC_TI_SUPERSPARC_40 = 5;
UC_CPU_SPARC_TI_SUPERSPARC_50 = 6;
UC_CPU_SPARC_TI_SUPERSPARC_51 = 7;
UC_CPU_SPARC_TI_SUPERSPARC_60 = 8;
UC_CPU_SPARC_TI_SUPERSPARC_61 = 9;
UC_CPU_SPARC_TI_SUPERSPARC_II = 10;
UC_CPU_SPARC_LEON2 = 11;
UC_CPU_SPARC_LEON3 = 12;
UC_CPU_SPARC64_FUJITSU = 0;
UC_CPU_SPARC64_FUJITSU_III = 1;
UC_CPU_SPARC64_FUJITSU_IV = 2;
UC_CPU_SPARC64_FUJITSU_V = 3;
UC_CPU_SPARC64_TI_ULTRASPARC_I = 4;
UC_CPU_SPARC64_TI_ULTRASPARC_II = 5;
UC_CPU_SPARC64_TI_ULTRASPARC_III = 6;
UC_CPU_SPARC64_TI_ULTRASPARC_IIE = 7;
UC_CPU_SPARC64_SUN_ULTRASPARC_III = 8;
UC_CPU_SPARC64_SUN_ULTRASPARC_III_CU = 9;
UC_CPU_SPARC64_SUN_ULTRASPARC_IIII = 10;
UC_CPU_SPARC64_SUN_ULTRASPARC_IV = 11;
UC_CPU_SPARC64_SUN_ULTRASPARC_IV_PLUS = 12;
UC_CPU_SPARC64_SUN_ULTRASPARC_IIII_PLUS = 13;
UC_CPU_SPARC64_SUN_ULTRASPARC_T1 = 14;
UC_CPU_SPARC64_SUN_ULTRASPARC_T2 = 15;
UC_CPU_SPARC64_NEC_ULTRASPARC_I = 16;
// SPARC registers
UC_SPARC_REG_INVALID = 0;

View File

@@ -110,6 +110,22 @@ const UC_API_MAJOR = 2;
UC_QUERY_ARCH = 3;
UC_QUERY_TIMEOUT = 4;
UC_CTL_IO_NONE = 0;
UC_CTL_IO_WRITE = 1;
UC_CTL_IO_READ = 2;
UC_CTL_IO_READ_WRITE = 3;
UC_CTL_UC_MODE = 0;
UC_CTL_UC_PAGE_SIZE = 1;
UC_CTL_UC_ARCH = 2;
UC_CTL_UC_TIMEOUT = 3;
UC_CTL_UC_EXITS_CNT = 4;
UC_CTL_UC_EXITS = 5;
UC_CTL_CPU_MODEL = 6;
UC_CTL_TB_EDGE = 7;
UC_CTL_TB_REQUEST_CACHE = 8;
UC_CTL_TB_REMOVE_CACHE = 9;
UC_PROT_NONE = 0;
UC_PROT_READ = 1;
UC_PROT_WRITE = 2;

View File

@@ -5,6 +5,45 @@ unit X86Const;
interface
const
UC_CPU_X86_QEMU64 = 0;
UC_CPU_X86_PHENOM = 1;
UC_CPU_X86_CORE2DUO = 2;
UC_CPU_X86_KVM64 = 3;
UC_CPU_X86_QEMU32 = 4;
UC_CPU_X86_KVM32 = 5;
UC_CPU_X86_COREDUO = 6;
UC_CPU_X86_486 = 7;
UC_CPU_X86_PENTIUM = 8;
UC_CPU_X86_PENTIUM2 = 9;
UC_CPU_X86_PENTIUM3 = 10;
UC_CPU_X86_ATHLON = 11;
UC_CPU_X86_N270 = 12;
UC_CPU_X86_CONROE = 13;
UC_CPU_X86_PENRYN = 14;
UC_CPU_X86_NEHALEM = 15;
UC_CPU_X86_WESTMERE = 16;
UC_CPU_X86_SANDYBRIDGE = 17;
UC_CPU_X86_IVYBRIDGE = 18;
UC_CPU_X86_HASWELL = 19;
UC_CPU_X86_BROADWELL = 20;
UC_CPU_X86_SKYLAKE_CLIENT = 21;
UC_CPU_X86_SKYLAKE_SERVER = 22;
UC_CPU_X86_CASCADELAKE_SERVER = 23;
UC_CPU_X86_COOPERLAKE = 24;
UC_CPU_X86_ICELAKE_CLIENT = 25;
UC_CPU_X86_ICELAKE_SERVER = 26;
UC_CPU_X86_DENVERTON = 27;
UC_CPU_X86_SNOWRIDGE = 28;
UC_CPU_X86_KNIGHTSMILL = 29;
UC_CPU_X86_OPTERON_G1 = 30;
UC_CPU_X86_OPTERON_G2 = 31;
UC_CPU_X86_OPTERON_G3 = 32;
UC_CPU_X86_OPTERON_G4 = 33;
UC_CPU_X86_OPTERON_G5 = 34;
UC_CPU_X86_EPYC = 35;
UC_CPU_X86_DHYANA = 36;
UC_CPU_X86_EPYC_ROME = 37;
// X86 registers
UC_X86_REG_INVALID = 0;

View File

@@ -3,16 +3,16 @@
.PHONY: gen_const install install3 clean sdist sdist3 bdist bdist3 sdist_win bdist_win
gen_const:
cd .. && python const_generator.py python
cd .. && python3 const_generator.py python
install:
rm -rf src/ dist/
rm -rf prebuilt/win64/unicorn.dll
rm -rf prebuilt/win32/unicorn.dll
if test -n "${DESTDIR}"; then \
python setup.py install --root="${DESTDIR}"; \
python3 setup.py install --root="${DESTDIR}"; \
else \
python setup.py install; \
python3 setup.py install; \
fi
install3:
@@ -30,7 +30,7 @@ sdist:
rm -rf src/ dist/
rm -rf prebuilt/win64/unicorn.dll
rm -rf prebuilt/win32/unicorn.dll
python setup.py sdist register upload
python3 setup.py sdist register upload
# build & upload PyPi package with source code of the core
sdist3:
@@ -44,7 +44,7 @@ bdist:
rm -rf src/ dist/
rm -rf prebuilt/win64/unicorn.dll
rm -rf prebuilt/win32/unicorn.dll
python setup.py bdist_wheel register upload
python3 setup.py bdist_wheel register upload
# build & upload PyPi package with precompiled core
bdist3:
@@ -57,7 +57,7 @@ bdist3:
# NOTE: be sure to have precompiled core under prebuilt/win*/ beforehand
sdist_win:
rm -rf src/ dist/
python setup.py sdist register upload
python3 setup.py sdist register upload
# build & upload PyPi package with prebuilt core
# NOTE: be sure to have precompiled core under prebuilt/win*/ beforehand

View File

@@ -1,5 +1,10 @@
# For Unicorn Engine. AUTO-GENERATED FILE, DO NOT EDIT [arm64_const.py]
UC_CPU_AARCH64_A57 = 0
UC_CPU_AARCH64_A53 = 1
UC_CPU_AARCH64_A72 = 2
UC_CPU_AARCH64_MAX = 3
# ARM64 registers
UC_ARM64_REG_INVALID = 0

View File

@@ -1,5 +1,39 @@
# For Unicorn Engine. AUTO-GENERATED FILE, DO NOT EDIT [arm_const.py]
UC_CPU_ARM_926 = 0
UC_CPU_ARM_946 = 1
UC_CPU_ARM_1026 = 2
UC_CPU_ARM_1136_R2 = 3
UC_CPU_ARM_1136 = 4
UC_CPU_ARM_1176 = 5
UC_CPU_ARM_11MPCORE = 6
UC_CPU_ARM_CORTEX_M0 = 7
UC_CPU_ARM_CORTEX_M3 = 8
UC_CPU_ARM_CORTEX_M4 = 9
UC_CPU_ARM_CORTEX_M7 = 10
UC_CPU_ARM_CORTEX_M33 = 11
UC_CPU_ARM_CORTEX_R5 = 12
UC_CPU_ARM_CORTEX_R5F = 13
UC_CPU_ARM_CORTEX_A8 = 14
UC_CPU_ARM_CORTEX_A9 = 15
UC_CPU_ARM_CORTEX_A7 = 16
UC_CPU_ARM_CORTEX_A15 = 17
UC_CPU_ARM_TI925T = 18
UC_CPU_ARM_SA1100 = 19
UC_CPU_ARM_SA1110 = 20
UC_CPU_ARM_PXA250 = 21
UC_CPU_ARM_PXA255 = 22
UC_CPU_ARM_PXA260 = 23
UC_CPU_ARM_PXA261 = 24
UC_CPU_ARM_PXA262 = 25
UC_CPU_ARM_PXA270A0 = 26
UC_CPU_ARM_PXA270A1 = 27
UC_CPU_ARM_PXA270B0 = 28
UC_CPU_ARM_PXA270B1 = 29
UC_CPU_ARM_PXA270C0 = 30
UC_CPU_ARM_PXA270C5 = 31
UC_CPU_ARM_MAX = 32
# ARM registers
UC_ARM_REG_INVALID = 0

View File

@@ -1,5 +1,15 @@
# For Unicorn Engine. AUTO-GENERATED FILE, DO NOT EDIT [m68k_const.py]
UC_CPU_M5206_CPU = 0
UC_CPU_M68000_CPU = 1
UC_CPU_M68020_CPU = 2
UC_CPU_M68030_CPU = 3
UC_CPU_M68040_CPU = 4
UC_CPU_M68060_CPU = 5
UC_CPU_M5208_CPU = 6
UC_CPU_CFV4E_CPU = 7
UC_CPU_ANY_CPU = 8
# M68K registers
UC_M68K_REG_INVALID = 0

View File

@@ -1,5 +1,35 @@
# For Unicorn Engine. AUTO-GENERATED FILE, DO NOT EDIT [mips_const.py]
UC_CPU_MIPS_4KC = 0
UC_CPU_MIPS_4KM = 1
UC_CPU_MIPS_4KECR1 = 2
UC_CPU_MIPS_4KEMR1 = 3
UC_CPU_MIPS_4KEC = 4
UC_CPU_MIPS_4KEM = 5
UC_CPU_MIPS_24KC = 6
UC_CPU_MIPS_24KEC = 7
UC_CPU_MIPS_24KF = 8
UC_CPU_MIPS_34KF = 9
UC_CPU_MIPS_74KF = 10
UC_CPU_MIPS_M14K = 11
UC_CPU_MIPS_M14KC = 12
UC_CPU_MIPS_P5600 = 13
UC_CPU_MIPS_MIPS32R6_GENERIC = 14
UC_CPU_MIPS_I7200 = 15
UC_CPU_MIPS_R4000 = 16
UC_CPU_MIPS_VR5432 = 17
UC_CPU_MIPS_5KC = 18
UC_CPU_MIPS_5KF = 19
UC_CPU_MIPS_20KC = 20
UC_CPU_MIPS_MIPS64R2_GENERIC = 21
UC_CPU_MIPS_5KEC = 22
UC_CPU_MIPS_5KEF = 23
UC_CPU_MIPS_I6400 = 24
UC_CPU_MIPS_I6500 = 25
UC_CPU_MIPS_LOONGSON_2E = 26
UC_CPU_MIPS_LOONGSON_2F = 27
UC_CPU_MIPS_MIPS64DSPR2 = 28
# MIPS registers
UC_MIPS_REG_INVALID = 0

View File

@@ -1,5 +1,306 @@
# For Unicorn Engine. AUTO-GENERATED FILE, DO NOT EDIT [ppc_const.py]
UC_CPU_PPC_401A1 = 0
UC_CPU_PPC_401B2 = 1
UC_CPU_PPC_401C2 = 2
UC_CPU_PPC_401D2 = 3
UC_CPU_PPC_401E2 = 4
UC_CPU_PPC_401F2 = 5
UC_CPU_PPC_401G2 = 6
UC_CPU_PPC_COBRA = 7
UC_CPU_PPC_403GA = 8
UC_CPU_PPC_403GB = 9
UC_CPU_PPC_403GC = 10
UC_CPU_PPC_403GCX = 11
UC_CPU_PPC_405D2 = 12
UC_CPU_PPC_405D4 = 13
UC_CPU_PPC_405CRA = 14
UC_CPU_PPC_405CRB = 15
UC_CPU_PPC_405CRC = 16
UC_CPU_PPC_405EP = 17
UC_CPU_PPC_405EZ = 18
UC_CPU_PPC_405GPA = 19
UC_CPU_PPC_405GPB = 20
UC_CPU_PPC_405GPC = 21
UC_CPU_PPC_405GPD = 22
UC_CPU_PPC_405GPR = 23
UC_CPU_PPC_405LP = 24
UC_CPU_PPC_NPE405H = 25
UC_CPU_PPC_NPE405H2 = 26
UC_CPU_PPC_NPE405L = 27
UC_CPU_PPC_NPE4GS3 = 28
UC_CPU_PPC_STB03 = 29
UC_CPU_PPC_STB04 = 30
UC_CPU_PPC_STB25 = 31
UC_CPU_PPC_X2VP4 = 32
UC_CPU_PPC_440_XILINX = 33
UC_CPU_PPC_440EPA = 34
UC_CPU_PPC_440EPB = 35
UC_CPU_PPC_440GPB = 36
UC_CPU_PPC_440GPC = 37
UC_CPU_PPC_440GRX = 38
UC_CPU_PPC_440GXA = 39
UC_CPU_PPC_440GXB = 40
UC_CPU_PPC_440GXC = 41
UC_CPU_PPC_440GXF = 42
UC_CPU_PPC_440SP = 43
UC_CPU_PPC_440SP2 = 44
UC_CPU_PPC_440SPE = 45
UC_CPU_PPC_460EXB = 46
UC_CPU_PPC_MPC5XX = 47
UC_CPU_PPC_MPC8XX = 48
UC_CPU_PPC_G2 = 49
UC_CPU_PPC_G2H4 = 50
UC_CPU_PPC_G2GP = 51
UC_CPU_PPC_G2LS = 52
UC_CPU_PPC_MPC603 = 53
UC_CPU_PPC_G2_HIP3 = 54
UC_CPU_PPC_G2_HIP4 = 55
UC_CPU_PPC_G2LE = 56
UC_CPU_PPC_G2LEGP = 57
UC_CPU_PPC_G2LELS = 58
UC_CPU_PPC_G2LEGP1 = 59
UC_CPU_PPC_G2LEGP3 = 60
UC_CPU_PPC_E200Z5 = 61
UC_CPU_PPC_E200Z6 = 62
UC_CPU_PPC_E300C1 = 63
UC_CPU_PPC_E300C2 = 64
UC_CPU_PPC_E300C3 = 65
UC_CPU_PPC_E300C4 = 66
UC_CPU_PPC_E500V1_V10 = 67
UC_CPU_PPC_E500V1_V20 = 68
UC_CPU_PPC_E500V2_V10 = 69
UC_CPU_PPC_E500V2_V11 = 70
UC_CPU_PPC_E500V2_V20 = 71
UC_CPU_PPC_E500V2_V21 = 72
UC_CPU_PPC_E500V2_V22 = 73
UC_CPU_PPC_E500V2_V30 = 74
UC_CPU_PPC_E500MC = 75
UC_CPU_PPC_E5500 = 76
UC_CPU_PPC_E6500 = 77
UC_CPU_PPC_E600 = 78
UC_CPU_PPC_601_V0 = 79
UC_CPU_PPC_601_V1 = 80
UC_CPU_PPC_601_V2 = 81
UC_CPU_PPC_602 = 82
UC_CPU_PPC_603 = 83
UC_CPU_PPC_603E_V11 = 84
UC_CPU_PPC_603E_V12 = 85
UC_CPU_PPC_603E_V13 = 86
UC_CPU_PPC_603E_V14 = 87
UC_CPU_PPC_603E_V22 = 88
UC_CPU_PPC_603E_V3 = 89
UC_CPU_PPC_603E_V4 = 90
UC_CPU_PPC_603E_V41 = 91
UC_CPU_PPC_603E7T = 92
UC_CPU_PPC_603E7V = 93
UC_CPU_PPC_603E7V1 = 94
UC_CPU_PPC_603E7V2 = 95
UC_CPU_PPC_603E7 = 96
UC_CPU_PPC_603P = 97
UC_CPU_PPC_604 = 98
UC_CPU_PPC_604E_V10 = 99
UC_CPU_PPC_604E_V22 = 100
UC_CPU_PPC_604E_V24 = 101
UC_CPU_PPC_604R = 102
UC_CPU_PPC_7X0_V10 = 103
UC_CPU_PPC_7X0_V20 = 104
UC_CPU_PPC_7X0_V21 = 105
UC_CPU_PPC_7X0_V22 = 106
UC_CPU_PPC_7X0_V30 = 107
UC_CPU_PPC_7X0_V31 = 108
UC_CPU_PPC_740E = 109
UC_CPU_PPC_750E = 110
UC_CPU_PPC_7X0P = 111
UC_CPU_PPC_750CL_V10 = 112
UC_CPU_PPC_750CL_V20 = 113
UC_CPU_PPC_750CX_V10 = 114
UC_CPU_PPC_750CX_V20 = 115
UC_CPU_PPC_750CX_V21 = 116
UC_CPU_PPC_750CX_V22 = 117
UC_CPU_PPC_750CXE_V21 = 118
UC_CPU_PPC_750CXE_V22 = 119
UC_CPU_PPC_750CXE_V23 = 120
UC_CPU_PPC_750CXE_V24 = 121
UC_CPU_PPC_750CXE_V24B = 122
UC_CPU_PPC_750CXE_V30 = 123
UC_CPU_PPC_750CXE_V31 = 124
UC_CPU_PPC_750CXE_V31B = 125
UC_CPU_PPC_750CXR = 126
UC_CPU_PPC_750FL = 127
UC_CPU_PPC_750FX_V10 = 128
UC_CPU_PPC_750FX_V20 = 129
UC_CPU_PPC_750FX_V21 = 130
UC_CPU_PPC_750FX_V22 = 131
UC_CPU_PPC_750FX_V23 = 132
UC_CPU_PPC_750GL = 133
UC_CPU_PPC_750GX_V10 = 134
UC_CPU_PPC_750GX_V11 = 135
UC_CPU_PPC_750GX_V12 = 136
UC_CPU_PPC_750L_V20 = 137
UC_CPU_PPC_750L_V21 = 138
UC_CPU_PPC_750L_V22 = 139
UC_CPU_PPC_750L_V30 = 140
UC_CPU_PPC_750L_V32 = 141
UC_CPU_PPC_7X5_V10 = 142
UC_CPU_PPC_7X5_V11 = 143
UC_CPU_PPC_7X5_V20 = 144
UC_CPU_PPC_7X5_V21 = 145
UC_CPU_PPC_7X5_V22 = 146
UC_CPU_PPC_7X5_V23 = 147
UC_CPU_PPC_7X5_V24 = 148
UC_CPU_PPC_7X5_V25 = 149
UC_CPU_PPC_7X5_V26 = 150
UC_CPU_PPC_7X5_V27 = 151
UC_CPU_PPC_7X5_V28 = 152
UC_CPU_PPC_7400_V10 = 153
UC_CPU_PPC_7400_V11 = 154
UC_CPU_PPC_7400_V20 = 155
UC_CPU_PPC_7400_V21 = 156
UC_CPU_PPC_7400_V22 = 157
UC_CPU_PPC_7400_V26 = 158
UC_CPU_PPC_7400_V27 = 159
UC_CPU_PPC_7400_V28 = 160
UC_CPU_PPC_7400_V29 = 161
UC_CPU_PPC_7410_V10 = 162
UC_CPU_PPC_7410_V11 = 163
UC_CPU_PPC_7410_V12 = 164
UC_CPU_PPC_7410_V13 = 165
UC_CPU_PPC_7410_V14 = 166
UC_CPU_PPC_7448_V10 = 167
UC_CPU_PPC_7448_V11 = 168
UC_CPU_PPC_7448_V20 = 169
UC_CPU_PPC_7448_V21 = 170
UC_CPU_PPC_7450_V10 = 171
UC_CPU_PPC_7450_V11 = 172
UC_CPU_PPC_7450_V12 = 173
UC_CPU_PPC_7450_V20 = 174
UC_CPU_PPC_7450_V21 = 175
UC_CPU_PPC_74X1_V23 = 176
UC_CPU_PPC_74X1_V210 = 177
UC_CPU_PPC_74X5_V10 = 178
UC_CPU_PPC_74X5_V21 = 179
UC_CPU_PPC_74X5_V32 = 180
UC_CPU_PPC_74X5_V33 = 181
UC_CPU_PPC_74X5_V34 = 182
UC_CPU_PPC_74X7_V10 = 183
UC_CPU_PPC_74X7_V11 = 184
UC_CPU_PPC_74X7_V12 = 185
UC_CPU_PPC_74X7A_V10 = 186
UC_CPU_PPC_74X7A_V11 = 187
UC_CPU_PPC_74X7A_V12 = 188
UC_CPU_PPC_IOP480 = 1
UC_CPU_PPC_X2VP20 = 42
UC_CPU_PPC_440GRA = 35
UC_CPU_PPC_440EPX = 38
UC_CPU_PPC_MPC5200_V10 = 59
UC_CPU_PPC_MPC5200_V11 = 59
UC_CPU_PPC_MPC5200_V12 = 59
UC_CPU_PPC_MPC5200B_V20 = 59
UC_CPU_PPC_MPC5200B_V21 = 59
UC_CPU_PPC_MPC834X = 63
UC_CPU_PPC_MPC837X = 66
UC_CPU_PPC_E500 = 73
UC_CPU_PPC_MPC8533_V10 = 72
UC_CPU_PPC_MPC8533_V11 = 73
UC_CPU_PPC_MPC8533E_V10 = 72
UC_CPU_PPC_MPC8533E_V11 = 73
UC_CPU_PPC_MPC8540_V10 = 67
UC_CPU_PPC_MPC8540_V20 = 68
UC_CPU_PPC_MPC8540_V21 = 68
UC_CPU_PPC_MPC8541_V10 = 68
UC_CPU_PPC_MPC8541_V11 = 68
UC_CPU_PPC_MPC8541E_V10 = 68
UC_CPU_PPC_MPC8541E_V11 = 68
UC_CPU_PPC_MPC8543_V10 = 69
UC_CPU_PPC_MPC8543_V11 = 70
UC_CPU_PPC_MPC8543_V20 = 71
UC_CPU_PPC_MPC8543_V21 = 72
UC_CPU_PPC_MPC8543E_V10 = 69
UC_CPU_PPC_MPC8543E_V11 = 70
UC_CPU_PPC_MPC8543E_V20 = 71
UC_CPU_PPC_MPC8543E_V21 = 72
UC_CPU_PPC_MPC8544_V10 = 72
UC_CPU_PPC_MPC8544_V11 = 73
UC_CPU_PPC_MPC8544E_V11 = 73
UC_CPU_PPC_MPC8544E_V10 = 72
UC_CPU_PPC_MPC8545_V10 = 69
UC_CPU_PPC_MPC8545_V20 = 71
UC_CPU_PPC_MPC8545_V21 = 72
UC_CPU_PPC_MPC8545E_V10 = 69
UC_CPU_PPC_MPC8545E_V20 = 71
UC_CPU_PPC_MPC8545E_V21 = 72
UC_CPU_PPC_MPC8547E_V10 = 69
UC_CPU_PPC_MPC8547E_V20 = 71
UC_CPU_PPC_MPC8547E_V21 = 72
UC_CPU_PPC_MPC8548_V10 = 69
UC_CPU_PPC_MPC8548_V11 = 70
UC_CPU_PPC_MPC8548_V20 = 71
UC_CPU_PPC_MPC8548_V21 = 72
UC_CPU_PPC_MPC8548E_V10 = 69
UC_CPU_PPC_MPC8548E_V11 = 70
UC_CPU_PPC_MPC8548E_V20 = 71
UC_CPU_PPC_MPC8548E_V21 = 72
UC_CPU_PPC_MPC8555_V10 = 69
UC_CPU_PPC_MPC8555_V11 = 70
UC_CPU_PPC_MPC8555E_V10 = 69
UC_CPU_PPC_MPC8555E_V11 = 70
UC_CPU_PPC_MPC8560_V10 = 69
UC_CPU_PPC_MPC8560_V20 = 71
UC_CPU_PPC_MPC8560_V21 = 72
UC_CPU_PPC_MPC8567 = 73
UC_CPU_PPC_MPC8567E = 73
UC_CPU_PPC_MPC8568 = 73
UC_CPU_PPC_MPC8568E = 73
UC_CPU_PPC_MPC8572 = 74
UC_CPU_PPC_MPC8572E = 74
UC_CPU_PPC_MPC8610 = 78
UC_CPU_PPC_MPC8641 = 78
UC_CPU_PPC_MPC8641D = 78
UC_CPU_PPC64_620 = 0
UC_CPU_PPC64_630 = 1
UC_CPU_PPC64_631 = 2
UC_CPU_PPC64_POWER4 = 3
UC_CPU_PPC64_POWER4P = 4
UC_CPU_PPC64_POWER5 = 5
UC_CPU_PPC64_POWER5P_V21 = 6
UC_CPU_PPC64_POWER6 = 7
UC_CPU_PPC64_POWER_SERVER_MASK = 8
UC_CPU_PPC64_POWER7_BASE = 9
UC_CPU_PPC64_POWER7_V23 = 10
UC_CPU_PPC64_POWER7P_BASE = 11
UC_CPU_PPC64_POWER7P_V21 = 12
UC_CPU_PPC64_POWER8E_BASE = 13
UC_CPU_PPC64_POWER8E_V21 = 14
UC_CPU_PPC64_POWER8_BASE = 15
UC_CPU_PPC64_POWER8_V20 = 16
UC_CPU_PPC64_POWER8NVL_BASE = 17
UC_CPU_PPC64_POWER8NVL_V10 = 18
UC_CPU_PPC64_POWER9_BASE = 19
UC_CPU_PPC64_POWER9_DD1 = 20
UC_CPU_PPC64_POWER9_DD20 = 21
UC_CPU_PPC64_POWER10_BASE = 22
UC_CPU_PPC64_POWER10_DD1 = 23
UC_CPU_PPC64_970_V22 = 24
UC_CPU_PPC64_970FX_V10 = 25
UC_CPU_PPC64_970FX_V20 = 26
UC_CPU_PPC64_970FX_V21 = 27
UC_CPU_PPC64_970FX_V30 = 28
UC_CPU_PPC64_970FX_V31 = 29
UC_CPU_PPC64_970MP_V10 = 30
UC_CPU_PPC64_970MP_V11 = 31
UC_CPU_PPC64_CELL_V10 = 32
UC_CPU_PPC64_CELL_V20 = 33
UC_CPU_PPC64_CELL_V30 = 34
UC_CPU_PPC64_CELL_V31 = 35
UC_CPU_PPC64_RS64 = 36
UC_CPU_PPC64_RS64II = 37
UC_CPU_PPC64_RS64III = 38
UC_CPU_PPC64_RS64IV = 39
UC_CPU_PPC64_CELL_V32 = 35
UC_CPU_PPC64_CELL = 35
# PPC registers
UC_PPC_REG_INVALID = 0

View File

@@ -1,5 +1,15 @@
# For Unicorn Engine. AUTO-GENERATED FILE, DO NOT EDIT [riscv_const.py]
UC_CPU_RISCV32_ANY = 0
UC_CPU_RISCV32_BASE32 = 1
UC_CPU_RISCV32_SIFIVE_E31 = 2
UC_CPU_RISCV32_SIFIVE_U34 = 3
UC_CPU_RISCV64_ANY = 0
UC_CPU_RISCV64_BASE64 = 1
UC_CPU_RISCV64_SIFIVE_E51 = 2
UC_CPU_RISCV64_SIFIVE_U54 = 3
# RISCV registers
UC_RISCV_REG_INVALID = 0

View File

@@ -1,5 +1,37 @@
# For Unicorn Engine. AUTO-GENERATED FILE, DO NOT EDIT [sparc_const.py]
UC_CPU_SPARC_FUJITSU_MB86904 = 0
UC_CPU_SPARC_FUJITSU_MB86907 = 1
UC_CPU_SPARC_TI_MICROSPARC_I = 2
UC_CPU_SPARC_TI_MICROSPARC_II = 3
UC_CPU_SPARC_TI_MICROSPARC_IIEP = 4
UC_CPU_SPARC_TI_SUPERSPARC_40 = 5
UC_CPU_SPARC_TI_SUPERSPARC_50 = 6
UC_CPU_SPARC_TI_SUPERSPARC_51 = 7
UC_CPU_SPARC_TI_SUPERSPARC_60 = 8
UC_CPU_SPARC_TI_SUPERSPARC_61 = 9
UC_CPU_SPARC_TI_SUPERSPARC_II = 10
UC_CPU_SPARC_LEON2 = 11
UC_CPU_SPARC_LEON3 = 12
UC_CPU_SPARC64_FUJITSU = 0
UC_CPU_SPARC64_FUJITSU_III = 1
UC_CPU_SPARC64_FUJITSU_IV = 2
UC_CPU_SPARC64_FUJITSU_V = 3
UC_CPU_SPARC64_TI_ULTRASPARC_I = 4
UC_CPU_SPARC64_TI_ULTRASPARC_II = 5
UC_CPU_SPARC64_TI_ULTRASPARC_III = 6
UC_CPU_SPARC64_TI_ULTRASPARC_IIE = 7
UC_CPU_SPARC64_SUN_ULTRASPARC_III = 8
UC_CPU_SPARC64_SUN_ULTRASPARC_III_CU = 9
UC_CPU_SPARC64_SUN_ULTRASPARC_IIII = 10
UC_CPU_SPARC64_SUN_ULTRASPARC_IV = 11
UC_CPU_SPARC64_SUN_ULTRASPARC_IV_PLUS = 12
UC_CPU_SPARC64_SUN_ULTRASPARC_IIII_PLUS = 13
UC_CPU_SPARC64_SUN_ULTRASPARC_T1 = 14
UC_CPU_SPARC64_SUN_ULTRASPARC_T2 = 15
UC_CPU_SPARC64_NEC_ULTRASPARC_I = 16
# SPARC registers
UC_SPARC_REG_INVALID = 0

View File

@@ -105,6 +105,22 @@ UC_QUERY_PAGE_SIZE = 2
UC_QUERY_ARCH = 3
UC_QUERY_TIMEOUT = 4
UC_CTL_IO_NONE = 0
UC_CTL_IO_WRITE = 1
UC_CTL_IO_READ = 2
UC_CTL_IO_READ_WRITE = 3
UC_CTL_UC_MODE = 0
UC_CTL_UC_PAGE_SIZE = 1
UC_CTL_UC_ARCH = 2
UC_CTL_UC_TIMEOUT = 3
UC_CTL_UC_EXITS_CNT = 4
UC_CTL_UC_EXITS = 5
UC_CTL_CPU_MODEL = 6
UC_CTL_TB_EDGE = 7
UC_CTL_TB_REQUEST_CACHE = 8
UC_CTL_TB_REMOVE_CACHE = 9
UC_PROT_NONE = 0
UC_PROT_READ = 1
UC_PROT_WRITE = 2

View File

@@ -1,5 +1,44 @@
# For Unicorn Engine. AUTO-GENERATED FILE, DO NOT EDIT [x86_const.py]
UC_CPU_X86_QEMU64 = 0
UC_CPU_X86_PHENOM = 1
UC_CPU_X86_CORE2DUO = 2
UC_CPU_X86_KVM64 = 3
UC_CPU_X86_QEMU32 = 4
UC_CPU_X86_KVM32 = 5
UC_CPU_X86_COREDUO = 6
UC_CPU_X86_486 = 7
UC_CPU_X86_PENTIUM = 8
UC_CPU_X86_PENTIUM2 = 9
UC_CPU_X86_PENTIUM3 = 10
UC_CPU_X86_ATHLON = 11
UC_CPU_X86_N270 = 12
UC_CPU_X86_CONROE = 13
UC_CPU_X86_PENRYN = 14
UC_CPU_X86_NEHALEM = 15
UC_CPU_X86_WESTMERE = 16
UC_CPU_X86_SANDYBRIDGE = 17
UC_CPU_X86_IVYBRIDGE = 18
UC_CPU_X86_HASWELL = 19
UC_CPU_X86_BROADWELL = 20
UC_CPU_X86_SKYLAKE_CLIENT = 21
UC_CPU_X86_SKYLAKE_SERVER = 22
UC_CPU_X86_CASCADELAKE_SERVER = 23
UC_CPU_X86_COOPERLAKE = 24
UC_CPU_X86_ICELAKE_CLIENT = 25
UC_CPU_X86_ICELAKE_SERVER = 26
UC_CPU_X86_DENVERTON = 27
UC_CPU_X86_SNOWRIDGE = 28
UC_CPU_X86_KNIGHTSMILL = 29
UC_CPU_X86_OPTERON_G1 = 30
UC_CPU_X86_OPTERON_G2 = 31
UC_CPU_X86_OPTERON_G3 = 32
UC_CPU_X86_OPTERON_G4 = 33
UC_CPU_X86_OPTERON_G5 = 34
UC_CPU_X86_EPYC = 35
UC_CPU_X86_DHYANA = 36
UC_CPU_X86_EPYC_ROME = 37
# X86 registers
UC_X86_REG_INVALID = 0

View File

@@ -8,4 +8,4 @@ install: gen_const
cd unicorn_gem && gem install --local pkg/unicorn-engine-1.0.1.gem
gen_const:
cd .. && python const_generator.py ruby
cd .. && python3 const_generator.py ruby

View File

@@ -2,6 +2,11 @@
module UnicornEngine
UC_CPU_AARCH64_A57 = 0
UC_CPU_AARCH64_A53 = 1
UC_CPU_AARCH64_A72 = 2
UC_CPU_AARCH64_MAX = 3
# ARM64 registers
UC_ARM64_REG_INVALID = 0

View File

@@ -2,6 +2,40 @@
module UnicornEngine
UC_CPU_ARM_926 = 0
UC_CPU_ARM_946 = 1
UC_CPU_ARM_1026 = 2
UC_CPU_ARM_1136_R2 = 3
UC_CPU_ARM_1136 = 4
UC_CPU_ARM_1176 = 5
UC_CPU_ARM_11MPCORE = 6
UC_CPU_ARM_CORTEX_M0 = 7
UC_CPU_ARM_CORTEX_M3 = 8
UC_CPU_ARM_CORTEX_M4 = 9
UC_CPU_ARM_CORTEX_M7 = 10
UC_CPU_ARM_CORTEX_M33 = 11
UC_CPU_ARM_CORTEX_R5 = 12
UC_CPU_ARM_CORTEX_R5F = 13
UC_CPU_ARM_CORTEX_A8 = 14
UC_CPU_ARM_CORTEX_A9 = 15
UC_CPU_ARM_CORTEX_A7 = 16
UC_CPU_ARM_CORTEX_A15 = 17
UC_CPU_ARM_TI925T = 18
UC_CPU_ARM_SA1100 = 19
UC_CPU_ARM_SA1110 = 20
UC_CPU_ARM_PXA250 = 21
UC_CPU_ARM_PXA255 = 22
UC_CPU_ARM_PXA260 = 23
UC_CPU_ARM_PXA261 = 24
UC_CPU_ARM_PXA262 = 25
UC_CPU_ARM_PXA270A0 = 26
UC_CPU_ARM_PXA270A1 = 27
UC_CPU_ARM_PXA270B0 = 28
UC_CPU_ARM_PXA270B1 = 29
UC_CPU_ARM_PXA270C0 = 30
UC_CPU_ARM_PXA270C5 = 31
UC_CPU_ARM_MAX = 32
# ARM registers
UC_ARM_REG_INVALID = 0

View File

@@ -2,6 +2,16 @@
module UnicornEngine
UC_CPU_M5206_CPU = 0
UC_CPU_M68000_CPU = 1
UC_CPU_M68020_CPU = 2
UC_CPU_M68030_CPU = 3
UC_CPU_M68040_CPU = 4
UC_CPU_M68060_CPU = 5
UC_CPU_M5208_CPU = 6
UC_CPU_CFV4E_CPU = 7
UC_CPU_ANY_CPU = 8
# M68K registers
UC_M68K_REG_INVALID = 0

View File

@@ -2,6 +2,36 @@
module UnicornEngine
UC_CPU_MIPS_4KC = 0
UC_CPU_MIPS_4KM = 1
UC_CPU_MIPS_4KECR1 = 2
UC_CPU_MIPS_4KEMR1 = 3
UC_CPU_MIPS_4KEC = 4
UC_CPU_MIPS_4KEM = 5
UC_CPU_MIPS_24KC = 6
UC_CPU_MIPS_24KEC = 7
UC_CPU_MIPS_24KF = 8
UC_CPU_MIPS_34KF = 9
UC_CPU_MIPS_74KF = 10
UC_CPU_MIPS_M14K = 11
UC_CPU_MIPS_M14KC = 12
UC_CPU_MIPS_P5600 = 13
UC_CPU_MIPS_MIPS32R6_GENERIC = 14
UC_CPU_MIPS_I7200 = 15
UC_CPU_MIPS_R4000 = 16
UC_CPU_MIPS_VR5432 = 17
UC_CPU_MIPS_5KC = 18
UC_CPU_MIPS_5KF = 19
UC_CPU_MIPS_20KC = 20
UC_CPU_MIPS_MIPS64R2_GENERIC = 21
UC_CPU_MIPS_5KEC = 22
UC_CPU_MIPS_5KEF = 23
UC_CPU_MIPS_I6400 = 24
UC_CPU_MIPS_I6500 = 25
UC_CPU_MIPS_LOONGSON_2E = 26
UC_CPU_MIPS_LOONGSON_2F = 27
UC_CPU_MIPS_MIPS64DSPR2 = 28
# MIPS registers
UC_MIPS_REG_INVALID = 0

View File

@@ -2,6 +2,307 @@
module UnicornEngine
UC_CPU_PPC_401A1 = 0
UC_CPU_PPC_401B2 = 1
UC_CPU_PPC_401C2 = 2
UC_CPU_PPC_401D2 = 3
UC_CPU_PPC_401E2 = 4
UC_CPU_PPC_401F2 = 5
UC_CPU_PPC_401G2 = 6
UC_CPU_PPC_COBRA = 7
UC_CPU_PPC_403GA = 8
UC_CPU_PPC_403GB = 9
UC_CPU_PPC_403GC = 10
UC_CPU_PPC_403GCX = 11
UC_CPU_PPC_405D2 = 12
UC_CPU_PPC_405D4 = 13
UC_CPU_PPC_405CRA = 14
UC_CPU_PPC_405CRB = 15
UC_CPU_PPC_405CRC = 16
UC_CPU_PPC_405EP = 17
UC_CPU_PPC_405EZ = 18
UC_CPU_PPC_405GPA = 19
UC_CPU_PPC_405GPB = 20
UC_CPU_PPC_405GPC = 21
UC_CPU_PPC_405GPD = 22
UC_CPU_PPC_405GPR = 23
UC_CPU_PPC_405LP = 24
UC_CPU_PPC_NPE405H = 25
UC_CPU_PPC_NPE405H2 = 26
UC_CPU_PPC_NPE405L = 27
UC_CPU_PPC_NPE4GS3 = 28
UC_CPU_PPC_STB03 = 29
UC_CPU_PPC_STB04 = 30
UC_CPU_PPC_STB25 = 31
UC_CPU_PPC_X2VP4 = 32
UC_CPU_PPC_440_XILINX = 33
UC_CPU_PPC_440EPA = 34
UC_CPU_PPC_440EPB = 35
UC_CPU_PPC_440GPB = 36
UC_CPU_PPC_440GPC = 37
UC_CPU_PPC_440GRX = 38
UC_CPU_PPC_440GXA = 39
UC_CPU_PPC_440GXB = 40
UC_CPU_PPC_440GXC = 41
UC_CPU_PPC_440GXF = 42
UC_CPU_PPC_440SP = 43
UC_CPU_PPC_440SP2 = 44
UC_CPU_PPC_440SPE = 45
UC_CPU_PPC_460EXB = 46
UC_CPU_PPC_MPC5XX = 47
UC_CPU_PPC_MPC8XX = 48
UC_CPU_PPC_G2 = 49
UC_CPU_PPC_G2H4 = 50
UC_CPU_PPC_G2GP = 51
UC_CPU_PPC_G2LS = 52
UC_CPU_PPC_MPC603 = 53
UC_CPU_PPC_G2_HIP3 = 54
UC_CPU_PPC_G2_HIP4 = 55
UC_CPU_PPC_G2LE = 56
UC_CPU_PPC_G2LEGP = 57
UC_CPU_PPC_G2LELS = 58
UC_CPU_PPC_G2LEGP1 = 59
UC_CPU_PPC_G2LEGP3 = 60
UC_CPU_PPC_E200Z5 = 61
UC_CPU_PPC_E200Z6 = 62
UC_CPU_PPC_E300C1 = 63
UC_CPU_PPC_E300C2 = 64
UC_CPU_PPC_E300C3 = 65
UC_CPU_PPC_E300C4 = 66
UC_CPU_PPC_E500V1_V10 = 67
UC_CPU_PPC_E500V1_V20 = 68
UC_CPU_PPC_E500V2_V10 = 69
UC_CPU_PPC_E500V2_V11 = 70
UC_CPU_PPC_E500V2_V20 = 71
UC_CPU_PPC_E500V2_V21 = 72
UC_CPU_PPC_E500V2_V22 = 73
UC_CPU_PPC_E500V2_V30 = 74
UC_CPU_PPC_E500MC = 75
UC_CPU_PPC_E5500 = 76
UC_CPU_PPC_E6500 = 77
UC_CPU_PPC_E600 = 78
UC_CPU_PPC_601_V0 = 79
UC_CPU_PPC_601_V1 = 80
UC_CPU_PPC_601_V2 = 81
UC_CPU_PPC_602 = 82
UC_CPU_PPC_603 = 83
UC_CPU_PPC_603E_V11 = 84
UC_CPU_PPC_603E_V12 = 85
UC_CPU_PPC_603E_V13 = 86
UC_CPU_PPC_603E_V14 = 87
UC_CPU_PPC_603E_V22 = 88
UC_CPU_PPC_603E_V3 = 89
UC_CPU_PPC_603E_V4 = 90
UC_CPU_PPC_603E_V41 = 91
UC_CPU_PPC_603E7T = 92
UC_CPU_PPC_603E7V = 93
UC_CPU_PPC_603E7V1 = 94
UC_CPU_PPC_603E7V2 = 95
UC_CPU_PPC_603E7 = 96
UC_CPU_PPC_603P = 97
UC_CPU_PPC_604 = 98
UC_CPU_PPC_604E_V10 = 99
UC_CPU_PPC_604E_V22 = 100
UC_CPU_PPC_604E_V24 = 101
UC_CPU_PPC_604R = 102
UC_CPU_PPC_7X0_V10 = 103
UC_CPU_PPC_7X0_V20 = 104
UC_CPU_PPC_7X0_V21 = 105
UC_CPU_PPC_7X0_V22 = 106
UC_CPU_PPC_7X0_V30 = 107
UC_CPU_PPC_7X0_V31 = 108
UC_CPU_PPC_740E = 109
UC_CPU_PPC_750E = 110
UC_CPU_PPC_7X0P = 111
UC_CPU_PPC_750CL_V10 = 112
UC_CPU_PPC_750CL_V20 = 113
UC_CPU_PPC_750CX_V10 = 114
UC_CPU_PPC_750CX_V20 = 115
UC_CPU_PPC_750CX_V21 = 116
UC_CPU_PPC_750CX_V22 = 117
UC_CPU_PPC_750CXE_V21 = 118
UC_CPU_PPC_750CXE_V22 = 119
UC_CPU_PPC_750CXE_V23 = 120
UC_CPU_PPC_750CXE_V24 = 121
UC_CPU_PPC_750CXE_V24B = 122
UC_CPU_PPC_750CXE_V30 = 123
UC_CPU_PPC_750CXE_V31 = 124
UC_CPU_PPC_750CXE_V31B = 125
UC_CPU_PPC_750CXR = 126
UC_CPU_PPC_750FL = 127
UC_CPU_PPC_750FX_V10 = 128
UC_CPU_PPC_750FX_V20 = 129
UC_CPU_PPC_750FX_V21 = 130
UC_CPU_PPC_750FX_V22 = 131
UC_CPU_PPC_750FX_V23 = 132
UC_CPU_PPC_750GL = 133
UC_CPU_PPC_750GX_V10 = 134
UC_CPU_PPC_750GX_V11 = 135
UC_CPU_PPC_750GX_V12 = 136
UC_CPU_PPC_750L_V20 = 137
UC_CPU_PPC_750L_V21 = 138
UC_CPU_PPC_750L_V22 = 139
UC_CPU_PPC_750L_V30 = 140
UC_CPU_PPC_750L_V32 = 141
UC_CPU_PPC_7X5_V10 = 142
UC_CPU_PPC_7X5_V11 = 143
UC_CPU_PPC_7X5_V20 = 144
UC_CPU_PPC_7X5_V21 = 145
UC_CPU_PPC_7X5_V22 = 146
UC_CPU_PPC_7X5_V23 = 147
UC_CPU_PPC_7X5_V24 = 148
UC_CPU_PPC_7X5_V25 = 149
UC_CPU_PPC_7X5_V26 = 150
UC_CPU_PPC_7X5_V27 = 151
UC_CPU_PPC_7X5_V28 = 152
UC_CPU_PPC_7400_V10 = 153
UC_CPU_PPC_7400_V11 = 154
UC_CPU_PPC_7400_V20 = 155
UC_CPU_PPC_7400_V21 = 156
UC_CPU_PPC_7400_V22 = 157
UC_CPU_PPC_7400_V26 = 158
UC_CPU_PPC_7400_V27 = 159
UC_CPU_PPC_7400_V28 = 160
UC_CPU_PPC_7400_V29 = 161
UC_CPU_PPC_7410_V10 = 162
UC_CPU_PPC_7410_V11 = 163
UC_CPU_PPC_7410_V12 = 164
UC_CPU_PPC_7410_V13 = 165
UC_CPU_PPC_7410_V14 = 166
UC_CPU_PPC_7448_V10 = 167
UC_CPU_PPC_7448_V11 = 168
UC_CPU_PPC_7448_V20 = 169
UC_CPU_PPC_7448_V21 = 170
UC_CPU_PPC_7450_V10 = 171
UC_CPU_PPC_7450_V11 = 172
UC_CPU_PPC_7450_V12 = 173
UC_CPU_PPC_7450_V20 = 174
UC_CPU_PPC_7450_V21 = 175
UC_CPU_PPC_74X1_V23 = 176
UC_CPU_PPC_74X1_V210 = 177
UC_CPU_PPC_74X5_V10 = 178
UC_CPU_PPC_74X5_V21 = 179
UC_CPU_PPC_74X5_V32 = 180
UC_CPU_PPC_74X5_V33 = 181
UC_CPU_PPC_74X5_V34 = 182
UC_CPU_PPC_74X7_V10 = 183
UC_CPU_PPC_74X7_V11 = 184
UC_CPU_PPC_74X7_V12 = 185
UC_CPU_PPC_74X7A_V10 = 186
UC_CPU_PPC_74X7A_V11 = 187
UC_CPU_PPC_74X7A_V12 = 188
UC_CPU_PPC_IOP480 = 1
UC_CPU_PPC_X2VP20 = 42
UC_CPU_PPC_440GRA = 35
UC_CPU_PPC_440EPX = 38
UC_CPU_PPC_MPC5200_V10 = 59
UC_CPU_PPC_MPC5200_V11 = 59
UC_CPU_PPC_MPC5200_V12 = 59
UC_CPU_PPC_MPC5200B_V20 = 59
UC_CPU_PPC_MPC5200B_V21 = 59
UC_CPU_PPC_MPC834X = 63
UC_CPU_PPC_MPC837X = 66
UC_CPU_PPC_E500 = 73
UC_CPU_PPC_MPC8533_V10 = 72
UC_CPU_PPC_MPC8533_V11 = 73
UC_CPU_PPC_MPC8533E_V10 = 72
UC_CPU_PPC_MPC8533E_V11 = 73
UC_CPU_PPC_MPC8540_V10 = 67
UC_CPU_PPC_MPC8540_V20 = 68
UC_CPU_PPC_MPC8540_V21 = 68
UC_CPU_PPC_MPC8541_V10 = 68
UC_CPU_PPC_MPC8541_V11 = 68
UC_CPU_PPC_MPC8541E_V10 = 68
UC_CPU_PPC_MPC8541E_V11 = 68
UC_CPU_PPC_MPC8543_V10 = 69
UC_CPU_PPC_MPC8543_V11 = 70
UC_CPU_PPC_MPC8543_V20 = 71
UC_CPU_PPC_MPC8543_V21 = 72
UC_CPU_PPC_MPC8543E_V10 = 69
UC_CPU_PPC_MPC8543E_V11 = 70
UC_CPU_PPC_MPC8543E_V20 = 71
UC_CPU_PPC_MPC8543E_V21 = 72
UC_CPU_PPC_MPC8544_V10 = 72
UC_CPU_PPC_MPC8544_V11 = 73
UC_CPU_PPC_MPC8544E_V11 = 73
UC_CPU_PPC_MPC8544E_V10 = 72
UC_CPU_PPC_MPC8545_V10 = 69
UC_CPU_PPC_MPC8545_V20 = 71
UC_CPU_PPC_MPC8545_V21 = 72
UC_CPU_PPC_MPC8545E_V10 = 69
UC_CPU_PPC_MPC8545E_V20 = 71
UC_CPU_PPC_MPC8545E_V21 = 72
UC_CPU_PPC_MPC8547E_V10 = 69
UC_CPU_PPC_MPC8547E_V20 = 71
UC_CPU_PPC_MPC8547E_V21 = 72
UC_CPU_PPC_MPC8548_V10 = 69
UC_CPU_PPC_MPC8548_V11 = 70
UC_CPU_PPC_MPC8548_V20 = 71
UC_CPU_PPC_MPC8548_V21 = 72
UC_CPU_PPC_MPC8548E_V10 = 69
UC_CPU_PPC_MPC8548E_V11 = 70
UC_CPU_PPC_MPC8548E_V20 = 71
UC_CPU_PPC_MPC8548E_V21 = 72
UC_CPU_PPC_MPC8555_V10 = 69
UC_CPU_PPC_MPC8555_V11 = 70
UC_CPU_PPC_MPC8555E_V10 = 69
UC_CPU_PPC_MPC8555E_V11 = 70
UC_CPU_PPC_MPC8560_V10 = 69
UC_CPU_PPC_MPC8560_V20 = 71
UC_CPU_PPC_MPC8560_V21 = 72
UC_CPU_PPC_MPC8567 = 73
UC_CPU_PPC_MPC8567E = 73
UC_CPU_PPC_MPC8568 = 73
UC_CPU_PPC_MPC8568E = 73
UC_CPU_PPC_MPC8572 = 74
UC_CPU_PPC_MPC8572E = 74
UC_CPU_PPC_MPC8610 = 78
UC_CPU_PPC_MPC8641 = 78
UC_CPU_PPC_MPC8641D = 78
UC_CPU_PPC64_620 = 0
UC_CPU_PPC64_630 = 1
UC_CPU_PPC64_631 = 2
UC_CPU_PPC64_POWER4 = 3
UC_CPU_PPC64_POWER4P = 4
UC_CPU_PPC64_POWER5 = 5
UC_CPU_PPC64_POWER5P_V21 = 6
UC_CPU_PPC64_POWER6 = 7
UC_CPU_PPC64_POWER_SERVER_MASK = 8
UC_CPU_PPC64_POWER7_BASE = 9
UC_CPU_PPC64_POWER7_V23 = 10
UC_CPU_PPC64_POWER7P_BASE = 11
UC_CPU_PPC64_POWER7P_V21 = 12
UC_CPU_PPC64_POWER8E_BASE = 13
UC_CPU_PPC64_POWER8E_V21 = 14
UC_CPU_PPC64_POWER8_BASE = 15
UC_CPU_PPC64_POWER8_V20 = 16
UC_CPU_PPC64_POWER8NVL_BASE = 17
UC_CPU_PPC64_POWER8NVL_V10 = 18
UC_CPU_PPC64_POWER9_BASE = 19
UC_CPU_PPC64_POWER9_DD1 = 20
UC_CPU_PPC64_POWER9_DD20 = 21
UC_CPU_PPC64_POWER10_BASE = 22
UC_CPU_PPC64_POWER10_DD1 = 23
UC_CPU_PPC64_970_V22 = 24
UC_CPU_PPC64_970FX_V10 = 25
UC_CPU_PPC64_970FX_V20 = 26
UC_CPU_PPC64_970FX_V21 = 27
UC_CPU_PPC64_970FX_V30 = 28
UC_CPU_PPC64_970FX_V31 = 29
UC_CPU_PPC64_970MP_V10 = 30
UC_CPU_PPC64_970MP_V11 = 31
UC_CPU_PPC64_CELL_V10 = 32
UC_CPU_PPC64_CELL_V20 = 33
UC_CPU_PPC64_CELL_V30 = 34
UC_CPU_PPC64_CELL_V31 = 35
UC_CPU_PPC64_RS64 = 36
UC_CPU_PPC64_RS64II = 37
UC_CPU_PPC64_RS64III = 38
UC_CPU_PPC64_RS64IV = 39
UC_CPU_PPC64_CELL_V32 = 35
UC_CPU_PPC64_CELL = 35
# PPC registers
UC_PPC_REG_INVALID = 0

View File

@@ -2,6 +2,16 @@
module UnicornEngine
UC_CPU_RISCV32_ANY = 0
UC_CPU_RISCV32_BASE32 = 1
UC_CPU_RISCV32_SIFIVE_E31 = 2
UC_CPU_RISCV32_SIFIVE_U34 = 3
UC_CPU_RISCV64_ANY = 0
UC_CPU_RISCV64_BASE64 = 1
UC_CPU_RISCV64_SIFIVE_E51 = 2
UC_CPU_RISCV64_SIFIVE_U54 = 3
# RISCV registers
UC_RISCV_REG_INVALID = 0

View File

@@ -2,6 +2,38 @@
module UnicornEngine
UC_CPU_SPARC_FUJITSU_MB86904 = 0
UC_CPU_SPARC_FUJITSU_MB86907 = 1
UC_CPU_SPARC_TI_MICROSPARC_I = 2
UC_CPU_SPARC_TI_MICROSPARC_II = 3
UC_CPU_SPARC_TI_MICROSPARC_IIEP = 4
UC_CPU_SPARC_TI_SUPERSPARC_40 = 5
UC_CPU_SPARC_TI_SUPERSPARC_50 = 6
UC_CPU_SPARC_TI_SUPERSPARC_51 = 7
UC_CPU_SPARC_TI_SUPERSPARC_60 = 8
UC_CPU_SPARC_TI_SUPERSPARC_61 = 9
UC_CPU_SPARC_TI_SUPERSPARC_II = 10
UC_CPU_SPARC_LEON2 = 11
UC_CPU_SPARC_LEON3 = 12
UC_CPU_SPARC64_FUJITSU = 0
UC_CPU_SPARC64_FUJITSU_III = 1
UC_CPU_SPARC64_FUJITSU_IV = 2
UC_CPU_SPARC64_FUJITSU_V = 3
UC_CPU_SPARC64_TI_ULTRASPARC_I = 4
UC_CPU_SPARC64_TI_ULTRASPARC_II = 5
UC_CPU_SPARC64_TI_ULTRASPARC_III = 6
UC_CPU_SPARC64_TI_ULTRASPARC_IIE = 7
UC_CPU_SPARC64_SUN_ULTRASPARC_III = 8
UC_CPU_SPARC64_SUN_ULTRASPARC_III_CU = 9
UC_CPU_SPARC64_SUN_ULTRASPARC_IIII = 10
UC_CPU_SPARC64_SUN_ULTRASPARC_IV = 11
UC_CPU_SPARC64_SUN_ULTRASPARC_IV_PLUS = 12
UC_CPU_SPARC64_SUN_ULTRASPARC_IIII_PLUS = 13
UC_CPU_SPARC64_SUN_ULTRASPARC_T1 = 14
UC_CPU_SPARC64_SUN_ULTRASPARC_T2 = 15
UC_CPU_SPARC64_NEC_ULTRASPARC_I = 16
# SPARC registers
UC_SPARC_REG_INVALID = 0

View File

@@ -107,6 +107,22 @@ module UnicornEngine
UC_QUERY_ARCH = 3
UC_QUERY_TIMEOUT = 4
UC_CTL_IO_NONE = 0
UC_CTL_IO_WRITE = 1
UC_CTL_IO_READ = 2
UC_CTL_IO_READ_WRITE = 3
UC_CTL_UC_MODE = 0
UC_CTL_UC_PAGE_SIZE = 1
UC_CTL_UC_ARCH = 2
UC_CTL_UC_TIMEOUT = 3
UC_CTL_UC_EXITS_CNT = 4
UC_CTL_UC_EXITS = 5
UC_CTL_CPU_MODEL = 6
UC_CTL_TB_EDGE = 7
UC_CTL_TB_REQUEST_CACHE = 8
UC_CTL_TB_REMOVE_CACHE = 9
UC_PROT_NONE = 0
UC_PROT_READ = 1
UC_PROT_WRITE = 2

View File

@@ -2,6 +2,45 @@
module UnicornEngine
UC_CPU_X86_QEMU64 = 0
UC_CPU_X86_PHENOM = 1
UC_CPU_X86_CORE2DUO = 2
UC_CPU_X86_KVM64 = 3
UC_CPU_X86_QEMU32 = 4
UC_CPU_X86_KVM32 = 5
UC_CPU_X86_COREDUO = 6
UC_CPU_X86_486 = 7
UC_CPU_X86_PENTIUM = 8
UC_CPU_X86_PENTIUM2 = 9
UC_CPU_X86_PENTIUM3 = 10
UC_CPU_X86_ATHLON = 11
UC_CPU_X86_N270 = 12
UC_CPU_X86_CONROE = 13
UC_CPU_X86_PENRYN = 14
UC_CPU_X86_NEHALEM = 15
UC_CPU_X86_WESTMERE = 16
UC_CPU_X86_SANDYBRIDGE = 17
UC_CPU_X86_IVYBRIDGE = 18
UC_CPU_X86_HASWELL = 19
UC_CPU_X86_BROADWELL = 20
UC_CPU_X86_SKYLAKE_CLIENT = 21
UC_CPU_X86_SKYLAKE_SERVER = 22
UC_CPU_X86_CASCADELAKE_SERVER = 23
UC_CPU_X86_COOPERLAKE = 24
UC_CPU_X86_ICELAKE_CLIENT = 25
UC_CPU_X86_ICELAKE_SERVER = 26
UC_CPU_X86_DENVERTON = 27
UC_CPU_X86_SNOWRIDGE = 28
UC_CPU_X86_KNIGHTSMILL = 29
UC_CPU_X86_OPTERON_G1 = 30
UC_CPU_X86_OPTERON_G2 = 31
UC_CPU_X86_OPTERON_G3 = 32
UC_CPU_X86_OPTERON_G4 = 33
UC_CPU_X86_OPTERON_G5 = 34
UC_CPU_X86_EPYC = 35
UC_CPU_X86_DHYANA = 36
UC_CPU_X86_EPYC_ROME = 37
# X86 registers
UC_X86_REG_INVALID = 0

View File

@@ -25,3 +25,7 @@ libc = "0.2"
[build-dependencies]
build-helper = "0.1"
reqwest = { version = "0.11", features = ["blocking"] }
flate2 = "1.0.22"
tar = "0.4.37"
bytes = "1.1.0"

View File

@@ -1,31 +1,58 @@
use std::result::Result;
use bytes::Buf;
use flate2::read::GzDecoder;
use reqwest::header::USER_AGENT;
use std::path::PathBuf;
use std::{env, process::Command};
use tar::Archive;
fn find_unicorn(unicorn_dir: &PathBuf) -> Option<PathBuf> {
for entry in std::fs::read_dir(unicorn_dir).ok()? {
let entry = entry.unwrap();
let path = entry.path();
if path.is_dir() && path.file_name()?.to_str()?.contains("unicorn") {
return Some(path);
}
}
None
}
fn download_unicorn() -> Option<String> {
// https://docs.github.com/en/rest/reference/repos#download-a-repository-archive-tar
let pkg_version;
if let Ok(unicorn_version) = env::var("UNICORN_VERSION") {
pkg_version = unicorn_version;
} else {
pkg_version = env::var("CARGO_PKG_VERSION").unwrap();
}
let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap());
let client = reqwest::blocking::Client::new();
let resp = client
.get(format!(
"https://api.github.com/repos/unicorn-engine/unicorn/tarball/{}",
pkg_version
))
.header(USER_AGENT, "unicorn-engine-rust-bindings")
.send()
.unwrap()
.bytes()
.unwrap();
let tar = GzDecoder::new(resp.reader());
let mut archive = Archive::new(tar);
archive.unpack(&out_dir).unwrap();
match find_unicorn(&out_dir) {
Some(dir) => Some(String::from(out_dir.join(dir).to_str()?)),
None => None,
}
}
fn main() {
let out_dir = env::var("OUT_DIR").unwrap();
let profile = env::var("PROFILE").unwrap();
let mut version = String::from("dev");
if let Result::Ok(version_env) = env::var("UNICORN_BRANCH") {
version = version_env;
}
let unicorn_dir;
if let Result::Ok(_) = env::var("CI") {
unicorn_dir = format!("../..");
} else {
unicorn_dir = format!("{}/unicorn_git", out_dir);
Command::new("rm").arg("-rf").arg(&unicorn_dir);
Command::new("git")
.arg("clone")
.arg("git@github.com:unicorn-engine/unicorn.git")
.arg("-b")
.arg(version)
.arg(&unicorn_dir)
.output()
.expect("Fail to clone Unicorn repository.");
}
let unicorn_dir = download_unicorn().unwrap();
println!("cargo:rerun-if-changed={}", &unicorn_dir);

View File

@@ -1,6 +1,8 @@
use std::cell::RefCell;
use std::rc::Rc;
use unicorn_engine::unicorn_const::{uc_error, Arch, HookType, MemType, Mode, Permission, SECOND_SCALE};
use unicorn_engine::unicorn_const::{
uc_error, Arch, HookType, MemType, Mode, Permission, SECOND_SCALE,
};
use unicorn_engine::{InsnSysX86, RegisterARM, RegisterMIPS, RegisterPPC, RegisterX86};
pub static X86_REGISTERS: [RegisterX86; 125] = [
@@ -602,8 +604,8 @@ fn x86_context_save_and_restore() {
let x86_code: Vec<u8> = vec![
0x48, 0xB8, 0xEF, 0xBE, 0xAD, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x05,
];
let mut unicorn =
unicorn_engine::Unicorn::new(Arch::X86, mode).expect("failed to initialize unicorn instance");
let mut unicorn = unicorn_engine::Unicorn::new(Arch::X86, mode)
.expect("failed to initialize unicorn instance");
let mut emu = unicorn.borrow();
assert_eq!(emu.mem_map(0x1000, 0x4000, Permission::ALL), Ok(()));
assert_eq!(emu.mem_write(0x1000, &x86_code), Ok(()));
@@ -619,8 +621,8 @@ fn x86_context_save_and_restore() {
let context = context.unwrap();
/* and create a new emulator, into which we will "restore" that context */
let mut unicorn2 =
unicorn_engine::Unicorn::new(Arch::X86, mode).expect("failed to initialize unicorn instance");
let mut unicorn2 = unicorn_engine::Unicorn::new(Arch::X86, mode)
.expect("failed to initialize unicorn instance");
let emu2 = unicorn2.borrow();
assert_eq!(emu2.context_restore(&context), Ok(()));
for register in X86_REGISTERS.iter() {