Xcore.java
Go to the documentation of this file.
1 // Capstone Java binding
2 // By Nguyen Anh Quynh & Dang Hoang Vu, 2013
3 
4 package capstone;
5 
6 import com.sun.jna.Structure;
7 import com.sun.jna.Union;
8 
9 import java.util.List;
10 import java.util.Arrays;
11 
12 import static capstone.Xcore_const.*;
13 
14 public class Xcore {
15 
16  public static class MemType extends Structure {
17  public byte base;
18  public byte index;
19  public int disp;
20  public int direct;
21 
22  @Override
23  public List getFieldOrder() {
24  return Arrays.asList("base", "index", "disp", "direct");
25  }
26  }
27 
28  public static class OpValue extends Union {
29  public int reg;
30  public int imm;
31  public MemType mem;
32  }
33 
34  public static class Operand extends Structure {
35  public int type;
36  public OpValue value;
37 
38  public void read() {
39  readField("type");
40  if (type == XCORE_OP_MEM)
41  value.setType(MemType.class);
42  if (type == XCORE_OP_IMM || type == XCORE_OP_REG)
43  value.setType(Integer.TYPE);
44  if (type == XCORE_OP_INVALID)
45  return;
46  readField("value");
47  }
48 
49  @Override
50  public List getFieldOrder() {
51  return Arrays.asList("type", "value");
52  }
53  }
54 
55  public static class UnionOpInfo extends Capstone.UnionOpInfo {
56  public byte op_count;
57  public Operand [] op;
58 
59  public UnionOpInfo() {
60  op = new Operand[8];
61  }
62 
63  public void read() {
64  readField("op_count");
65  op = new Operand[op_count];
66  if (op_count != 0)
67  readField("op");
68  }
69 
70  @Override
71  public List getFieldOrder() {
72  return Arrays.asList("op_count", "op");
73  }
74  }
75 
76  public static class OpInfo extends Capstone.OpInfo {
77  public Operand [] op;
78 
79  public OpInfo(UnionOpInfo op_info) {
80  op = op_info.op;
81  }
82  }
83 }
capstone.Xcore.UnionOpInfo.getFieldOrder
List getFieldOrder()
Definition: Xcore.java:71
capstone.Xcore.OpValue
Definition: Xcore.java:28
capstone.Xcore.UnionOpInfo.op_count
byte op_count
Definition: Xcore.java:56
capstone.Xcore.Operand.type
int type
Definition: Xcore.java:35
capstone.Xcore
Definition: Xcore.java:14
capstone.Xcore.MemType.base
byte base
Definition: Xcore.java:17
capstone.Xcore_const
Definition: Xcore_const.java:4
XCORE_OP_MEM
@ XCORE_OP_MEM
= CS_OP_MEM (Memory operand).
Definition: xcore.h:22
capstone.Xcore.UnionOpInfo.read
void read()
Definition: Xcore.java:63
capstone.Xcore.MemType
Definition: Xcore.java:16
XCORE_OP_INVALID
@ XCORE_OP_INVALID
= CS_OP_INVALID (Uninitialized).
Definition: xcore.h:19
capstone.Xcore.UnionOpInfo
Definition: Xcore.java:55
capstone.Xcore.OpInfo.OpInfo
OpInfo(UnionOpInfo op_info)
Definition: Xcore.java:79
capstone.Xcore.OpInfo.op
Operand[] op
Definition: Xcore.java:77
XCORE_OP_REG
@ XCORE_OP_REG
= CS_OP_REG (Register operand).
Definition: xcore.h:20
capstone.Xcore.Operand.value
OpValue value
Definition: Xcore.java:36
capstone.Xcore.MemType.direct
int direct
Definition: Xcore.java:20
capstone.Xcore.OpValue.imm
int imm
Definition: Xcore.java:30
capstone
Definition: Arm.java:4
capstone.Xcore.MemType.disp
int disp
Definition: Xcore.java:19
capstone.Xcore.OpValue.reg
int reg
Definition: Xcore.java:29
capstone.Xcore.MemType.getFieldOrder
List getFieldOrder()
Definition: Xcore.java:23
java
capstone.Xcore.MemType.index
byte index
Definition: Xcore.java:18
com
capstone.Xcore.Operand
Definition: Xcore.java:34
XCORE_OP_IMM
@ XCORE_OP_IMM
= CS_OP_IMM (Immediate operand).
Definition: xcore.h:21
capstone.Xcore.Operand.getFieldOrder
List getFieldOrder()
Definition: Xcore.java:50
capstone.Xcore.OpValue.mem
MemType mem
Definition: Xcore.java:31
capstone.Xcore.UnionOpInfo.UnionOpInfo
UnionOpInfo()
Definition: Xcore.java:59
capstone.Xcore.UnionOpInfo.op
Operand[] op
Definition: Xcore.java:57
capstone.Xcore.Operand.read
void read()
Definition: Xcore.java:38
capstone.Xcore.OpInfo
Definition: Xcore.java:76


grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:01:54