#include <err.h>
#include "libnvme_test_common.h"
static bool
device_empty_cb(nvme_ctrl_t *ctrl, const nvme_ns_disc_t *disc,
void *arg)
{
const uint32_t nsid = nvme_ns_disc_nsid(disc);
if (!libnvme_test_setup_ns(ctrl, NVME_NS_DISC_F_ALL, nsid,
UINT32_MAX)) {
exit(EXIT_FAILURE);
}
return (true);
}
int
main(void)
{
nvme_t *nvme;
nvme_ctrl_t *ctrl;
libnvme_test_init(&nvme, &ctrl);
if (!nvme_ctrl_lock(ctrl, NVME_LOCK_L_WRITE, NVME_LOCK_F_DONT_BLOCK)) {
libnvme_test_ctrl_fatal(ctrl, "failed to obtain write lock");
}
if (!nvme_ns_discover(ctrl, NVME_NS_DISC_F_ALL,
device_empty_cb, NULL)) {
libnvme_test_ctrl_fatal(ctrl, "failed to iterate namespaces");
}
nvme_ctrl_unlock(ctrl);
nvme_ctrl_fini(ctrl);
nvme_fini(nvme);
return (EXIT_SUCCESS);
}