Commit Graph

712 Commits

Author SHA1 Message Date
lazymio
a07a83ac75
Merge pull request #1767 from PhilippTakacs/rustcallback
rust only add mmio callback funktion, if callback is requested
2023-01-24 21:46:40 +01:00
Takacs, Philipp
ed9164e47a rust only add mmio callback funktion, if callback is requested
The C function uc_mmio_map() allows to add seperate callback functions
and userdata for read and write. When the callback functions are NULL
unicorn don't try to call this functions.

Previous this patch, when i.e. read_callback was None the callback was set
to mmio_read_callback_proxy and the userdata was set to NULL. On a callback
the mmio_read_callback_proxy then tried to dereference the userdata and
caused a segfault.

fixes #1762
2023-01-23 13:22:55 +01:00
Luca Gladiator
aded30f5a8 Fix insn_in_hook_proxy return type 2023-01-21 13:50:11 +01:00
Luca Gladiator
014cee5bd1 Fix Rust binding memory leak 2023-01-18 10:52:35 +01:00
Dominik Maier
549f34f098
Fix warning for ./setup.py (#1756) 2023-01-06 01:10:09 +08:00
deadash
ca74497911 Add arch list feature control in Rust
Signed-off-by: deadash <dead.ash@hotmail.com>
2022-12-29 15:13:31 +08:00
Eli
7414177672
Merge branch 'dev' into uc-py-next 2022-12-25 14:59:22 +02:00
lazymio
5625102285
Merge pull request #1736 from ks0777/dev
add riscv constants to python binding module
2022-11-22 14:31:36 +01:00
mio
e9c1c17f6d
Fix endianess detection 2022-11-16 15:16:49 +01:00
Kevin Schneider
8edffe048e add riscv constants to python binding module 2022-11-14 19:59:38 +01:00
TSR Berry
2e6a888052
dotnet: Add native unicorn libraries to nuget package 2022-11-05 02:40:50 +01:00
TSR Berry
1d12e8778b
bindings: Rename dotnet project to UnicornEngine
Add a few more properties to prepare a nuget package
2022-11-02 14:46:08 +01:00
Nguyen Anh Quynh
a16f4ff911 python: update list of supported archs in setup.py 2022-11-02 00:28:40 +08:00
mio
db9ddabf9e
Update bindings 2022-11-01 10:06:34 +01:00
mio
bdd9f4fa9a
Bump version to 2.0.1 2022-11-01 10:06:22 +01:00
Nguyen Anh Quynh
8ac20e2012 python: add some more comments for samples 2022-10-31 12:37:18 +08:00
lazymio
c30a712058
Merge pull request #1723 from TSRBerry/update-dotnet
bindings: Refactor and update .NET bindings
2022-10-20 22:01:22 +02:00
TSR Berry
040146e059
dotnet: Target .NET 6.0 2022-10-20 21:31:46 +02:00
TSR Berry
0522f728b6
dotnet: Remove faulty property groups 2022-10-20 20:35:54 +02:00
elicn
9179ef5db3 Remove unused type aliases 2022-10-20 14:19:02 +03:00
elicn
99d6745461 Release mmio callbacks on a best-effort basis 2022-10-20 14:18:49 +03:00
elicn
d6e5e6a19f Improve annotation around uccallback 2022-10-20 14:17:43 +03:00
elicn
647832b01b Make special regs definitions generic 2022-10-20 14:16:53 +03:00
TSR Berry
7b8b75b9f8
bindings: Adjust consts 2022-10-14 17:33:07 +02:00
TSR Berry
b1af49f72b
dotnet: Adapt README.md to recent changes 2022-10-14 17:16:57 +02:00
TSR Berry
ff1f0a5c1a
dotnet: Refactor .NET bindings for .NET5.0 2022-10-14 16:57:46 +02:00
TSR Berry
c787fa8e64
bindings: Update Arm64 consts 2022-10-14 15:18:16 +02:00
elicn
0e63841628 Minor PEP8 and linter-friendly changes 2022-10-14 00:01:26 +03:00
mio
50a0b59d0d
Use dockcross for aarch64 wheel 2022-10-01 01:31:13 +02:00
mio
6ca077d139
Build aarch64 wheel 2022-10-01 01:01:22 +02:00
Eli
1b3d22c06a
Merge branch 'dev' into uc-py-next 2022-09-29 12:34:24 +03:00
lazymio
2a3cc7a1b3
Merge pull request #1714 from Sh4ww/fix-type-hint-in-python-bindings
Fix type hint of reg_write in Python bindings. (#1706)
2022-09-27 23:52:24 +02:00
mio
7fb6264d02
Also copy glib_compat and samples 2022-09-25 18:46:04 +02:00
mio
97b2e44c77
Also copy cmake files 2022-09-25 18:43:09 +02:00
Sh4w
a98cd25747
Fix type hint of reg_write in Python bindings 2022-09-26 00:18:31 +08:00
mio
e76b2db434
Support build in a sdist 2022-09-25 18:09:41 +02:00
Eli
7cc2409ce0
Merge branch 'dev' into uc-py-next 2022-09-18 19:03:11 +03:00
elicn
5b1f7dfb69 Final touches 2022-09-18 17:59:00 +03:00
elicn
765ec5ffe4 Allow subclassing Uc using the ucsubclass decorator 2022-09-18 17:58:36 +03:00
elicn
950b0fa2b0 Merge _catch_hook_exception and _cast_func into uccallback decorator 2022-09-14 21:06:28 +03:00
elicn
36d4264f15 Minor code quality tweaks 2022-09-14 13:35:58 +03:00
elicn
9290c7f277 Add support for AArch Q regs 2022-09-13 16:33:43 +03:00
elicn
b8e656ae0d Fix and simplify Uc deallocation 2022-09-13 15:13:35 +03:00
Mio
5b5905695d
Fix wrong location of UC_ARM64_REG_CP_REG in python bindings 2022-07-23 19:21:31 +08:00
Nguyen Anh Quynh
1ec1352995 bindings: update consts 2022-07-07 23:48:01 +08:00
Mio
af1c661a12
Update bindings 2022-07-06 09:33:45 +08:00
elicn
2fad2316e5 Fix lib search 2022-06-09 17:56:13 +03:00
elicn
4ac282dfc1 Final touches 2022-06-08 17:25:22 +03:00
elicn
8b233f99fe Adjust ctl_remove_cache usage to signature 2022-06-08 16:59:54 +03:00
elicn
78731e38aa Implement a reg state manager mixin class 2022-06-08 16:59:14 +03:00
elicn
df47e2395f Eliminate UcGeneric 2022-06-08 16:58:19 +03:00
elicn
d65b418239 Adjust samples 2022-06-03 14:23:03 +03:00
elicn
4f13e14227 Initial refactoring stage 2022-06-03 14:23:03 +03:00
lazymio
ac73e6b9d3
Fix #1623
The reg_id is left out
2022-05-23 20:23:55 +02:00
lazymio
e5126f17f1
Bump version in bindings 2022-05-23 12:34:09 +02:00
lazymio
720c61344f
Use UC_MMIO_READ/WRITE_TYPE 2022-05-18 13:18:17 +02:00
Eric Kilmer
a92bbd068f
Add CPUID hook to possible callback types 2022-05-17 17:47:57 -04:00
Eric Kilmer
cf0a6ffd68
python: Support CPUID hooks 2022-05-17 17:29:50 -04:00
Bet4
3cc9005a47 Add TriCore constants to Rust bindings 2022-05-11 17:29:03 +08:00
lazymio
15aa4ed53a
Fix typo 2022-05-10 23:06:14 +02:00
lazymio
aab035e8c3
Annotate uc_hook_add and import annotations for forward reference 2022-05-10 23:03:06 +02:00
lazymio
3ea5d8885d
Better annotation 2022-05-10 22:30:55 +02:00
Lowly Worm
1d13a25320
check pkg-config for unicorn libraries
allow for non-standard install locations of unicorn engine
2022-05-08 19:17:36 -04:00
lazymio
64050aafb1
Fix python setup.py on macOS 2022-05-07 15:48:28 +02:00
lazymio
a221e378bf
Add typing 2022-05-07 15:46:32 +02:00
lazymio
20c0a4b643
Remove use_system_unicorn and build_with_cmake 2022-05-06 14:47:15 +02:00
lazymio
a54dfda14d
Depend on SONAME dylib 2022-05-06 14:47:14 +02:00
Bet4
dafdcd3f06 Fix outdated version 2022-05-04 21:31:53 +08:00
lazymio
8fec2f6992
Fetch static archive in the root dir 2022-05-03 11:11:29 +02:00
lazymio
a8e602801d
Merge pull request #1569 from AfoHT/rustbindreadme
Fix Rust bindings readme example code
2022-04-30 11:12:31 +02:00
lazymio
6d5000fe42
Format code 2022-04-30 11:07:48 +02:00
lazymio
b9e7c78ae8
Revert to rc7 behaviour 2022-04-30 11:07:23 +02:00
lazymio
ba132b974d
Move tests to root directory
Reference: https://doc.rust-lang.org/stable/cargo/guide/project-layout.html
2022-04-29 23:40:03 +02:00
Eric Poole
cfee2139a0
TriCore Support (#1568)
* TriCore Support

python sample

* Update sample_tricore.py

Correct attribution

* Update sample_tricore.py

Fixed byte code to execute properly.

* Update sample_tricore.py

Removed testing artifact

* Added tricore msvc config-file.h

* Added STATIC to tricore config and added helper methods to symbol file generation.

* Update op_helper.c

Use built in crc32

* Fix tricore samples and small code blocks are now handled properly

* Add CPU types

* Generate bindings

* Format code

Co-authored-by: lazymio <mio@lazym.io>
2022-04-29 23:11:34 +02:00
lazymio
f49f62ecef
Add dynamic_linage feature 2022-04-28 15:35:06 +02:00
lazymio
f9bb1ba505
Add python bindings for ctl_flush_tb 2022-04-26 01:17:59 +02:00
lazymio
cdae57fb3d
Generate bindings 2022-04-26 01:17:58 +02:00
lazymio
fbf4078d65
Fix wrong python binding for UC_CTL_TB_REMOVE_CACHE 2022-04-26 01:17:57 +02:00
JeroenRobbenFirmalyzer1
36011e145c
Add Java binding for ctl set_cpu_model (#1600)
Add Java binding for ctl set_cpu_model
2022-04-24 13:29:48 +02:00
lazymio
1cce884c40
Format 2022-04-23 22:41:59 +02:00
lazymio
f4ab42d930
By default try to find global installed unicorn if not specified 2022-04-23 22:41:34 +02:00
lazymio
185a6fec9e
Bump bindings version to 2.0.0-rc7 2022-04-17 16:48:12 +02:00
lazymio
8fd9ee3dd0
Bump unicorn version 2022-04-17 16:47:37 +02:00
lazymio
5a79d7879c
Generate bindings 2022-04-16 17:50:32 +02:00
shuffle2
2912cd1e29
fix rust bindings build on windows (#1584)
Refine rust bindings.
2022-04-16 13:40:04 +02:00
lazymio
a6f9fd17d5
Search cmake build root directory 2022-04-12 21:05:46 +02:00
lazymio
e26953c06c
Fix rust static build 2022-04-12 19:15:14 +02:00
Henrik Tjäder
d1372c28eb Make README code example compile 2022-04-06 13:31:12 +02:00
lazymio
2f113b11d1
Fix symbol clash on bunlded static libs 2022-04-04 11:24:59 +02:00
lazymio
ca81d46ad5
Merge pull request #1574 from nviennot/dev
Rust bindings for insn_invalid_hook
2022-04-03 10:27:00 +02:00
lazymio
ec808c94a7
Merge pull request #1575 from n1tram1/dev
Fix rust binding for insn_in hook callback
2022-04-03 00:42:45 +02:00
Martin Schmidt
9702e657a2 rust: return u32 from insn_in_hook callback 2022-03-26 15:41:37 +01:00
Nicolas Viennot
af8a409141 Rust bindings for insn_invalid_hook 2022-03-25 21:49:26 -04:00
Ilya Leoshkevich
28c4c665f0 Add "holes" to where the removed x86 registers used to be
A number of x86 registers were removed for #1440, causing a change in
numbering for many other registers. This is causing inconveniences at
the moment, e.g. it's not possible to use the Unicorn2 shared library
as a drop-in replacement for the Unicorn1 one.

Restore the old numbering.

Fixes #1492.
2022-03-22 11:31:58 +01:00
David Zimmer
b1739c6a62
vb6 bindings: clarify Apache license as v2.0 (#1563) 2022-03-03 09:35:02 +08:00
lazymio
7f8ff1af6a
Update sample for MRS hook 2022-02-27 15:28:32 +01:00
lazymio
dd96cab9bf
Update bindings 2022-02-27 15:28:32 +01:00
Bet4
504b31b928 Update constants of bindings 2022-02-19 21:24:40 +08:00
lazymio
3ed9dbda13
Update bindings 2022-02-15 22:08:27 +01:00
lazymio
c10639fd46
Bump version in bindings 2022-02-13 11:03:57 +01:00
lazymio
16e9efa4f5
Bump version 2022-02-13 09:56:10 +01:00
lazymio
d503a69239
Merge pull request #1511 from bet4it/use_system_unicorn
Add use_system_unicorn feature in rust bindings
2022-02-12 22:57:01 +01:00
lazymio
9bf074d824
Remove armeb-softmmu and aarch64eb-softmmu for rust bindings 2022-02-12 14:18:01 +01:00
lazymio
15f3b58d9b
Implement coprocessor register read/write for python bindings 2022-02-11 23:03:56 +01:00
lazymio
89a1da9a33
Update bindings 2022-02-11 22:42:31 +01:00
Bet4
394f25b1fa rust: Add get_handle to expose unicorn handle 2022-01-23 08:22:09 +08:00
Bet4
2977c9ca47 Support to pass unicorn handle to rust through FFI 2022-01-21 22:37:15 +08:00
mio
f57467e7ed
Generate bindings 2022-01-19 20:10:09 +01:00
mio
c5ad3c318c
Sync with dev and resolve conflicts 2022-01-19 20:09:25 +01:00
Duncan Ogilvie
d200eb4be6 Fix rust bindings 2022-01-18 21:33:22 +01:00
mio
7095605607
Merge branch 'dev' into systemz 2022-01-18 21:10:55 +01:00
mio
c84dbac9a8
Rename build dir for python bindings 2022-01-18 20:15:28 +01:00
mio
28e791a37f
Add debug tracing feature
It's disabled by default, use -DUNICORN_TRACER=on to enable it
2022-01-18 19:35:43 +01:00
Bet4
5559c097d5 rust: Allow to remove self inside a hook 2022-01-17 21:56:33 +08:00
lazymio
06be6fdc24
Merge pull request #1537 from gerph/clear-pending-hook-exception-before-emulation
Clear Python pending hook exception before we enter the emulation.
2022-01-15 22:13:24 +01:00
lazymio
459a595a98
Merge branch 'dev' into s390x
Mostly for bindings update.
2022-01-15 20:56:39 +01:00
lazymio
dfb0446137
Update bindings 2022-01-15 20:56:24 +01:00
Charles Ferguson
1ba59ed70a Clear Python pending hook exception before we enter the emulation.
The pending exception hook is set when the hook raised an exception
and wants to report it outside the emulation loop. However, it is
never cleared back to None. This means that after an exception is
raised in a hook, all subsequent execution (even if successful) will
raise the exception.

This change clears the exception before we start another emulation,
which should ensure that if we have _hook_exception set, it really
is from hooks in this emulation run.
2022-01-15 17:45:45 +00:00
lazymio
71f044ca50
Merge branch 'dev' into s390x 2022-01-10 15:17:42 +01:00
lazymio
c671efe798
Update bindings 2022-01-05 22:00:59 +01:00
lazymio
c4b4189857
Update bindings 2022-01-04 21:12:52 +01:00
Nguyen Anh Quynh
6813e4a042 bindings: update const_generator.py, and update all binding constants 2022-01-01 09:24:28 +08:00
mio
8b0285e135
Add python support for s390x 2022-01-01 00:58:10 +01:00
mio
d5e0bff7d5
Fix rust build for s390x 2022-01-01 00:41:59 +01:00
lazymio
3184d3fcdf
Update python bindings 2021-12-22 20:46:14 +01:00
Bet4
3e9ae003b7 Add use_system_unicorn feature in rust bindings 2021-12-10 19:44:39 +08:00
Brandon Miller
2cc15c7260 Added SetCPUModel go binding
Go cannot use C macros directly, so I followed existing convention and
added a helper to uc.c to call the uc_ctl_set_cpu_model macro
2021-12-04 16:25:23 -05:00
Sven Bartscher
59fb8a2733 rust: Add RISCV CSR registers
The addition of these registers in the C base caused the rust values
for all floating point registers and the PC to point to some of the
CSR registers instead.
2021-11-30 16:09:24 +01:00
lazymio
10d88e89a5
Fix uc_version and bump again 2021-11-25 18:19:46 +01:00
lazymio
9a4d5d0be8
Bump bindings version to 2.0.0-rc5 2021-11-25 14:29:41 +01:00
Sven Bartscher
a237505adb rust: Implement deallocation of MMIO callbacks
Previously the user data of MMIO callbacks would live until the end of
the containing Unicorn engine. Now they are deallocated once all
memory referencing those callbacks has been unmapped.
2021-11-24 12:15:20 +01:00
Sven Bartscher
20d97a0c00 Add map_mmio to rust bindings 2021-11-24 12:15:20 +01:00
mid-kid
2d665aa752 Accomodate for setting a different CMAKE_GENERATOR in the environment.
This makes sure the right build utility is called, depending on the
value of the CMAKE_GENERATOR environment.
2021-11-13 13:34:11 +01:00
lazymio
fafec703e1
Merge pull request #1480 from domenukk/rust_bindings
Rust bindings improvements
2021-11-10 07:52:31 +01:00
lazymio
7f43e1de3e
Rename rust env to decide build dir 2021-11-10 07:51:07 +01:00
Dominik Maier
67cd9b1c2f fixed doc tests 2021-11-10 04:49:27 +01:00
Dominik Maier
7adcced19b cleanup 2021-11-10 04:26:56 +01:00
Dominik Maier
7873e60740 reverted unfinished commit 2021-11-10 04:21:30 +01:00
Dominik Maier
a231440cf8 reverted build.rs 2021-11-10 04:14:56 +01:00
Dominik Maier
177b21c2af removed need for extra api; no_std 2021-11-10 04:11:14 +01:00
Dominik Maier
492779d7d4 fixed context 2021-11-09 16:19:27 +01:00
Dominik Maier
3b0ce89a7a missing pcs 2021-11-09 16:09:02 +01:00
Dominik Maier
a3e139847d reapply missing changes 2021-11-09 16:04:59 +01:00
Dominik Maier
1f90734b12 No longer redownloads unicorn each cargo build 2021-11-09 15:51:11 +01:00
Dominik Maier
d7ead41a51 fixed testcases 2021-11-09 14:49:18 +01:00
lazymio
ec02eccb85
Fixup Rust CI 2021-11-09 00:58:13 +01:00
lazymio
0714fb5760
Bump bindings version 2021-11-09 00:23:19 +01:00
Dominik Maier
0dfc0cba1f removed duplicate 2021-11-08 19:39:15 +01:00
Dominik Maier
a8f9655189 lifetime 2021-11-08 19:37:38 +01:00
Dominik Maier
f8f0d4471f Unicorn rust bindings improvements 2021-11-08 19:34:53 +01:00