Add uc_ctl_get/set_tcg_buffer_size

We still need this API because the virtual memory address space of

32 bits os is only 4GB and we default need 1G per instance

Credits to @ZehMatt for original idea

Co-authored-by: ζeh Matt <5415177+ZehMatt@users.noreply.github.com>
This commit is contained in:
mio
2023-06-10 23:36:02 +02:00
parent f8c7969d65
commit 8dffbc159c
6 changed files with 25 additions and 6 deletions

View File

@@ -90,7 +90,7 @@ typedef void (*uc_args_void_t)(void *);
typedef void (*uc_args_uc_t)(struct uc_struct *);
typedef void (*uc_args_int_uc_t)(struct uc_struct *);
typedef void (*uc_args_uc_long_t)(struct uc_struct *, unsigned long);
typedef void (*uc_args_uc_long_t)(struct uc_struct *, uint32_t);
typedef void (*uc_args_uc_u64_t)(struct uc_struct *, uint64_t addr);
@@ -400,6 +400,7 @@ struct uc_struct {
FlatView *empty_view; // Static function variable moved from flatviews_init
uint32_t tcg_buffer_size; // The buffer size we are going to use
#ifdef WIN32
PVOID seh_handle;
void* seh_closure;

View File

@@ -571,8 +571,12 @@ typedef enum uc_control_type {
// Change the tlb implementation
// see uc_tlb_type for current implemented types
// Write: @args = (int)
UC_CTL_TLB_TYPE
UC_CTL_TLB_TYPE,
// Change the tcg translation buffer size, note that
// unicorn may adjust this value.
// Write: @args = (uint32_t)
// Read: @args = (uint32_t*)
UC_CTL_TCG_BUFFER_SIZE,
} uc_control_type;
/*