ZyanUPointer
static ZyanUPointer ZyanAtomicCompareExchange(ZyanAtomicPointer* destination,
ZyanUPointer comparand, ZyanUPointer value);
static ZyanUPointer ZyanAtomicIncrement(ZyanAtomicPointer* destination);
static ZyanUPointer ZyanAtomicDecrement(ZyanAtomicPointer* destination);
ZYAN_INLINE ZyanUPointer ZyanAtomicCompareExchange(ZyanAtomicPointer* destination,
ZyanUPointer comparand, ZyanUPointer value)
return (ZyanUPointer)(__sync_val_compare_and_swap(
ZYAN_INLINE ZyanUPointer ZyanAtomicIncrement(ZyanAtomicPointer* destination)
return (ZyanUPointer)(__sync_fetch_and_add(&destination->value, (void*)1,
ZYAN_INLINE ZyanUPointer ZyanAtomicDecrement(ZyanAtomicPointer* destination)
return (ZyanUPointer)(__sync_sub_and_fetch(&destination->value, (void*)1, &destination->value));
static ZYAN_INLINE ZyanUPointer ZyanAtomicCompareExchange(ZyanAtomicPointer* destination,
ZyanUPointer comparand, ZyanUPointer value)
return (ZyanUPointer)ZyanAtomicCompareExchange32((ZyanAtomic32*)destination, comparand, value);
static ZYAN_INLINE ZyanUPointer ZyanAtomicIncrement(ZyanAtomicPointer* destination)
return (ZyanUPointer)ZyanAtomicIncrement32((ZyanAtomic32*)destination);
static ZYAN_INLINE ZyanUPointer ZyanAtomicDecrement(ZyanAtomicPointer* destination)
return (ZyanUPointer)ZyanAtomicDecrement32((ZyanAtomic32*)destination);
static ZYAN_INLINE ZyanUPointer ZyanAtomicCompareExchange(ZyanAtomicPointer* destination,
ZyanUPointer comparand, ZyanUPointer value)
return (ZyanUPointer)ZyanAtomicCompareExchange64((ZyanAtomic64*)destination, comparand, value);
static ZYAN_INLINE ZyanUPointer ZyanAtomicIncrement(ZyanAtomicPointer* destination)
return (ZyanUPointer)ZyanAtomicIncrement64((ZyanAtomic64*)destination);
static ZYAN_INLINE ZyanUPointer ZyanAtomicDecrement(ZyanAtomicPointer* destination)
return (ZyanUPointer)ZyanAtomicDecrement64((ZyanAtomic64*)destination);
ZYAN_STATIC_ASSERT(sizeof(ZyanUPointer) == sizeof(void*));
ZydisFormatterProperty property, ZyanUPointer value);
ZyanUPointer* state);
ZyanUPointer state);
(state) = (ZyanUPointer)(buffer)->string.vector.data; \
(state) = (ZyanUPointer)(buffer)->string.vector.size; \
ZyanUPointer value)
const ZyanUPointer* test = (ZyanUPointer*)(&formatter->func_pre_instruction + type);
ZYAN_ASSERT(test == (ZyanUPointer*)&formatter->func_pre_instruction ); break;
ZYAN_ASSERT(test == (ZyanUPointer*)&formatter->func_post_instruction ); break;
ZYAN_ASSERT(test == (ZyanUPointer*)&formatter->func_format_instruction); break;
ZYAN_ASSERT(test == (ZyanUPointer*)&formatter->func_pre_operand ); break;
ZYAN_ASSERT(test == (ZyanUPointer*)&formatter->func_post_operand ); break;
ZYAN_ASSERT(test == (ZyanUPointer*)&formatter->func_format_operand_reg); break;
ZYAN_ASSERT(test == (ZyanUPointer*)&formatter->func_format_operand_mem); break;
ZYAN_ASSERT(test == (ZyanUPointer*)&formatter->func_format_operand_ptr); break;
ZYAN_ASSERT(test == (ZyanUPointer*)&formatter->func_format_operand_imm); break;
ZYAN_ASSERT(test == (ZyanUPointer*)&formatter->func_print_mnemonic ); break;
ZYAN_ASSERT(test == (ZyanUPointer*)&formatter->func_print_register ); break;
ZYAN_ASSERT(test == (ZyanUPointer*)&formatter->func_print_address_abs ); break;
ZYAN_ASSERT(test == (ZyanUPointer*)&formatter->func_print_address_rel ); break;
ZYAN_ASSERT(test == (ZyanUPointer*)&formatter->func_print_disp ); break;
ZYAN_ASSERT(test == (ZyanUPointer*)&formatter->func_print_imm ); break;
ZYAN_ASSERT(test == (ZyanUPointer*)&formatter->func_print_typecast ); break;
ZYAN_ASSERT(test == (ZyanUPointer*)&formatter->func_print_segment ); break;
ZYAN_ASSERT(test == (ZyanUPointer*)&formatter->func_print_prefixes ); break;
ZYAN_ASSERT(test == (ZyanUPointer*)&formatter->func_print_decorator ); break;
ZYAN_MEMCPY(&formatter->func_pre_instruction + type, &temp, sizeof(ZyanUPointer));
ZyanUPointer state_mnemonic;
ZyanUPointer buffer_state;
ZyanStatus ZydisFormatterBufferRemember(const ZydisFormatterBuffer* buffer, ZyanUPointer* state)
*state = (ZyanUPointer)buffer->string.vector.data;
*state = (ZyanUPointer)buffer->string.vector.size;
ZyanStatus ZydisFormatterBufferRestore(ZydisFormatterBuffer* buffer, ZyanUPointer state)
const ZyanUSize delta = (ZyanUPointer)buffer->string.vector.data - state;
ZyanUPointer state_mnemonic;
ZyanUPointer buffer_state;