ZyanU64
static ZyanU64 ZyanAtomicCompareExchange64(ZyanAtomic64* destination,
ZyanU64 comparand, ZyanU64 value);
static ZyanU64 ZyanAtomicIncrement64(ZyanAtomic64* destination);
static ZyanU64 ZyanAtomicDecrement64(ZyanAtomic64* destination);
ZyanU64 volatile value;
ZYAN_INLINE ZYAN_DECLARE_EQUALITY_COMPARISON(ZyanEqualsNumeric64, ZyanU64)
ZYAN_INLINE ZYAN_DECLARE_COMPARISON(ZyanCompareNumeric64, ZyanU64)
ZYCORE_EXPORT ZyanStatus ZyanStringInsertDecU(ZyanString* string, ZyanUSize index, ZyanU64 value,
ZYCORE_EXPORT ZyanStatus ZyanStringInsertHexU(ZyanString* string, ZyanUSize index, ZyanU64 value,
ZYCORE_EXPORT ZyanStatus ZyanStringAppendDecU(ZyanString* string, ZyanU64 value,
ZYCORE_EXPORT ZyanStatus ZyanStringAppendHexU(ZyanString* string, ZyanU64 value,
ZYAN_INLINE ZyanU64 ZyanAbsI64(ZyanI64 x)
return (ZyanU64)(x < 0 ? -x : x);
ZYAN_INLINE ZyanU64 ZyanAtomicDecrement64(ZyanAtomic64* destination)
return (ZyanU64)(__sync_sub_and_fetch(&destination->value, 1, &destination->value));
ZYAN_INLINE ZyanU64 ZyanAtomicCompareExchange64(ZyanAtomic64* destination,
ZyanU64 comparand, ZyanU64 value)
return (ZyanU64)(__sync_val_compare_and_swap(&destination->value, comparand, value,
ZYAN_INLINE ZyanU64 ZyanAtomicIncrement64(ZyanAtomic64* destination)
return (ZyanU64)(__sync_fetch_and_add(&destination->value, 1, &destination->value)) + 1;
static ZYAN_INLINE ZyanU64 ZyanAtomicCompareExchange64(ZyanAtomic64* destination,
ZyanU64 comparand, ZyanU64 value)
return (ZyanU64)(_InterlockedCompareExchange64((volatile LONG64*)&(destination->value),
static ZYAN_INLINE ZyanU64 ZyanAtomicIncrement64(ZyanAtomic64* destination)
return (ZyanU64)(_InterlockedIncrement64((volatile LONG64*)&(destination->value)));
static ZYAN_INLINE ZyanU64 ZyanAtomicDecrement64(ZyanAtomic64* destination)
return (ZyanU64)(_InterlockedDecrement64((volatile LONG64*)&(destination->value)));
ZYAN_STATIC_ASSERT(sizeof(ZyanU64 ) == 8 );
ZYAN_STATIC_ASSERT((ZyanI64)-1 >> 1 < (ZyanI64)((ZyanU64)-1 >> 1));
typedef ZyanU64 ZyanUSize;
typedef ZyanU64 ZyanUPointer;
ZYCORE_EXPORT ZyanU64 ZycoreGetVersion(void);
#define ZYCORE_VERSION (ZyanU64)0x0001000500000000
ZyanU64 u;
ZyanU64 u;
ZyanU64 runtime_address, const void* buffer, ZyanUSize length,
ZyanU64 runtime_address, const void* buffer, ZyanUSize length,
ZyanU64 runtime_address;
ZyanU8 operand_count, char* buffer, ZyanUSize length, ZyanU64 runtime_address,
char* buffer, ZyanUSize length, ZyanU64 runtime_address, void* user_data);
ZyanU8 operand_count, void* buffer, ZyanUSize length, ZyanU64 runtime_address,
void* buffer, ZyanUSize length, ZyanU64 runtime_address, ZydisFormatterTokenConst** token,
#define ZYDIS_RUNTIME_ADDRESS_NONE (ZyanU64)(-1)
ZyanU64 runtime_address;
ZyanStatus ZydisStringAppendDecU(ZyanString* string, ZyanU64 value, ZyanU8 padding_length,
ZyanStatus ZydisStringAppendHexU(ZyanString* string, ZyanU64 value, ZyanU8 padding_length,
ZyanU64 values[ZYDIS_REGISTER_MAX_VALUE + 1];
typedef ZyanU64 ZydisInstructionAttributes;
const ZydisDecodedOperand* operand, ZyanU64 runtime_address, ZyanU64* result_address);
const ZydisDecodedOperand* operand, ZyanU64 runtime_address,
const ZydisRegisterContext* register_context, ZyanU64* result_address);
ZYDIS_EXPORT ZyanU64 ZydisGetVersion(void);
#define ZYDIS_VERSION (ZyanU64)0x0004000100000000
ZyanU64 address;
ZyanStatus ZyanStringAppendDecU64(ZyanString* string, ZyanU64 value, ZyanU8 padding_length)
const ZyanU64 value_old = value;
ZyanStatus ZyanStringAppendHexU64(ZyanString* string, ZyanU64 value, ZyanU8 padding_length,
ZyanStatus ZyanStringAppendDecU(ZyanString* string, ZyanU64 value, ZyanU8 padding_length)
ZyanStatus ZyanStringAppendHexU(ZyanString* string, ZyanU64 value, ZyanU8 padding_length,
ZyanU64* const t = ZYCORE_VECTOR_OFFSET(vector, vector->size);
ZyanU64* const a = ZYCORE_VECTOR_OFFSET(vector, index_first);
ZyanU64* const b = ZYCORE_VECTOR_OFFSET(vector, index_second);
ZyanU64 ZycoreGetVersion(void)
ZyanU64 value;
ZyanU64 value;
ZyanU64 runtime_address, const void* buffer, ZyanUSize length,
ZyanU64 runtime_address, const void* buffer, ZyanUSize length,
ZyanU64 runtime_address, const void* buffer, ZyanUSize length,
ZyanU8 operand_count, char* buffer, ZyanUSize length, ZyanU64 runtime_address, void* user_data)
char* buffer, ZyanUSize length, ZyanU64 runtime_address, void* user_data)
ZyanU8 operand_count, void* buffer, ZyanUSize length, ZyanU64 runtime_address,
void* buffer, ZyanUSize length, ZyanU64 runtime_address, ZydisFormatterTokenConst** token,
ZyanU64 address;
ZyanU64 address;
ZyanU64 value;
value = (ZyanU64)context->operand->imm.value.u;
ZyanU64 address;
static ZyanStatus ZydisStringAppendDecU64(ZyanString* string, ZyanU64 value, ZyanU8 padding_length)
const ZyanU64 value_old = value;
static ZyanStatus ZydisStringAppendHexU64(ZyanString* string, ZyanU64 value, ZyanU8 padding_length,
ZyanStatus ZydisStringAppendDecU(ZyanString* string, ZyanU64 value, ZyanU8 padding_length,
ZyanStatus ZydisStringAppendHexU(ZyanString* string, ZyanU64 value, ZyanU8 padding_length,
const ZydisDecodedOperand* operand, ZyanU64 runtime_address,
const ZydisRegisterContext* register_context, ZyanU64* result_address)
ZyanU64 value;
const ZydisDecodedOperand* operand, ZyanU64 runtime_address, ZyanU64* result_address)
*result_address = (ZyanU64)(runtime_address + instruction->length +
*result_address = (ZyanU64)operand->mem.disp.value & 0x000000000000FFFF;
*result_address = (ZyanU64)operand->mem.disp.value & 0x00000000FFFFFFFF;
*result_address = (ZyanU64)operand->mem.disp.value;
*result_address = (ZyanU64)((ZyanI64)runtime_address + instruction->length +
ZyanU64 ZydisGetVersion(void)