mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-03-22 22:25:11 +00:00
Range represents a range as follows. Member @start is the inclusive lower bound, member @end is the exclusive upper bound. Zero @end is special: if @start is also zero, the range is empty, else @end is to be interpreted as 2^64. No other empty ranges may occur. The range [0,2^64-1] cannot be represented. If you try to create it with range_set_bounds1(), you get the empty range instead. If you try to create it with range_set_bounds() or range_extend(), assertions fail. Before range_set_bounds() existed, the open-coded creation usually got you the empty range instead. Open deathtrap. Moreover, the code dealing with the janus-faced @end is too clever by half. Dumb this down to a more pedestrian representation: members @lob and @upb are inclusive lower and upper bounds. The empty range is encoded as @lob = 1, @upb = 0. Backports commit 6dd726a2bf1b800289d90a84d5fcb5ce7b78a8e1 from qemu |
||
---|---|---|
.. | ||
atomic.h | ||
bitmap.h | ||
bitops.h | ||
bswap.h | ||
compiler.h | ||
crc32c.h | ||
cutils.h | ||
fprintf-fn.h | ||
host-utils.h | ||
int128.h | ||
log.h | ||
mmap-alloc.h | ||
module.h | ||
osdep.h | ||
queue.h | ||
range.h | ||
thread-posix.h | ||
thread-win32.h | ||
thread.h | ||
timer.h | ||
typedefs.h |