# Interface: com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.emulator.unicorn.UnicornLibrary

Declaration of UnicornEngine native routines that will be used by [UnicornEngine](UnicornEngine).

## Static Field: INSTANCE
Type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.emulator.unicorn.UnicornLibrary`

## Method: uc_close
- parameter: `uc`, type: `com.sun.jna.Pointer`
- return type: `int`


## Method: uc_ctl
- parameter: `uc`, type: `com.sun.jna.Pointer`
- parameter: `control`, type: `int`
- parameter: `args`, type: `java.lang.Object[]`
- return type: `int`


## Method: uc_emu_start
- parameter: `uc`, type: `com.sun.jna.Pointer`
- parameter: `begin`, type: `long`
- parameter: `until`, type: `long`
- parameter: `timeout`, type: `long`
- parameter: `maxcount`, type: `long`
- return type: `int`


## Method: uc_emu_stop
- parameter: `uc`, type: `com.sun.jna.Pointer`
- return type: `int`


## Method: uc_errno
- parameter: `uc`, type: `com.sun.jna.Pointer`
- return type: `int`


## Method: uc_hook_add
- parameter: `uc`, type: `com.sun.jna.Pointer`
- parameter: `hh`, type: `com.sun.jna.ptr.PointerByReference`
- parameter: `type`, type: `int`
- parameter: `callback`, type: `com.sun.jna.Callback`
- parameter: `user_data`, type: `com.sun.jna.Pointer`
- parameter: `begin`, type: `long`
- parameter: `end`, type: `long`
- parameter: `args`, type: `java.lang.Object[]`
- return type: `int`


## Method: uc_hook_del
- parameter: `uc`, type: `com.sun.jna.Pointer`
- parameter: `hh`, type: `com.sun.jna.Pointer`
- return type: `int`


## Method: uc_mem_map
- parameter: `uc`, type: `com.sun.jna.Pointer`
- parameter: `address`, type: `long`
- parameter: `size`, type: `long`
- parameter: `perms`, type: `int`
- return type: `int`


## Method: uc_mem_read
- parameter: `uc`, type: `com.sun.jna.Pointer`
- parameter: `address`, type: `long`
- parameter: `bytes`, type: `byte[]`
- parameter: `size`, type: `long`
- return type: `int`


## Method: uc_mem_write
- parameter: `uc`, type: `com.sun.jna.Pointer`
- parameter: `address`, type: `long`
- parameter: `bytes`, type: `byte[]`
- parameter: `size`, type: `long`
- return type: `int`


## Method: uc_open
- parameter: `arch`, type: `int`
- parameter: `mode`, type: `int`
- parameter: `uc`, type: `com.sun.jna.ptr.PointerByReference`
- return type: `int`


## Method: uc_reg_read
- parameter: `uc`, type: `com.sun.jna.Pointer`
- parameter: `regid`, type: `int`
- parameter: `value`, type: `byte[]`
- return type: `int`


## Method: uc_reg_write
- parameter: `uc`, type: `com.sun.jna.Pointer`
- parameter: `regid`, type: `int`
- parameter: `value`, type: `byte[]`
- return type: `int`


## Method: uc_strerror
- parameter: `code`, type: `int`
- return type: `java.lang.String`


