advance functions take a ssize_t value instead of a uint64_t