Skip to main content

forge_sys/
pattern.rs

1use core::ffi::c_char;
2
3#[repr(C)]
4#[derive(Debug, Clone, Copy)]
5pub struct Pattern {
6    pub pattern: *const PatternByte,
7    pub length: usize,
8}
9
10#[repr(C)]
11#[derive(Debug, Clone, Copy)]
12pub struct PatternByte {
13    pub value: u8,
14    pub mask: u8,
15}
16
17unsafe extern "C" {
18    pub fn forge_pattern_create(pattern: *const c_char) -> Pattern;
19    pub fn forge_pattern_createBits(pattern: *const c_char) -> Pattern;
20    pub fn forge_pattern_destroy(pattern: Pattern);
21
22    pub fn forge_pattern_find(pattern: *const c_char) -> u32;
23    pub fn forge_pattern_findFrom(start_addr: u32, pattern: *const c_char) -> u32;
24
25    pub fn forge_pattern_findBits(bits: *const c_char) -> u32;
26    pub fn forge_pattern_findBitsFrom(start_addr: u32, bits: *const c_char) -> u32;
27
28    pub fn forge_pattern_findEx(pattern: Pattern) -> u32;
29    pub fn forge_pattern_findFromEx(start_addr: u32, pattern: Pattern) -> u32;
30}