コード例 #1
0
ファイル: aer.c プロジェクト: HengWang/spdk
static int
get_health_log_page(struct dev *dev)
{
	return nvme_ctrlr_cmd_get_log_page(dev->ctrlr, NVME_LOG_HEALTH_INFORMATION,
					   NVME_GLOBAL_NAMESPACE_TAG, dev->health_page, sizeof(*dev->health_page),
					   get_log_page_completion, dev);
}
コード例 #2
0
ファイル: nvme_ctrlr_cmd.c プロジェクト: ChaosJohn/freebsd
void
nvme_ctrlr_cmd_get_firmware_page(struct nvme_controller *ctrlr,
    struct nvme_firmware_page *payload, nvme_cb_fn_t cb_fn, void *cb_arg)
{

	nvme_ctrlr_cmd_get_log_page(ctrlr, NVME_LOG_FIRMWARE_SLOT, 
	    NVME_GLOBAL_NAMESPACE_TAG, payload, sizeof(*payload), cb_fn,
	    cb_arg);
}
コード例 #3
0
ファイル: nvme_ctrlr_cmd.c プロジェクト: ChaosJohn/freebsd
void
nvme_ctrlr_cmd_get_health_information_page(struct nvme_controller *ctrlr,
    uint32_t nsid, struct nvme_health_information_page *payload,
    nvme_cb_fn_t cb_fn, void *cb_arg)
{

	nvme_ctrlr_cmd_get_log_page(ctrlr, NVME_LOG_HEALTH_INFORMATION,
	    nsid, payload, sizeof(*payload), cb_fn, cb_arg);
}
コード例 #4
0
ファイル: nvme_ctrlr_cmd.c プロジェクト: ChaosJohn/freebsd
void
nvme_ctrlr_cmd_get_error_page(struct nvme_controller *ctrlr,
    struct nvme_error_information_entry *payload, uint32_t num_entries,
    nvme_cb_fn_t cb_fn, void *cb_arg)
{

	KASSERT(num_entries > 0, ("%s called with num_entries==0\n", __func__));

	/* Controller's error log page entries is 0-based. */
	KASSERT(num_entries <= (ctrlr->cdata.elpe + 1),
	    ("%s called with num_entries=%d but (elpe+1)=%d\n", __func__,
	    num_entries, ctrlr->cdata.elpe + 1));

	if (num_entries > (ctrlr->cdata.elpe + 1))
		num_entries = ctrlr->cdata.elpe + 1;

	nvme_ctrlr_cmd_get_log_page(ctrlr, NVME_LOG_ERROR,
	    NVME_GLOBAL_NAMESPACE_TAG, payload, sizeof(*payload) * num_entries,
	    cb_fn, cb_arg);
}