Lines Matching refs:dev
60 DEFINE_STUB(ftl_reloc_init, struct ftl_reloc *, (struct spdk_ftl_dev *dev), NULL);
63 DEFINE_STUB_V(ftl_l2p_unpin, (struct spdk_ftl_dev *dev, uint64_t lba, uint64_t count));
64 DEFINE_STUB(ftl_p2l_ckpt_acquire, struct ftl_p2l_ckpt *, (struct spdk_ftl_dev *dev), NULL);
65 DEFINE_STUB_V(ftl_p2l_ckpt_release, (struct spdk_ftl_dev *dev, struct ftl_p2l_ckpt *ckpt));
66 DEFINE_STUB(ftl_l2p_get, ftl_addr, (struct spdk_ftl_dev *dev, uint64_t lba), 0);
68 DEFINE_STUB_V(ftl_property_dump_bool, (struct spdk_ftl_dev *dev,
71 DEFINE_STUB(ftl_property_decode_bool, int, (struct spdk_ftl_dev *dev, struct ftl_property *property,
73 DEFINE_STUB_V(ftl_property_set_generic, (struct spdk_ftl_dev *dev, struct ftl_mngt_process *mngt,
75 DEFINE_STUB_V(ftl_property_register, (struct spdk_ftl_dev *dev,
84 DEFINE_STUB_V(ftl_trace_submission, (struct spdk_ftl_dev *dev, const struct ftl_io *io,
86 DEFINE_STUB_V(ftl_trace_lba_io_init, (struct spdk_ftl_dev *dev, const struct ftl_io *io));
87 DEFINE_STUB_V(ftl_trace_limits, (struct spdk_ftl_dev *dev, int limit, size_t num_free));
88 DEFINE_STUB(ftl_trace_alloc_id, uint64_t, (struct spdk_ftl_dev *dev), 0);
89 DEFINE_STUB_V(ftl_trace_completion, (struct spdk_ftl_dev *dev, const struct ftl_io *io,
91 DEFINE_STUB_V(ftl_trace_write_band, (struct spdk_ftl_dev *dev, const struct ftl_band *band));
95 DEFINE_STUB_V(ftl_dev_dump_stats, (const struct spdk_ftl_dev *dev));
130 struct spdk_ftl_dev *dev;
137 dev = calloc(1, sizeof(*dev));
138 SPDK_CU_ASSERT_FATAL(dev != NULL);
140 dev->core_thread = spdk_get_thread();
141 dev->ioch = calloc(1, SPDK_IO_CHANNEL_STRUCT_SIZE + sizeof(struct ftl_io_channel_ctx));
142 SPDK_CU_ASSERT_FATAL(dev->ioch != NULL);
144 ctx = spdk_io_channel_get_ctx(dev->ioch);
147 ioch = ftl_io_channel_get_ctx(dev->ioch);
152 dev->conf = g_default_conf;
153 dev->xfer_size = xfer_size;
154 dev->base_bdev_desc = (struct spdk_bdev_desc *)0xdeadbeef;
155 dev->nv_cache.bdev_desc = (struct spdk_bdev_desc *)0xdead1234;
156 spdk_io_device_register(dev, channel_create_cb, channel_destroy_cb, 0, NULL);
157 spdk_io_device_register(dev->base_bdev_desc, channel_create_cb, channel_destroy_cb, 0, NULL);
158 spdk_io_device_register(dev->nv_cache.bdev_desc, channel_create_cb, channel_destroy_cb, 0, NULL);
160 TAILQ_INIT(&dev->ioch_queue);
162 return dev;
166 free_device(struct spdk_ftl_dev *dev)
170 ioch = ftl_io_channel_get_ctx(dev->ioch);
174 spdk_io_device_unregister(dev, NULL);
175 spdk_io_device_unregister(dev->base_bdev_desc, NULL);
176 spdk_io_device_unregister(dev->nv_cache.bdev_desc, NULL);
178 while (!TAILQ_EMPTY(&dev->ioch_queue)) {
179 TAILQ_REMOVE(&dev->ioch_queue, TAILQ_FIRST(&dev->ioch_queue), entry);
184 free(dev->ioch);
185 free(dev->sb);
186 free(dev);
190 setup_io(struct ftl_io *io, struct spdk_ftl_dev *dev, spdk_ftl_fn cb, void *ctx)
192 io->dev = dev;
196 io->ioch = dev->ioch;
208 struct spdk_ftl_dev *dev;
213 dev = setup_device(1, FTL_NUM_LBA_IN_BLOCK);
214 ioch = ftl_io_channel_get_ctx(dev->ioch);
217 setup_io(&io, dev, io_complete_cb, &status);
250 free_device(dev);
256 struct spdk_ftl_dev *dev;
261 dev = setup_device(1, FTL_NUM_LBA_IN_BLOCK);
262 ioch = ftl_io_channel_get_ctx(dev->ioch);
265 setup_io(&io[0], dev, io_complete_cb, &status);
271 setup_io(&io[1], dev, io_complete_cb, &status);
285 free_device(dev);