slice_scan_available
if (!slice_scan_available(addr, available, 1, &addr))
else if (slice_scan_available(addr, available, 1, &next_end)) {
if (!slice_scan_available(addr - 1, available, 0, &addr))
else if (slice_scan_available(addr - 1, available, 0, &prev)) {