Skip to content

Commit 9d08967

Browse files
committed
capstone: update to 2018 edition
1 parent 8f44a96 commit 9d08967

19 files changed

+136
-126
lines changed

capstone-rs/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ license = "MIT"
88
name = "capstone"
99
repository = "https://github.com/capstone-rust/capstone-rs"
1010
readme = "README.md"
11+
edition = "2018"
1112
version = "0.6.0"
1213

1314
[badges]

capstone-rs/src/arch/arm.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
11
//! Contains arm-specific types
22
3-
pub use arch::arch_builder::arm::*;
4-
use arch::DetailsArchInsn;
5-
use capstone_sys::{arm_op_mem, arm_op_type, cs_arm, cs_arm_op};
6-
use instruction::{RegId, RegIdInt};
73
use core::convert::From;
84
use core::{cmp, fmt, slice};
5+
6+
use capstone_sys::{
7+
arm_op_mem, arm_op_type, cs_arm, cs_arm_op, arm_shifter,
8+
cs_arm_op__bindgen_ty_2};
99
use libc::c_uint;
1010

11+
pub use crate::arch::arch_builder::arm::*;
12+
use crate::arch::DetailsArchInsn;
13+
use crate::instruction::{RegId, RegIdInt};
14+
1115
pub use capstone_sys::arm_insn_group as ArmInsnGroup;
1216
pub use capstone_sys::arm_insn as ArmInsn;
1317
pub use capstone_sys::arm_reg as ArmReg;
14-
1518
pub use capstone_sys::arm_vectordata_type as ArmVectorData;
1619
pub use capstone_sys::arm_cpsmode_type as ArmCPSMode;
1720
pub use capstone_sys::arm_cpsflag_type as ArmCPSFlag;
1821
pub use capstone_sys::arm_cc as ArmCC;
1922
pub use capstone_sys::arm_mem_barrier as ArmMemBarrier;
2023
pub use capstone_sys::arm_setend_type as ArmSetendType;
21-
use capstone_sys::{arm_shifter, cs_arm_op__bindgen_ty_2};
2224

2325
/// Contains ARM-specific details for an instruction
2426
pub struct ArmInsnDetail<'a>(pub(crate) &'a cs_arm);

capstone-rs/src/arch/arm64.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
//! Contains arm64-specific types
22
3-
pub use arch::arch_builder::arm64::*;
4-
use arch::DetailsArchInsn;
3+
use libc::c_uint;
4+
5+
pub use crate::arch::arch_builder::arm64::*;
6+
use crate::arch::DetailsArchInsn;
57
use capstone_sys::{arm64_op_mem, arm64_op_type, cs_arm64, cs_arm64_op};
6-
use instruction::{RegId, RegIdInt};
8+
use crate::instruction::{RegId, RegIdInt};
79
use core::convert::From;
810
use core::{cmp, fmt, mem, slice};
9-
use libc::c_uint;
1011

1112
// Re-exports
1213
pub use capstone_sys::arm64_insn_group as Arm64InsnGroup;

capstone-rs/src/arch/evm.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
//! Contains EVM-specific types
22
3-
pub use arch::arch_builder::evm::*;
4-
use arch::DetailsArchInsn;
5-
use capstone_sys::cs_evm;
63
use core::fmt;
74

5+
use capstone_sys::cs_evm;
6+
87
// XXX todo(tmfink): create rusty versions
98
pub use capstone_sys::evm_insn_group as EvmInsnGroup;
109
pub use capstone_sys::evm_insn as EvmInsn;
11-
// no register type since EVM has no operands
10+
11+
pub use crate::arch::arch_builder::evm::*;
12+
use crate::arch::DetailsArchInsn;
1213

1314
/// Contains EVM-specific details for an instruction
1415
pub struct EvmInsnDetail<'a>(pub(crate) &'a cs_evm);

capstone-rs/src/arch/m680x.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
11
//! Contains m680x-specific types
22
3-
pub use arch::arch_builder::m680x::*;
4-
use arch::DetailsArchInsn;
3+
use core::convert::From;
4+
use core::{fmt, slice};
5+
56
use capstone_sys::{
67
cs_m680x, cs_m680x_op, m680x_op_ext, m680x_op_idx, m680x_op_rel, m680x_op_type,
78
};
8-
use instruction::{RegId, RegIdInt};
9-
use core::convert::From;
10-
use core::{fmt, slice};
119

1210
// XXX todo(tmfink): create rusty versions
1311
pub use capstone_sys::m680x_insn as M680xInsn;
1412
pub use capstone_sys::m680x_reg as M680xReg;
1513

14+
pub use crate::arch::arch_builder::m680x::*;
15+
use crate::arch::DetailsArchInsn;
16+
use crate::instruction::{RegId, RegIdInt};
17+
18+
1619
/// Contains M680X-specific details for an instruction
1720
pub struct M680xInsnDetail<'a>(pub(crate) &'a cs_m680x);
1821

capstone-rs/src/arch/m68k.rs

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,22 @@
33
use core::convert::From;
44
use core::{cmp, fmt, slice};
55

6-
pub use arch::arch_builder::m68k::*;
7-
use arch::DetailsArchInsn;
86
use capstone_sys::{
97
cs_m68k, cs_m68k_op, cs_m68k_op__bindgen_ty_1, m68k_address_mode, m68k_cpu_size, m68k_fpu_size,
108
m68k_op_br_disp, m68k_op_mem, m68k_op_size, m68k_op_type, m68k_reg, m68k_size_type,
119
};
12-
use Error;
13-
use instruction::{RegId, RegIdInt};
14-
use prelude::*;
15-
16-
// XXX todo(tmfink): fix racy initialization in Castone C library M68k
1710

1811
// XXX todo(tmfink): create rusty versions
1912
pub use capstone_sys::m68k_address_mode as M68kAddressMode;
2013
pub use capstone_sys::m68k_insn as M68kInsn;
2114
pub use capstone_sys::m68k_reg as M68kReg;
2215

16+
pub use crate::arch::arch_builder::m68k::*;
17+
use crate::arch::DetailsArchInsn;
18+
use crate::Error;
19+
use crate::instruction::{RegId, RegIdInt};
20+
use crate::prelude::*;
21+
2322

2423
/// Contains M68K-specific details for an instruction
2524
pub struct M68kInsnDetail<'a>(pub(crate) &'a cs_m68k);
@@ -468,7 +467,7 @@ mod test {
468467
use capstone_sys::m68k_address_mode::*;
469468
use capstone_sys::m68k_op_type::*;
470469
use capstone_sys::m68k_reg::*;
471-
use instruction::*;
470+
use crate::instruction::*;
472471

473472
const MEM_ZERO: m68k_op_mem = m68k_op_mem {
474473
base_reg: M68K_REG_INVALID,
@@ -600,9 +599,9 @@ mod test {
600599

601600
#[test]
602601
fn op_eq() {
603-
use arch::m68k::M68kOperand::*;
604-
use arch::m68k::M68kReg::*;
605-
use arch::m68k::*;
602+
use crate::arch::m68k::M68kOperand::*;
603+
use crate::arch::m68k::M68kReg::*;
604+
use crate::arch::m68k::*;
606605
use capstone_sys::m68k_address_mode::*;
607606

608607
assert_ne!(
@@ -637,7 +636,7 @@ mod test {
637636

638637
#[test]
639638
fn extra_info() {
640-
use arch::DetailsArchInsn;
639+
use crate::arch::DetailsArchInsn;
641640

642641
let cs = Capstone::new()
643642
.m68k()

capstone-rs/src/arch/mips.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,17 @@
33
use core::convert::From;
44
use core::{cmp, fmt, slice};
55

6-
pub use arch::arch_builder::mips::*;
7-
use arch::DetailsArchInsn;
86
use capstone_sys::{cs_mips, cs_mips_op, mips_op_mem, mips_op_type};
9-
use instruction::{RegId, RegIdInt};
107

118
// XXX todo(tmfink): create rusty versions
129
pub use capstone_sys::mips_insn_group as MipsInsnGroup;
1310
pub use capstone_sys::mips_insn as MipsInsn;
1411
pub use capstone_sys::mips_reg as MipsReg;
1512

13+
pub use crate::arch::arch_builder::mips::*;
14+
use crate::arch::DetailsArchInsn;
15+
use crate::instruction::{RegId, RegIdInt};
16+
1617
/// Contains MIPS-specific details for an instruction
1718
pub struct MipsInsnDetail<'a>(pub(crate) &'a cs_mips);
1819

capstone-rs/src/arch/mod.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ use alloc::vec::Vec;
44
use core::fmt::Debug;
55
use core::marker::PhantomData;
66

7-
use capstone::Capstone;
8-
use constants::Endian;
9-
use error::CsResult;
7+
use crate::capstone::Capstone;
8+
use crate::constants::Endian;
9+
use crate::error::CsResult;
1010

1111
macro_rules! define_subset_enum {
1212
( [
@@ -87,9 +87,9 @@ macro_rules! define_arch_builder {
8787
pub mod $arch {
8888
use alloc::vec::Vec;
8989

90-
use capstone::Capstone;
91-
use constants::{Arch, Endian, ExtraMode, Mode, Syntax};
92-
use error::{CsResult, Error};
90+
use crate::capstone::Capstone;
91+
use crate::constants::{Arch, Endian, ExtraMode, Mode, Syntax};
92+
use crate::error::{CsResult, Error};
9393

9494
define_arch_builder!( @syntax ( $( $syntax, )* ) );
9595
define_arch_builder!( @endian ( $( $endian )* ) );
@@ -643,7 +643,7 @@ macro_rules! def_arch_details_struct {
643643
}
644644
}
645645

646-
impl<'a> ::arch::DetailsArchInsn for $InsnDetail<'a> {
646+
impl<'a> crate::arch::DetailsArchInsn for $InsnDetail<'a> {
647647
type OperandIterator = $OperandIteratorLife;
648648
type Operand = $Operand;
649649

capstone-rs/src/arch/ppc.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,17 @@
33
use core::convert::From;
44
use core::{cmp, fmt, slice};
55

6-
pub use arch::arch_builder::ppc::*;
7-
use arch::DetailsArchInsn;
8-
use capstone_sys::{cs_ppc, cs_ppc_op, ppc_op_mem, ppc_op_type};
9-
use instruction::{RegId, RegIdInt};
10-
116
// XXX todo(tmfink): create rusty versions
127
pub use capstone_sys::ppc_insn_group as PpcInsnGroup;
138
pub use capstone_sys::ppc_insn as PpcInsn;
149
pub use capstone_sys::ppc_reg as PpcReg;
1510
pub use capstone_sys::ppc_bc as PpcBc;
1611
pub use capstone_sys::ppc_bh as PpcBh;
17-
use capstone_sys::ppc_op_crx;
12+
use capstone_sys::{cs_ppc, cs_ppc_op, ppc_op_mem, ppc_op_crx, ppc_op_type};
13+
14+
pub use crate::arch::arch_builder::ppc::*;
15+
use crate::arch::DetailsArchInsn;
16+
use crate::instruction::{RegId, RegIdInt};
1817

1918
/// Contains PPC-specific details for an instruction
2019
pub struct PpcInsnDetail<'a>(pub(crate) &'a cs_ppc);

capstone-rs/src/arch/sparc.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
//! Contains sparc-specific types
22
3-
pub use arch::arch_builder::sparc::*;
4-
use arch::DetailsArchInsn;
5-
use capstone_sys::{cs_sparc, cs_sparc_op, sparc_op_mem, sparc_op_type};
6-
use instruction::{RegId, RegIdInt};
73
use core::convert::From;
84
use core::{cmp, fmt, slice};
95

@@ -13,6 +9,12 @@ pub use capstone_sys::sparc_insn as SparcInsn;
139
pub use capstone_sys::sparc_reg as SparcReg;
1410
pub use capstone_sys::sparc_cc as SparcCC;
1511
pub use capstone_sys::sparc_hint as SparcHint;
12+
use capstone_sys::{cs_sparc, cs_sparc_op, sparc_op_mem, sparc_op_type};
13+
14+
pub use crate::arch::arch_builder::sparc::*;
15+
use crate::arch::DetailsArchInsn;
16+
use crate::instruction::{RegId, RegIdInt};
17+
1618

1719
/// Contains SPARC-specific details for an instruction
1820
pub struct SparcInsnDetail<'a>(pub(crate) &'a cs_sparc);

capstone-rs/src/arch/sysz.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
//! Contains sysz-specific types
22
3-
pub use arch::arch_builder::sysz::*;
3+
pub use crate::arch::arch_builder::sysz::*;

capstone-rs/src/arch/tms320c64x.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,23 @@
11
//! Contains tms320c64x-specific types
22
3-
pub use arch::arch_builder::tms320c64x::*;
3+
use core::convert::From;
4+
use core::{cmp, fmt, slice};
5+
6+
use libc::c_int;
47
use capstone_sys::{
58
cs_tms320c64x, cs_tms320c64x_op, tms320c64x_funit, tms320c64x_mem_dir, tms320c64x_mem_disp,
69
tms320c64x_mem_mod, tms320c64x_op_mem, tms320c64x_op_type,
710
};
8-
use instruction::{RegId, RegIdInt};
9-
use libc::c_int;
10-
use core::convert::From;
11-
use core::{cmp, fmt, slice};
1211

1312
// XXX todo(tmfink): create rusty versions
1413
pub use capstone_sys::tms320c64x_insn as Tms320c64xInsn;
1514
pub use capstone_sys::tms320c64x_insn_group as Tms320c64xInsnGroup;
1615
pub use capstone_sys::tms320c64x_reg as Tms320c64xReg;
1716

17+
pub use crate::arch::arch_builder::tms320c64x::*;
18+
use crate::instruction::{RegId, RegIdInt};
19+
20+
1821
/// Contains TMS320C64X-specific details for an instruction
1922
pub struct Tms320c64xInsnDetail<'a>(pub(crate) &'a cs_tms320c64x);
2023

capstone-rs/src/arch/x86.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
//! Contains x86-specific types
22
3-
pub use arch::arch_builder::x86::*;
4-
use arch::DetailsArchInsn;
5-
use capstone_sys::{x86_op_mem, x86_op_type, cs_x86, cs_x86_op};
6-
use instruction::{RegId, RegIdInt};
73
use core::convert::From;
84
use core::{cmp, fmt, slice};
95

6+
use capstone_sys::{
7+
cs_x86_op__bindgen_ty_1, x86_op_mem, x86_op_type, cs_x86, cs_x86_op};
108
pub use capstone_sys::x86_insn_group as X86InsnGroup;
119
pub use capstone_sys::x86_insn as X86Insn;
1210
pub use capstone_sys::x86_reg as X86Reg;
1311
pub use capstone_sys::x86_prefix as X86Prefix;
14-
1512
pub use capstone_sys::x86_avx_bcast as X86AvxBcast;
1613
pub use capstone_sys::x86_sse_cc as X86SseCC;
1714
pub use capstone_sys::x86_avx_cc as X86AvxCC;
1815
pub use capstone_sys::x86_xop_cc as X86XopCC;
1916
pub use capstone_sys::x86_avx_rm as X86AvxRm;
2017

21-
use capstone_sys::cs_x86_op__bindgen_ty_1;
18+
pub use crate::arch::arch_builder::x86::*;
19+
use crate::arch::DetailsArchInsn;
20+
use crate::instruction::{RegId, RegIdInt};
21+
2222

2323
/// Contains X86-specific details for an instruction
2424
pub struct X86InsnDetail<'a>(pub(crate) &'a cs_x86);

capstone-rs/src/arch/xcore.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
//! Contains xcore-specific types
22
3-
pub use arch::arch_builder::xcore::*;
4-
use arch::DetailsArchInsn;
5-
use capstone_sys::{cs_xcore, cs_xcore_op, xcore_op_mem, xcore_op_type};
6-
use instruction::{RegId, RegIdInt};
73
use core::convert::From;
84
use core::{cmp, fmt, slice};
95

106
// XXX todo(tmfink): create rusty versions
117
pub use capstone_sys::xcore_insn_group as XcoreInsnGroup;
128
pub use capstone_sys::xcore_insn as XcoreInsn;
139
pub use capstone_sys::xcore_reg as XcoreReg;
10+
use capstone_sys::{cs_xcore, cs_xcore_op, xcore_op_mem, xcore_op_type};
11+
12+
pub use crate::arch::arch_builder::xcore::*;
13+
use crate::arch::DetailsArchInsn;
14+
use crate::instruction::{RegId, RegIdInt};
1415

1516
/// Contains XCORE-specific details for an instruction
1617
pub struct XcoreInsnDetail<'a>(pub(crate) &'a cs_xcore);

capstone-rs/src/capstone.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@ use alloc::string::{String, ToString};
22
use core::convert::From;
33
use core::marker::PhantomData;
44
use core::mem;
5+
56
use libc::{c_int, c_uint, c_void};
67

7-
use arch::CapstoneBuilder;
8+
use crate::arch::CapstoneBuilder;
89
use capstone_sys::cs_opt_value::*;
910
use capstone_sys::*;
10-
use constants::{Arch, Endian, ExtraMode, Mode, OptValue, Syntax};
11-
use error::*;
12-
use ffi::str_from_cstr_ptr;
13-
use instruction::{Insn, InsnDetail, InsnGroupId, InsnId, Instructions, RegId};
11+
use crate::constants::{Arch, Endian, ExtraMode, Mode, OptValue, Syntax};
12+
use crate::error::*;
13+
use crate::ffi::str_from_cstr_ptr;
14+
use crate::instruction::{Insn, InsnDetail, InsnGroupId, InsnId, Instructions, RegId};
1415

1516

1617
/// An instance of the capstone disassembler

capstone-rs/src/ffi.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ pub(crate) unsafe fn str_from_cstr_ptr<'a>(ptr: *const c_char) -> Option<&'a str
2323

2424
#[cfg(test)]
2525
mod test {
26-
use core;
2726
use super::*;
27+
use core;
2828

2929
#[test]
3030
fn cstr_convert() {

0 commit comments

Comments
 (0)