dkioc_free_list_t
dkioc_free_list_t dfl = {
dkioc_free_list_t dfl;
dkioc_free_list_t *dfl;
dfl = (dkioc_free_list_t *)arg;
dfl_free((dkioc_free_list_t *)xi->i_dfl);
dkioc_free_list_t *dfl = NULL;
bd_free_space_cb(dkioc_free_list_t *dfl, void *arg, int kmflag)
bd_free_space(dev_t dev, bd_t *bd, dkioc_free_list_t *dfl)
static int bd_free_space(dev_t, bd_t *, dkioc_free_list_t *);
sbd_unmap(sbd_lu_t *sl, dkioc_free_list_t *dfl)
dkioc_free_list_t *dfl = kmem_zalloc(DFL_SZ(1), KM_SLEEP);
dkioc_free_list_t *dfl;
int sbd_unmap(sbd_lu_t *sl, dkioc_free_list_t *dfl);
dkioc_free_list_t dfl = {
lofi_free_space_cb(dkioc_free_list_t *dfl, void *arg, int kmflag __unused)
lofi_free_space(struct lofi_state *lsp, dkioc_free_list_t *dfl, dev_t dev)
dkioc_free_list_t *dfl;
const dkioc_free_list_t *dfl = xfer->x_dfl;
static int sd_send_scsi_UNMAP(dev_t dev, sd_ssc_t *ssc, dkioc_free_list_t *dfl,
sd_send_scsi_UNMAP_issue(dev_t dev, sd_ssc_t *ssc, const dkioc_free_list_t *dfl)
sd_send_scsi_UNMAP(dev_t dev, sd_ssc_t *ssc, dkioc_free_list_t *dfl, int flag)
dkioc_free_list_t *dfl = (dkioc_free_list_t *)arg;
const dkioc_free_list_t *dfl = xfer->x_dfl;
dfl_iter(dkioc_free_list_t *dfl, const dkioc_free_info_t *dfi, uint64_t max_off,
static int adjust_exts(dkioc_free_list_t *, const dkioc_free_info_t *,
static int split_extent(dkioc_free_list_t *, const dkioc_free_info_t *,
static int process_range(dkioc_free_list_t *, uint64_t, uint64_t,
adjust_exts(dkioc_free_list_t *dfl, const dkioc_free_info_t *dfi,
process_range(dkioc_free_list_t *dfl, uint64_t start_idx, uint64_t n,
dkioc_free_list_t *new_dfl = NULL;
dfl_copyin(void *arg, dkioc_free_list_t **out, int ddi_flags, int kmflags)
split_extent(dkioc_free_list_t *dfl, const dkioc_free_info_t *dfi, uint64_t idx,
dkioc_free_list_t *dfl;
dkioc_free_list_t *dfl_in = arg;
if (ddi_copyin(((uint8_t *)arg) + offsetof(dkioc_free_list_t,
dfl_free(dkioc_free_list_t *dfl)
(sizeof (dkioc_free_list_t) + \
typedef int (*dfl_iter_fn_t)(dkioc_free_list_t *dfl, void *arg, int kmflag);
int dfl_copyin(void *arg, dkioc_free_list_t **out, int ddi_flags, int kmflags);
void dfl_free(dkioc_free_list_t *dfl);
int dfl_iter(dkioc_free_list_t *dfl, const dkioc_free_info_t *dfi, uint64_t len,