Richard Henderson
336833c11e
tcg: Add MO_ALIGN, MO_UNALN
...
These modifiers control, on a per-memory-op basis, whether
unaligned memory accesses are allowed. The default setting
reflects the target's definition of ALIGNED_ONLY.
Backports commit dfb36305626636e2e07e0c5acd3a002a5419399e from qemu
2018-02-10 20:18:53 -05:00
Richard Henderson
ac713c7034
tcg: Push merged memop+mmu_idx parameter to softmmu routines
...
The extra information is not yet used but it is now available.
This requires minor changes through all of the tcg backends.
Backports commit 3972ef6f830d65e9bacbd31257abedc055fd6dc8 from qemu
2018-02-10 20:03:22 -05:00
Nguyen Anh Quynh
206819bd98
cleanup after msvc port
2017-01-22 21:27:17 +08:00
xorstream
770c5616e2
Automated leading tab to spaces conversion.
2017-01-21 12:28:22 +11:00
xorstream
1aeaf5c40d
This code should now build the x86_x64-softmmu part 2.
2017-01-19 22:50:28 +11:00
Nguyen Anh Quynh
4083b87032
add new hook type UC_HOOK_MEM_READ_AFTER, adapted from PR #399 by @farmdve. updated all bindings, except Ruby & Haskell
2016-10-22 11:19:55 +08:00
Nguyen Anh Quynh
2341f5dd1a
code style
2016-01-26 17:37:48 +08:00
Ryan Hileman
93052f6566
refactor to allow multiple hooks for one type
2016-01-22 18:41:43 -08:00
Nguyen Anh Quynh
f935469658
mips: handle memory redirect for all APIs. this fixes issue #347
2015-12-28 15:19:30 +08:00
Nguyen Anh Quynh
ed319bda0b
x86: identity map guest address to host address. this fixes issue #300
2015-12-24 09:51:17 +08:00
Nguyen Anh Quynh
9e64cba6ec
Rename some hook related enums:
...
- UC_ERR_READ_INVALID -> UC_ERR_READ_UNMAPPED
- UC_ERR_WRITE_INVALID -> UC_ERR_WRITE_UNMAPPED
- UC_ERR_FETCH_INVALID -> UC_ERR_FETCH_UNMAPPED
- UC_MEM_READ_INVALID -> UC_MEM_READ_UNMAPPED
- UC_MEM_WRITE_INVALID -> UC_MEM_WRITE_UNMAPPED
- UC_MEM_FETCH_INVALID -> UC_MEM_FETCH_UNMAPPED
- UC_HOOK_MEM_READ_INVALID -> UC_HOOK_MEM_READ_UNMAPPED
- UC_HOOK_MEM_WRITE_INVALID -> UC_HOOK_MEM_WRITE_UNMAPPED
- UC_HOOK_MEM_FETCH_INVALID -> UC_HOOK_MEM_FETCH_UNMAPPED
- UC_HOOK_MEM_INVALID -> UC_HOOK_MEM_UNMAPPED
This also renames some newly added macros to use _INVALID postfix:
- UC_HOOK_MEM_READ_ERR -> UC_HOOK_MEM_READ_INVALID
- UC_HOOK_MEM_WRITE_ERR -> UC_HOOK_MEM_WRITE_INVALID
- UC_HOOK_MEM_FETCH_ERR -> UC_HOOK_MEM_FETCH_INVALID
- UC_HOOK_MEM_ERR -> UC_HOOK_MEM_INVALID
Fixed all the bindings Java, Go & Python.
2015-09-30 14:46:55 +08:00
Nguyen Anh Quynh
90eb8f2e72
This commit continues the PR #111
...
- Allow to register handler separately for invalid memory access
- Add new memory events for hooking:
- UC_MEM_READ_INVALID, UC_MEM_WRITE_INVALID, UC_MEM_FETCH_INVALID
- UC_HOOK_MEM_READ_PROT, UC_HOOK_MEM_WRITE_PROT, UC_HOOK_MEM_FETCH_PROT
- Rename UC_ERR_EXEC_PROT to UC_ERR_FETCH_PROT
- Change API uc_hook_add() so event type @type can be combined from hooking types
2015-09-24 14:18:02 +08:00
Sean Heelan
dfb4a9d9ad
Revert "Remove uc_cb_eventmem_t as it is identical to uc_cb_hookmem_t"
...
As pointed out by aquynh the return types are actually different. A
uc_cb_eventmem_t callback returns a bool, while uc_cb_hookmem_t has a
void return type.
This reverts commit cb2b97f26c
.
2015-09-23 12:51:47 +07:00
Sean Heelan
cb2b97f26c
Remove uc_cb_eventmem_t as it is identical to uc_cb_hookmem_t, as per
...
issue #111
2015-09-22 12:37:05 +07:00
Nguyen Anh Quynh
d7ef204398
rename error codes ERR_MEM_READ, ERR_MEM_WRITE, ERR_MEM_FETCH
2015-09-09 16:25:48 +08:00
Nguyen Anh Quynh
d3d38d3f21
handle read/write/fetch from unaligned addresses. this adds new error codes UC_ERR_READ_UNALIGNED, UC_ERR_WRITE_UNALIGNED & UC_ERR_FETCH_UNALIGNED
2015-09-09 15:52:15 +08:00
Nguyen Anh Quynh
7a5d790ade
rename UC_MEM_EXE to UC_MEM_FETCH
2015-09-08 12:55:56 +08:00
Nguyen Anh Quynh
022f8d82d1
handle memory fetch as invalid memory access. now we can also report error if exec memory is unmapped (UC_ERR_MEM_FETCH)
2015-09-04 11:55:17 +08:00
Jonathon Reinhart
da46071c7d
bring new code and samples up-to-date with API changes
2015-09-03 22:15:49 -04:00
Jonathon Reinhart
5e9d07a40a
Merge remote-tracking branch 'upstream/master' into change-handle-based-api
2015-09-03 22:01:52 -04:00
Nguyen Anh Quynh
6ca85a72ed
simplify uc_mem_protect() & uc_mem_unmap()
2015-09-04 01:02:38 +08:00
Nguyen Anh Quynh
b8d4240240
solve merging conflict
2015-09-03 18:05:21 +08:00
Jonathon Reinhart
bd0a6921cc
Merge remote-tracking branch 'upstream/master' into change-handle-based-api
2015-09-02 21:04:43 -04:00
Nguyen Anh Quynh
be659d201d
fix confusion betweet UC_MEM_xxx & UC_HOOK_MEM_xxx. fix issue #93
2015-09-03 01:13:57 +08:00
Chris Eagle
2c4f3769d4
clean up mem_protect related constants and error codes
2015-09-01 12:10:09 -07:00
Chris Eagle
658e399776
clean up mem_protect related constants
2015-08-31 19:08:48 -07:00
Jonathon Reinhart
3bd705a060
Merge remote-tracking branch 'upstream/master' into change-handle-based-api
2015-08-30 00:23:51 -04:00
Chris Eagle
eab6167241
Merge branch 'master' into mem_map_ex_cse
2015-08-28 19:00:39 -07:00
Chris Eagle
9ba59e4988
Step one towards uc_mem_protect, uc_mem_unmap, and support for UC_PROT_EXEC and NX regions
2015-08-28 18:59:45 -07:00
Nguyen Anh Quynh
6bd5e2efa7
chmod -x qemu/softmmu_template.h
2015-08-29 09:28:32 +08:00
Chris Eagle
3452b47f7c
Add code to handle non-readable memory
2015-08-28 03:42:25 -07:00
Chris Eagle
686acb7e6e
Detect all occurences of write to read only page. Add callback capability on write to read only. Add new error type UC_ERR_MEM_WRITE_RO and new access type UC_MEM_WRITE_RO for use in callback
2015-08-27 18:03:17 -07:00
Chris Eagle
b39f5d2a91
When checking for invalid memory always do the faster check of whether we are hooking env->uc->hook_mem_idx before doing the expensive check of scanning the memory map
2015-08-26 08:55:19 -07:00
Chris Eagle
095cdb5f9d
Merge remote-tracking branch 'upstream/master'
2015-08-26 08:25:37 -07:00
Jonathon Reinhart
fcb099805f
change uch to uc_struct (qemu)
2015-08-26 09:02:16 -04:00
Nguyen Anh Quynh
192f07c503
reset invalid_error after callbacks decide to continue after invalid memory accesses
2015-08-26 16:15:38 +08:00
Chris Eagle
03e8b28d71
First cut at cleaning up uc_mem_map, eliminate map_begin and map_end, move tracking inside uc struct
2015-08-25 21:52:18 -07:00
Nguyen Anh Quynh
344d016104
import
2015-08-21 15:04:50 +08:00