#ifndef __DYNABLOCK_H_
#define __DYNABLOCK_H_
typedef struct x64emu_s x64emu_t;
typedef struct dynablock_s dynablock_t;
uint32_t X31_hash_code(void* addr, int len);
void FreeDynablock(dynablock_t* db, int need_lock);
void MarkDynablock(dynablock_t* db);
void MarkRangeDynablock(dynablock_t* db, uintptr_t addr, uintptr_t size);
int FreeRangeDynablock(dynablock_t* db, uintptr_t addr, uintptr_t size);
void FreeInvalidDynablock(dynablock_t* db, int need_lock);
dynablock_t* InvalidDynablock(dynablock_t* db, int need_lock);
dynablock_t* FindDynablockFromNativeAddress(void* addr);
dynablock_t* DBGetBlock(x64emu_t* emu, uintptr_t addr, int create, int is32bits);
dynablock_t* DBAlternateBlock(x64emu_t* emu, uintptr_t addr, uintptr_t filladdr, int is32bits);
void cancelFillBlock(void);
#endif