From: Keith Busch Date: Thu, 6 Feb 2020 22:23:26 +0000 (-0800) Subject: Add exported symbols to libnvme.map X-Git-Tag: v1.0-rc0~198 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=bdd5961496a557385bf749ae6c859380d38f11e7;p=users%2Fsagi%2Flibnvme.git Add exported symbols to libnvme.map And add the kernel-doc style comments in all exported functions. This is just a capture of what currently exists and may change prior to tagging as a stable release. Signed-off-by: Keith Busch --- diff --git a/src/libnvme.map b/src/libnvme.map index 386dddbb..fbb3355b 100644 --- a/src/libnvme.map +++ b/src/libnvme.map @@ -1,6 +1,249 @@ { global: - nvme_submit_passthru; + nvme_submit_admin_passthru64; + nvme_submit_admin_passthru; + nvme_submit_io_passthru64; + nvme_submit_io_passthru; + nvme_admin_passthru64; + nvme_admin_passthru; + nvme_io_passthru64; + nvme_io_passthru; + nvme_subsystem_reset; + nvme_ctrl_reset; + nvme_ns_rescan; + nvme_get_nsid; + nvme_identify; + nvme_identify_ctrl; + nvme_identify_ns; + nvme_identify_allocated_ns; + nvme_identify_active_ns_list; + nvme_identify_allocated_ns_list; + nvme_identify_nsid_ctrl_list; + nvme_identify_ns_descs; + nvme_identify_nvmset_list; + nvme_identify_primary_ctrl; + nvme_identify_secondary_ctrl_list; + nvme_identify_ns_granularity; + nvme_identify_uuid; + nvme_get_log; + nvme_get_log_error; + nvme_get_log_smart; + nvme_get_log_fw_slot; + nvme_get_log_changed_ns_list; + nvme_get_log_cmd_effects; + nvme_get_log_device_self_test; + nvme_get_log_create_telemetry_host; + nvme_get_log_telemetry_host; + nvme_get_log_telemetry_ctrl; + nvme_get_log_endurance_group; + nvme_get_log_predictable_lat_nvmset; + nvme_get_log_predictable_lat_event; + nvme_get_log_ana; + nvme_get_log_ana_groups; + nvme_get_log_lba_status; + nvme_get_log_endurance_grp_evt; + nvme_get_log_discovery; + nvme_get_log_reservation; + nvme_get_log_sanitize; + nvme_set_feature; + nvme_set_features_arbitration; + nvme_set_features_power_mgmt; + nvme_set_features_lba_range; + nvme_set_features_temp_thresh; + nvme_set_features_err_recovery; + nvme_set_features_volatile_wc; + nvme_set_features_irq_coalesce; + nvme_set_features_irq_config; + nvme_set_features_write_atomic; + nvme_set_features_async_event; + nvme_set_features_auto_pst; + nvme_set_features_timestamp; + nvme_set_features_hctm; + nvme_set_features_nopsc; + nvme_set_features_rrl; + nvme_set_features_plm_config; + nvme_set_features_plm_window; + nvme_set_features_lba_sts_interval; + nvme_set_features_host_behavior; + nvme_set_features_sanitize; + nvme_set_features_endurance_evt_cfg; + nvme_set_features_sw_progress; + nvme_set_features_host_id; + nvme_set_features_resv_mask; + nvme_set_features_resv_persist; + nvme_set_features_write_protect; + nvme_get_features; + nvme_get_features_arbitration; + nvme_get_features_power_mgmt; + nvme_get_features_lba_range; + nvme_get_features_temp_thresh; + nvme_get_features_err_recovery; + nvme_get_features_volatile_wc; + nvme_get_features_num_queues; + nvme_get_features_irq_coalesce; + nvme_get_features_irq_config; + nvme_get_features_write_atomic; + nvme_get_features_async_event; + nvme_get_features_auto_pst; + nvme_get_features_host_mem_buf; + nvme_get_features_timestamp; + nvme_get_features_kato; + nvme_get_features_hctm; + nvme_get_features_nopsc; + nvme_get_features_rrl; + nvme_get_features_plm_config; + nvme_get_features_plm_window; + nvme_get_features_lba_sts_interval; + nvme_get_features_host_behavior; + nvme_get_features_sanitize; + nvme_get_features_endurance_event_cfg; + nvme_get_features_sw_progress; + nvme_get_features_host_id; + nvme_get_features_resv_mask; + nvme_get_features_resv_persist; + nvme_get_features_write_protect; + nvme_format_nvm; + nvme_ns_mgmt; + nvme_ns_mgmt_create; + nvme_ns_mgmt_delete; + nvme_ns_attach; + nvme_ns_attach_ctrls; + nvme_ns_dettach_ctrls; + nvme_fw_download; + nvme_fw_commit; + nvme_security_receive; + nvme_security_receive; + nvme_get_lba_status; + nvme_directive_send; + nvme_directive_send_id_endir; + nvme_directive_send_stream_release_identifier; + nvme_directive_send_stream_release_resource; + nvme_directive_recv; + nvme_directive_recv_identify_parameters; + nvme_directive_recv_stream_parameters; + nvme_directive_recv_stream_status; + nvme_directive_recv_stream_allocate; + nvme_set_property; + nvme_get_property; + nvme_sanitize; + nvme_dev_self_test; + nvme_virtual_mgmt; + nvme_flush; + nvme_read; + nvme_write; + nvme_compare; + nvme_write_zeros; + nvme_write_uncorrectable; + nvme_verify; + nvme_dsm; + nvme_resv_acquire; + nvme_resv_register; + nvme_resv_release; + nvme_resv_report; + nvmf_add_ctrl_opts; + nvmf_add_ctrl; + nvme_first_subsystem; + nvme_next_subsystem; + nvme_ctrl_first_ns; + nvme_ctrl_next_ns; + nvme_ctrl_first_path; + nvme_ctrl_next_path; + nvme_subsystem_first_ctrl; + nvme_subsystem_next_ctrl; + nvme_subsystem_first_ns; + nvme_subsystem_next_ns; + nvme_ns_get_fd; + nvme_ns_get_nsid; + nvme_ns_get_lba_size; + nvme_ns_get_lba_count; + nvme_ns_get_lba_util; + nvme_ns_get_subsystem; + nvme_ns_get_ctrl; + nvme_ns_read; + nvme_ns_write; + nvme_ns_verify; + nvme_ns_compare; + nvme_ns_write_zeros; + nvme_ns_write_uncorrectable; + nvme_ns_flush; + nvme_ns_identify; + nvme_path_get_subsystem; + nvme_path_get_ns; + nvme_ctrl_get_subsystem; + nvme_ctrl_identify; + nvme_ctrl_disconnect; + nvme_scan_ctrl; + nvme_free_ctrl; + nvme_unlink_ctrl; + nvme_scan_filter; + nvme_scan; + nvme_refresh_topology; + nvme_reset_topology; + nvme_free_tree; + nvme_get_subsys_attr; + nvme_get_ctrl_attr; + nvme_get_ns_attr; + nvme_get_path_attr; + nvme_subsystem_get_nqn; + nvme_subsystem_get_sysfs_dir; + nvme_subsystem_get_name; + nvme_subsystem_get_nqn; + nvme_ctrl_get_fd; + nvme_ctrl_get_name; + nvme_ctrl_get_sysfs_dir; + nvme_ctrl_get_address; + nvme_ctrl_get_firmware; + nvme_ctrl_get_model; + nvme_ctrl_get_state; + nvme_ctrl_get_numa_node; + nvme_ctrl_get_queue_count; + nvme_ctrl_get_serial; + nvme_ctrl_get_sqsize; + nvme_ctrl_get_transport; + nvme_ctrl_get_nqn; + nvme_ctrl_get_subsysnqn; + nvme_path_get_name; + nvme_path_get_sysfs_dir; + nvme_path_get_ana_state; + nvme_ns_get_sysfs_dir; + nvme_ns_get_name; + nvme_status_type; + nvme_status_to_string; + nvme_status_to_errno; + nvme_fw_download_seq; + nvme_get_telemetry_log; + nvme_setup_id_ns; + nvme_setup_ctrl_list; + nvme_dsm_range; + nvme_get_log_page; + nvme_get_ana_log_len; + nvme_namespace_attach_ctrls; + nvme_namespace_detach_ctrls; + nvme_get_feature_length; + nvme_get_directive_receive_length; + nvme_open; + nvme_scan_ctrl_namespaces; + nvme_scan_ctrl_namespace_paths; + nvme_scan_subsystem_namespaces; + nvme_scan_subsystem_ctrls; + nvme_scan_subsystems; + nvme_subsys_filter; + nvme_ctrls_filter; + nvme_paths_filter; + nvme_namespace_filter; + nvmf_get_discovery_log; + nvmf_hostnqn_generate; + nvmf_hostnqn_from_file; + nvmf_hostid_from_file; + nvmf_trtype_str; + nvmf_adrfam_str; + nvmf_subtype_str; + nvmf_treq_str; + nvmf_sectype_str; + nvmf_prtype_str; + nvmf_qptype_str; + nvmf_cms_str; + nvmf_connect_disc_entry; local: *; }; diff --git a/src/nvme/cmd.h b/src/nvme/cmd.h index 3c80f45d..90abc628 100644 --- a/src/nvme/cmd.h +++ b/src/nvme/cmd.h @@ -765,7 +765,9 @@ int nvme_get_log_device_self_test(int fd, struct nvme_self_test_log *log); * nvme_get_log_create_telemetry_host() - */ int nvme_get_log_create_telemetry_host(int fd, struct nvme_telemetry_log *log); -/** * nvme_get_log_telemetry_host() - + +/** + * nvme_get_log_telemetry_host() - * @fd: File descriptor of nvme device * @offset: Offset into the telemetry data * @len: Length of provided user buffer to hold the log data in bytes @@ -1133,10 +1135,9 @@ int nvme_set_features_hctm(int fd, __u16 tmt2, __u16 tmt1, bool save, __u32 *result); /** - * nvme_admin_set_features_nopsc() - + * nvme_set_features_nopsc() - */ -int nvme_admin_set_features_nopsc(int fd, bool noppme, bool save, - __u32 *result); +int nvme_set_features_nopsc(int fd, bool noppme, bool save, __u32 *result); /** * nvme_set_features_rrl() - @@ -2253,8 +2254,6 @@ enum nvme_io_dsm_flags { * metadata_len:Length of user buffer, @metadata, in bytes * @metadata: Pointer to user address of the metadata buffer * - * Calls nvme_io() with nvme_cmd_read for the opcode. - * * Return: The nvme command status if a response was received or -1 with errno * set otherwise. */ @@ -2285,8 +2284,6 @@ int nvme_read(int fd, __u32 nsid, __u64 slba, __u16 nlb, __u16 control, * metadata_len:Length of user buffer, @metadata, in bytes * @metadata: Pointer to user address of the metadata buffer * - * Calls nvme_io() with nvme_cmd_write for the opcode. - * * Return: The nvme command status if a response was received or -1 with errno * set otherwise. */ @@ -2316,8 +2313,6 @@ int nvme_write(int fd, __u32 nsid, __u64 slba, __u16 nlb, __u16 control, * metadata_len:Length of user buffer, @metadata, in bytes * @metadata: Pointer to user address of the metadata buffer * - * Calls nvme_io() with nvme_cmd_compare for the opcode. - * * Return: The nvme command status if a response was received or -1 with errno * set otherwise. */ diff --git a/src/nvme/fabrics.h b/src/nvme/fabrics.h index 0f5e82ec..d7941362 100644 --- a/src/nvme/fabrics.h +++ b/src/nvme/fabrics.h @@ -3,9 +3,31 @@ #include #include - #include "tree.h" +/** + * struct nvme_fabrics_config - + * @transport: + * @traddr: + * @trsvcid: + * @nqn: + * @hostnqn: + * @host_traddr: + * @hostid: + * @queue_size: + * @nr_io_queues: + * @reconnect_delay: + * @ctrl_loss_tmo: + * @keep_alive_tmo: + * @nr_write_queues: + * @nr_poll_queues: + * @tos: + * @duplicate_connect: + * @disable_sqflow: + * @hdr_digest: + * @data_digest: + * @rsvd: + */ struct nvme_fabrics_config { const char *transport; const char *traddr; @@ -32,23 +54,82 @@ struct nvme_fabrics_config { uint8_t rsvd[0x200]; }; +/** + * nvmf_add_ctrl_opts() - + */ int nvmf_add_ctrl_opts(struct nvme_fabrics_config *cfg); + +/** + * nvmf_add_ctrl() - + */ nvme_ctrl_t nvmf_add_ctrl(struct nvme_fabrics_config *cfg); -int nvmf_get_discovery_log(nvme_ctrl_t c, struct nvmf_discovery_log **logp, int max_retries); + +/** + * nvmf_get_discovery_log() - + */ +int nvmf_get_discovery_log(nvme_ctrl_t c, struct nvmf_discovery_log **logp, + int max_retries); + +/** + * nvmf_hostnqn_generate() - + */ char *nvmf_hostnqn_generate(); + +/** + * nvmf_hostnqn_from_file() - + */ char *nvmf_hostnqn_from_file(); -char *nvmf_hostid_from_file(); +/** + * nvmf_hostid_from_file() - + */ +char *nvmf_hostid_from_file(); +/** + * nvmf_trtype_str() - + */ const char *nvmf_trtype_str(__u8 trtype); + +/** + * nvmf_adrfam_str() - + */ const char *nvmf_adrfam_str(__u8 adrfam); + +/** + * nvmf_subtype_str() - + */ const char *nvmf_subtype_str(__u8 subtype); + +/** + * nvmf_treq_str() - + */ const char *nvmf_treq_str(__u8 treq); + +/** + * nvmf_sectype_str() - + */ const char *nvmf_sectype_str(__u8 sectype); + +/** + * nvmf_prtype_str() - + */ const char *nvmf_prtype_str(__u8 prtype); + +/** + * nvmf_qptype_str() - + */ const char *nvmf_qptype_str(__u8 qptype); + +/** + * nvmf_cms_str() - + */ const char *nvmf_cms_str(__u8 cm); + +/** + * nvmf_connect_disc_entry() - + */ nvme_ctrl_t nvmf_connect_disc_entry(struct nvmf_disc_log_entry *e, const struct nvme_fabrics_config *defcfg, bool *discover); + #endif /* _LIBNVME_FABRICS_H */ diff --git a/src/nvme/filters.h b/src/nvme/filters.h index 9021c1bc..bc97cf83 100644 --- a/src/nvme/filters.h +++ b/src/nvme/filters.h @@ -4,16 +4,49 @@ #include #include "tree.h" - +/** + * nvme_namespace_filter() - + */ int nvme_namespace_filter(const struct dirent *d); + +/** + * nvme_paths_filter() - + */ int nvme_paths_filter(const struct dirent *d); + +/** + * nvme_ctrls_filter() - + */ int nvme_ctrls_filter(const struct dirent *d); + +/** + * nvme_subsys_filter() - + */ int nvme_subsys_filter(const struct dirent *d); +/** + * nvme_scan_subsystems() - + */ int nvme_scan_subsystems(struct dirent ***subsys); + +/** + * nvme_scan_subsystem_ctrls() - + */ int nvme_scan_subsystem_ctrls(nvme_subsystem_t s, struct dirent ***ctrls); + +/** + * nvme_scan_subsystem_namespaces() - + */ int nvme_scan_subsystem_namespaces(nvme_subsystem_t s, struct dirent ***namespaces); + +/** + * nvme_scan_ctrl_namespace_paths() - + */ int nvme_scan_ctrl_namespace_paths(nvme_ctrl_t c, struct dirent ***namespaces); + +/** + * nvme_scan_ctrl_namespaces() - + */ int nvme_scan_ctrl_namespaces(nvme_ctrl_t c, struct dirent ***namespaces); #endif /* _LIBNVME_FILTERS_H */ diff --git a/src/nvme/ioctl.c b/src/nvme/ioctl.c index 1120438c..ab7b022f 100644 --- a/src/nvme/ioctl.c +++ b/src/nvme/ioctl.c @@ -39,7 +39,7 @@ int nvme_subsystem_reset(int fd) return ioctl(fd, NVME_IOCTL_SUBSYS_RESET); } -int nvme_reset_controller(int fd) +int nvme_ctrl_reset(int fd) { int ret; diff --git a/src/nvme/ioctl.h b/src/nvme/ioctl.h index e5477f0f..38587453 100644 --- a/src/nvme/ioctl.h +++ b/src/nvme/ioctl.h @@ -210,7 +210,7 @@ int nvme_admin_passthru(int fd, __u8 opcode, __u8 flags, __u16 rsvd, __u32 timeout_ms, __u32 *result); /** - * nvme_submit_passthru64() - Submit a 64-bit nvme passthrough command + * nvme_submit_io_passthru64() - Submit a 64-bit nvme passthrough command * @fd: File descriptor of nvme device * @cmd: The nvme io command to send * @result: Optional field to return the result from the CQE DW0-1 @@ -260,7 +260,7 @@ int nvme_io_passthru64(int fd, __u8 opcode, __u8 flags, __u16 rsvd, __u32 timeout_ms, __u64 *result); /** - * nvme_submit_passthru() - Submit an nvme passthrough command + * nvme_submit_io_passthru() - Submit an nvme passthrough command * @fd: File descriptor of nvme device * @cmd: The nvme io command to send * @result: Optional field to return the result from the CQE dword 0 @@ -322,14 +322,14 @@ int nvme_io_passthru(int fd, __u8 opcode, __u8 flags, __u16 rsvd, int nvme_subsystem_reset(int fd); /** - * nvme_reset_ctrl() - Initiate a controller reset + * nvme_ctrl_reset() - Initiate a controller reset * @fd: File descriptor of nvme device * * This should only be sent to controller handles, not to namespaces. * * Return: Zero if a reset was initiated or -1 with errno set otherwise. */ -int nvme_reset_ctrl(int fd); +int nvme_ctrl_reset(int fd); /** * nvme_ns_rescan() - Initiate a controller rescan diff --git a/src/nvme/tree.h b/src/nvme/tree.h index 0156a071..e751d7c6 100644 --- a/src/nvme/tree.h +++ b/src/nvme/tree.h @@ -66,7 +66,7 @@ nvme_ns_t nvme_subsystem_first_ns(nvme_subsystem_t s); nvme_ns_t nvme_subsystem_next_ns(nvme_subsystem_t s, nvme_ns_t n); /** - * () + * nvme_for_each_subsystem_safe() */ #define nvme_for_each_subsystem_safe(r, s, _s) \ for (s = nvme_first_subsystem(r), \ @@ -75,14 +75,14 @@ nvme_ns_t nvme_subsystem_next_ns(nvme_subsystem_t s, nvme_ns_t n); s = _s, _s = nvme_next_subsystem(r, s)) /** - * () + * nvme_for_each_subsystem() */ #define nvme_for_each_subsystem(r, s) \ for (s = nvme_first_subsystem(r); s != NULL; \ s = nvme_next_subsystem(r, s)) /** - * () + * nvme_subsystem_for_each_ctrl_safe() */ #define nvme_subsystem_for_each_ctrl_safe(s, c, _c) \ for (c = nvme_subsystem_first_ctrl(s), \ @@ -91,14 +91,14 @@ nvme_ns_t nvme_subsystem_next_ns(nvme_subsystem_t s, nvme_ns_t n); c = _c, _c = nvme_subsystem_next_ctrl(s, c)) /** - * () + * nvme_subsystem_for_each_ctrl() */ #define nvme_subsystem_for_each_ctrl(s, c) \ for (c = nvme_subsystem_first_ctrl(s); c != NULL; \ c = nvme_subsystem_next_ctrl(s, c)) /** - * () + * nvme_ctrl_for_each_ns_safe() */ #define nvme_ctrl_for_each_ns_safe(c, n, _n) \ for (n = nvme_ctrl_first_ns(c), \ @@ -107,14 +107,14 @@ nvme_ns_t nvme_subsystem_next_ns(nvme_subsystem_t s, nvme_ns_t n); n = _n, _n = nvme_ctrl_next_ns(c, n)) /** - * () + * nvme_ctrl_for_each_ns() */ #define nvme_ctrl_for_each_ns(c, n) \ for (n = nvme_ctrl_first_ns(c); n != NULL; \ n = nvme_ctrl_next_ns(c, n)) /** - * () + * nvme_ctrl_for_each_path_safe() */ #define nvme_ctrl_for_each_path_safe(c, p, _p) \ for (p = nvme_ctrl_first_path(c), \ @@ -123,14 +123,14 @@ nvme_ns_t nvme_subsystem_next_ns(nvme_subsystem_t s, nvme_ns_t n); p = _p, _p = nvme_ctrl_next_path(c, p)) /** - * () + * nvme_ctrl_for_each_path() */ #define nvme_ctrl_for_each_path(c, p) \ for (p = nvme_ctrl_first_path(c); p != NULL; \ p = nvme_ctrl_next_path(c, p)) /** - * () + * nvme_subsystem_for_each_ns_safe() */ #define nvme_subsystem_for_each_ns_safe(s, n, _n) \ for (n = nvme_subsystem_first_ns(s), \ @@ -139,7 +139,7 @@ nvme_ns_t nvme_subsystem_next_ns(nvme_subsystem_t s, nvme_ns_t n); n = _n, _n = nvme_subsystem_next_ns(s, n)) /** - * () + * nvme_subsystem_for_each_ns() */ #define nvme_subsystem_for_each_ns(s, n) \ for (n = nvme_subsystem_first_ns(s); n != NULL; \ @@ -171,12 +171,12 @@ uint64_t nvme_ns_get_lba_count(nvme_ns_t n); uint64_t nvme_ns_get_lba_util(nvme_ns_t n); /** - * char () - + * nvme_ns_get_sysfs_dir() - */ const char *nvme_ns_get_sysfs_dir(nvme_ns_t n); /** - * char () - + * nvme_ns_get_name() - */ const char *nvme_ns_get_name(nvme_ns_t n); @@ -231,17 +231,17 @@ int nvme_ns_flush(nvme_ns_t n); int nvme_ns_identify(nvme_ns_t n, struct nvme_id_ns *ns); /** - * char () - + * nvme_path_get_name() - */ const char *nvme_path_get_name(nvme_path_t p); /** - * char () - + * nvme_path_get_sysfs_dir() - */ const char *nvme_path_get_sysfs_dir(nvme_path_t p); /** - * char () - + * nvme_path_get_ana_state() - */ const char *nvme_path_get_ana_state(nvme_path_t p); @@ -255,59 +255,64 @@ nvme_ctrl_t nvme_path_get_subsystem(nvme_path_t p); */ nvme_ns_t nvme_path_get_ns(nvme_path_t p); +/** + * nvme_ctrl_get_fd() - + */ int nvme_ctrl_get_fd(nvme_ctrl_t c); + /** - * char () - + * nvme_ctrl_get_name() - */ const char *nvme_ctrl_get_name(nvme_ctrl_t c); /** - * char () - + * nvme_ctrl_get_sysfs_dir() - */ const char *nvme_ctrl_get_sysfs_dir(nvme_ctrl_t c); /** - * char () - + * nvme_ctrl_get_address() - */ const char *nvme_ctrl_get_address(nvme_ctrl_t c); /** - * char () - + * nvme_ctrl_get_firmware() - */ const char *nvme_ctrl_get_firmware(nvme_ctrl_t c); /** - * char () - + * nvme_ctrl_get_model() - */ const char *nvme_ctrl_get_model(nvme_ctrl_t c); /** - * char () - + * nvme_ctrl_get_state() - */ const char *nvme_ctrl_get_state(nvme_ctrl_t c); /** - * char () - + * nvme_ctrl_get_numa_node() - */ const char *nvme_ctrl_get_numa_node(nvme_ctrl_t c); /** - * char () - + * nvme_ctrl_get_queue_count() - */ const char *nvme_ctrl_get_queue_count(nvme_ctrl_t c); /** - * char () - + * nvme_ctrl_get_serial() - */ const char *nvme_ctrl_get_serial(nvme_ctrl_t c); /** - * char () - + * nvme_ctrl_get_sqsize() - */ const char *nvme_ctrl_get_sqsize(nvme_ctrl_t c); /** - * char () - + * nvme_ctrl_get_transport() - */ const char *nvme_ctrl_get_transport(nvme_ctrl_t c); /** - * char () - + * nvme_ctrl_get_nqn() - */ const char *nvme_ctrl_get_nqn(nvme_ctrl_t c); /** - * char () - + * nvme_ctrl_get_subsysnqn() - */ const char *nvme_ctrl_get_subsysnqn(nvme_ctrl_t c); + /** * nvme_ctrl_get_subsystem() - */ @@ -317,10 +322,12 @@ nvme_subsystem_t nvme_ctrl_get_subsystem(nvme_ctrl_t c); * nvme_ctrl_identify() - */ int nvme_ctrl_identify(nvme_ctrl_t c, struct nvme_id_ctrl *id); + /** * nvme_ctrl_disconnect() - */ int nvme_ctrl_disconnect(nvme_ctrl_t c); + /** * nvme_scan_ctrl() - */ @@ -336,15 +343,17 @@ void nvme_free_ctrl(struct nvme_ctrl *c); void nvme_unlink_ctrl(struct nvme_ctrl *c); /** - * char () - + * nvme_subsystem_get_nqn() - */ const char *nvme_subsystem_get_nqn(nvme_subsystem_t s); + /** - * char () - + * nvme_subsystem_get_sysfs_dir() - */ const char *nvme_subsystem_get_sysfs_dir(nvme_subsystem_t s); + /** - * char () - + * nvme_subsystem_get_name() - */ const char *nvme_subsystem_get_name(nvme_subsystem_t s); @@ -376,22 +385,22 @@ void nvme_reset_topology(nvme_root_t r); void nvme_free_tree(nvme_root_t r); /** - * *() - + * nvme_get_subsys_attr() - */ char *nvme_get_subsys_attr(nvme_subsystem_t s, const char *attr); /** - * *() - + * nvme_get_ctrl_attr() - */ char *nvme_get_ctrl_attr(nvme_ctrl_t c, const char *attr); /** - * *() - + * nvme_get_ns_attr() - */ char *nvme_get_ns_attr(nvme_ns_t n, const char *attr); /** - * *() - + * nvme_get_path_attr() - */ char *nvme_get_path_attr(nvme_path_t p, const char *attr); diff --git a/src/nvme/util.c b/src/nvme/util.c index bd06328a..9b0c68be 100644 --- a/src/nvme/util.c +++ b/src/nvme/util.c @@ -212,8 +212,8 @@ close_fd: return -1; } -int nvme_fw_download_split(int fd, __u32 size, __u32 xfer, __u32 offset, - void *buf) +int nvme_fw_download_seq(int fd, __u32 size, __u32 xfer, __u32 offset, + void *buf) { int err = 0; @@ -263,9 +263,11 @@ int nvme_get_log_page(int fd, __u32 nsid, __u8 log_id, bool rae, int nvme_get_telemetry_log(int fd, bool create, bool ctrl, int data_area, void **buf, __u32 *log_size) { - struct nvme_telemetry_log *telem; static const __u32 xfer = 512; - __u32 size, offset = xfer; + + __u8 lid = NVME_LOG_LID_TELEMETRY_HOST; + struct nvme_telemetry_log *telem; + __u32 size; void *log; int err; @@ -275,9 +277,10 @@ int nvme_get_telemetry_log(int fd, bool create, bool ctrl, int data_area, return -1; } - if (ctrl) + if (ctrl) { err = nvme_get_log_telemetry_ctrl(fd, true, 0, xfer, log); - else if (create) + lid = NVME_LOG_LID_TELEMETRY_CTRL; + } else if (create) err = nvme_get_log_create_telemetry_host(fd, log); else err = nvme_get_log_telemetry_host(fd, 0, xfer, log); @@ -314,17 +317,9 @@ int nvme_get_telemetry_log(int fd, bool create, bool ctrl, int data_area, goto free; } - while (offset != size) { - if (ctrl) - err = nvme_get_log_telemetry_ctrl(fd, true, offset, - xfer, log + offset); - else - err = nvme_get_log_telemetry_host(fd, offset, xfer, - log + offset); - if (err) - goto free; - offset += xfer; - } + err = nvme_get_log_page(fd, NVME_NSID_NONE, lid, true, size, (void *)log); + if (err) + goto free; done: *log_size = size; *buf = log; diff --git a/src/nvme/util.h b/src/nvme/util.h index 96f94218..d608eef2 100644 --- a/src/nvme/util.h +++ b/src/nvme/util.h @@ -33,10 +33,10 @@ const char *nvme_status_to_string(int status, bool fabrics); __u8 nvme_status_to_errno(int status, bool fabrics); /** - * nvme_fw_download_split() - + * nvme_fw_download_seq() - */ -int nvme_fw_download_split(int fd, __u32 size, __u32 xfer, __u32 offset, - void *buf); +int nvme_fw_download_seq(int fd, __u32 size, __u32 xfer, __u32 offset, + void *buf); /** * nvme_get_telemetry_log() -