From a3d0cc5ebdb18f45654c6df5dbb08b6ce7d489e8 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 20 Mar 2025 08:08:33 +0100 Subject: [PATCH] Merging upstream version 1.12. Signed-off-by: Daniel Baumann --- .checkpatch.conf | 5 +- .github/workflows/coverage.yml | 2 +- .github/workflows/release-python.yml | 4 +- Makefile | 30 +- README.md | 1 + doc/man/nbft_control.2 | 2 +- doc/man/nbft_control_flags.2 | 2 +- doc/man/nbft_desc_type.2 | 2 +- doc/man/nbft_discovery.2 | 2 +- doc/man/nbft_discovery_flags.2 | 2 +- doc/man/nbft_header.2 | 2 +- doc/man/nbft_heap_obj.2 | 2 +- doc/man/nbft_hfi.2 | 2 +- doc/man/nbft_hfi_flags.2 | 2 +- doc/man/nbft_hfi_info_tcp.2 | 2 +- doc/man/nbft_hfi_info_tcp_flags.2 | 2 +- doc/man/nbft_host.2 | 2 +- doc/man/nbft_host_flags.2 | 2 +- doc/man/nbft_info.2 | 2 +- doc/man/nbft_info_discovery.2 | 2 +- doc/man/nbft_info_hfi.2 | 2 +- doc/man/nbft_info_hfi_info_tcp.2 | 2 +- doc/man/nbft_info_host.2 | 2 +- doc/man/nbft_info_nid_type.2 | 2 +- doc/man/nbft_info_primary_admin_host_flag.2 | 2 +- doc/man/nbft_info_security.2 | 2 +- doc/man/nbft_info_subsystem_ns.2 | 2 +- doc/man/nbft_security.2 | 2 +- doc/man/nbft_security_flags.2 | 2 +- doc/man/nbft_security_secret_type.2 | 2 +- doc/man/nbft_ssns.2 | 2 +- doc/man/nbft_ssns_ext_info.2 | 2 +- doc/man/nbft_ssns_ext_info_flags.2 | 2 +- doc/man/nbft_ssns_flags.2 | 2 +- doc/man/nbft_ssns_trflags.2 | 2 +- doc/man/nbft_trtype.2 | 2 +- doc/man/nvme_acq.2 | 2 +- doc/man/nvme_admin_opcode.2 | 86 +- doc/man/nvme_admin_passthru.2 | 2 +- doc/man/nvme_admin_passthru64.2 | 2 +- doc/man/nvme_ae_info_css_nvm.2 | 2 +- doc/man/nvme_ae_info_error.2 | 2 +- doc/man/nvme_ae_info_notice.2 | 2 +- doc/man/nvme_ae_info_smart.2 | 2 +- doc/man/nvme_ae_type.2 | 14 +- .../nvme_aggregate_endurance_group_event.2 | 2 +- .../nvme_aggregate_predictable_lat_event.2 | 2 +- doc/man/nvme_ana_group_desc.2 | 2 +- doc/man/nvme_ana_log.2 | 2 +- doc/man/nvme_ana_state.2 | 2 +- doc/man/nvme_apst_entry.2 | 2 +- doc/man/nvme_aqa.2 | 2 +- doc/man/nvme_asq.2 | 2 +- doc/man/nvme_ave_discover_log.2 | 39 + doc/man/nvme_ave_discover_log_entry.2 | 31 + doc/man/nvme_ave_tr_record.2 | 27 + doc/man/nvme_boot_partition.2 | 2 +- doc/man/nvme_boot_partition_info.2 | 2 +- doc/man/nvme_bpinfo.2 | 2 +- doc/man/nvme_bpmbl.2 | 2 +- doc/man/nvme_bprsel.2 | 2 +- doc/man/nvme_cap.2 | 2 +- doc/man/nvme_capacity_config_desc.2 | 2 +- doc/man/nvme_capacity_mgmt.2 | 2 +- doc/man/nvme_cc.2 | 2 +- doc/man/nvme_change_ns_event.2 | 2 +- doc/man/nvme_channel_config_desc.2 | 2 +- doc/man/nvme_cmb_size.2 | 2 +- doc/man/nvme_cmbebs.2 | 2 +- doc/man/nvme_cmbloc.2 | 2 +- doc/man/nvme_cmbmsc.2 | 2 +- doc/man/nvme_cmbsts.2 | 2 +- doc/man/nvme_cmbswtp.2 | 2 +- doc/man/nvme_cmbsz.2 | 2 +- doc/man/nvme_cmd_effects.2 | 2 +- doc/man/nvme_cmd_effects_log.2 | 2 +- doc/man/nvme_cmd_format_mset.2 | 2 +- doc/man/nvme_cmd_format_pi.2 | 2 +- doc/man/nvme_cmd_format_pil.2 | 2 +- doc/man/nvme_cmd_format_ses.2 | 2 +- doc/man/nvme_cmd_get_log_lid.2 | 2 +- doc/man/nvme_cmd_get_log_telemetry_host_lsp.2 | 2 +- doc/man/nvme_cmic.2 | 2 +- doc/man/nvme_compare.2 | 2 +- doc/man/nvme_connect_err.2 | 2 +- doc/man/nvme_constants.2 | 2 +- doc/man/nvme_copy.2 | 2 +- doc/man/nvme_copy_range.2 | 2 +- doc/man/nvme_copy_range_f1.2 | 2 +- doc/man/nvme_copy_range_f2.2 | 2 +- doc/man/nvme_copy_range_f3.2 | 2 +- doc/man/nvme_copy_range_sopt.2 | 2 +- doc/man/nvme_create_ctrl.2 | 2 +- doc/man/nvme_create_root.2 | 2 +- doc/man/nvme_crto.2 | 2 +- doc/man/nvme_csi.2 | 14 +- doc/man/nvme_csts.2 | 2 +- doc/man/nvme_ctrl_config_match.2 | 2 +- doc/man/nvme_ctrl_find.2 | 2 +- doc/man/nvme_ctrl_first_ns.2 | 2 +- doc/man/nvme_ctrl_first_path.2 | 2 +- doc/man/nvme_ctrl_for_each_ns.2 | 2 +- doc/man/nvme_ctrl_for_each_ns_safe.2 | 2 +- doc/man/nvme_ctrl_for_each_path.2 | 2 +- doc/man/nvme_ctrl_for_each_path_safe.2 | 2 +- doc/man/nvme_ctrl_get_address.2 | 2 +- doc/man/nvme_ctrl_get_config.2 | 2 +- doc/man/nvme_ctrl_get_dhchap_host_key.2 | 2 +- doc/man/nvme_ctrl_get_dhchap_key.2 | 2 +- doc/man/nvme_ctrl_get_fd.2 | 2 +- doc/man/nvme_ctrl_get_firmware.2 | 2 +- doc/man/nvme_ctrl_get_host_iface.2 | 2 +- doc/man/nvme_ctrl_get_host_traddr.2 | 2 +- doc/man/nvme_ctrl_get_keyring.2 | 2 +- doc/man/nvme_ctrl_get_model.2 | 2 +- doc/man/nvme_ctrl_get_name.2 | 2 +- doc/man/nvme_ctrl_get_numa_node.2 | 2 +- doc/man/nvme_ctrl_get_phy_slot.2 | 2 +- doc/man/nvme_ctrl_get_queue_count.2 | 2 +- doc/man/nvme_ctrl_get_serial.2 | 2 +- doc/man/nvme_ctrl_get_sqsize.2 | 2 +- doc/man/nvme_ctrl_get_src_addr.2 | 2 +- doc/man/nvme_ctrl_get_state.2 | 2 +- doc/man/nvme_ctrl_get_subsysnqn.2 | 2 +- doc/man/nvme_ctrl_get_subsystem.2 | 2 +- doc/man/nvme_ctrl_get_sysfs_dir.2 | 2 +- doc/man/nvme_ctrl_get_tls_key.2 | 2 +- doc/man/nvme_ctrl_get_tls_key_identity.2 | 2 +- doc/man/nvme_ctrl_get_traddr.2 | 2 +- doc/man/nvme_ctrl_get_transport.2 | 2 +- doc/man/nvme_ctrl_get_trsvcid.2 | 2 +- doc/man/nvme_ctrl_identify.2 | 2 +- doc/man/nvme_ctrl_is_discovered.2 | 2 +- doc/man/nvme_ctrl_is_discovery_ctrl.2 | 2 +- doc/man/nvme_ctrl_is_persistent.2 | 2 +- doc/man/nvme_ctrl_is_unique_discovery_ctrl.2 | 2 +- doc/man/nvme_ctrl_list.2 | 2 +- doc/man/nvme_ctrl_metadata_type.2 | 2 +- doc/man/nvme_ctrl_next_ns.2 | 2 +- doc/man/nvme_ctrl_next_path.2 | 2 +- doc/man/nvme_ctrl_release_fd.2 | 2 +- doc/man/nvme_ctrl_reset.2 | 2 +- doc/man/nvme_ctrl_set_dhchap_host_key.2 | 2 +- doc/man/nvme_ctrl_set_dhchap_key.2 | 2 +- doc/man/nvme_ctrl_set_discovered.2 | 2 +- doc/man/nvme_ctrl_set_discovery_ctrl.2 | 2 +- doc/man/nvme_ctrl_set_keyring.2 | 2 +- doc/man/nvme_ctrl_set_persistent.2 | 2 +- doc/man/nvme_ctrl_set_tls_key.2 | 2 +- doc/man/nvme_ctrl_set_tls_key_identity.2 | 2 +- doc/man/nvme_ctrl_set_unique_discovery_ctrl.2 | 2 +- doc/man/nvme_ctrls_filter.2 | 2 +- doc/man/nvme_data_tfr.2 | 2 +- doc/man/nvme_default_host.2 | 2 +- doc/man/nvme_describe_key_serial.2 | 2 +- doc/man/nvme_dev_self_test.2 | 2 +- doc/man/nvme_directive_dtype.2 | 2 +- doc/man/nvme_directive_receive_doper.2 | 2 +- doc/man/nvme_directive_recv.2 | 2 +- .../nvme_directive_recv_identify_parameters.2 | 2 +- doc/man/nvme_directive_recv_stream_allocate.2 | 2 +- .../nvme_directive_recv_stream_parameters.2 | 2 +- doc/man/nvme_directive_recv_stream_status.2 | 2 +- doc/man/nvme_directive_send.2 | 2 +- doc/man/nvme_directive_send_doper.2 | 2 +- doc/man/nvme_directive_send_id_endir.2 | 2 +- doc/man/nvme_directive_send_identify_endir.2 | 2 +- ...directive_send_stream_release_identifier.2 | 2 +- ...e_directive_send_stream_release_resource.2 | 2 +- doc/man/nvme_directive_types.2 | 2 +- doc/man/nvme_disconnect_ctrl.2 | 2 +- .../nvme_dispersed_ns_participating_nss_log.2 | 27 + doc/man/nvme_dsm.2 | 2 +- doc/man/nvme_dsm_attributes.2 | 2 +- doc/man/nvme_dsm_range.2 | 2 +- doc/man/nvme_dst_stc.2 | 8 +- doc/man/nvme_dump_config.2 | 2 +- doc/man/nvme_dump_tree.2 | 2 +- doc/man/nvme_eg_critical_warning_flags.2 | 2 +- doc/man/nvme_eg_event_aggregate_log.2 | 2 +- doc/man/nvme_end_grp_chan_desc.2 | 2 +- doc/man/nvme_end_grp_config_desc.2 | 2 +- doc/man/nvme_endurance_group_log.2 | 2 +- doc/man/nvme_eom_lane_desc.2 | 2 +- doc/man/nvme_eom_optional_data.2 | 2 +- doc/man/nvme_eom_optional_data_present.2 | 2 +- doc/man/nvme_err_status_field.2 | 30 + doc/man/nvme_errno_to_string.2 | 2 +- doc/man/nvme_error_log_page.2 | 2 +- doc/man/nvme_export_tls_key.2 | 2 +- doc/man/nvme_export_tls_key_versioned.2 | 2 +- doc/man/nvme_fabrics_config.2 | 2 +- doc/man/nvme_fabrics_uri.2 | 2 +- doc/man/nvme_fctype.2 | 2 +- doc/man/nvme_fdp_config_desc.2 | 2 +- doc/man/nvme_fdp_config_fdpa.2 | 2 +- doc/man/nvme_fdp_config_log.2 | 2 +- doc/man/nvme_fdp_event.2 | 2 +- doc/man/nvme_fdp_event_flags.2 | 2 +- doc/man/nvme_fdp_event_realloc.2 | 2 +- doc/man/nvme_fdp_event_realloc_flags.2 | 2 +- doc/man/nvme_fdp_event_type.2 | 2 +- doc/man/nvme_fdp_events_log.2 | 2 +- doc/man/nvme_fdp_reclaim_unit_handle_status.2 | 2 +- doc/man/nvme_fdp_reclaim_unit_handle_update.2 | 2 +- doc/man/nvme_fdp_ruh_desc.2 | 2 +- doc/man/nvme_fdp_ruh_status.2 | 2 +- doc/man/nvme_fdp_ruh_status_desc.2 | 2 +- doc/man/nvme_fdp_ruh_type.2 | 2 +- doc/man/nvme_fdp_ruha.2 | 2 +- doc/man/nvme_fdp_ruhu_desc.2 | 2 +- doc/man/nvme_fdp_ruhu_log.2 | 2 +- doc/man/nvme_fdp_stats_log.2 | 2 +- doc/man/nvme_fdp_supported_event_attributes.2 | 2 +- doc/man/nvme_fdp_supported_event_desc.2 | 2 +- doc/man/nvme_feat.2 | 142 +- doc/man/nvme_feat_auto_pst.2 | 2 +- doc/man/nvme_feat_fdp_events_cdw11.2 | 4 +- doc/man/nvme_feat_host_behavior.2 | 10 +- doc/man/nvme_feat_nswpcfg_state.2 | 2 +- doc/man/nvme_feat_plm_window_select.2 | 2 +- doc/man/nvme_feat_resv_notify_flags.2 | 2 +- doc/man/nvme_feat_tmpthresh_thsel.2 | 2 +- .../nvme_features_async_event_config_flags.2 | 2 +- doc/man/nvme_features_id.2 | 52 +- doc/man/nvme_fid_supported_effects.2 | 8 +- doc/man/nvme_fid_supported_effects_log.2 | 2 +- doc/man/nvme_firmware_slot.2 | 2 +- doc/man/nvme_first_host.2 | 2 +- doc/man/nvme_first_subsystem.2 | 2 +- doc/man/nvme_flbas.2 | 2 +- doc/man/nvme_flush.2 | 2 +- doc/man/nvme_for_each_host.2 | 2 +- doc/man/nvme_for_each_host_safe.2 | 2 +- doc/man/nvme_for_each_subsystem.2 | 2 +- doc/man/nvme_for_each_subsystem_safe.2 | 2 +- doc/man/nvme_format_nvm.2 | 2 +- doc/man/nvme_format_nvm_compln_event.2 | 2 +- doc/man/nvme_format_nvm_start_event.2 | 2 +- doc/man/nvme_free_ctrl.2 | 2 +- doc/man/nvme_free_host.2 | 2 +- doc/man/nvme_free_ns.2 | 2 +- doc/man/nvme_free_subsystem.2 | 2 +- doc/man/nvme_free_tree.2 | 2 +- doc/man/nvme_free_uri.2 | 2 +- doc/man/nvme_fw_commit.2 | 2 +- doc/man/nvme_fw_commit_ca.2 | 2 +- doc/man/nvme_fw_commit_event.2 | 2 +- doc/man/nvme_fw_download.2 | 2 +- doc/man/nvme_fw_download_seq.2 | 2 +- doc/man/nvme_gen_dhchap_key.2 | 2 +- doc/man/nvme_generate_tls_key_identity.2 | 2 +- doc/man/nvme_get_ana_log_atomic.2 | 2 +- doc/man/nvme_get_ana_log_len.2 | 2 +- doc/man/nvme_get_ana_log_len_from_id_ctrl.2 | 2 +- doc/man/nvme_get_attr.2 | 2 +- doc/man/nvme_get_ctrl_attr.2 | 2 +- doc/man/nvme_get_ctrl_telemetry.2 | 2 +- doc/man/nvme_get_directive_receive_length.2 | 2 +- doc/man/nvme_get_discovery_args.2 | 2 +- doc/man/nvme_get_feature_length.2 | 2 +- doc/man/nvme_get_feature_length2.2 | 2 +- doc/man/nvme_get_features.2 | 2 +- doc/man/nvme_get_features_arbitration.2 | 2 +- doc/man/nvme_get_features_async_event.2 | 2 +- doc/man/nvme_get_features_auto_pst.2 | 2 +- doc/man/nvme_get_features_data.2 | 2 +- .../nvme_get_features_endurance_event_cfg.2 | 2 +- doc/man/nvme_get_features_err_recovery.2 | 2 +- doc/man/nvme_get_features_err_recovery2.2 | 2 +- doc/man/nvme_get_features_hctm.2 | 2 +- doc/man/nvme_get_features_host_behavior.2 | 2 +- doc/man/nvme_get_features_host_id.2 | 2 +- doc/man/nvme_get_features_host_mem_buf.2 | 2 +- doc/man/nvme_get_features_host_mem_buf2.2 | 2 +- doc/man/nvme_get_features_iocs_profile.2 | 2 +- doc/man/nvme_get_features_irq_coalesce.2 | 2 +- doc/man/nvme_get_features_irq_config.2 | 2 +- doc/man/nvme_get_features_kato.2 | 2 +- doc/man/nvme_get_features_lba_range.2 | 2 +- doc/man/nvme_get_features_lba_range2.2 | 2 +- doc/man/nvme_get_features_lba_sts_interval.2 | 2 +- doc/man/nvme_get_features_nopsc.2 | 2 +- doc/man/nvme_get_features_num_queues.2 | 2 +- doc/man/nvme_get_features_plm_config.2 | 2 +- doc/man/nvme_get_features_plm_window.2 | 2 +- doc/man/nvme_get_features_power_mgmt.2 | 2 +- doc/man/nvme_get_features_resv_mask.2 | 2 +- doc/man/nvme_get_features_resv_mask2.2 | 2 +- doc/man/nvme_get_features_resv_persist.2 | 2 +- doc/man/nvme_get_features_resv_persist2.2 | 2 +- doc/man/nvme_get_features_rrl.2 | 2 +- doc/man/nvme_get_features_sanitize.2 | 2 +- doc/man/nvme_get_features_sel.2 | 2 +- doc/man/nvme_get_features_simple.2 | 2 +- doc/man/nvme_get_features_sw_progress.2 | 2 +- doc/man/nvme_get_features_temp_thresh.2 | 2 +- doc/man/nvme_get_features_timestamp.2 | 2 +- doc/man/nvme_get_features_volatile_wc.2 | 2 +- doc/man/nvme_get_features_write_atomic.2 | 2 +- doc/man/nvme_get_features_write_protect.2 | 2 +- doc/man/nvme_get_host_telemetry.2 | 2 +- doc/man/nvme_get_lba_status.2 | 2 +- doc/man/nvme_get_lba_status_log.2 | 2 +- doc/man/nvme_get_log.2 | 2 +- doc/man/nvme_get_log_ana.2 | 2 +- doc/man/nvme_get_log_ana_groups.2 | 2 +- ...a_status.2 => nvme_get_log_ave_discover.2} | 13 +- doc/man/nvme_get_log_boot_partition.2 | 2 +- ...2 => nvme_get_log_changed_alloc_ns_list.2} | 13 +- doc/man/nvme_get_log_changed_ns_list.2 | 2 +- doc/man/nvme_get_log_cmd_effects.2 | 2 +- doc/man/nvme_get_log_create_telemetry_host.2 | 2 +- .../nvme_get_log_create_telemetry_host_mcda.2 | 18 + doc/man/nvme_get_log_device_self_test.2 | 2 +- doc/man/nvme_get_log_discovery.2 | 2 +- ...e_get_log_dispersed_ns_participating_nss.2 | 21 + doc/man/nvme_get_log_endurance_group.2 | 2 +- doc/man/nvme_get_log_endurance_grp_evt.2 | 2 +- doc/man/nvme_get_log_error.2 | 2 +- doc/man/nvme_get_log_fdp_configurations.2 | 2 +- doc/man/nvme_get_log_fdp_events.2 | 2 +- doc/man/nvme_get_log_fdp_stats.2 | 2 +- doc/man/nvme_get_log_fid_supported_effects.2 | 2 +- doc/man/nvme_get_log_fw_slot.2 | 2 +- doc/man/nvme_get_log_host_discover.2 | 24 + doc/man/nvme_get_log_lba_status.2 | 2 +- doc/man/nvme_get_log_lockdown.2 | 2 +- doc/man/nvme_get_log_media_unit_stat.2 | 2 +- doc/man/nvme_get_log_mgmt_addr_list.2 | 18 + .../nvme_get_log_mi_cmd_supported_effects.2 | 2 +- doc/man/nvme_get_log_page.2 | 2 +- doc/man/nvme_get_log_persistent_event.2 | 2 +- doc/man/nvme_get_log_phy_rx_eom.2 | 2 +- doc/man/nvme_get_log_predictable_lat_event.2 | 2 +- doc/man/nvme_get_log_predictable_lat_nvmset.2 | 2 +- ...us.2 => nvme_get_log_pull_model_ddc_req.2} | 13 +- .../nvme_get_log_reachability_associations.2 | 24 + doc/man/nvme_get_log_reachability_groups.2 | 24 + .../nvme_get_log_reclaim_unit_handle_usage.2 | 2 +- doc/man/nvme_get_log_reservation.2 | 2 +- doc/man/nvme_get_log_rotational_media_info.2 | 21 + doc/man/nvme_get_log_sanitize.2 | 2 +- doc/man/nvme_get_log_smart.2 | 2 +- .../nvme_get_log_support_cap_config_list.2 | 2 +- doc/man/nvme_get_log_supported_log_pages.2 | 2 +- doc/man/nvme_get_log_telemetry_ctrl.2 | 2 +- doc/man/nvme_get_log_telemetry_host.2 | 2 +- doc/man/nvme_get_log_zns_changed_zones.2 | 2 +- doc/man/nvme_get_logging_level.2 | 2 +- doc/man/nvme_get_logical_block_size.2 | 2 +- doc/man/nvme_get_new_host_telemetry.2 | 2 +- doc/man/nvme_get_ns_attr.2 | 2 +- doc/man/nvme_get_nsid.2 | 2 +- doc/man/nvme_get_path_attr.2 | 2 +- doc/man/nvme_get_property.2 | 2 +- doc/man/nvme_get_subsys_attr.2 | 2 +- doc/man/nvme_get_telemetry_log.2 | 2 +- doc/man/nvme_get_telemetry_max.2 | 2 +- doc/man/nvme_hmac_alg.2 | 2 +- doc/man/nvme_host_behavior_support.2 | 2 +- doc/man/nvme_host_discover_log.2 | 43 + doc/man/nvme_host_ext_discover_log.2 | 59 + doc/man/nvme_host_get_dhchap_key.2 | 2 +- doc/man/nvme_host_get_hostid.2 | 2 +- doc/man/nvme_host_get_hostnqn.2 | 2 +- doc/man/nvme_host_get_hostsymname.2 | 2 +- doc/man/nvme_host_get_root.2 | 2 +- doc/man/nvme_host_is_pdc_enabled.2 | 2 +- doc/man/nvme_host_mem_buf_attrs.2 | 2 +- doc/man/nvme_host_metadata.2 | 2 +- doc/man/nvme_host_release_fds.2 | 2 +- doc/man/nvme_host_set_dhchap_key.2 | 2 +- doc/man/nvme_host_set_hostsymname.2 | 2 +- doc/man/nvme_host_set_pdc_enabled.2 | 2 +- doc/man/nvme_id_ctrl.2 | 103 +- doc/man/nvme_id_ctrl_anacap.2 | 2 +- doc/man/nvme_id_ctrl_apsta.2 | 2 +- doc/man/nvme_id_ctrl_avscc.2 | 2 +- doc/man/nvme_id_ctrl_bpcap.2 | 59 + doc/man/nvme_id_ctrl_cmic.2 | 2 +- doc/man/nvme_id_ctrl_cntrltype.2 | 2 +- doc/man/nvme_id_ctrl_cqes.2 | 2 +- doc/man/nvme_id_ctrl_crcap.2 | 34 + doc/man/nvme_id_ctrl_ctratt.2 | 2 +- doc/man/nvme_id_ctrl_dctype.2 | 2 +- doc/man/nvme_id_ctrl_dsto.2 | 41 +- doc/man/nvme_id_ctrl_fcatt.2 | 2 +- doc/man/nvme_id_ctrl_fna.2 | 2 +- doc/man/nvme_id_ctrl_frmw.2 | 2 +- doc/man/nvme_id_ctrl_fuses.2 | 2 +- doc/man/nvme_id_ctrl_hctm.2 | 2 +- doc/man/nvme_id_ctrl_kpioc.2 | 34 + doc/man/nvme_id_ctrl_lpa.2 | 2 +- doc/man/nvme_id_ctrl_mec.2 | 2 +- doc/man/nvme_id_ctrl_nvm.2 | 12 +- doc/man/nvme_id_ctrl_nvm_lbamqf.2 | 21 + doc/man/nvme_id_ctrl_nvmsr.2 | 4 +- doc/man/nvme_id_ctrl_nvscc.2 | 2 +- doc/man/nvme_id_ctrl_nwpc.2 | 2 +- doc/man/nvme_id_ctrl_oacs.2 | 153 +- doc/man/nvme_id_ctrl_oaes.2 | 2 +- doc/man/nvme_id_ctrl_ofcs.2 | 2 +- doc/man/nvme_id_ctrl_oncs.2 | 21 +- doc/man/nvme_id_ctrl_plsi.2 | 34 + doc/man/nvme_id_ctrl_rpmbs.2 | 2 +- doc/man/nvme_id_ctrl_sanicap.2 | 2 +- doc/man/nvme_id_ctrl_sgls.2 | 2 +- doc/man/nvme_id_ctrl_sqes.2 | 2 +- doc/man/nvme_id_ctrl_trattr.2 | 48 + doc/man/nvme_id_ctrl_vwc.2 | 2 +- doc/man/nvme_id_ctrl_vwci.2 | 2 +- doc/man/nvme_id_directives.2 | 2 +- doc/man/nvme_id_domain_attr.2 | 2 +- doc/man/nvme_id_domain_list.2 | 2 +- doc/man/nvme_id_endurance_group_list.2 | 2 +- doc/man/nvme_id_independent_id_ns.2 | 2 +- doc/man/nvme_id_iocs.2 | 2 +- doc/man/nvme_id_iocs_iocsc.2 | 70 + doc/man/nvme_id_ns.2 | 20 +- doc/man/nvme_id_ns_attr.2 | 2 +- doc/man/nvme_id_ns_dlfeat.2 | 2 +- doc/man/nvme_id_ns_dpc.2 | 2 +- doc/man/nvme_id_ns_dps.2 | 2 +- doc/man/nvme_id_ns_flbas.2 | 2 +- doc/man/nvme_id_ns_granularity_desc.2 | 2 +- doc/man/nvme_id_ns_granularity_list.2 | 2 +- doc/man/nvme_id_ns_mc.2 | 2 +- doc/man/nvme_id_ns_nmic.2 | 2 +- doc/man/nvme_id_ns_rescap.2 | 2 +- doc/man/nvme_id_nsfeat.2 | 2 +- doc/man/nvme_id_nvmset_list.2 | 2 +- doc/man/nvme_id_psd.2 | 27 +- doc/man/nvme_id_uuid.2 | 2 +- doc/man/nvme_id_uuid_list.2 | 2 +- doc/man/nvme_id_uuid_list_entry.2 | 2 +- doc/man/nvme_identify.2 | 2 +- doc/man/nvme_identify_active_ns_list.2 | 2 +- doc/man/nvme_identify_active_ns_list_csi.2 | 2 +- doc/man/nvme_identify_allocated_ns.2 | 2 +- doc/man/nvme_identify_allocated_ns_list.2 | 2 +- doc/man/nvme_identify_allocated_ns_list_csi.2 | 2 +- doc/man/nvme_identify_cns.2 | 23 +- doc/man/nvme_identify_ctrl.2 | 2 +- doc/man/nvme_identify_ctrl_csi.2 | 2 +- doc/man/nvme_identify_ctrl_list.2 | 2 +- doc/man/nvme_identify_domain_list.2 | 2 +- doc/man/nvme_identify_endurance_group_list.2 | 2 +- .../nvme_identify_independent_identify_ns.2 | 2 +- doc/man/nvme_identify_iocs.2 | 2 +- ...me_identify_iocs_ns_csi_user_data_format.2 | 2 +- doc/man/nvme_identify_ns.2 | 2 +- doc/man/nvme_identify_ns_csi.2 | 2 +- .../nvme_identify_ns_csi_user_data_format.2 | 2 +- doc/man/nvme_identify_ns_descs.2 | 2 +- doc/man/nvme_identify_ns_granularity.2 | 2 +- doc/man/nvme_identify_nsid_ctrl_list.2 | 2 +- doc/man/nvme_identify_nvmset_list.2 | 2 +- doc/man/nvme_identify_primary_ctrl.2 | 2 +- doc/man/nvme_identify_secondary_ctrl_list.2 | 2 +- doc/man/nvme_identify_uuid.2 | 2 +- doc/man/nvme_import_tls_key.2 | 2 +- doc/man/nvme_import_tls_key_versioned.2 | 2 +- doc/man/nvme_init_copy_range.2 | 2 +- doc/man/nvme_init_copy_range_f1.2 | 2 +- doc/man/nvme_init_copy_range_f2.2 | 2 +- doc/man/nvme_init_copy_range_f3.2 | 2 +- doc/man/nvme_init_ctrl.2 | 2 +- doc/man/nvme_init_ctrl_list.2 | 2 +- doc/man/nvme_init_default_logging.2 | 2 +- doc/man/nvme_init_dsm_range.2 | 2 +- doc/man/nvme_init_logging.2 | 2 +- doc/man/nvme_insert_tls_key.2 | 2 +- doc/man/nvme_insert_tls_key_versioned.2 | 2 +- doc/man/nvme_io.2 | 2 +- doc/man/nvme_io_control_flags.2 | 8 +- doc/man/nvme_io_dsm_flags.2 | 2 +- doc/man/nvme_io_mgmt_recv.2 | 2 +- doc/man/nvme_io_mgmt_recv_mo.2 | 2 +- doc/man/nvme_io_mgmt_send.2 | 2 +- doc/man/nvme_io_mgmt_send_mo.2 | 2 +- doc/man/nvme_io_opcode.2 | 8 +- doc/man/nvme_io_passthru.2 | 2 +- doc/man/nvme_io_passthru64.2 | 2 +- doc/man/nvme_is_64bit_reg.2 | 2 +- doc/man/nvme_kv_opcode.2 | 2 +- doc/man/nvme_lba_range_type.2 | 2 +- doc/man/nvme_lba_range_type_entry.2 | 2 +- doc/man/nvme_lba_rd.2 | 2 +- doc/man/nvme_lba_status.2 | 2 +- doc/man/nvme_lba_status_atype.2 | 2 +- doc/man/nvme_lba_status_cmpc.2 | 2 +- doc/man/nvme_lba_status_desc.2 | 2 +- doc/man/nvme_lba_status_log.2 | 2 +- doc/man/nvme_lbaf.2 | 2 +- doc/man/nvme_lbaf_rp.2 | 2 +- doc/man/nvme_lbart.2 | 2 +- doc/man/nvme_lbas_ns_element.2 | 2 +- doc/man/nvme_lm_cdq.2 | 12 + doc/man/nvme_lm_cdq_fields.2 | 104 + doc/man/nvme_lm_controller_state_data.2 | 19 + .../nvme_lm_controller_state_data_header.2 | 31 + doc/man/nvme_lm_ctrl_data_queue_fid.2 | 18 + doc/man/nvme_lm_ctrl_data_queue_fid_data.2 | 19 + doc/man/nvme_lm_io_completion_queue_data.2 | 39 + doc/man/nvme_lm_io_submission_queue_data.2 | 43 + doc/man/nvme_lm_migration_recv_fields.2 | 106 + doc/man/nvme_lm_migration_send.2 | 12 + doc/man/nvme_lm_migration_send_fields.2 | 202 ++ doc/man/nvme_lm_nvme_controller_state_data.2 | 29 + ...vme_lm_nvme_controller_state_data_header.2 | 27 + doc/man/nvme_lm_queue_attributes.2 | 84 + doc/man/nvme_lm_track_send.2 | 12 + doc/man/nvme_lm_track_send_fields.2 | 73 + doc/man/nvme_lockdown.2 | 2 +- doc/man/nvme_lockdown_log.2 | 2 +- doc/man/nvme_lockdown_log_contents.2 | 2 +- doc/man/nvme_lockdown_log_scope.2 | 2 +- doc/man/nvme_lockdown_scope_contents.2 | 2 +- doc/man/nvme_log_ana_lsp.2 | 2 +- doc/man/nvme_log_phy_rx_eom_action.2 | 2 +- doc/man/nvme_log_phy_rx_eom_quality.2 | 2 +- doc/man/nvme_lookup_ctrl.2 | 2 +- doc/man/nvme_lookup_host.2 | 2 +- doc/man/nvme_lookup_key.2 | 2 +- doc/man/nvme_lookup_keyring.2 | 2 +- doc/man/nvme_lookup_subsystem.2 | 2 +- doc/man/nvme_media_unit_config_desc.2 | 2 +- doc/man/nvme_media_unit_stat_desc.2 | 2 +- doc/man/nvme_media_unit_stat_log.2 | 2 +- doc/man/nvme_metadata_element_desc.2 | 2 +- doc/man/nvme_mgmt_addr_desc.2 | 23 + doc/man/nvme_mgmt_addr_list_log.2 | 15 + doc/man/nvme_mi_admin_admin_passthru.2 | 2 +- doc/man/nvme_mi_admin_format_nvm.2 | 2 +- doc/man/nvme_mi_admin_fw_commit.2 | 2 +- doc/man/nvme_mi_admin_fw_download.2 | 2 +- doc/man/nvme_mi_admin_get_ana_log_atomic.2 | 2 +- ...d_log.2 => nvme_mi_admin_get_endgid_log.2} | 14 +- doc/man/nvme_mi_admin_get_features_data.2 | 2 +- doc/man/nvme_mi_admin_get_log.2 | 2 +- doc/man/nvme_mi_admin_get_log_ana.2 | 2 +- doc/man/nvme_mi_admin_get_log_ana_groups.2 | 2 +- doc/man/nvme_mi_admin_get_log_ave_discover.2 | 21 + .../nvme_mi_admin_get_log_boot_partition.2 | 2 +- ...e_mi_admin_get_log_changed_alloc_ns_list.2 | 21 + .../nvme_mi_admin_get_log_changed_ns_list.2 | 2 +- doc/man/nvme_mi_admin_get_log_cmd_effects.2 | 2 +- ...e_mi_admin_get_log_create_telemetry_host.2 | 2 +- ...admin_get_log_create_telemetry_host_mcda.2 | 18 + .../nvme_mi_admin_get_log_device_self_test.2 | 2 +- doc/man/nvme_mi_admin_get_log_discovery.2 | 2 +- ...n_get_log_dispersed_ns_participating_nss.2 | 21 + .../nvme_mi_admin_get_log_endurance_group.2 | 2 +- .../nvme_mi_admin_get_log_endurance_grp_evt.2 | 2 +- doc/man/nvme_mi_admin_get_log_error.2 | 2 +- ...e_mi_admin_get_log_fid_supported_effects.2 | 2 +- doc/man/nvme_mi_admin_get_log_fw_slot.2 | 2 +- doc/man/nvme_mi_admin_get_log_host_discover.2 | 24 + doc/man/nvme_mi_admin_get_log_lba_status.2 | 2 +- doc/man/nvme_mi_admin_get_log_lockdown.2 | 2 +- .../nvme_mi_admin_get_log_media_unit_stat.2 | 2 +- .../nvme_mi_admin_get_log_mgmt_addr_list.2 | 18 + ...i_admin_get_log_mi_cmd_supported_effects.2 | 2 +- doc/man/nvme_mi_admin_get_log_page.2 | 2 +- .../nvme_mi_admin_get_log_persistent_event.2 | 2 +- doc/man/nvme_mi_admin_get_log_phy_rx_eom.2 | 2 +- ...e_mi_admin_get_log_predictable_lat_event.2 | 2 +- ..._mi_admin_get_log_predictable_lat_nvmset.2 | 2 +- ...nvme_mi_admin_get_log_pull_model_ddc_req.2 | 21 + ..._admin_get_log_reachability_associations.2 | 24 + ...vme_mi_admin_get_log_reachability_groups.2 | 24 + doc/man/nvme_mi_admin_get_log_reservation.2 | 2 +- ...e_mi_admin_get_log_rotational_media_info.2 | 21 + doc/man/nvme_mi_admin_get_log_sanitize.2 | 2 +- doc/man/nvme_mi_admin_get_log_simple.2 | 2 +- doc/man/nvme_mi_admin_get_log_smart.2 | 2 +- ...mi_admin_get_log_support_cap_config_list.2 | 2 +- ...vme_mi_admin_get_log_supported_log_pages.2 | 2 +- .../nvme_mi_admin_get_log_telemetry_ctrl.2 | 2 +- .../nvme_mi_admin_get_log_telemetry_host.2 | 2 +- .../nvme_mi_admin_get_log_zns_changed_zones.2 | 2 +- doc/man/nvme_mi_admin_get_nsid_log.2 | 2 +- doc/man/nvme_mi_admin_identify.2 | 2 +- .../nvme_mi_admin_identify_active_ns_list.2 | 2 +- doc/man/nvme_mi_admin_identify_allocated_ns.2 | 2 +- ...nvme_mi_admin_identify_allocated_ns_list.2 | 2 +- doc/man/nvme_mi_admin_identify_cns_nsid.2 | 2 +- doc/man/nvme_mi_admin_identify_ctrl.2 | 2 +- doc/man/nvme_mi_admin_identify_ctrl_list.2 | 2 +- doc/man/nvme_mi_admin_identify_ns.2 | 2 +- doc/man/nvme_mi_admin_identify_ns_descs.2 | 2 +- .../nvme_mi_admin_identify_nsid_ctrl_list.2 | 2 +- doc/man/nvme_mi_admin_identify_partial.2 | 2 +- doc/man/nvme_mi_admin_identify_primary_ctrl.2 | 2 +- ...me_mi_admin_identify_secondary_ctrl_list.2 | 2 +- doc/man/nvme_mi_admin_ns_attach.2 | 2 +- doc/man/nvme_mi_admin_ns_attach_ctrls.2 | 2 +- doc/man/nvme_mi_admin_ns_detach_ctrls.2 | 2 +- doc/man/nvme_mi_admin_req_hdr.2 | 2 +- doc/man/nvme_mi_admin_resp_hdr.2 | 2 +- doc/man/nvme_mi_admin_sanitize_nvm.2 | 2 +- doc/man/nvme_mi_admin_security_recv.2 | 2 +- doc/man/nvme_mi_admin_security_send.2 | 2 +- doc/man/nvme_mi_admin_xfer.2 | 2 +- doc/man/nvme_mi_ccs.2 | 2 +- doc/man/nvme_mi_close.2 | 2 +- doc/man/nvme_mi_close_ctrl.2 | 2 +- doc/man/nvme_mi_cmd_supported_effects.2 | 2 +- doc/man/nvme_mi_cmd_supported_effects_log.2 | 2 +- doc/man/nvme_mi_config_id.2 | 2 +- doc/man/nvme_mi_config_smbus_freq.2 | 2 +- doc/man/nvme_mi_control.2 | 2 +- doc/man/nvme_mi_control_opcode.2 | 2 +- doc/man/nvme_mi_control_req.2 | 2 +- doc/man/nvme_mi_create_root.2 | 2 +- doc/man/nvme_mi_csts.2 | 2 +- doc/man/nvme_mi_ctrl_health_status.2 | 2 +- doc/man/nvme_mi_ctrl_id.2 | 2 +- doc/man/nvme_mi_cwarn.2 | 2 +- doc/man/nvme_mi_dtyp.2 | 2 +- doc/man/nvme_mi_elem.2 | 2 +- doc/man/nvme_mi_free_root.2 | 2 +- doc/man/nvme_mi_init_ctrl.2 | 2 +- doc/man/nvme_mi_message_type.2 | 2 +- doc/man/nvme_mi_mi_opcode.2 | 2 +- doc/man/nvme_mi_mi_read_mi_data_ctrl.2 | 2 +- doc/man/nvme_mi_mi_read_mi_data_ctrl_list.2 | 2 +- doc/man/nvme_mi_mi_read_mi_data_port.2 | 2 +- doc/man/nvme_mi_mi_read_mi_data_subsys.2 | 2 +- doc/man/nvme_mi_mi_req_hdr.2 | 2 +- doc/man/nvme_mi_mi_resp_hdr.2 | 2 +- .../nvme_mi_mi_subsystem_health_status_poll.2 | 2 +- doc/man/nvme_mi_mi_xfer.2 | 37 + doc/man/nvme_mi_msg_hdr.2 | 2 +- doc/man/nvme_mi_msg_resp.2 | 2 +- doc/man/nvme_mi_nvm_ss_health_status.2 | 2 +- doc/man/nvme_mi_open_mctp.2 | 2 +- doc/man/nvme_mi_osc.2 | 2 +- doc/man/nvme_mi_port_pcie.2 | 2 +- doc/man/nvme_mi_port_smb.2 | 2 +- doc/man/nvme_mi_read_ctrl_info.2 | 2 +- doc/man/nvme_mi_read_nvm_ss_info.2 | 2 +- doc/man/nvme_mi_read_port_info.2 | 2 +- doc/man/nvme_mi_read_sc_list.2 | 2 +- doc/man/nvme_mi_resp_status.2 | 2 +- doc/man/nvme_mi_set_probe_enabled.2 | 2 +- doc/man/nvme_mi_status_to_string.2 | 2 +- doc/man/nvme_mi_vpd_hdr.2 | 2 +- doc/man/nvme_mi_vpd_mr_common.2 | 2 +- doc/man/nvme_mi_vpd_mra.2 | 2 +- doc/man/nvme_mi_vpd_ppmra.2 | 2 +- doc/man/nvme_mi_vpd_telem.2 | 2 +- doc/man/nvme_mi_vpd_tra.2 | 2 +- doc/man/nvme_namespace_attach_ctrls.2 | 2 +- doc/man/nvme_namespace_detach_ctrls.2 | 2 +- doc/man/nvme_namespace_filter.2 | 2 +- doc/man/nvme_namespace_first_path.2 | 2 +- doc/man/nvme_namespace_for_each_path.2 | 2 +- doc/man/nvme_namespace_for_each_path_safe.2 | 2 +- doc/man/nvme_namespace_next_path.2 | 2 +- doc/man/nvme_nbft_free.2 | 2 +- doc/man/nvme_nbft_read.2 | 2 +- doc/man/nvme_nd_ns_fpi.2 | 2 +- doc/man/nvme_next_host.2 | 2 +- doc/man/nvme_next_subsystem.2 | 2 +- doc/man/nvme_ns_attach.2 | 2 +- doc/man/nvme_ns_attach_ctrls.2 | 2 +- doc/man/nvme_ns_attach_sel.2 | 2 +- doc/man/nvme_ns_compare.2 | 2 +- doc/man/nvme_ns_detach_ctrls.2 | 2 +- doc/man/nvme_ns_flush.2 | 2 +- doc/man/nvme_ns_get_csi.2 | 2 +- doc/man/nvme_ns_get_ctrl.2 | 2 +- doc/man/nvme_ns_get_eui64.2 | 2 +- doc/man/nvme_ns_get_fd.2 | 2 +- doc/man/nvme_ns_get_firmware.2 | 2 +- doc/man/nvme_ns_get_generic_name.2 | 2 +- doc/man/nvme_ns_get_lba_count.2 | 2 +- doc/man/nvme_ns_get_lba_size.2 | 2 +- doc/man/nvme_ns_get_lba_util.2 | 2 +- doc/man/nvme_ns_get_meta_size.2 | 2 +- doc/man/nvme_ns_get_model.2 | 2 +- doc/man/nvme_ns_get_name.2 | 2 +- doc/man/nvme_ns_get_nguid.2 | 2 +- doc/man/nvme_ns_get_nsid.2 | 2 +- doc/man/nvme_ns_get_serial.2 | 2 +- doc/man/nvme_ns_get_subsystem.2 | 2 +- doc/man/nvme_ns_get_sysfs_dir.2 | 2 +- doc/man/nvme_ns_get_uuid.2 | 2 +- doc/man/nvme_ns_id_desc.2 | 2 +- doc/man/nvme_ns_id_desc_nidt.2 | 2 +- doc/man/nvme_ns_identify.2 | 2 +- doc/man/nvme_ns_identify_descs.2 | 2 +- doc/man/nvme_ns_list.2 | 2 +- doc/man/nvme_ns_metadata_type.2 | 2 +- doc/man/nvme_ns_mgmt.2 | 2 +- doc/man/nvme_ns_mgmt_create.2 | 2 +- doc/man/nvme_ns_mgmt_delete.2 | 2 +- doc/man/nvme_ns_mgmt_delete_timeout.2 | 2 +- doc/man/nvme_ns_mgmt_host_sw_specified.2 | 2 +- doc/man/nvme_ns_mgmt_sel.2 | 2 +- doc/man/nvme_ns_read.2 | 2 +- doc/man/nvme_ns_release_fd.2 | 2 +- doc/man/nvme_ns_rescan.2 | 2 +- doc/man/nvme_ns_verify.2 | 2 +- doc/man/nvme_ns_write.2 | 2 +- doc/man/nvme_ns_write_protect_cfg.2 | 2 +- doc/man/nvme_ns_write_uncorrectable.2 | 2 +- doc/man/nvme_ns_write_zeros.2 | 2 +- doc/man/nvme_nss_hw_err_event.2 | 2 +- doc/man/nvme_nvm_id_ns.2 | 2 +- doc/man/nvme_nvm_id_ns_elbaf.2 | 2 +- doc/man/nvme_nvm_id_ns_pif.2 | 2 +- doc/man/nvme_nvm_identify_ctrl.2 | 2 +- doc/man/nvme_nvmeset_pl_status.2 | 2 +- doc/man/nvme_nvmset_attr.2 | 2 +- doc/man/nvme_nvmset_pl_events.2 | 2 +- doc/man/nvme_nvmset_predictable_lat_log.2 | 2 +- doc/man/nvme_open.2 | 2 +- doc/man/nvme_parse_uri.2 | 2 +- doc/man/nvme_passthru_cmd.2 | 2 +- doc/man/nvme_passthru_cmd64.2 | 2 +- doc/man/nvme_path_get_ana_state.2 | 2 +- doc/man/nvme_path_get_ctrl.2 | 2 +- doc/man/nvme_path_get_name.2 | 2 +- doc/man/nvme_path_get_ns.2 | 2 +- doc/man/nvme_path_get_sysfs_dir.2 | 2 +- doc/man/nvme_paths_filter.2 | 2 +- doc/man/nvme_pel_ehai.2 | 2 +- doc/man/nvme_pel_ehai_pit.2 | 2 +- doc/man/nvme_pel_rci.2 | 2 +- doc/man/nvme_pel_rci_rcpit.2 | 2 +- doc/man/nvme_persistent_event_entry.2 | 2 +- doc/man/nvme_persistent_event_log.2 | 2 +- doc/man/nvme_persistent_event_types.2 | 2 +- doc/man/nvme_pevent_log_action.2 | 2 +- doc/man/nvme_phy_rx_eom_log.2 | 2 +- doc/man/nvme_phy_rx_eom_progress.2 | 2 +- doc/man/nvme_plm_config.2 | 2 +- doc/man/nvme_pmr_size.2 | 2 +- doc/man/nvme_pmr_throughput.2 | 2 +- doc/man/nvme_pmrcap.2 | 2 +- doc/man/nvme_pmrctl.2 | 2 +- doc/man/nvme_pmrebs.2 | 2 +- doc/man/nvme_pmrmsc.2 | 2 +- doc/man/nvme_pmrsts.2 | 2 +- doc/man/nvme_pmrswtp.2 | 2 +- doc/man/nvme_power_on_reset_info_list.2 | 2 +- doc/man/nvme_primary_ctrl_cap.2 | 2 +- doc/man/nvme_psd_flags.2 | 2 +- doc/man/nvme_psd_power_scale.2 | 2 +- doc/man/nvme_psd_ps.2 | 2 +- doc/man/nvme_psd_workload.2 | 2 +- doc/man/nvme_pull_model_ddc_req_log.2 | 27 + doc/man/nvme_reachability_association_desc.2 | 35 + doc/man/nvme_reachability_associations_log.2 | 27 + doc/man/nvme_reachability_group_desc.2 | 31 + doc/man/nvme_reachability_groups_log.2 | 27 + doc/man/nvme_read.2 | 2 +- doc/man/nvme_read_config.2 | 2 +- doc/man/nvme_read_key.2 | 2 +- doc/man/nvme_refresh_topology.2 | 2 +- doc/man/nvme_register_offsets.2 | 2 +- doc/man/nvme_registered_ctrl.2 | 2 +- doc/man/nvme_registered_ctrl_ext.2 | 2 +- doc/man/nvme_rescan_ctrl.2 | 2 +- doc/man/nvme_resv_acquire.2 | 2 +- doc/man/nvme_resv_cptpl.2 | 2 +- doc/man/nvme_resv_notification_log.2 | 2 +- doc/man/nvme_resv_notify_rnlpt.2 | 2 +- doc/man/nvme_resv_racqa.2 | 2 +- doc/man/nvme_resv_register.2 | 2 +- doc/man/nvme_resv_release.2 | 2 +- doc/man/nvme_resv_report.2 | 2 +- doc/man/nvme_resv_rrega.2 | 2 +- doc/man/nvme_resv_rrela.2 | 2 +- doc/man/nvme_resv_rtype.2 | 2 +- doc/man/nvme_resv_status.2 | 2 +- doc/man/nvme_revoke_tls_key.2 | 2 +- doc/man/nvme_rotational_media_info_log.2 | 47 + doc/man/nvme_sanitize_compln_event.2 | 2 +- doc/man/nvme_sanitize_log_page.2 | 2 +- doc/man/nvme_sanitize_nvm.2 | 2 +- doc/man/nvme_sanitize_sanact.2 | 2 +- doc/man/nvme_sanitize_ssi.2 | 2 +- doc/man/nvme_sanitize_sstat.2 | 2 +- doc/man/nvme_sanitize_start_event.2 | 2 +- doc/man/nvme_scan.2 | 2 +- doc/man/nvme_scan_ctrl.2 | 2 +- doc/man/nvme_scan_ctrl_namespace_paths.2 | 2 +- doc/man/nvme_scan_ctrl_namespaces.2 | 2 +- doc/man/nvme_scan_ctrls.2 | 2 +- doc/man/nvme_scan_namespace.2 | 2 +- doc/man/nvme_scan_subsystem_namespaces.2 | 2 +- doc/man/nvme_scan_subsystems.2 | 2 +- doc/man/nvme_scan_tls_keys.2 | 2 +- doc/man/nvme_scan_topology.2 | 2 +- doc/man/nvme_secondary_ctrl.2 | 2 +- doc/man/nvme_secondary_ctrl_list.2 | 2 +- doc/man/nvme_security_receive.2 | 2 +- doc/man/nvme_security_send.2 | 2 +- doc/man/nvme_self_test_log.2 | 2 +- doc/man/nvme_set_feat_event_layout.2 | 2 +- doc/man/nvme_set_feature_event.2 | 2 +- doc/man/nvme_set_features.2 | 2 +- doc/man/nvme_set_features_arbitration.2 | 2 +- doc/man/nvme_set_features_async_event.2 | 2 +- doc/man/nvme_set_features_auto_pst.2 | 2 +- doc/man/nvme_set_features_data.2 | 2 +- doc/man/nvme_set_features_endurance_evt_cfg.2 | 2 +- doc/man/nvme_set_features_err_recovery.2 | 2 +- doc/man/nvme_set_features_hctm.2 | 2 +- doc/man/nvme_set_features_host_behavior.2 | 2 +- doc/man/nvme_set_features_host_id.2 | 2 +- doc/man/nvme_set_features_iocs_profile.2 | 2 +- doc/man/nvme_set_features_irq_coalesce.2 | 2 +- doc/man/nvme_set_features_irq_config.2 | 2 +- doc/man/nvme_set_features_lba_range.2 | 2 +- doc/man/nvme_set_features_lba_sts_interval.2 | 2 +- doc/man/nvme_set_features_nopsc.2 | 2 +- doc/man/nvme_set_features_plm_config.2 | 2 +- doc/man/nvme_set_features_plm_window.2 | 2 +- doc/man/nvme_set_features_power_mgmt.2 | 2 +- doc/man/nvme_set_features_resv_mask.2 | 2 +- doc/man/nvme_set_features_resv_mask2.2 | 2 +- doc/man/nvme_set_features_resv_persist.2 | 2 +- doc/man/nvme_set_features_resv_persist2.2 | 2 +- doc/man/nvme_set_features_rrl.2 | 2 +- doc/man/nvme_set_features_sanitize.2 | 2 +- doc/man/nvme_set_features_simple.2 | 2 +- doc/man/nvme_set_features_sw_progress.2 | 2 +- doc/man/nvme_set_features_temp_thresh.2 | 2 +- doc/man/nvme_set_features_timestamp.2 | 2 +- doc/man/nvme_set_features_volatile_wc.2 | 2 +- doc/man/nvme_set_features_write_atomic.2 | 2 +- doc/man/nvme_set_features_write_protect.2 | 2 +- doc/man/nvme_set_features_write_protect2.2 | 2 +- doc/man/nvme_set_keyring.2 | 2 +- doc/man/nvme_set_property.2 | 2 +- doc/man/nvme_set_root.2 | 2 +- doc/man/nvme_smart_crit.2 | 2 +- doc/man/nvme_smart_egcw.2 | 2 +- doc/man/nvme_smart_log.2 | 2 +- doc/man/nvme_st_code.2 | 8 +- doc/man/nvme_st_curr_op.2 | 2 +- doc/man/nvme_st_result.2 | 2 +- doc/man/nvme_st_valid_diag_info.2 | 2 +- doc/man/nvme_status_code.2 | 2 +- doc/man/nvme_status_code_type.2 | 2 +- doc/man/nvme_status_equals.2 | 2 +- doc/man/nvme_status_field.2 | 64 +- doc/man/nvme_status_get_type.2 | 2 +- doc/man/nvme_status_get_value.2 | 2 +- doc/man/nvme_status_result.2 | 2 +- doc/man/nvme_status_to_errno.2 | 2 +- doc/man/nvme_status_to_string.2 | 2 +- doc/man/nvme_status_type.2 | 2 +- doc/man/nvme_streams_directive_params.2 | 2 +- doc/man/nvme_streams_directive_status.2 | 2 +- doc/man/nvme_submit_admin_passthru.2 | 2 +- doc/man/nvme_submit_admin_passthru64.2 | 2 +- doc/man/nvme_submit_io_passthru.2 | 2 +- doc/man/nvme_submit_io_passthru64.2 | 2 +- doc/man/nvme_subsys_filter.2 | 2 +- doc/man/nvme_subsys_type.2 | 2 +- doc/man/nvme_subsystem_first_ctrl.2 | 2 +- doc/man/nvme_subsystem_first_ns.2 | 2 +- doc/man/nvme_subsystem_for_each_ctrl.2 | 2 +- doc/man/nvme_subsystem_for_each_ctrl_safe.2 | 2 +- doc/man/nvme_subsystem_for_each_ns.2 | 2 +- doc/man/nvme_subsystem_for_each_ns_safe.2 | 2 +- doc/man/nvme_subsystem_get_application.2 | 2 +- doc/man/nvme_subsystem_get_host.2 | 2 +- doc/man/nvme_subsystem_get_iopolicy.2 | 2 +- doc/man/nvme_subsystem_get_name.2 | 2 +- doc/man/nvme_subsystem_get_nqn.2 | 2 +- doc/man/nvme_subsystem_get_sysfs_dir.2 | 2 +- doc/man/nvme_subsystem_get_type.2 | 2 +- doc/man/nvme_subsystem_lookup_namespace.2 | 2 +- doc/man/nvme_subsystem_next_ctrl.2 | 2 +- doc/man/nvme_subsystem_next_ns.2 | 2 +- doc/man/nvme_subsystem_release_fds.2 | 2 +- doc/man/nvme_subsystem_reset.2 | 2 +- doc/man/nvme_subsystem_set_application.2 | 2 +- doc/man/nvme_supported_cap_config_list_log.2 | 2 +- doc/man/nvme_supported_log_pages.2 | 2 +- doc/man/nvme_telemetry_da.2 | 8 +- doc/man/nvme_telemetry_log.2 | 30 +- doc/man/nvme_thermal_exc_event.2 | 2 +- doc/man/nvme_time_stamp_change_event.2 | 2 +- doc/man/nvme_timestamp.2 | 2 +- doc/man/nvme_unit.2 | 2 +- doc/man/nvme_unlink_ctrl.2 | 2 +- doc/man/nvme_update_config.2 | 2 +- doc/man/nvme_update_key.2 | 2 +- doc/man/nvme_uring_cmd.2 | 2 +- doc/man/nvme_verify.2 | 2 +- doc/man/nvme_version.2 | 2 +- doc/man/nvme_virt_mgmt_act.2 | 2 +- doc/man/nvme_virt_mgmt_rt.2 | 2 +- doc/man/nvme_virtual_mgmt.2 | 2 +- doc/man/nvme_vs.2 | 2 +- doc/man/nvme_write.2 | 2 +- doc/man/nvme_write_uncorrectable.2 | 2 +- doc/man/nvme_write_zeros.2 | 2 +- doc/man/nvme_zns_append.2 | 2 +- doc/man/nvme_zns_changed_zone_log.2 | 2 +- doc/man/nvme_zns_desc.2 | 2 +- doc/man/nvme_zns_id_ctrl.2 | 2 +- doc/man/nvme_zns_id_ns.2 | 2 +- doc/man/nvme_zns_identify_ctrl.2 | 2 +- doc/man/nvme_zns_identify_ns.2 | 2 +- doc/man/nvme_zns_lbafe.2 | 2 +- doc/man/nvme_zns_mgmt_recv.2 | 2 +- doc/man/nvme_zns_mgmt_send.2 | 2 +- doc/man/nvme_zns_recv_action.2 | 2 +- doc/man/nvme_zns_report_options.2 | 2 +- doc/man/nvme_zns_report_zones.2 | 2 +- doc/man/nvme_zns_send_action.2 | 2 +- doc/man/nvme_zns_za.2 | 2 +- doc/man/nvme_zns_zs.2 | 2 +- doc/man/nvme_zns_zt.2 | 2 +- doc/man/nvme_zone_report.2 | 2 +- doc/man/nvmf_add_ctrl.2 | 2 +- doc/man/nvmf_addr_family.2 | 2 +- doc/man/nvmf_adrfam_str.2 | 2 +- doc/man/nvmf_cms_str.2 | 2 +- doc/man/nvmf_connect_ctrl.2 | 2 +- doc/man/nvmf_connect_data.2 | 2 +- doc/man/nvmf_connect_disc_entry.2 | 2 +- doc/man/nvmf_default_config.2 | 2 +- doc/man/nvmf_dim_data.2 | 2 +- doc/man/nvmf_dim_entfmt.2 | 2 +- doc/man/nvmf_dim_etype.2 | 2 +- doc/man/nvmf_dim_tas.2 | 2 +- doc/man/nvmf_disc_eflags.2 | 2 +- doc/man/nvmf_disc_log_entry.2 | 2 +- doc/man/nvmf_discovery_log.2 | 2 +- doc/man/nvmf_eflags_str.2 | 2 +- doc/man/nvmf_exat_len.2 | 2 +- doc/man/nvmf_exattype.2 | 2 +- doc/man/nvmf_ext_attr.2 | 2 +- doc/man/nvmf_ext_die.2 | 2 +- doc/man/nvmf_get_discovery_log.2 | 2 +- doc/man/nvmf_get_discovery_wargs.2 | 2 +- doc/man/nvmf_hostid_from_file.2 | 2 +- doc/man/nvmf_hostid_generate.2 | 2 +- doc/man/nvmf_hostnqn_from_file.2 | 2 +- doc/man/nvmf_hostnqn_generate.2 | 2 +- doc/man/nvmf_hostnqn_generate_from_hostid.2 | 2 +- doc/man/nvmf_log_discovery_lid_support.2 | 2 +- doc/man/nvmf_log_discovery_lsp.2 | 2 +- doc/man/nvmf_prtype_str.2 | 2 +- doc/man/nvmf_qptype_str.2 | 2 +- doc/man/nvmf_rdma_cms.2 | 2 +- doc/man/nvmf_rdma_prtype.2 | 2 +- doc/man/nvmf_rdma_qptype.2 | 2 +- doc/man/nvmf_register_ctrl.2 | 2 +- doc/man/nvmf_sectype_str.2 | 2 +- doc/man/nvmf_subtype_str.2 | 2 +- doc/man/nvmf_tcp_sectype.2 | 2 +- doc/man/nvmf_treq.2 | 2 +- doc/man/nvmf_treq_str.2 | 2 +- doc/man/nvmf_trtype.2 | 2 +- doc/man/nvmf_trtype_str.2 | 2 +- doc/man/nvmf_update_config.2 | 2 +- doc/rst/fabrics.rst | 6 +- doc/rst/ioctl.rst | 367 ++- doc/rst/linux.rst | 25 +- doc/rst/mi.rst | 376 ++- doc/rst/nbft.rst | 62 +- doc/rst/tree.rst | 56 +- doc/rst/types.rst | 2577 ++++++++++++++--- doc/rst/util.rst | 8 +- examples/mi-conf.c | 9 +- examples/telemetry-listen.c | 4 +- internal/meson.build | 8 +- libnvme.spec.in | 2 + libnvme/meson.build | 6 +- libnvme/nvme.i | 224 +- meson.build | 64 +- meson_options.txt | 1 + pyproject.toml | 2 +- src/libnvme-mi.map | 5 + src/libnvme.map | 11 + src/meson.build | 4 + src/nvme/api-types.h | 137 + src/nvme/ioctl.c | 313 +- src/nvme/ioctl.h | 320 +- src/nvme/linux.c | 149 +- src/nvme/linux.h | 14 - src/nvme/mi-mctp.c | 4 +- src/nvme/mi.c | 69 +- src/nvme/mi.h | 313 +- src/nvme/types.h | 1247 +++++++- src/nvme/util.c | 14 + src/nvme/util.h | 12 +- subprojects/json-c.wrap | 18 +- subprojects/openssl.wrap | 10 +- test/ioctl/meson.build | 16 +- test/ioctl/mock.c | 31 +- test/meson.build | 11 + test/mi.c | 45 +- test/misc.cc | 22 + 1005 files changed, 9469 insertions(+), 1830 deletions(-) create mode 100644 doc/man/nvme_ave_discover_log.2 create mode 100644 doc/man/nvme_ave_discover_log_entry.2 create mode 100644 doc/man/nvme_ave_tr_record.2 create mode 100644 doc/man/nvme_dispersed_ns_participating_nss_log.2 create mode 100644 doc/man/nvme_err_status_field.2 copy doc/man/{nvme_get_log_lba_status.2 => nvme_get_log_ave_discover.2} (50%) copy doc/man/{nvme_get_log_lba_status.2 => nvme_get_log_changed_alloc_ns_list.2} (50%) create mode 100644 doc/man/nvme_get_log_create_telemetry_host_mcda.2 create mode 100644 doc/man/nvme_get_log_dispersed_ns_participating_nss.2 create mode 100644 doc/man/nvme_get_log_host_discover.2 create mode 100644 doc/man/nvme_get_log_mgmt_addr_list.2 copy doc/man/{nvme_get_log_lba_status.2 => nvme_get_log_pull_model_ddc_req.2} (50%) create mode 100644 doc/man/nvme_get_log_reachability_associations.2 create mode 100644 doc/man/nvme_get_log_reachability_groups.2 create mode 100644 doc/man/nvme_get_log_rotational_media_info.2 create mode 100644 doc/man/nvme_host_discover_log.2 create mode 100644 doc/man/nvme_host_ext_discover_log.2 create mode 100644 doc/man/nvme_id_ctrl_bpcap.2 create mode 100644 doc/man/nvme_id_ctrl_crcap.2 create mode 100644 doc/man/nvme_id_ctrl_kpioc.2 create mode 100644 doc/man/nvme_id_ctrl_nvm_lbamqf.2 create mode 100644 doc/man/nvme_id_ctrl_plsi.2 create mode 100644 doc/man/nvme_id_ctrl_trattr.2 create mode 100644 doc/man/nvme_id_iocs_iocsc.2 create mode 100644 doc/man/nvme_lm_cdq.2 create mode 100644 doc/man/nvme_lm_cdq_fields.2 create mode 100644 doc/man/nvme_lm_controller_state_data.2 create mode 100644 doc/man/nvme_lm_controller_state_data_header.2 create mode 100644 doc/man/nvme_lm_ctrl_data_queue_fid.2 create mode 100644 doc/man/nvme_lm_ctrl_data_queue_fid_data.2 create mode 100644 doc/man/nvme_lm_io_completion_queue_data.2 create mode 100644 doc/man/nvme_lm_io_submission_queue_data.2 create mode 100644 doc/man/nvme_lm_migration_recv_fields.2 create mode 100644 doc/man/nvme_lm_migration_send.2 create mode 100644 doc/man/nvme_lm_migration_send_fields.2 create mode 100644 doc/man/nvme_lm_nvme_controller_state_data.2 create mode 100644 doc/man/nvme_lm_nvme_controller_state_data_header.2 create mode 100644 doc/man/nvme_lm_queue_attributes.2 create mode 100644 doc/man/nvme_lm_track_send.2 create mode 100644 doc/man/nvme_lm_track_send_fields.2 create mode 100644 doc/man/nvme_mgmt_addr_desc.2 create mode 100644 doc/man/nvme_mgmt_addr_list_log.2 copy doc/man/{nvme_mi_admin_get_nsid_log.2 => nvme_mi_admin_get_endgid_log.2} (65%) create mode 100644 doc/man/nvme_mi_admin_get_log_ave_discover.2 create mode 100644 doc/man/nvme_mi_admin_get_log_changed_alloc_ns_list.2 create mode 100644 doc/man/nvme_mi_admin_get_log_create_telemetry_host_mcda.2 create mode 100644 doc/man/nvme_mi_admin_get_log_dispersed_ns_participating_nss.2 create mode 100644 doc/man/nvme_mi_admin_get_log_host_discover.2 create mode 100644 doc/man/nvme_mi_admin_get_log_mgmt_addr_list.2 create mode 100644 doc/man/nvme_mi_admin_get_log_pull_model_ddc_req.2 create mode 100644 doc/man/nvme_mi_admin_get_log_reachability_associations.2 create mode 100644 doc/man/nvme_mi_admin_get_log_reachability_groups.2 create mode 100644 doc/man/nvme_mi_admin_get_log_rotational_media_info.2 create mode 100644 doc/man/nvme_mi_mi_xfer.2 create mode 100644 doc/man/nvme_pull_model_ddc_req_log.2 create mode 100644 doc/man/nvme_reachability_association_desc.2 create mode 100644 doc/man/nvme_reachability_associations_log.2 create mode 100644 doc/man/nvme_reachability_group_desc.2 create mode 100644 doc/man/nvme_reachability_groups_log.2 create mode 100644 doc/man/nvme_rotational_media_info_log.2 create mode 100644 test/misc.cc diff --git a/.checkpatch.conf b/.checkpatch.conf index 5541a56..e7ea2b1 100644 --- a/.checkpatch.conf +++ b/.checkpatch.conf @@ -4,7 +4,7 @@ # This isn't actually a Linux kernel tree --no-tree ---max-line-length=120 +--max-line-length=100 --ignore EMAIL_SUBJECT @@ -22,3 +22,6 @@ # Avoid "Does not appear to be a unified-diff format patch" message --ignore NOT_UNIFIED_DIFF + +# Do not warn for __attribute__((XXX)) is used +--ignore PREFER_DEFINED_ATTRIBUTE_MACRO diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index b0cf58c..752f474 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -17,7 +17,7 @@ jobs: - name: build run: | scripts/build.sh coverage - - uses: codecov/codecov-action@v4 + - uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: true diff --git a/.github/workflows/release-python.yml b/.github/workflows/release-python.yml index d967918..9ae58a0 100644 --- a/.github/workflows/release-python.yml +++ b/.github/workflows/release-python.yml @@ -42,7 +42,7 @@ jobs: path: dist - name: Publish package to TestPyPI - uses: pypa/gh-action-pypi-publish@release/v1.5 + uses: pypa/gh-action-pypi-publish@release/v1.12 with: user: __token__ password: ${{ secrets.TEST_PYPI_API_TOKEN }} @@ -66,7 +66,7 @@ jobs: name: artifact path: dist - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@release/v1.5 + uses: pypa/gh-action-pypi-publish@release/v1.12 if: steps.check-tag.outputs.match == 'true' with: user: __token__ diff --git a/Makefile b/Makefile index 768338a..a7c3268 100644 --- a/Makefile +++ b/Makefile @@ -9,38 +9,52 @@ NAME := libnvme .DEFAULT_GOAL := ${NAME} BUILD-DIR := .build +.PHONY: update-subprojects +update-subprojects: + meson subprojects update + ${BUILD-DIR}: - meson $@ + meson setup $@ @echo "Configuration located in: $@" @echo "-------------------------------------------------------" .PHONY: ${NAME} ${NAME}: ${BUILD-DIR} - ninja -C ${BUILD-DIR} + meson compile -C ${BUILD-DIR} .PHONY: clean clean: ifneq ("$(wildcard ${BUILD-DIR})","") - ninja -C ${BUILD-DIR} -t $@ + meson compile --clean -C ${BUILD-DIR} endif .PHONY: purge purge: ifneq ("$(wildcard ${BUILD-DIR})","") rm -rf ${BUILD-DIR} + meson subprojects purge --confirm endif -.PHONY: install dist -install dist: ${BUILD-DIR} - cd ${BUILD-DIR} && meson $@ +.PHONY: install +install: ${NAME} + meson install -C ${BUILD-DIR} --skip-subprojects .PHONY: uninstall uninstall: cd ${BUILD-DIR} && meson --internal uninstall +.PHONY: dist +dist: ${NAME} + meson dist -C ${BUILD-DIR} --formats gztar + .PHONY: test -test: ${BUILD-DIR} - ninja -C ${BUILD-DIR} $@ +test: ${NAME} + meson test -C ${BUILD-DIR} + +# Test strictly libnvme (do not run tests on all the subprojects) +.PHONY: test-strict +test-strict: ${NAME} + meson test -C ${BUILD-DIR} --suite libnvme .PHONY: rpm rpm: ${BUILD-DIR} diff --git a/README.md b/README.md index 758d5d5..e291566 100644 --- a/README.md +++ b/README.md @@ -155,6 +155,7 @@ A few build options can be specified on the command line when invoking meson. | libdbus | auto, enabled, [disabled] | Enables D-Bus dependent features (libnvme-mi: End point discovery), adds build dependency on libdbus | | json-c | [auto], enabled, disabled | (recommended) Enables JSON-C dependend features (e.g. config.json parsing), adds build depdency on json-c | | keyutils | [auto], enabled, disabled | Enables keyutils dependent features (e.g. authentication), adds build dependency on keyutils | +| liburing | [auto], enabled, disabled | Enables liburing dependent features (e.g. get log page by uring cmd), adds build depdency on liburing | See the full configuration options with diff --git a/doc/man/nbft_control.2 b/doc/man/nbft_control.2 index 0bd8525..202db41 100644 --- a/doc/man/nbft_control.2 +++ b/doc/man/nbft_control.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_control" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_control" "March 2025" "API Manual" LINUX .SH NAME struct nbft_control \- NBFT Table - Control Descriptor (Figure 8) .SH SYNOPSIS diff --git a/doc/man/nbft_control_flags.2 b/doc/man/nbft_control_flags.2 index 4e4e1fc..e5cba3b 100644 --- a/doc/man/nbft_control_flags.2 +++ b/doc/man/nbft_control_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_control_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_control_flags" "March 2025" "API Manual" LINUX .SH NAME enum nbft_control_flags \- Control Descriptor Flags .SH SYNOPSIS diff --git a/doc/man/nbft_desc_type.2 b/doc/man/nbft_desc_type.2 index d9ff7c3..672f20a 100644 --- a/doc/man/nbft_desc_type.2 +++ b/doc/man/nbft_desc_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_desc_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_desc_type" "March 2025" "API Manual" LINUX .SH NAME enum nbft_desc_type \- NBFT Elements - Descriptor Types (Figure 5) .SH SYNOPSIS diff --git a/doc/man/nbft_discovery.2 b/doc/man/nbft_discovery.2 index f8b7434..43a78cd 100644 --- a/doc/man/nbft_discovery.2 +++ b/doc/man/nbft_discovery.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_discovery" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_discovery" "March 2025" "API Manual" LINUX .SH NAME struct nbft_discovery \- Discovery Descriptor (Figure 24) .SH SYNOPSIS diff --git a/doc/man/nbft_discovery_flags.2 b/doc/man/nbft_discovery_flags.2 index bd2bef6..c125b37 100644 --- a/doc/man/nbft_discovery_flags.2 +++ b/doc/man/nbft_discovery_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_discovery_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_discovery_flags" "March 2025" "API Manual" LINUX .SH NAME enum nbft_discovery_flags \- Discovery Descriptor Flags .SH SYNOPSIS diff --git a/doc/man/nbft_header.2 b/doc/man/nbft_header.2 index 853c9d7..9e7dd82 100644 --- a/doc/man/nbft_header.2 +++ b/doc/man/nbft_header.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_header" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_header" "March 2025" "API Manual" LINUX .SH NAME struct nbft_header \- NBFT Table - Header (Figure 8) .SH SYNOPSIS diff --git a/doc/man/nbft_heap_obj.2 b/doc/man/nbft_heap_obj.2 index c447de6..aee99d6 100644 --- a/doc/man/nbft_heap_obj.2 +++ b/doc/man/nbft_heap_obj.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_heap_obj" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_heap_obj" "March 2025" "API Manual" LINUX .SH NAME struct nbft_heap_obj \- NBFT Header Driver Signature .SH SYNOPSIS diff --git a/doc/man/nbft_hfi.2 b/doc/man/nbft_hfi.2 index dc6ff99..0abc2f8 100644 --- a/doc/man/nbft_hfi.2 +++ b/doc/man/nbft_hfi.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_hfi" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_hfi" "March 2025" "API Manual" LINUX .SH NAME struct nbft_hfi \- Host Fabric Interface (HFI) Descriptor (Figure 11) .SH SYNOPSIS diff --git a/doc/man/nbft_hfi_flags.2 b/doc/man/nbft_hfi_flags.2 index f09c7e6..68b4733 100644 --- a/doc/man/nbft_hfi_flags.2 +++ b/doc/man/nbft_hfi_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_hfi_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_hfi_flags" "March 2025" "API Manual" LINUX .SH NAME enum nbft_hfi_flags \- HFI Descriptor Flags .SH SYNOPSIS diff --git a/doc/man/nbft_hfi_info_tcp.2 b/doc/man/nbft_hfi_info_tcp.2 index a366d89..8e3f845 100644 --- a/doc/man/nbft_hfi_info_tcp.2 +++ b/doc/man/nbft_hfi_info_tcp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_hfi_info_tcp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_hfi_info_tcp" "March 2025" "API Manual" LINUX .SH NAME struct nbft_hfi_info_tcp \- HFI Transport Info Descriptor - NVMe/TCP (Figure 13) .SH SYNOPSIS diff --git a/doc/man/nbft_hfi_info_tcp_flags.2 b/doc/man/nbft_hfi_info_tcp_flags.2 index 832d933..089e65d 100644 --- a/doc/man/nbft_hfi_info_tcp_flags.2 +++ b/doc/man/nbft_hfi_info_tcp_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_hfi_info_tcp_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_hfi_info_tcp_flags" "March 2025" "API Manual" LINUX .SH NAME enum nbft_hfi_info_tcp_flags \- HFI Transport Flags .SH SYNOPSIS diff --git a/doc/man/nbft_host.2 b/doc/man/nbft_host.2 index 5f92f5f..2284a81 100644 --- a/doc/man/nbft_host.2 +++ b/doc/man/nbft_host.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_host" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_host" "March 2025" "API Manual" LINUX .SH NAME struct nbft_host \- Host Descriptor (Figure 9) .SH SYNOPSIS diff --git a/doc/man/nbft_host_flags.2 b/doc/man/nbft_host_flags.2 index ee94884..f3cedb1 100644 --- a/doc/man/nbft_host_flags.2 +++ b/doc/man/nbft_host_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_host_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_host_flags" "March 2025" "API Manual" LINUX .SH NAME enum nbft_host_flags \- Host Flags .SH SYNOPSIS diff --git a/doc/man/nbft_info.2 b/doc/man/nbft_info.2 index 4af6774..079d7e6 100644 --- a/doc/man/nbft_info.2 +++ b/doc/man/nbft_info.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_info" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_info" "March 2025" "API Manual" LINUX .SH NAME struct nbft_info \- The parsed NBFT table data. .SH SYNOPSIS diff --git a/doc/man/nbft_info_discovery.2 b/doc/man/nbft_info_discovery.2 index 9816ef7..5e17169 100644 --- a/doc/man/nbft_info_discovery.2 +++ b/doc/man/nbft_info_discovery.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_info_discovery" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_info_discovery" "March 2025" "API Manual" LINUX .SH NAME struct nbft_info_discovery \- Discovery Descriptor .SH SYNOPSIS diff --git a/doc/man/nbft_info_hfi.2 b/doc/man/nbft_info_hfi.2 index 93a05a8..a76f268 100644 --- a/doc/man/nbft_info_hfi.2 +++ b/doc/man/nbft_info_hfi.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_info_hfi" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_info_hfi" "March 2025" "API Manual" LINUX .SH NAME struct nbft_info_hfi \- Host Fabric Interface (HFI) Descriptor .SH SYNOPSIS diff --git a/doc/man/nbft_info_hfi_info_tcp.2 b/doc/man/nbft_info_hfi_info_tcp.2 index 630dd18..5d3a26f 100644 --- a/doc/man/nbft_info_hfi_info_tcp.2 +++ b/doc/man/nbft_info_hfi_info_tcp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_info_hfi_info_tcp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_info_hfi_info_tcp" "March 2025" "API Manual" LINUX .SH NAME struct nbft_info_hfi_info_tcp \- HFI Transport Info Descriptor - NVMe/TCP .SH SYNOPSIS diff --git a/doc/man/nbft_info_host.2 b/doc/man/nbft_info_host.2 index 18ed5fa..c6bf24c 100644 --- a/doc/man/nbft_info_host.2 +++ b/doc/man/nbft_info_host.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_info_host" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_info_host" "March 2025" "API Manual" LINUX .SH NAME struct nbft_info_host \- Host Descriptor .SH SYNOPSIS diff --git a/doc/man/nbft_info_nid_type.2 b/doc/man/nbft_info_nid_type.2 index 2acbe3a..76d0cef 100644 --- a/doc/man/nbft_info_nid_type.2 +++ b/doc/man/nbft_info_nid_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_info_nid_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_info_nid_type" "March 2025" "API Manual" LINUX .SH NAME enum nbft_info_nid_type \- Namespace Identifier Type (NIDT) .SH SYNOPSIS diff --git a/doc/man/nbft_info_primary_admin_host_flag.2 b/doc/man/nbft_info_primary_admin_host_flag.2 index 8e0ff52..520d5e5 100644 --- a/doc/man/nbft_info_primary_admin_host_flag.2 +++ b/doc/man/nbft_info_primary_admin_host_flag.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_info_primary_admin_host_flag" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_info_primary_admin_host_flag" "March 2025" "API Manual" LINUX .SH NAME enum nbft_info_primary_admin_host_flag \- Primary Administrative Host Descriptor Flags .SH SYNOPSIS diff --git a/doc/man/nbft_info_security.2 b/doc/man/nbft_info_security.2 index 906a6c9..7205e60 100644 --- a/doc/man/nbft_info_security.2 +++ b/doc/man/nbft_info_security.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_info_security" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_info_security" "March 2025" "API Manual" LINUX .SH NAME struct nbft_info_security \- Security Profile Descriptor .SH SYNOPSIS diff --git a/doc/man/nbft_info_subsystem_ns.2 b/doc/man/nbft_info_subsystem_ns.2 index 8ad9106..0900287 100644 --- a/doc/man/nbft_info_subsystem_ns.2 +++ b/doc/man/nbft_info_subsystem_ns.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_info_subsystem_ns" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_info_subsystem_ns" "March 2025" "API Manual" LINUX .SH NAME struct nbft_info_subsystem_ns \- Subsystem Namespace (SSNS) info .SH SYNOPSIS diff --git a/doc/man/nbft_security.2 b/doc/man/nbft_security.2 index e680076..cecc663 100644 --- a/doc/man/nbft_security.2 +++ b/doc/man/nbft_security.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_security" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_security" "March 2025" "API Manual" LINUX .SH NAME struct nbft_security \- Security Profile Descriptor (Figure 21) .SH SYNOPSIS diff --git a/doc/man/nbft_security_flags.2 b/doc/man/nbft_security_flags.2 index 17fec41..2f03e83 100644 --- a/doc/man/nbft_security_flags.2 +++ b/doc/man/nbft_security_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_security_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_security_flags" "March 2025" "API Manual" LINUX .SH NAME enum nbft_security_flags \- Security Profile Descriptor Flags (Figure 22) .SH SYNOPSIS diff --git a/doc/man/nbft_security_secret_type.2 b/doc/man/nbft_security_secret_type.2 index 906c5c4..a22b313 100644 --- a/doc/man/nbft_security_secret_type.2 +++ b/doc/man/nbft_security_secret_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_security_secret_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_security_secret_type" "March 2025" "API Manual" LINUX .SH NAME enum nbft_security_secret_type \- Security Profile Descriptor Secret Type .SH SYNOPSIS diff --git a/doc/man/nbft_ssns.2 b/doc/man/nbft_ssns.2 index 437d59e..a8eeb21 100644 --- a/doc/man/nbft_ssns.2 +++ b/doc/man/nbft_ssns.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_ssns" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_ssns" "March 2025" "API Manual" LINUX .SH NAME struct nbft_ssns \- Subsystem Namespace (SSNS) Descriptor (Figure 15) .SH SYNOPSIS diff --git a/doc/man/nbft_ssns_ext_info.2 b/doc/man/nbft_ssns_ext_info.2 index d870ecc..35e4206 100644 --- a/doc/man/nbft_ssns_ext_info.2 +++ b/doc/man/nbft_ssns_ext_info.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nbft_ssns_ext_info" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nbft_ssns_ext_info" "March 2025" "API Manual" LINUX .SH NAME struct nbft_ssns_ext_info \- Subsystem and Namespace Extended Information Descriptor (Figure 19) .SH SYNOPSIS diff --git a/doc/man/nbft_ssns_ext_info_flags.2 b/doc/man/nbft_ssns_ext_info_flags.2 index e42ddac..1319515 100644 --- a/doc/man/nbft_ssns_ext_info_flags.2 +++ b/doc/man/nbft_ssns_ext_info_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_ssns_ext_info_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_ssns_ext_info_flags" "March 2025" "API Manual" LINUX .SH NAME enum nbft_ssns_ext_info_flags \- Subsystem and Namespace Extended Information Descriptor Flags .SH SYNOPSIS diff --git a/doc/man/nbft_ssns_flags.2 b/doc/man/nbft_ssns_flags.2 index 8d03aef..845b431 100644 --- a/doc/man/nbft_ssns_flags.2 +++ b/doc/man/nbft_ssns_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_ssns_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_ssns_flags" "March 2025" "API Manual" LINUX .SH NAME enum nbft_ssns_flags \- Subsystem and Namespace Specific Flags Field (Figure 16) .SH SYNOPSIS diff --git a/doc/man/nbft_ssns_trflags.2 b/doc/man/nbft_ssns_trflags.2 index 9b52bf2..eddc3b9 100644 --- a/doc/man/nbft_ssns_trflags.2 +++ b/doc/man/nbft_ssns_trflags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_ssns_trflags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_ssns_trflags" "March 2025" "API Manual" LINUX .SH NAME enum nbft_ssns_trflags \- SSNS Transport Specific Flags Field (Figure 17) .SH SYNOPSIS diff --git a/doc/man/nbft_trtype.2 b/doc/man/nbft_trtype.2 index e9a4cb1..6d452b5 100644 --- a/doc/man/nbft_trtype.2 +++ b/doc/man/nbft_trtype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nbft_trtype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nbft_trtype" "March 2025" "API Manual" LINUX .SH NAME enum nbft_trtype \- NBFT Interface Transport Types (Figure 7) .SH SYNOPSIS diff --git a/doc/man/nvme_acq.2 b/doc/man/nvme_acq.2 index 550a4fd..e13431e 100644 --- a/doc/man/nvme_acq.2 +++ b/doc/man/nvme_acq.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_acq" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_acq" "March 2025" "API Manual" LINUX .SH NAME enum nvme_acq \- This field indicates the admin completion queue base address .SH SYNOPSIS diff --git a/doc/man/nvme_admin_opcode.2 b/doc/man/nvme_admin_opcode.2 index fb38d60..0ea609e 100644 --- a/doc/man/nvme_admin_opcode.2 +++ b/doc/man/nvme_admin_opcode.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_admin_opcode" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_admin_opcode" "March 2025" "API Manual" LINUX .SH NAME enum nvme_admin_opcode \- Known NVMe admin opcodes .SH SYNOPSIS @@ -112,10 +112,54 @@ enum nvme_admin_opcode { , .br .br +.BI " nvme_admin_clear_export_nvm_res" +, +.br +.br .BI " nvme_admin_fabric_zoning_send" , .br .br +.BI " nvme_admin_create_export_nvms" +, +.br +.br +.BI " nvme_admin_manage_export_nvms" +, +.br +.br +.BI " nvme_admin_manage_export_ns" +, +.br +.br +.BI " nvme_admin_manage_export_port" +, +.br +.br +.BI " nvme_admin_send_disc_log_page" +, +.br +.br +.BI " nvme_admin_track_send" +, +.br +.br +.BI " nvme_admin_track_receive" +, +.br +.br +.BI " nvme_admin_migration_send" +, +.br +.br +.BI " nvme_admin_migration_receive" +, +.br +.br +.BI " nvme_admin_ctrl_data_queue" +, +.br +.br .BI " nvme_admin_dbbuf" , .br @@ -140,7 +184,19 @@ enum nvme_admin_opcode { , .br .br +.BI " nvme_admin_load_program" +, +.br +.br .BI " nvme_admin_get_lba_status" +, +.br +.br +.BI " nvme_admin_program_act_mgmt" +, +.br +.br +.BI " nvme_admin_mem_range_set_mgmt" }; .SH Constants @@ -198,8 +254,30 @@ Fabric Zoning Receive Lockdown .IP "nvme_admin_fabric_zoning_lookup" 12 Fabric Zoning Lookup +.IP "nvme_admin_clear_export_nvm_res" 12 +Clear Exported NVM Resource Configuration .IP "nvme_admin_fabric_zoning_send" 12 Fabric Zoning Send +.IP "nvme_admin_create_export_nvms" 12 +Create Exported NVM Subsystem +.IP "nvme_admin_manage_export_nvms" 12 +Manage Exported NVM Subsystem +.IP "nvme_admin_manage_export_ns" 12 +Manage Exported Namespace +.IP "nvme_admin_manage_export_port" 12 +Manage Exported Port +.IP "nvme_admin_send_disc_log_page" 12 +Send Discovery Log Page +.IP "nvme_admin_track_send" 12 +Track Send +.IP "nvme_admin_track_receive" 12 +Track Receive +.IP "nvme_admin_migration_send" 12 +Migration Send +.IP "nvme_admin_migration_receive" 12 +Migration Receive +.IP "nvme_admin_ctrl_data_queue" 12 +Controller Data Queue .IP "nvme_admin_dbbuf" 12 Doorbell Buffer Config .IP "nvme_admin_fabrics" 12 @@ -212,5 +290,11 @@ Security Send Security Receive .IP "nvme_admin_sanitize_nvm" 12 Sanitize +.IP "nvme_admin_load_program" 12 +Load Program .IP "nvme_admin_get_lba_status" 12 Get LBA Status +.IP "nvme_admin_program_act_mgmt" 12 +Program Activation Management +.IP "nvme_admin_mem_range_set_mgmt" 12 +Memory Range Set Management diff --git a/doc/man/nvme_admin_passthru.2 b/doc/man/nvme_admin_passthru.2 index 71191ad..56451c0 100644 --- a/doc/man/nvme_admin_passthru.2 +++ b/doc/man/nvme_admin_passthru.2 @@ -1,4 +1,4 @@ -.TH "nvme_admin_passthru" 9 "nvme_admin_passthru" "November 2024" "libnvme API manual" LINUX +.TH "nvme_admin_passthru" 9 "nvme_admin_passthru" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_admin_passthru \- Submit an nvme passthrough command .SH SYNOPSIS diff --git a/doc/man/nvme_admin_passthru64.2 b/doc/man/nvme_admin_passthru64.2 index 1186f3f..7c9a915 100644 --- a/doc/man/nvme_admin_passthru64.2 +++ b/doc/man/nvme_admin_passthru64.2 @@ -1,4 +1,4 @@ -.TH "nvme_admin_passthru64" 9 "nvme_admin_passthru64" "November 2024" "libnvme API manual" LINUX +.TH "nvme_admin_passthru64" 9 "nvme_admin_passthru64" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_admin_passthru64 \- Submit a 64-bit nvme passthrough command .SH SYNOPSIS diff --git a/doc/man/nvme_ae_info_css_nvm.2 b/doc/man/nvme_ae_info_css_nvm.2 index 70d9fa3..f0021ef 100644 --- a/doc/man/nvme_ae_info_css_nvm.2 +++ b/doc/man/nvme_ae_info_css_nvm.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ae_info_css_nvm" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ae_info_css_nvm" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ae_info_css_nvm \- Asynchronous Event Information - I/O Command Specific Status .SH SYNOPSIS diff --git a/doc/man/nvme_ae_info_error.2 b/doc/man/nvme_ae_info_error.2 index f8eab0a..36319ed 100644 --- a/doc/man/nvme_ae_info_error.2 +++ b/doc/man/nvme_ae_info_error.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ae_info_error" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ae_info_error" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ae_info_error \- Asynchronous Event Information - Error Status .SH SYNOPSIS diff --git a/doc/man/nvme_ae_info_notice.2 b/doc/man/nvme_ae_info_notice.2 index ecae0b3..91da8a0 100644 --- a/doc/man/nvme_ae_info_notice.2 +++ b/doc/man/nvme_ae_info_notice.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ae_info_notice" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ae_info_notice" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ae_info_notice \- Asynchronous Event Information - Notice .SH SYNOPSIS diff --git a/doc/man/nvme_ae_info_smart.2 b/doc/man/nvme_ae_info_smart.2 index d263a2d..303db7c 100644 --- a/doc/man/nvme_ae_info_smart.2 +++ b/doc/man/nvme_ae_info_smart.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ae_info_smart" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ae_info_smart" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ae_info_smart \- Asynchronous Event Information - SMART / Health Status .SH SYNOPSIS diff --git a/doc/man/nvme_ae_type.2 b/doc/man/nvme_ae_type.2 index 246f0b2..7b628e1 100644 --- a/doc/man/nvme_ae_type.2 +++ b/doc/man/nvme_ae_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ae_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ae_type" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ae_type \- Asynchronous Event Type .SH SYNOPSIS @@ -16,6 +16,14 @@ enum nvme_ae_type { , .br .br +.BI " NVME_AER_IMMEDIATE" +, +.br +.br +.BI " NVME_AER_ONESHOT" +, +.br +.br .BI " NVME_AER_CSS" , .br @@ -30,6 +38,10 @@ Error event SMART / Health Status event .IP "NVME_AER_NOTICE" 12 Notice event +.IP "NVME_AER_IMMEDIATE" 12 +Immediate +.IP "NVME_AER_ONESHOT" 12 +One-Shot .IP "NVME_AER_CSS" 12 NVM Command Set Specific events .IP "NVME_AER_VS" 12 diff --git a/doc/man/nvme_aggregate_endurance_group_event.2 b/doc/man/nvme_aggregate_endurance_group_event.2 index c034a30..54f1df7 100644 --- a/doc/man/nvme_aggregate_endurance_group_event.2 +++ b/doc/man/nvme_aggregate_endurance_group_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_aggregate_endurance_group_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_aggregate_endurance_group_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_aggregate_endurance_group_event \- Endurance Group Event Aggregate .SH SYNOPSIS diff --git a/doc/man/nvme_aggregate_predictable_lat_event.2 b/doc/man/nvme_aggregate_predictable_lat_event.2 index 5793746..3e623e3 100644 --- a/doc/man/nvme_aggregate_predictable_lat_event.2 +++ b/doc/man/nvme_aggregate_predictable_lat_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_aggregate_predictable_lat_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_aggregate_predictable_lat_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_aggregate_predictable_lat_event \- Predictable Latency Event Aggregate Log Page .SH SYNOPSIS diff --git a/doc/man/nvme_ana_group_desc.2 b/doc/man/nvme_ana_group_desc.2 index 0487164..d0f24e9 100644 --- a/doc/man/nvme_ana_group_desc.2 +++ b/doc/man/nvme_ana_group_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_ana_group_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_ana_group_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_ana_group_desc \- ANA Group Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_ana_log.2 b/doc/man/nvme_ana_log.2 index 4516e78..13b97be 100644 --- a/doc/man/nvme_ana_log.2 +++ b/doc/man/nvme_ana_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_ana_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_ana_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_ana_log \- Asymmetric Namespace Access Log .SH SYNOPSIS diff --git a/doc/man/nvme_ana_state.2 b/doc/man/nvme_ana_state.2 index 1a9e4fc..d8b6809 100644 --- a/doc/man/nvme_ana_state.2 +++ b/doc/man/nvme_ana_state.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ana_state" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ana_state" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ana_state \- ANA Group Descriptor - Asymmetric Namespace Access State .SH SYNOPSIS diff --git a/doc/man/nvme_apst_entry.2 b/doc/man/nvme_apst_entry.2 index dbb9ddb..1537c8d 100644 --- a/doc/man/nvme_apst_entry.2 +++ b/doc/man/nvme_apst_entry.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_apst_entry" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_apst_entry" "March 2025" "API Manual" LINUX .SH NAME enum nvme_apst_entry \- Autonomous Power State Transition .SH SYNOPSIS diff --git a/doc/man/nvme_aqa.2 b/doc/man/nvme_aqa.2 index 1fb5b6c..9c3e14f 100644 --- a/doc/man/nvme_aqa.2 +++ b/doc/man/nvme_aqa.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_aqa" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_aqa" "March 2025" "API Manual" LINUX .SH NAME enum nvme_aqa \- This field indicates the admin queue attributes .SH SYNOPSIS diff --git a/doc/man/nvme_asq.2 b/doc/man/nvme_asq.2 index c2d167e..ec8feac 100644 --- a/doc/man/nvme_asq.2 +++ b/doc/man/nvme_asq.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_asq" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_asq" "March 2025" "API Manual" LINUX .SH NAME enum nvme_asq \- This field indicates the admin submission queue base address .SH SYNOPSIS diff --git a/doc/man/nvme_ave_discover_log.2 b/doc/man/nvme_ave_discover_log.2 new file mode 100644 index 0000000..b668e0f --- /dev/null +++ b/doc/man/nvme_ave_discover_log.2 @@ -0,0 +1,39 @@ +.TH "libnvme" 9 "struct nvme_ave_discover_log" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_ave_discover_log \- AVE Discovery Log +.SH SYNOPSIS +struct nvme_ave_discover_log { +.br +.BI " __le64 genctr;" +.br +.BI " __le64 numrec;" +.br +.BI " __le16 recfmt;" +.br +.BI " __u8 rsvd18[2];" +.br +.BI " __le32 tadlpl;" +.br +.BI " __u8 rsvd24[1000];" +.br +.BI " struct nvme_ave_discover_log_entry adlpe[];" +.br +.BI " +}; +.br + +.SH Members +.IP "genctr" 12 +Generation Counter +.IP "numrec" 12 +Number of Records +.IP "recfmt" 12 +Record Format +.IP "rsvd18" 12 +Reserved +.IP "tadlpl" 12 +Total AVE Discovery Log Page Length +.IP "rsvd24" 12 +Reserved +.IP "adlpe" 12 +AVE Discovery Log Page Entry List diff --git a/doc/man/nvme_ave_discover_log_entry.2 b/doc/man/nvme_ave_discover_log_entry.2 new file mode 100644 index 0000000..9c945cd --- /dev/null +++ b/doc/man/nvme_ave_discover_log_entry.2 @@ -0,0 +1,31 @@ +.TH "libnvme" 9 "struct nvme_ave_discover_log_entry" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_ave_discover_log_entry \- AVE Discovery Log Entry +.SH SYNOPSIS +struct nvme_ave_discover_log_entry { +.br +.BI " __le32 tel;" +.br +.BI " char avenqn[224];" +.br +.BI " __u8 numatr;" +.br +.BI " __u8 rsvd229[3];" +.br +.BI " struct nvme_ave_tr_record atr[];" +.br +.BI " +}; +.br + +.SH Members +.IP "tel" 12 +Total Entry Length +.IP "avenqn" 12 +AVE NQN +.IP "numatr" 12 +Number of AVE Transport Records +.IP "rsvd229" 12 +Reserved +.IP "atr" 12 +AVE Transport Record List diff --git a/doc/man/nvme_ave_tr_record.2 b/doc/man/nvme_ave_tr_record.2 new file mode 100644 index 0000000..43f7e9f --- /dev/null +++ b/doc/man/nvme_ave_tr_record.2 @@ -0,0 +1,27 @@ +.TH "libnvme" 9 "struct nvme_ave_tr_record" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_ave_tr_record \- AVE Transport Record +.SH SYNOPSIS +struct nvme_ave_tr_record { +.br +.BI " __u8 aveadrfam;" +.br +.BI " __u8 rsvd1;" +.br +.BI " __le16 avetrsvcid;" +.br +.BI " __u8 avetraddr[16];" +.br +.BI " +}; +.br + +.SH Members +.IP "aveadrfam" 12 +AVE Address Family +.IP "rsvd1" 12 +Reserved +.IP "avetrsvcid" 12 +AVE Transport Service Identifier +.IP "avetraddr" 12 +AVE Transport Address diff --git a/doc/man/nvme_boot_partition.2 b/doc/man/nvme_boot_partition.2 index c78a1c0..44d9030 100644 --- a/doc/man/nvme_boot_partition.2 +++ b/doc/man/nvme_boot_partition.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_boot_partition" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_boot_partition" "March 2025" "API Manual" LINUX .SH NAME struct nvme_boot_partition \- Boot Partition Log .SH SYNOPSIS diff --git a/doc/man/nvme_boot_partition_info.2 b/doc/man/nvme_boot_partition_info.2 index a758f74..ba9a978 100644 --- a/doc/man/nvme_boot_partition_info.2 +++ b/doc/man/nvme_boot_partition_info.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_boot_partition_info" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_boot_partition_info" "March 2025" "API Manual" LINUX .SH NAME enum nvme_boot_partition_info \- This field indicates the boot partition information .SH SYNOPSIS diff --git a/doc/man/nvme_bpinfo.2 b/doc/man/nvme_bpinfo.2 index 4e33d8f..9620fea 100644 --- a/doc/man/nvme_bpinfo.2 +++ b/doc/man/nvme_bpinfo.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_bpinfo" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_bpinfo" "March 2025" "API Manual" LINUX .SH NAME enum nvme_bpinfo \- This field indicates the boot partition information .SH SYNOPSIS diff --git a/doc/man/nvme_bpmbl.2 b/doc/man/nvme_bpmbl.2 index 3d07e5e..0a59402 100644 --- a/doc/man/nvme_bpmbl.2 +++ b/doc/man/nvme_bpmbl.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_bpmbl" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_bpmbl" "March 2025" "API Manual" LINUX .SH NAME enum nvme_bpmbl \- This field indicates the boot partition memory buffer location .SH SYNOPSIS diff --git a/doc/man/nvme_bprsel.2 b/doc/man/nvme_bprsel.2 index 06db2e3..fb2a69c 100644 --- a/doc/man/nvme_bprsel.2 +++ b/doc/man/nvme_bprsel.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_bprsel" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_bprsel" "March 2025" "API Manual" LINUX .SH NAME enum nvme_bprsel \- This field indicates the boot partition read select .SH SYNOPSIS diff --git a/doc/man/nvme_cap.2 b/doc/man/nvme_cap.2 index 43dff2c..b7c60e1 100644 --- a/doc/man/nvme_cap.2 +++ b/doc/man/nvme_cap.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cap" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cap" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cap \- This field indicates the controller capabilities register .SH SYNOPSIS diff --git a/doc/man/nvme_capacity_config_desc.2 b/doc/man/nvme_capacity_config_desc.2 index b7d7903..7e97de3 100644 --- a/doc/man/nvme_capacity_config_desc.2 +++ b/doc/man/nvme_capacity_config_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_capacity_config_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_capacity_config_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_capacity_config_desc \- Capacity Configuration structure definitions .SH SYNOPSIS diff --git a/doc/man/nvme_capacity_mgmt.2 b/doc/man/nvme_capacity_mgmt.2 index 9636256..65bb18a 100644 --- a/doc/man/nvme_capacity_mgmt.2 +++ b/doc/man/nvme_capacity_mgmt.2 @@ -1,4 +1,4 @@ -.TH "nvme_capacity_mgmt" 9 "nvme_capacity_mgmt" "November 2024" "libnvme API manual" LINUX +.TH "nvme_capacity_mgmt" 9 "nvme_capacity_mgmt" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_capacity_mgmt \- Capacity management command .SH SYNOPSIS diff --git a/doc/man/nvme_cc.2 b/doc/man/nvme_cc.2 index cc5df6b..c15bc20 100644 --- a/doc/man/nvme_cc.2 +++ b/doc/man/nvme_cc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cc \- This field indicates the controller configuration .SH SYNOPSIS diff --git a/doc/man/nvme_change_ns_event.2 b/doc/man/nvme_change_ns_event.2 index 0b4ba39..934d02c 100644 --- a/doc/man/nvme_change_ns_event.2 +++ b/doc/man/nvme_change_ns_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_change_ns_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_change_ns_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_change_ns_event \- Change Namespace Event Data .SH SYNOPSIS diff --git a/doc/man/nvme_channel_config_desc.2 b/doc/man/nvme_channel_config_desc.2 index 542ae79..8588d37 100644 --- a/doc/man/nvme_channel_config_desc.2 +++ b/doc/man/nvme_channel_config_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_channel_config_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_channel_config_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_channel_config_desc \- Channel Configuration Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_cmb_size.2 b/doc/man/nvme_cmb_size.2 index 20927df..53e9b6d 100644 --- a/doc/man/nvme_cmb_size.2 +++ b/doc/man/nvme_cmb_size.2 @@ -1,4 +1,4 @@ -.TH "nvme_cmb_size" 9 "nvme_cmb_size" "November 2024" "libnvme API manual" LINUX +.TH "nvme_cmb_size" 9 "nvme_cmb_size" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_cmb_size \- Calculate size of the controller memory buffer .SH SYNOPSIS diff --git a/doc/man/nvme_cmbebs.2 b/doc/man/nvme_cmbebs.2 index 58fa966..9ec209f 100644 --- a/doc/man/nvme_cmbebs.2 +++ b/doc/man/nvme_cmbebs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmbebs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmbebs" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmbebs \- This field indicates the controller memory buffer elasticity buffer size .SH SYNOPSIS diff --git a/doc/man/nvme_cmbloc.2 b/doc/man/nvme_cmbloc.2 index bd0ce61..6f931d6 100644 --- a/doc/man/nvme_cmbloc.2 +++ b/doc/man/nvme_cmbloc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmbloc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmbloc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmbloc \- This field indicates the controller memory buffer location .SH SYNOPSIS diff --git a/doc/man/nvme_cmbmsc.2 b/doc/man/nvme_cmbmsc.2 index edbdb43..ae3cbb4 100644 --- a/doc/man/nvme_cmbmsc.2 +++ b/doc/man/nvme_cmbmsc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmbmsc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmbmsc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmbmsc \- This field indicates the controller memory buffer memory space control .SH SYNOPSIS diff --git a/doc/man/nvme_cmbsts.2 b/doc/man/nvme_cmbsts.2 index 565ba55..a98c184 100644 --- a/doc/man/nvme_cmbsts.2 +++ b/doc/man/nvme_cmbsts.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmbsts" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmbsts" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmbsts \- This field indicates the controller memory buffer status .SH SYNOPSIS diff --git a/doc/man/nvme_cmbswtp.2 b/doc/man/nvme_cmbswtp.2 index e1a3fa5..c0729b3 100644 --- a/doc/man/nvme_cmbswtp.2 +++ b/doc/man/nvme_cmbswtp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmbswtp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmbswtp" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmbswtp \- This field indicates the controller memory buffer sustained write throughput .SH SYNOPSIS diff --git a/doc/man/nvme_cmbsz.2 b/doc/man/nvme_cmbsz.2 index 3b5989e..2472602 100644 --- a/doc/man/nvme_cmbsz.2 +++ b/doc/man/nvme_cmbsz.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmbsz" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmbsz" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmbsz \- This field indicates the controller memory buffer size .SH SYNOPSIS diff --git a/doc/man/nvme_cmd_effects.2 b/doc/man/nvme_cmd_effects.2 index 453e493..2631583 100644 --- a/doc/man/nvme_cmd_effects.2 +++ b/doc/man/nvme_cmd_effects.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmd_effects" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_effects" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmd_effects \- Commands Supported and Effects .SH SYNOPSIS diff --git a/doc/man/nvme_cmd_effects_log.2 b/doc/man/nvme_cmd_effects_log.2 index bd6cc42..5dcbe25 100644 --- a/doc/man/nvme_cmd_effects_log.2 +++ b/doc/man/nvme_cmd_effects_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_cmd_effects_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_cmd_effects_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_cmd_effects_log \- Commands Supported and Effects Log .SH SYNOPSIS diff --git a/doc/man/nvme_cmd_format_mset.2 b/doc/man/nvme_cmd_format_mset.2 index 2a6eab0..2a63a39 100644 --- a/doc/man/nvme_cmd_format_mset.2 +++ b/doc/man/nvme_cmd_format_mset.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmd_format_mset" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_format_mset" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmd_format_mset \- Format NVM - Metadata Settings .SH SYNOPSIS diff --git a/doc/man/nvme_cmd_format_pi.2 b/doc/man/nvme_cmd_format_pi.2 index a8893a1..644e4d9 100644 --- a/doc/man/nvme_cmd_format_pi.2 +++ b/doc/man/nvme_cmd_format_pi.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmd_format_pi" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_format_pi" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmd_format_pi \- Format NVM - Protection Information .SH SYNOPSIS diff --git a/doc/man/nvme_cmd_format_pil.2 b/doc/man/nvme_cmd_format_pil.2 index 083478b..271efd6 100644 --- a/doc/man/nvme_cmd_format_pil.2 +++ b/doc/man/nvme_cmd_format_pil.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmd_format_pil" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_format_pil" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmd_format_pil \- Format NVM - Protection Information Location .SH SYNOPSIS diff --git a/doc/man/nvme_cmd_format_ses.2 b/doc/man/nvme_cmd_format_ses.2 index 253d708..f8e2c5a 100644 --- a/doc/man/nvme_cmd_format_ses.2 +++ b/doc/man/nvme_cmd_format_ses.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmd_format_ses" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_format_ses" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmd_format_ses \- Format NVM - Secure Erase Settings .SH SYNOPSIS diff --git a/doc/man/nvme_cmd_get_log_lid.2 b/doc/man/nvme_cmd_get_log_lid.2 index 84d869a..fee5ce6 100644 --- a/doc/man/nvme_cmd_get_log_lid.2 +++ b/doc/man/nvme_cmd_get_log_lid.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmd_get_log_lid" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_get_log_lid" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmd_get_log_lid \- Get Log Page -Log Page Identifiers .SH SYNOPSIS diff --git a/doc/man/nvme_cmd_get_log_telemetry_host_lsp.2 b/doc/man/nvme_cmd_get_log_telemetry_host_lsp.2 index 56e8c57..9ba5a49 100644 --- a/doc/man/nvme_cmd_get_log_telemetry_host_lsp.2 +++ b/doc/man/nvme_cmd_get_log_telemetry_host_lsp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmd_get_log_telemetry_host_lsp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmd_get_log_telemetry_host_lsp" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmd_get_log_telemetry_host_lsp \- Telemetry Host-Initiated log specific field .SH SYNOPSIS diff --git a/doc/man/nvme_cmic.2 b/doc/man/nvme_cmic.2 index c9d4741..37142bd 100644 --- a/doc/man/nvme_cmic.2 +++ b/doc/man/nvme_cmic.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_cmic" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_cmic" "March 2025" "API Manual" LINUX .SH NAME enum nvme_cmic \- This field indicates the controller multi-path I/O and NS sharing capabilities .SH SYNOPSIS diff --git a/doc/man/nvme_compare.2 b/doc/man/nvme_compare.2 index f67d441..b9dbf9c 100644 --- a/doc/man/nvme_compare.2 +++ b/doc/man/nvme_compare.2 @@ -1,4 +1,4 @@ -.TH "nvme_compare" 9 "nvme_compare" "November 2024" "libnvme API manual" LINUX +.TH "nvme_compare" 9 "nvme_compare" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_compare \- Submit an nvme user compare command .SH SYNOPSIS diff --git a/doc/man/nvme_connect_err.2 b/doc/man/nvme_connect_err.2 index b146302..9f141a5 100644 --- a/doc/man/nvme_connect_err.2 +++ b/doc/man/nvme_connect_err.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_connect_err" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_connect_err" "March 2025" "API Manual" LINUX .SH NAME enum nvme_connect_err \- nvme connect error codes .SH SYNOPSIS diff --git a/doc/man/nvme_constants.2 b/doc/man/nvme_constants.2 index 4c8fa1d..d705a04 100644 --- a/doc/man/nvme_constants.2 +++ b/doc/man/nvme_constants.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_constants" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_constants" "March 2025" "API Manual" LINUX .SH NAME enum nvme_constants \- A place to stash various constant nvme values .SH SYNOPSIS diff --git a/doc/man/nvme_copy.2 b/doc/man/nvme_copy.2 index 78e5c40..27583f3 100644 --- a/doc/man/nvme_copy.2 +++ b/doc/man/nvme_copy.2 @@ -1,4 +1,4 @@ -.TH "nvme_copy" 9 "nvme_copy" "November 2024" "libnvme API manual" LINUX +.TH "nvme_copy" 9 "nvme_copy" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_copy \- Copy command .SH SYNOPSIS diff --git a/doc/man/nvme_copy_range.2 b/doc/man/nvme_copy_range.2 index 36c7cc8..e83b82c 100644 --- a/doc/man/nvme_copy_range.2 +++ b/doc/man/nvme_copy_range.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_copy_range" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_copy_range" "March 2025" "API Manual" LINUX .SH NAME struct nvme_copy_range \- Copy - Source Range Entries Descriptor Format .SH SYNOPSIS diff --git a/doc/man/nvme_copy_range_f1.2 b/doc/man/nvme_copy_range_f1.2 index 4b39d0c..3d1c7c2 100644 --- a/doc/man/nvme_copy_range_f1.2 +++ b/doc/man/nvme_copy_range_f1.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_copy_range_f1" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_copy_range_f1" "March 2025" "API Manual" LINUX .SH NAME struct nvme_copy_range_f1 \- Copy - Source Range Entries Descriptor Format 1h .SH SYNOPSIS diff --git a/doc/man/nvme_copy_range_f2.2 b/doc/man/nvme_copy_range_f2.2 index cc79531..12f2946 100644 --- a/doc/man/nvme_copy_range_f2.2 +++ b/doc/man/nvme_copy_range_f2.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_copy_range_f2" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_copy_range_f2" "March 2025" "API Manual" LINUX .SH NAME struct nvme_copy_range_f2 \- Copy - Source Range Entries Descriptor Format 2h .SH SYNOPSIS diff --git a/doc/man/nvme_copy_range_f3.2 b/doc/man/nvme_copy_range_f3.2 index 7f80910..d0c8823 100644 --- a/doc/man/nvme_copy_range_f3.2 +++ b/doc/man/nvme_copy_range_f3.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_copy_range_f3" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_copy_range_f3" "March 2025" "API Manual" LINUX .SH NAME struct nvme_copy_range_f3 \- Copy - Source Range Entries Descriptor Format 3h .SH SYNOPSIS diff --git a/doc/man/nvme_copy_range_sopt.2 b/doc/man/nvme_copy_range_sopt.2 index 912bbaf..057db70 100644 --- a/doc/man/nvme_copy_range_sopt.2 +++ b/doc/man/nvme_copy_range_sopt.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_copy_range_sopt" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_copy_range_sopt" "March 2025" "API Manual" LINUX .SH NAME enum nvme_copy_range_sopt \- NVMe Copy Range Source Options .SH SYNOPSIS diff --git a/doc/man/nvme_create_ctrl.2 b/doc/man/nvme_create_ctrl.2 index 27fb798..d5eb596 100644 --- a/doc/man/nvme_create_ctrl.2 +++ b/doc/man/nvme_create_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_create_ctrl" 9 "nvme_create_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_create_ctrl" 9 "nvme_create_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_create_ctrl \- Allocate an unconnected NVMe controller .SH SYNOPSIS diff --git a/doc/man/nvme_create_root.2 b/doc/man/nvme_create_root.2 index 9fa780c..b9b7703 100644 --- a/doc/man/nvme_create_root.2 +++ b/doc/man/nvme_create_root.2 @@ -1,4 +1,4 @@ -.TH "nvme_create_root" 9 "nvme_create_root" "November 2024" "libnvme API manual" LINUX +.TH "nvme_create_root" 9 "nvme_create_root" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_create_root \- Initialize root object .SH SYNOPSIS diff --git a/doc/man/nvme_crto.2 b/doc/man/nvme_crto.2 index 5464a2b..8a8df46 100644 --- a/doc/man/nvme_crto.2 +++ b/doc/man/nvme_crto.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_crto" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_crto" "March 2025" "API Manual" LINUX .SH NAME enum nvme_crto \- This field indicates the controller ready timeouts .SH SYNOPSIS diff --git a/doc/man/nvme_csi.2 b/doc/man/nvme_csi.2 index a7adfb9..080bf36 100644 --- a/doc/man/nvme_csi.2 +++ b/doc/man/nvme_csi.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_csi" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_csi" "March 2025" "API Manual" LINUX .SH NAME enum nvme_csi \- Defined command set indicators .SH SYNOPSIS @@ -13,6 +13,14 @@ enum nvme_csi { .br .br .BI " NVME_CSI_ZNS" +, +.br +.br +.BI " NVME_CSI_SLM" +, +.br +.br +.BI " NVME_CSI_CP" }; .SH Constants @@ -22,3 +30,7 @@ NVM Command Set Indicator Key Value Command Set .IP "NVME_CSI_ZNS" 12 Zoned Namespace Command Set +.IP "NVME_CSI_SLM" 12 +Subsystem Local Memory Command Set +.IP "NVME_CSI_CP" 12 +Computational Programs Command Set diff --git a/doc/man/nvme_csts.2 b/doc/man/nvme_csts.2 index bfc9ca3..704b3c0 100644 --- a/doc/man/nvme_csts.2 +++ b/doc/man/nvme_csts.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_csts" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_csts" "March 2025" "API Manual" LINUX .SH NAME enum nvme_csts \- This field indicates the controller status register .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_config_match.2 b/doc/man/nvme_ctrl_config_match.2 index f550771..583fdb3 100644 --- a/doc/man/nvme_ctrl_config_match.2 +++ b/doc/man/nvme_ctrl_config_match.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_config_match" 9 "nvme_ctrl_config_match" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_config_match" 9 "nvme_ctrl_config_match" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_config_match \- Check if ctrl @c matches config params .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_find.2 b/doc/man/nvme_ctrl_find.2 index ca58cc9..8622343 100644 --- a/doc/man/nvme_ctrl_find.2 +++ b/doc/man/nvme_ctrl_find.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_find" 9 "nvme_ctrl_find" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_find" 9 "nvme_ctrl_find" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_find \- Locate an existing controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_first_ns.2 b/doc/man/nvme_ctrl_first_ns.2 index 3b0ca4b..b160b7d 100644 --- a/doc/man/nvme_ctrl_first_ns.2 +++ b/doc/man/nvme_ctrl_first_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_first_ns" 9 "nvme_ctrl_first_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_first_ns" 9 "nvme_ctrl_first_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_first_ns \- Start namespace iterator .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_first_path.2 b/doc/man/nvme_ctrl_first_path.2 index 9d4619c..54f45cc 100644 --- a/doc/man/nvme_ctrl_first_path.2 +++ b/doc/man/nvme_ctrl_first_path.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_first_path" 9 "nvme_ctrl_first_path" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_first_path" 9 "nvme_ctrl_first_path" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_first_path \- Start path iterator .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_for_each_ns.2 b/doc/man/nvme_ctrl_for_each_ns.2 index 6fd36db..cd33dc7 100644 --- a/doc/man/nvme_ctrl_for_each_ns.2 +++ b/doc/man/nvme_ctrl_for_each_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_for_each_ns" 9 "nvme_ctrl_for_each_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_for_each_ns" 9 "nvme_ctrl_for_each_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_for_each_ns \- Traverse namespaces .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_for_each_ns_safe.2 b/doc/man/nvme_ctrl_for_each_ns_safe.2 index fb74d29..7d5d7bb 100644 --- a/doc/man/nvme_ctrl_for_each_ns_safe.2 +++ b/doc/man/nvme_ctrl_for_each_ns_safe.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_for_each_ns_safe" 9 "nvme_ctrl_for_each_ns_safe" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_for_each_ns_safe" 9 "nvme_ctrl_for_each_ns_safe" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_for_each_ns_safe \- Traverse namespaces .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_for_each_path.2 b/doc/man/nvme_ctrl_for_each_path.2 index aadb37f..5c24a28 100644 --- a/doc/man/nvme_ctrl_for_each_path.2 +++ b/doc/man/nvme_ctrl_for_each_path.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_for_each_path" 9 "nvme_ctrl_for_each_path" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_for_each_path" 9 "nvme_ctrl_for_each_path" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_for_each_path \- Traverse paths .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_for_each_path_safe.2 b/doc/man/nvme_ctrl_for_each_path_safe.2 index ddf0a6c..ab8e047 100644 --- a/doc/man/nvme_ctrl_for_each_path_safe.2 +++ b/doc/man/nvme_ctrl_for_each_path_safe.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_for_each_path_safe" 9 "nvme_ctrl_for_each_path_safe" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_for_each_path_safe" 9 "nvme_ctrl_for_each_path_safe" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_for_each_path_safe \- Traverse paths .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_address.2 b/doc/man/nvme_ctrl_get_address.2 index 9d6f606..3ddc75a 100644 --- a/doc/man/nvme_ctrl_get_address.2 +++ b/doc/man/nvme_ctrl_get_address.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_address" 9 "nvme_ctrl_get_address" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_address" 9 "nvme_ctrl_get_address" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_address \- Address string of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_config.2 b/doc/man/nvme_ctrl_get_config.2 index 011dc4f..a141f89 100644 --- a/doc/man/nvme_ctrl_get_config.2 +++ b/doc/man/nvme_ctrl_get_config.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_config" 9 "nvme_ctrl_get_config" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_config" 9 "nvme_ctrl_get_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_config \- Fabrics configuration of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_dhchap_host_key.2 b/doc/man/nvme_ctrl_get_dhchap_host_key.2 index 8bb6fd0..bd2eeb1 100644 --- a/doc/man/nvme_ctrl_get_dhchap_host_key.2 +++ b/doc/man/nvme_ctrl_get_dhchap_host_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_dhchap_host_key" 9 "nvme_ctrl_get_dhchap_host_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_dhchap_host_key" 9 "nvme_ctrl_get_dhchap_host_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_dhchap_host_key \- Return host key .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_dhchap_key.2 b/doc/man/nvme_ctrl_get_dhchap_key.2 index 3262759..1bfd289 100644 --- a/doc/man/nvme_ctrl_get_dhchap_key.2 +++ b/doc/man/nvme_ctrl_get_dhchap_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_dhchap_key" 9 "nvme_ctrl_get_dhchap_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_dhchap_key" 9 "nvme_ctrl_get_dhchap_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_dhchap_key \- Return controller key .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_fd.2 b/doc/man/nvme_ctrl_get_fd.2 index 6521660..4995c77 100644 --- a/doc/man/nvme_ctrl_get_fd.2 +++ b/doc/man/nvme_ctrl_get_fd.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_fd" 9 "nvme_ctrl_get_fd" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_fd" 9 "nvme_ctrl_get_fd" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_fd \- Get associated file descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_firmware.2 b/doc/man/nvme_ctrl_get_firmware.2 index 0835443..4e3ca23 100644 --- a/doc/man/nvme_ctrl_get_firmware.2 +++ b/doc/man/nvme_ctrl_get_firmware.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_firmware" 9 "nvme_ctrl_get_firmware" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_firmware" 9 "nvme_ctrl_get_firmware" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_firmware \- Firmware string of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_host_iface.2 b/doc/man/nvme_ctrl_get_host_iface.2 index f600fc3..8c9731f 100644 --- a/doc/man/nvme_ctrl_get_host_iface.2 +++ b/doc/man/nvme_ctrl_get_host_iface.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_host_iface" 9 "nvme_ctrl_get_host_iface" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_host_iface" 9 "nvme_ctrl_get_host_iface" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_host_iface \- Host interface name of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_host_traddr.2 b/doc/man/nvme_ctrl_get_host_traddr.2 index cde8627..3fd91c0 100644 --- a/doc/man/nvme_ctrl_get_host_traddr.2 +++ b/doc/man/nvme_ctrl_get_host_traddr.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_host_traddr" 9 "nvme_ctrl_get_host_traddr" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_host_traddr" 9 "nvme_ctrl_get_host_traddr" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_host_traddr \- Host transport address of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_keyring.2 b/doc/man/nvme_ctrl_get_keyring.2 index 3450237..a6439b2 100644 --- a/doc/man/nvme_ctrl_get_keyring.2 +++ b/doc/man/nvme_ctrl_get_keyring.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_keyring" 9 "nvme_ctrl_get_keyring" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_keyring" 9 "nvme_ctrl_get_keyring" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_keyring \- Return keyring .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_model.2 b/doc/man/nvme_ctrl_get_model.2 index 8c1c504..8e4464d 100644 --- a/doc/man/nvme_ctrl_get_model.2 +++ b/doc/man/nvme_ctrl_get_model.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_model" 9 "nvme_ctrl_get_model" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_model" 9 "nvme_ctrl_get_model" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_model \- Model of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_name.2 b/doc/man/nvme_ctrl_get_name.2 index 1b9ce60..23637fb 100644 --- a/doc/man/nvme_ctrl_get_name.2 +++ b/doc/man/nvme_ctrl_get_name.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_name" 9 "nvme_ctrl_get_name" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_name" 9 "nvme_ctrl_get_name" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_name \- sysfs name of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_numa_node.2 b/doc/man/nvme_ctrl_get_numa_node.2 index 93c21a2..1a6f271 100644 --- a/doc/man/nvme_ctrl_get_numa_node.2 +++ b/doc/man/nvme_ctrl_get_numa_node.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_numa_node" 9 "nvme_ctrl_get_numa_node" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_numa_node" 9 "nvme_ctrl_get_numa_node" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_numa_node \- NUMA node of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_phy_slot.2 b/doc/man/nvme_ctrl_get_phy_slot.2 index ed416af..ef64995 100644 --- a/doc/man/nvme_ctrl_get_phy_slot.2 +++ b/doc/man/nvme_ctrl_get_phy_slot.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_phy_slot" 9 "nvme_ctrl_get_phy_slot" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_phy_slot" 9 "nvme_ctrl_get_phy_slot" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_phy_slot \- PCI physical slot number of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_queue_count.2 b/doc/man/nvme_ctrl_get_queue_count.2 index 9698a4c..9475a3e 100644 --- a/doc/man/nvme_ctrl_get_queue_count.2 +++ b/doc/man/nvme_ctrl_get_queue_count.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_queue_count" 9 "nvme_ctrl_get_queue_count" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_queue_count" 9 "nvme_ctrl_get_queue_count" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_queue_count \- Queue count of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_serial.2 b/doc/man/nvme_ctrl_get_serial.2 index 4505d1e..e2e2eec 100644 --- a/doc/man/nvme_ctrl_get_serial.2 +++ b/doc/man/nvme_ctrl_get_serial.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_serial" 9 "nvme_ctrl_get_serial" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_serial" 9 "nvme_ctrl_get_serial" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_serial \- Serial number of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_sqsize.2 b/doc/man/nvme_ctrl_get_sqsize.2 index 7a565e1..7da37cf 100644 --- a/doc/man/nvme_ctrl_get_sqsize.2 +++ b/doc/man/nvme_ctrl_get_sqsize.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_sqsize" 9 "nvme_ctrl_get_sqsize" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_sqsize" 9 "nvme_ctrl_get_sqsize" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_sqsize \- SQ size of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_src_addr.2 b/doc/man/nvme_ctrl_get_src_addr.2 index 9bb9da4..0be3d0f 100644 --- a/doc/man/nvme_ctrl_get_src_addr.2 +++ b/doc/man/nvme_ctrl_get_src_addr.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_src_addr" 9 "nvme_ctrl_get_src_addr" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_src_addr" 9 "nvme_ctrl_get_src_addr" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_src_addr \- Extract src_addr from the c->address string .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_state.2 b/doc/man/nvme_ctrl_get_state.2 index 848dad7..755b15a 100644 --- a/doc/man/nvme_ctrl_get_state.2 +++ b/doc/man/nvme_ctrl_get_state.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_state" 9 "nvme_ctrl_get_state" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_state" 9 "nvme_ctrl_get_state" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_state \- Running state of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_subsysnqn.2 b/doc/man/nvme_ctrl_get_subsysnqn.2 index 439768f..7fc4b25 100644 --- a/doc/man/nvme_ctrl_get_subsysnqn.2 +++ b/doc/man/nvme_ctrl_get_subsysnqn.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_subsysnqn" 9 "nvme_ctrl_get_subsysnqn" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_subsysnqn" 9 "nvme_ctrl_get_subsysnqn" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_subsysnqn \- Subsystem NQN of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_subsystem.2 b/doc/man/nvme_ctrl_get_subsystem.2 index 475f27f..06ed7e4 100644 --- a/doc/man/nvme_ctrl_get_subsystem.2 +++ b/doc/man/nvme_ctrl_get_subsystem.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_subsystem" 9 "nvme_ctrl_get_subsystem" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_subsystem" 9 "nvme_ctrl_get_subsystem" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_subsystem \- Parent subsystem of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_sysfs_dir.2 b/doc/man/nvme_ctrl_get_sysfs_dir.2 index d2687c7..9ad91e2 100644 --- a/doc/man/nvme_ctrl_get_sysfs_dir.2 +++ b/doc/man/nvme_ctrl_get_sysfs_dir.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_sysfs_dir" 9 "nvme_ctrl_get_sysfs_dir" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_sysfs_dir" 9 "nvme_ctrl_get_sysfs_dir" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_sysfs_dir \- sysfs directory of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_tls_key.2 b/doc/man/nvme_ctrl_get_tls_key.2 index 6bb4d52..e47c2e8 100644 --- a/doc/man/nvme_ctrl_get_tls_key.2 +++ b/doc/man/nvme_ctrl_get_tls_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_tls_key" 9 "nvme_ctrl_get_tls_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_tls_key" 9 "nvme_ctrl_get_tls_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_tls_key \- Return Derive TLS PSK .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_tls_key_identity.2 b/doc/man/nvme_ctrl_get_tls_key_identity.2 index d41e9f8..99547a2 100644 --- a/doc/man/nvme_ctrl_get_tls_key_identity.2 +++ b/doc/man/nvme_ctrl_get_tls_key_identity.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_tls_key_identity" 9 "nvme_ctrl_get_tls_key_identity" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_tls_key_identity" 9 "nvme_ctrl_get_tls_key_identity" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_tls_key_identity \- Return Derive TLS Identity .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_traddr.2 b/doc/man/nvme_ctrl_get_traddr.2 index 995b987..327daee 100644 --- a/doc/man/nvme_ctrl_get_traddr.2 +++ b/doc/man/nvme_ctrl_get_traddr.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_traddr" 9 "nvme_ctrl_get_traddr" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_traddr" 9 "nvme_ctrl_get_traddr" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_traddr \- Transport address of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_transport.2 b/doc/man/nvme_ctrl_get_transport.2 index 7c8894e..be00011 100644 --- a/doc/man/nvme_ctrl_get_transport.2 +++ b/doc/man/nvme_ctrl_get_transport.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_transport" 9 "nvme_ctrl_get_transport" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_transport" 9 "nvme_ctrl_get_transport" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_transport \- Transport type of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_get_trsvcid.2 b/doc/man/nvme_ctrl_get_trsvcid.2 index 4fac3ea..d3bfea4 100644 --- a/doc/man/nvme_ctrl_get_trsvcid.2 +++ b/doc/man/nvme_ctrl_get_trsvcid.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_get_trsvcid" 9 "nvme_ctrl_get_trsvcid" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_get_trsvcid" 9 "nvme_ctrl_get_trsvcid" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_get_trsvcid \- Transport service identifier of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_identify.2 b/doc/man/nvme_ctrl_identify.2 index 3de6fc2..fd0328a 100644 --- a/doc/man/nvme_ctrl_identify.2 +++ b/doc/man/nvme_ctrl_identify.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_identify" 9 "nvme_ctrl_identify" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_identify" 9 "nvme_ctrl_identify" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_identify \- Issues an 'identify controller' command .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_is_discovered.2 b/doc/man/nvme_ctrl_is_discovered.2 index c14ef3a..f66eb46 100644 --- a/doc/man/nvme_ctrl_is_discovered.2 +++ b/doc/man/nvme_ctrl_is_discovered.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_is_discovered" 9 "nvme_ctrl_is_discovered" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_is_discovered" 9 "nvme_ctrl_is_discovered" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_is_discovered \- Returns the value of the 'discovered' flag .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_is_discovery_ctrl.2 b/doc/man/nvme_ctrl_is_discovery_ctrl.2 index 10f5bd9..533edf6 100644 --- a/doc/man/nvme_ctrl_is_discovery_ctrl.2 +++ b/doc/man/nvme_ctrl_is_discovery_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_is_discovery_ctrl" 9 "nvme_ctrl_is_discovery_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_is_discovery_ctrl" 9 "nvme_ctrl_is_discovery_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_is_discovery_ctrl \- Check the 'discovery_ctrl' flag .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_is_persistent.2 b/doc/man/nvme_ctrl_is_persistent.2 index c7183a1..19dff3d 100644 --- a/doc/man/nvme_ctrl_is_persistent.2 +++ b/doc/man/nvme_ctrl_is_persistent.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_is_persistent" 9 "nvme_ctrl_is_persistent" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_is_persistent" 9 "nvme_ctrl_is_persistent" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_is_persistent \- Returns the value of the 'persistent' flag .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_is_unique_discovery_ctrl.2 b/doc/man/nvme_ctrl_is_unique_discovery_ctrl.2 index 1cf0235..be99513 100644 --- a/doc/man/nvme_ctrl_is_unique_discovery_ctrl.2 +++ b/doc/man/nvme_ctrl_is_unique_discovery_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_is_unique_discovery_ctrl" 9 "nvme_ctrl_is_unique_discovery_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_is_unique_discovery_ctrl" 9 "nvme_ctrl_is_unique_discovery_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_is_unique_discovery_ctrl \- Check the 'unique_discovery_ctrl' flag .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_list.2 b/doc/man/nvme_ctrl_list.2 index cd9cfc5..8936137 100644 --- a/doc/man/nvme_ctrl_list.2 +++ b/doc/man/nvme_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_ctrl_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_ctrl_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_ctrl_list \- Controller List .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_metadata_type.2 b/doc/man/nvme_ctrl_metadata_type.2 index 078cdd1..a2c8386 100644 --- a/doc/man/nvme_ctrl_metadata_type.2 +++ b/doc/man/nvme_ctrl_metadata_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ctrl_metadata_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ctrl_metadata_type" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ctrl_metadata_type \- Controller Metadata Element Types .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_next_ns.2 b/doc/man/nvme_ctrl_next_ns.2 index 2c04033..12f3067 100644 --- a/doc/man/nvme_ctrl_next_ns.2 +++ b/doc/man/nvme_ctrl_next_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_next_ns" 9 "nvme_ctrl_next_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_next_ns" 9 "nvme_ctrl_next_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_next_ns \- Next namespace iterator .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_next_path.2 b/doc/man/nvme_ctrl_next_path.2 index 5f84b65..cafc06f 100644 --- a/doc/man/nvme_ctrl_next_path.2 +++ b/doc/man/nvme_ctrl_next_path.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_next_path" 9 "nvme_ctrl_next_path" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_next_path" 9 "nvme_ctrl_next_path" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_next_path \- Next path iterator .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_release_fd.2 b/doc/man/nvme_ctrl_release_fd.2 index 23de3a6..a4caffa 100644 --- a/doc/man/nvme_ctrl_release_fd.2 +++ b/doc/man/nvme_ctrl_release_fd.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_release_fd" 9 "nvme_ctrl_release_fd" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_release_fd" 9 "nvme_ctrl_release_fd" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_release_fd \- Close fd and clear fd from controller object .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_reset.2 b/doc/man/nvme_ctrl_reset.2 index 22753dd..d04107b 100644 --- a/doc/man/nvme_ctrl_reset.2 +++ b/doc/man/nvme_ctrl_reset.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_reset" 9 "nvme_ctrl_reset" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_reset" 9 "nvme_ctrl_reset" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_reset \- Initiate a controller reset .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_set_dhchap_host_key.2 b/doc/man/nvme_ctrl_set_dhchap_host_key.2 index 8cf06b5..4531f33 100644 --- a/doc/man/nvme_ctrl_set_dhchap_host_key.2 +++ b/doc/man/nvme_ctrl_set_dhchap_host_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_set_dhchap_host_key" 9 "nvme_ctrl_set_dhchap_host_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_dhchap_host_key" 9 "nvme_ctrl_set_dhchap_host_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_set_dhchap_host_key \- Set host key .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_set_dhchap_key.2 b/doc/man/nvme_ctrl_set_dhchap_key.2 index f4dc6d4..de6d71a 100644 --- a/doc/man/nvme_ctrl_set_dhchap_key.2 +++ b/doc/man/nvme_ctrl_set_dhchap_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_set_dhchap_key" 9 "nvme_ctrl_set_dhchap_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_dhchap_key" 9 "nvme_ctrl_set_dhchap_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_set_dhchap_key \- Set controller key .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_set_discovered.2 b/doc/man/nvme_ctrl_set_discovered.2 index f790762..97ecbef 100644 --- a/doc/man/nvme_ctrl_set_discovered.2 +++ b/doc/man/nvme_ctrl_set_discovered.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_set_discovered" 9 "nvme_ctrl_set_discovered" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_discovered" 9 "nvme_ctrl_set_discovered" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_set_discovered \- Set the 'discovered' flag .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_set_discovery_ctrl.2 b/doc/man/nvme_ctrl_set_discovery_ctrl.2 index 616c3e1..b8d1114 100644 --- a/doc/man/nvme_ctrl_set_discovery_ctrl.2 +++ b/doc/man/nvme_ctrl_set_discovery_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_set_discovery_ctrl" 9 "nvme_ctrl_set_discovery_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_discovery_ctrl" 9 "nvme_ctrl_set_discovery_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_set_discovery_ctrl \- Set the 'discovery_ctrl' flag .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_set_keyring.2 b/doc/man/nvme_ctrl_set_keyring.2 index 009daa9..586e5f6 100644 --- a/doc/man/nvme_ctrl_set_keyring.2 +++ b/doc/man/nvme_ctrl_set_keyring.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_set_keyring" 9 "nvme_ctrl_set_keyring" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_keyring" 9 "nvme_ctrl_set_keyring" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_set_keyring \- Set keyring .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_set_persistent.2 b/doc/man/nvme_ctrl_set_persistent.2 index e4be07f..597b82f 100644 --- a/doc/man/nvme_ctrl_set_persistent.2 +++ b/doc/man/nvme_ctrl_set_persistent.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_set_persistent" 9 "nvme_ctrl_set_persistent" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_persistent" 9 "nvme_ctrl_set_persistent" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_set_persistent \- Set the 'persistent' flag .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_set_tls_key.2 b/doc/man/nvme_ctrl_set_tls_key.2 index a80bd41..41ef419 100644 --- a/doc/man/nvme_ctrl_set_tls_key.2 +++ b/doc/man/nvme_ctrl_set_tls_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_set_tls_key" 9 "nvme_ctrl_set_tls_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_tls_key" 9 "nvme_ctrl_set_tls_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_set_tls_key \- Set Derive TLS PSK .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_set_tls_key_identity.2 b/doc/man/nvme_ctrl_set_tls_key_identity.2 index 018804e..c5834ba 100644 --- a/doc/man/nvme_ctrl_set_tls_key_identity.2 +++ b/doc/man/nvme_ctrl_set_tls_key_identity.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_set_tls_key_identity" 9 "nvme_ctrl_set_tls_key_identity" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_tls_key_identity" 9 "nvme_ctrl_set_tls_key_identity" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_set_tls_key_identity \- Set Derive TLS Identity .SH SYNOPSIS diff --git a/doc/man/nvme_ctrl_set_unique_discovery_ctrl.2 b/doc/man/nvme_ctrl_set_unique_discovery_ctrl.2 index 04d0c27..43d5b50 100644 --- a/doc/man/nvme_ctrl_set_unique_discovery_ctrl.2 +++ b/doc/man/nvme_ctrl_set_unique_discovery_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrl_set_unique_discovery_ctrl" 9 "nvme_ctrl_set_unique_discovery_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrl_set_unique_discovery_ctrl" 9 "nvme_ctrl_set_unique_discovery_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrl_set_unique_discovery_ctrl \- Set the 'unique_discovery_ctrl' flag .SH SYNOPSIS diff --git a/doc/man/nvme_ctrls_filter.2 b/doc/man/nvme_ctrls_filter.2 index fb9e461..19b6363 100644 --- a/doc/man/nvme_ctrls_filter.2 +++ b/doc/man/nvme_ctrls_filter.2 @@ -1,4 +1,4 @@ -.TH "nvme_ctrls_filter" 9 "nvme_ctrls_filter" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ctrls_filter" 9 "nvme_ctrls_filter" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ctrls_filter \- Filter for controllers .SH SYNOPSIS diff --git a/doc/man/nvme_data_tfr.2 b/doc/man/nvme_data_tfr.2 index 93e31e3..120d4ab 100644 --- a/doc/man/nvme_data_tfr.2 +++ b/doc/man/nvme_data_tfr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_data_tfr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_data_tfr" "March 2025" "API Manual" LINUX .SH NAME enum nvme_data_tfr \- Data transfer direction of the command .SH SYNOPSIS diff --git a/doc/man/nvme_default_host.2 b/doc/man/nvme_default_host.2 index 75ef97e..79a3d3d 100644 --- a/doc/man/nvme_default_host.2 +++ b/doc/man/nvme_default_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_default_host" 9 "nvme_default_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_default_host" 9 "nvme_default_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_default_host \- Initializes the default host .SH SYNOPSIS diff --git a/doc/man/nvme_describe_key_serial.2 b/doc/man/nvme_describe_key_serial.2 index 3c7d1e7..6908d50 100644 --- a/doc/man/nvme_describe_key_serial.2 +++ b/doc/man/nvme_describe_key_serial.2 @@ -1,4 +1,4 @@ -.TH "nvme_describe_key_serial" 9 "nvme_describe_key_serial" "November 2024" "libnvme API manual" LINUX +.TH "nvme_describe_key_serial" 9 "nvme_describe_key_serial" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_describe_key_serial \- Return key description .SH SYNOPSIS diff --git a/doc/man/nvme_dev_self_test.2 b/doc/man/nvme_dev_self_test.2 index c4812f0..d5cc7e6 100644 --- a/doc/man/nvme_dev_self_test.2 +++ b/doc/man/nvme_dev_self_test.2 @@ -1,4 +1,4 @@ -.TH "nvme_dev_self_test" 9 "nvme_dev_self_test" "November 2024" "libnvme API manual" LINUX +.TH "nvme_dev_self_test" 9 "nvme_dev_self_test" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_dev_self_test \- Start or abort a self test .SH SYNOPSIS diff --git a/doc/man/nvme_directive_dtype.2 b/doc/man/nvme_directive_dtype.2 index 5927e4e..29a3a7c 100644 --- a/doc/man/nvme_directive_dtype.2 +++ b/doc/man/nvme_directive_dtype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_directive_dtype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_directive_dtype" "March 2025" "API Manual" LINUX .SH NAME enum nvme_directive_dtype \- Directive Types .SH SYNOPSIS diff --git a/doc/man/nvme_directive_receive_doper.2 b/doc/man/nvme_directive_receive_doper.2 index 21dfd6c..8190e59 100644 --- a/doc/man/nvme_directive_receive_doper.2 +++ b/doc/man/nvme_directive_receive_doper.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_directive_receive_doper" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_directive_receive_doper" "March 2025" "API Manual" LINUX .SH NAME enum nvme_directive_receive_doper \- Directive Receive Directive Operation .SH SYNOPSIS diff --git a/doc/man/nvme_directive_recv.2 b/doc/man/nvme_directive_recv.2 index f2a11a2..17c2ec9 100644 --- a/doc/man/nvme_directive_recv.2 +++ b/doc/man/nvme_directive_recv.2 @@ -1,4 +1,4 @@ -.TH "nvme_directive_recv" 9 "nvme_directive_recv" "November 2024" "libnvme API manual" LINUX +.TH "nvme_directive_recv" 9 "nvme_directive_recv" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_directive_recv \- Receive directive specific data .SH SYNOPSIS diff --git a/doc/man/nvme_directive_recv_identify_parameters.2 b/doc/man/nvme_directive_recv_identify_parameters.2 index 86b3960..209eb9d 100644 --- a/doc/man/nvme_directive_recv_identify_parameters.2 +++ b/doc/man/nvme_directive_recv_identify_parameters.2 @@ -1,4 +1,4 @@ -.TH "nvme_directive_recv_identify_parameters" 9 "nvme_directive_recv_identify_parameters" "November 2024" "libnvme API manual" LINUX +.TH "nvme_directive_recv_identify_parameters" 9 "nvme_directive_recv_identify_parameters" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_directive_recv_identify_parameters \- Directive receive identifier parameters .SH SYNOPSIS diff --git a/doc/man/nvme_directive_recv_stream_allocate.2 b/doc/man/nvme_directive_recv_stream_allocate.2 index 1cfbfdb..4a3182e 100644 --- a/doc/man/nvme_directive_recv_stream_allocate.2 +++ b/doc/man/nvme_directive_recv_stream_allocate.2 @@ -1,4 +1,4 @@ -.TH "nvme_directive_recv_stream_allocate" 9 "nvme_directive_recv_stream_allocate" "November 2024" "libnvme API manual" LINUX +.TH "nvme_directive_recv_stream_allocate" 9 "nvme_directive_recv_stream_allocate" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_directive_recv_stream_allocate \- Directive receive stream allocate .SH SYNOPSIS diff --git a/doc/man/nvme_directive_recv_stream_parameters.2 b/doc/man/nvme_directive_recv_stream_parameters.2 index 5f21f42..6dc14ed 100644 --- a/doc/man/nvme_directive_recv_stream_parameters.2 +++ b/doc/man/nvme_directive_recv_stream_parameters.2 @@ -1,4 +1,4 @@ -.TH "nvme_directive_recv_stream_parameters" 9 "nvme_directive_recv_stream_parameters" "November 2024" "libnvme API manual" LINUX +.TH "nvme_directive_recv_stream_parameters" 9 "nvme_directive_recv_stream_parameters" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_directive_recv_stream_parameters \- Directive receive stream parameters .SH SYNOPSIS diff --git a/doc/man/nvme_directive_recv_stream_status.2 b/doc/man/nvme_directive_recv_stream_status.2 index 4ecbb03..7f1ae3f 100644 --- a/doc/man/nvme_directive_recv_stream_status.2 +++ b/doc/man/nvme_directive_recv_stream_status.2 @@ -1,4 +1,4 @@ -.TH "nvme_directive_recv_stream_status" 9 "nvme_directive_recv_stream_status" "November 2024" "libnvme API manual" LINUX +.TH "nvme_directive_recv_stream_status" 9 "nvme_directive_recv_stream_status" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_directive_recv_stream_status \- Directive receive stream status .SH SYNOPSIS diff --git a/doc/man/nvme_directive_send.2 b/doc/man/nvme_directive_send.2 index 63fe57d..77221dd 100644 --- a/doc/man/nvme_directive_send.2 +++ b/doc/man/nvme_directive_send.2 @@ -1,4 +1,4 @@ -.TH "nvme_directive_send" 9 "nvme_directive_send" "November 2024" "libnvme API manual" LINUX +.TH "nvme_directive_send" 9 "nvme_directive_send" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_directive_send \- Send directive command .SH SYNOPSIS diff --git a/doc/man/nvme_directive_send_doper.2 b/doc/man/nvme_directive_send_doper.2 index 266022e..f5759f0 100644 --- a/doc/man/nvme_directive_send_doper.2 +++ b/doc/man/nvme_directive_send_doper.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_directive_send_doper" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_directive_send_doper" "March 2025" "API Manual" LINUX .SH NAME enum nvme_directive_send_doper \- Directive Send Directive Operation .SH SYNOPSIS diff --git a/doc/man/nvme_directive_send_id_endir.2 b/doc/man/nvme_directive_send_id_endir.2 index 2a2e1e5..4359da2 100644 --- a/doc/man/nvme_directive_send_id_endir.2 +++ b/doc/man/nvme_directive_send_id_endir.2 @@ -1,4 +1,4 @@ -.TH "nvme_directive_send_id_endir" 9 "nvme_directive_send_id_endir" "November 2024" "libnvme API manual" LINUX +.TH "nvme_directive_send_id_endir" 9 "nvme_directive_send_id_endir" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_directive_send_id_endir \- Directive Send Enable Directive .SH SYNOPSIS diff --git a/doc/man/nvme_directive_send_identify_endir.2 b/doc/man/nvme_directive_send_identify_endir.2 index 3f243b3..d8b09ef 100644 --- a/doc/man/nvme_directive_send_identify_endir.2 +++ b/doc/man/nvme_directive_send_identify_endir.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_directive_send_identify_endir" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_directive_send_identify_endir" "March 2025" "API Manual" LINUX .SH NAME enum nvme_directive_send_identify_endir \- Enable Directive .SH SYNOPSIS diff --git a/doc/man/nvme_directive_send_stream_release_identifier.2 b/doc/man/nvme_directive_send_stream_release_identifier.2 index 3f6f79f..54d362b 100644 --- a/doc/man/nvme_directive_send_stream_release_identifier.2 +++ b/doc/man/nvme_directive_send_stream_release_identifier.2 @@ -1,4 +1,4 @@ -.TH "nvme_directive_send_stream_release_identifier" 9 "nvme_directive_send_stream_release_identifier" "November 2024" "libnvme API manual" LINUX +.TH "nvme_directive_send_stream_release_identifier" 9 "nvme_directive_send_stream_release_identifier" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_directive_send_stream_release_identifier \- Directive Send Stream release .SH SYNOPSIS diff --git a/doc/man/nvme_directive_send_stream_release_resource.2 b/doc/man/nvme_directive_send_stream_release_resource.2 index efdc852..013bebc 100644 --- a/doc/man/nvme_directive_send_stream_release_resource.2 +++ b/doc/man/nvme_directive_send_stream_release_resource.2 @@ -1,4 +1,4 @@ -.TH "nvme_directive_send_stream_release_resource" 9 "nvme_directive_send_stream_release_resource" "November 2024" "libnvme API manual" LINUX +.TH "nvme_directive_send_stream_release_resource" 9 "nvme_directive_send_stream_release_resource" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_directive_send_stream_release_resource \- Directive Send Stream release resources .SH SYNOPSIS diff --git a/doc/man/nvme_directive_types.2 b/doc/man/nvme_directive_types.2 index 34c9cfd..a206886 100644 --- a/doc/man/nvme_directive_types.2 +++ b/doc/man/nvme_directive_types.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_directive_types" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_directive_types" "March 2025" "API Manual" LINUX .SH NAME enum nvme_directive_types \- Directives Supported or Enabled .SH SYNOPSIS diff --git a/doc/man/nvme_disconnect_ctrl.2 b/doc/man/nvme_disconnect_ctrl.2 index 4a2ffc3..d02ed16 100644 --- a/doc/man/nvme_disconnect_ctrl.2 +++ b/doc/man/nvme_disconnect_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_disconnect_ctrl" 9 "nvme_disconnect_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_disconnect_ctrl" 9 "nvme_disconnect_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_disconnect_ctrl \- Disconnect a controller .SH SYNOPSIS diff --git a/doc/man/nvme_dispersed_ns_participating_nss_log.2 b/doc/man/nvme_dispersed_ns_participating_nss_log.2 new file mode 100644 index 0000000..830e38f --- /dev/null +++ b/doc/man/nvme_dispersed_ns_participating_nss_log.2 @@ -0,0 +1,27 @@ +.TH "libnvme" 9 "struct nvme_dispersed_ns_participating_nss_log" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_dispersed_ns_participating_nss_log \- Dispersed Namespace Participating NVM Subsystems Log +.SH SYNOPSIS +struct nvme_dispersed_ns_participating_nss_log { +.br +.BI " __le64 genctr;" +.br +.BI " __le64 numpsub;" +.br +.BI " __u8 rsvd16[240];" +.br +.BI " __u8 participating_nss[];" +.br +.BI " +}; +.br + +.SH Members +.IP "genctr" 12 +Generation Counter +.IP "numpsub" 12 +Number of Participating NVM Subsystems +.IP "rsvd16" 12 +Reserved +.IP "participating_nss" 12 +Participating NVM Subsystem Entry diff --git a/doc/man/nvme_dsm.2 b/doc/man/nvme_dsm.2 index c9ca322..03003c3 100644 --- a/doc/man/nvme_dsm.2 +++ b/doc/man/nvme_dsm.2 @@ -1,4 +1,4 @@ -.TH "nvme_dsm" 9 "nvme_dsm" "November 2024" "libnvme API manual" LINUX +.TH "nvme_dsm" 9 "nvme_dsm" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_dsm \- Send an nvme data set management command .SH SYNOPSIS diff --git a/doc/man/nvme_dsm_attributes.2 b/doc/man/nvme_dsm_attributes.2 index bcfde76..94750fa 100644 --- a/doc/man/nvme_dsm_attributes.2 +++ b/doc/man/nvme_dsm_attributes.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_dsm_attributes" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_dsm_attributes" "March 2025" "API Manual" LINUX .SH NAME enum nvme_dsm_attributes \- Dataset Management attributes .SH SYNOPSIS diff --git a/doc/man/nvme_dsm_range.2 b/doc/man/nvme_dsm_range.2 index 1f4db1a..81a8ad1 100644 --- a/doc/man/nvme_dsm_range.2 +++ b/doc/man/nvme_dsm_range.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_dsm_range" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_dsm_range" "March 2025" "API Manual" LINUX .SH NAME struct nvme_dsm_range \- Dataset Management - Range Definition .SH SYNOPSIS diff --git a/doc/man/nvme_dst_stc.2 b/doc/man/nvme_dst_stc.2 index d863800..c7cd0fd 100644 --- a/doc/man/nvme_dst_stc.2 +++ b/doc/man/nvme_dst_stc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_dst_stc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_dst_stc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_dst_stc \- Action taken by the Device Self-test command .SH SYNOPSIS @@ -12,6 +12,10 @@ enum nvme_dst_stc { , .br .br +.BI " NVME_DST_STC_HOST_INIT" +, +.br +.br .BI " NVME_DST_STC_VS" , .br @@ -24,6 +28,8 @@ enum nvme_dst_stc { Start a short device self-test operation .IP "NVME_DST_STC_LONG" 12 Start an extended device self-test operation +.IP "NVME_DST_STC_HOST_INIT" 12 +Start a Host-Initiated Refresh operation .IP "NVME_DST_STC_VS" 12 Start a vendor specific device self-test operation .IP "NVME_DST_STC_ABORT" 12 diff --git a/doc/man/nvme_dump_config.2 b/doc/man/nvme_dump_config.2 index f645700..038c362 100644 --- a/doc/man/nvme_dump_config.2 +++ b/doc/man/nvme_dump_config.2 @@ -1,4 +1,4 @@ -.TH "nvme_dump_config" 9 "nvme_dump_config" "November 2024" "libnvme API manual" LINUX +.TH "nvme_dump_config" 9 "nvme_dump_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_dump_config \- Print the JSON configuration .SH SYNOPSIS diff --git a/doc/man/nvme_dump_tree.2 b/doc/man/nvme_dump_tree.2 index 6e3ce6c..ae9a417 100644 --- a/doc/man/nvme_dump_tree.2 +++ b/doc/man/nvme_dump_tree.2 @@ -1,4 +1,4 @@ -.TH "nvme_dump_tree" 9 "nvme_dump_tree" "November 2024" "libnvme API manual" LINUX +.TH "nvme_dump_tree" 9 "nvme_dump_tree" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_dump_tree \- Dump internal object tree .SH SYNOPSIS diff --git a/doc/man/nvme_eg_critical_warning_flags.2 b/doc/man/nvme_eg_critical_warning_flags.2 index dd77348..549385c 100644 --- a/doc/man/nvme_eg_critical_warning_flags.2 +++ b/doc/man/nvme_eg_critical_warning_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_eg_critical_warning_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_eg_critical_warning_flags" "March 2025" "API Manual" LINUX .SH NAME enum nvme_eg_critical_warning_flags \- Endurance Group Information Log - Critical Warning .SH SYNOPSIS diff --git a/doc/man/nvme_eg_event_aggregate_log.2 b/doc/man/nvme_eg_event_aggregate_log.2 index f97dadb..9b0ba9f 100644 --- a/doc/man/nvme_eg_event_aggregate_log.2 +++ b/doc/man/nvme_eg_event_aggregate_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_eg_event_aggregate_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_eg_event_aggregate_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_eg_event_aggregate_log \- Endurance Group Event Aggregate .SH SYNOPSIS diff --git a/doc/man/nvme_end_grp_chan_desc.2 b/doc/man/nvme_end_grp_chan_desc.2 index 48912ac..f4a4d08 100644 --- a/doc/man/nvme_end_grp_chan_desc.2 +++ b/doc/man/nvme_end_grp_chan_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_end_grp_chan_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_end_grp_chan_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_end_grp_chan_desc \- Endurance Group Channel Configuration Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_end_grp_config_desc.2 b/doc/man/nvme_end_grp_config_desc.2 index 62bb631..cdfae39 100644 --- a/doc/man/nvme_end_grp_config_desc.2 +++ b/doc/man/nvme_end_grp_config_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_end_grp_config_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_end_grp_config_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_end_grp_config_desc \- Endurance Group Configuration Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_endurance_group_log.2 b/doc/man/nvme_endurance_group_log.2 index 8c362cf..75ff329 100644 --- a/doc/man/nvme_endurance_group_log.2 +++ b/doc/man/nvme_endurance_group_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_endurance_group_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_endurance_group_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_endurance_group_log \- Endurance Group Information Log .SH SYNOPSIS diff --git a/doc/man/nvme_eom_lane_desc.2 b/doc/man/nvme_eom_lane_desc.2 index 0662a41..6cebde5 100644 --- a/doc/man/nvme_eom_lane_desc.2 +++ b/doc/man/nvme_eom_lane_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_eom_lane_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_eom_lane_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_eom_lane_desc \- EOM Lane Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_eom_optional_data.2 b/doc/man/nvme_eom_optional_data.2 index d0a6b99..1926f06 100644 --- a/doc/man/nvme_eom_optional_data.2 +++ b/doc/man/nvme_eom_optional_data.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_eom_optional_data" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_eom_optional_data" "March 2025" "API Manual" LINUX .SH NAME enum nvme_eom_optional_data \- EOM Optional Data Present Fields (Deprecated) .SH SYNOPSIS diff --git a/doc/man/nvme_eom_optional_data_present.2 b/doc/man/nvme_eom_optional_data_present.2 index cfd5648..490a773 100644 --- a/doc/man/nvme_eom_optional_data_present.2 +++ b/doc/man/nvme_eom_optional_data_present.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_eom_optional_data_present" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_eom_optional_data_present" "March 2025" "API Manual" LINUX .SH NAME enum nvme_eom_optional_data_present \- EOM Optional Data Present Fields .SH SYNOPSIS diff --git a/doc/man/nvme_err_status_field.2 b/doc/man/nvme_err_status_field.2 new file mode 100644 index 0000000..797ef18 --- /dev/null +++ b/doc/man/nvme_err_status_field.2 @@ -0,0 +1,30 @@ +.TH "libnvme" 9 "enum nvme_err_status_field" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_err_status_field \- This field indicates the error information log entry status field +.SH SYNOPSIS +enum nvme_err_status_field { +.br +.BI " NVME_ERR_SF_PHASE_TAG_SHIFT" +, +.br +.br +.BI " NVME_ERR_SF_STATUS_FIELD_SHIFT" +, +.br +.br +.BI " NVME_ERR_SF_PHASE_TAG_MASK" +, +.br +.br +.BI " NVME_ERR_SF_STATUS_FIELD_MASK" + +}; +.SH Constants +.IP "NVME_ERR_SF_PHASE_TAG_SHIFT" 12 +Shift amount to get the phase tag +.IP "NVME_ERR_SF_STATUS_FIELD_SHIFT" 12 +Shift amount to get the status field +.IP "NVME_ERR_SF_PHASE_TAG_MASK" 12 +Mask to get the phase tag +.IP "NVME_ERR_SF_STATUS_FIELD_MASK" 12 +Mask to get the status field diff --git a/doc/man/nvme_errno_to_string.2 b/doc/man/nvme_errno_to_string.2 index c41f4ae..81121f1 100644 --- a/doc/man/nvme_errno_to_string.2 +++ b/doc/man/nvme_errno_to_string.2 @@ -1,4 +1,4 @@ -.TH "nvme_errno_to_string" 9 "nvme_errno_to_string" "November 2024" "libnvme API manual" LINUX +.TH "nvme_errno_to_string" 9 "nvme_errno_to_string" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_errno_to_string \- Returns string describing nvme connect failures .SH SYNOPSIS diff --git a/doc/man/nvme_error_log_page.2 b/doc/man/nvme_error_log_page.2 index daaac2c..a7bd8e2 100644 --- a/doc/man/nvme_error_log_page.2 +++ b/doc/man/nvme_error_log_page.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_error_log_page" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_error_log_page" "March 2025" "API Manual" LINUX .SH NAME struct nvme_error_log_page \- Error Information Log Entry (Log Identifier 01h) .SH SYNOPSIS diff --git a/doc/man/nvme_export_tls_key.2 b/doc/man/nvme_export_tls_key.2 index 0f0738b..3e1c2f3 100644 --- a/doc/man/nvme_export_tls_key.2 +++ b/doc/man/nvme_export_tls_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_export_tls_key" 9 "nvme_export_tls_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_export_tls_key" 9 "nvme_export_tls_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_export_tls_key \- Export a TLS key .SH SYNOPSIS diff --git a/doc/man/nvme_export_tls_key_versioned.2 b/doc/man/nvme_export_tls_key_versioned.2 index 3648916..d873f2e 100644 --- a/doc/man/nvme_export_tls_key_versioned.2 +++ b/doc/man/nvme_export_tls_key_versioned.2 @@ -1,4 +1,4 @@ -.TH "nvme_export_tls_key_versioned" 9 "nvme_export_tls_key_versioned" "November 2024" "libnvme API manual" LINUX +.TH "nvme_export_tls_key_versioned" 9 "nvme_export_tls_key_versioned" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_export_tls_key_versioned \- Export a TLS pre-shared key .SH SYNOPSIS diff --git a/doc/man/nvme_fabrics_config.2 b/doc/man/nvme_fabrics_config.2 index f5f2ead..069e9d9 100644 --- a/doc/man/nvme_fabrics_config.2 +++ b/doc/man/nvme_fabrics_config.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fabrics_config" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fabrics_config" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fabrics_config \- Defines all linux nvme fabrics initiator options .SH SYNOPSIS diff --git a/doc/man/nvme_fabrics_uri.2 b/doc/man/nvme_fabrics_uri.2 index 1ebeeef..7da1307 100644 --- a/doc/man/nvme_fabrics_uri.2 +++ b/doc/man/nvme_fabrics_uri.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fabrics_uri" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fabrics_uri" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fabrics_uri \- Parsed URI structure .SH SYNOPSIS diff --git a/doc/man/nvme_fctype.2 b/doc/man/nvme_fctype.2 index 30ada39..265cfcf 100644 --- a/doc/man/nvme_fctype.2 +++ b/doc/man/nvme_fctype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fctype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fctype" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fctype \- Fabrics Command Types .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_config_desc.2 b/doc/man/nvme_fdp_config_desc.2 index 851c950..e0cfad8 100644 --- a/doc/man/nvme_fdp_config_desc.2 +++ b/doc/man/nvme_fdp_config_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_config_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_config_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_config_desc \- FDP Configuration Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_config_fdpa.2 b/doc/man/nvme_fdp_config_fdpa.2 index 6137829..7432a59 100644 --- a/doc/man/nvme_fdp_config_fdpa.2 +++ b/doc/man/nvme_fdp_config_fdpa.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fdp_config_fdpa" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fdp_config_fdpa" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fdp_config_fdpa \- FDP Attributes .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_config_log.2 b/doc/man/nvme_fdp_config_log.2 index 4f01b4b..100f502 100644 --- a/doc/man/nvme_fdp_config_log.2 +++ b/doc/man/nvme_fdp_config_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_config_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_config_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_config_log \- FDP Configurations Log Page .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_event.2 b/doc/man/nvme_fdp_event.2 index e7913a3..5066ba1 100644 --- a/doc/man/nvme_fdp_event.2 +++ b/doc/man/nvme_fdp_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_event \- FDP Event .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_event_flags.2 b/doc/man/nvme_fdp_event_flags.2 index 1698186..0df5012 100644 --- a/doc/man/nvme_fdp_event_flags.2 +++ b/doc/man/nvme_fdp_event_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fdp_event_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fdp_event_flags" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fdp_event_flags \- FDP Event Flags .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_event_realloc.2 b/doc/man/nvme_fdp_event_realloc.2 index cb99178..8171cd3 100644 --- a/doc/man/nvme_fdp_event_realloc.2 +++ b/doc/man/nvme_fdp_event_realloc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_event_realloc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_event_realloc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_event_realloc \- Media Reallocated Event Type Specific Information .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_event_realloc_flags.2 b/doc/man/nvme_fdp_event_realloc_flags.2 index 099b15e..69b4fd1 100644 --- a/doc/man/nvme_fdp_event_realloc_flags.2 +++ b/doc/man/nvme_fdp_event_realloc_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fdp_event_realloc_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fdp_event_realloc_flags" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fdp_event_realloc_flags \- Media Reallocated Event Type Specific Flags .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_event_type.2 b/doc/man/nvme_fdp_event_type.2 index 4b21df0..b5d979c 100644 --- a/doc/man/nvme_fdp_event_type.2 +++ b/doc/man/nvme_fdp_event_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fdp_event_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fdp_event_type" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fdp_event_type \- FDP Event Types .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_events_log.2 b/doc/man/nvme_fdp_events_log.2 index 40ba190..7db2a3d 100644 --- a/doc/man/nvme_fdp_events_log.2 +++ b/doc/man/nvme_fdp_events_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_events_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_events_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_events_log \- FDP Events Log Page .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_reclaim_unit_handle_status.2 b/doc/man/nvme_fdp_reclaim_unit_handle_status.2 index ab6cb3e..23ed32a 100644 --- a/doc/man/nvme_fdp_reclaim_unit_handle_status.2 +++ b/doc/man/nvme_fdp_reclaim_unit_handle_status.2 @@ -1,4 +1,4 @@ -.TH "nvme_fdp_reclaim_unit_handle_status" 9 "nvme_fdp_reclaim_unit_handle_status" "November 2024" "libnvme API manual" LINUX +.TH "nvme_fdp_reclaim_unit_handle_status" 9 "nvme_fdp_reclaim_unit_handle_status" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_fdp_reclaim_unit_handle_status \- Get reclaim unit handle status .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_reclaim_unit_handle_update.2 b/doc/man/nvme_fdp_reclaim_unit_handle_update.2 index b963c7d..67ee1fc 100644 --- a/doc/man/nvme_fdp_reclaim_unit_handle_update.2 +++ b/doc/man/nvme_fdp_reclaim_unit_handle_update.2 @@ -1,4 +1,4 @@ -.TH "nvme_fdp_reclaim_unit_handle_update" 9 "nvme_fdp_reclaim_unit_handle_update" "November 2024" "libnvme API manual" LINUX +.TH "nvme_fdp_reclaim_unit_handle_update" 9 "nvme_fdp_reclaim_unit_handle_update" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_fdp_reclaim_unit_handle_update \- Update a list of reclaim unit handles .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_ruh_desc.2 b/doc/man/nvme_fdp_ruh_desc.2 index 51769e8..a89efe2 100644 --- a/doc/man/nvme_fdp_ruh_desc.2 +++ b/doc/man/nvme_fdp_ruh_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_ruh_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_ruh_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_ruh_desc \- Reclaim Unit Handle Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_ruh_status.2 b/doc/man/nvme_fdp_ruh_status.2 index 9d12b55..9743c24 100644 --- a/doc/man/nvme_fdp_ruh_status.2 +++ b/doc/man/nvme_fdp_ruh_status.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_ruh_status" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_ruh_status" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_ruh_status \- Reclaim Unit Handle Status .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_ruh_status_desc.2 b/doc/man/nvme_fdp_ruh_status_desc.2 index 20dc4fb..ec310b5 100644 --- a/doc/man/nvme_fdp_ruh_status_desc.2 +++ b/doc/man/nvme_fdp_ruh_status_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_ruh_status_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_ruh_status_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_ruh_status_desc \- Reclaim Unit Handle Status Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_ruh_type.2 b/doc/man/nvme_fdp_ruh_type.2 index b8f512e..502fbf1 100644 --- a/doc/man/nvme_fdp_ruh_type.2 +++ b/doc/man/nvme_fdp_ruh_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fdp_ruh_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fdp_ruh_type" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fdp_ruh_type \- Reclaim Unit Handle Type .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_ruha.2 b/doc/man/nvme_fdp_ruha.2 index 7ed6935..d75ed32 100644 --- a/doc/man/nvme_fdp_ruha.2 +++ b/doc/man/nvme_fdp_ruha.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fdp_ruha" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fdp_ruha" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fdp_ruha \- Reclaim Unit Handle Attributes .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_ruhu_desc.2 b/doc/man/nvme_fdp_ruhu_desc.2 index 1e9eaea..b975d41 100644 --- a/doc/man/nvme_fdp_ruhu_desc.2 +++ b/doc/man/nvme_fdp_ruhu_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_ruhu_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_ruhu_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_ruhu_desc \- Reclaim Unit Handle Usage Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_ruhu_log.2 b/doc/man/nvme_fdp_ruhu_log.2 index 418d938..5538215 100644 --- a/doc/man/nvme_fdp_ruhu_log.2 +++ b/doc/man/nvme_fdp_ruhu_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_ruhu_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_ruhu_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_ruhu_log \- Reclaim Unit Handle Usage Log Page .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_stats_log.2 b/doc/man/nvme_fdp_stats_log.2 index 6854c99..5b8f224 100644 --- a/doc/man/nvme_fdp_stats_log.2 +++ b/doc/man/nvme_fdp_stats_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_stats_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_stats_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_stats_log \- FDP Statistics Log Page .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_supported_event_attributes.2 b/doc/man/nvme_fdp_supported_event_attributes.2 index d8770a3..3dbb29d 100644 --- a/doc/man/nvme_fdp_supported_event_attributes.2 +++ b/doc/man/nvme_fdp_supported_event_attributes.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fdp_supported_event_attributes" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fdp_supported_event_attributes" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fdp_supported_event_attributes \- Supported FDP Event Attributes .SH SYNOPSIS diff --git a/doc/man/nvme_fdp_supported_event_desc.2 b/doc/man/nvme_fdp_supported_event_desc.2 index 8f14ccc..dffe4da 100644 --- a/doc/man/nvme_fdp_supported_event_desc.2 +++ b/doc/man/nvme_fdp_supported_event_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fdp_supported_event_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fdp_supported_event_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fdp_supported_event_desc \- Supported FDP Event Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_feat.2 b/doc/man/nvme_feat.2 index e85e673..1c6b25b 100644 --- a/doc/man/nvme_feat.2 +++ b/doc/man/nvme_feat.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_feat" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_feat" "March 2025" "API Manual" LINUX .SH NAME enum nvme_feat \- Features Access Shifts/Masks values .SH SYNOPSIS @@ -228,6 +228,86 @@ enum nvme_feat { , .br .br +.BI " NVME_FEAT_AE_NNSSHDN_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_NNSSHDN_MASK" +, +.br +.br +.BI " NVME_FEAT_AE_TTHRY_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_TTHRY_MASK" +, +.br +.br +.BI " NVME_FEAT_AE_RASSN_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_RASSN_MASK" +, +.br +.br +.BI " NVME_FEAT_AE_RGRP0_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_RGRP0_MASK" +, +.br +.br +.BI " NVME_FEAT_AE_ANSAN_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_ANSAN_MASK" +, +.br +.br +.BI " NVME_FEAT_AE_ZDCN_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_ZDCN_MASK" +, +.br +.br +.BI " NVME_FEAT_AE_PMDRLPCN_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_PMDRLPCN_MASK" +, +.br +.br +.BI " NVME_FEAT_AE_ADLPCN_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_ADLPCN_MASK" +, +.br +.br +.BI " NVME_FEAT_AE_HDLPCN_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_HDLPCN_MASK" +, +.br +.br +.BI " NVME_FEAT_AE_DLPCN_SHIFT" +, +.br +.br +.BI " NVME_FEAT_AE_DLPCN_MASK" +, +.br +.br .BI " NVME_FEAT_APST_APSTE_SHIFT" , .br @@ -332,6 +412,22 @@ enum nvme_feat { , .br .br +.BI " NVME_FEAT_FDPE_PHNDL_SHIFT" +, +.br +.br +.BI " NVME_FEAT_FDPE_PHNDL_MASK" +, +.br +.br +.BI " NVME_FEAT_FDPE_NOET_SHIFT" +, +.br +.br +.BI " NVME_FEAT_FDPE_NOET_MASK" +, +.br +.br .BI " NVME_FEAT_SPM_PBSLC_SHIFT" , .br @@ -396,6 +492,22 @@ enum nvme_feat { , .br .br +.BI " NVME_FEAT_SPINUP_CONTROL_SHIFT" +, +.br +.br +.BI " NVME_FEAT_SPINUP_CONTROL_MASK" +, +.br +.br +.BI " NVME_FEAT_PLS_MODE_SHIFT" +, +.br +.br +.BI " NVME_FEAT_PLS_MODE_MASK" +, +.br +.br .BI " NVME_FEAT_FDP_ENABLED_SHIFT" , .br @@ -476,6 +588,26 @@ enum nvme_feat { .IP "NVME_FEAT_AE_LBAS_MASK" 12 .IP "NVME_FEAT_AE_EGA_SHIFT" 12 .IP "NVME_FEAT_AE_EGA_MASK" 12 +.IP "NVME_FEAT_AE_NNSSHDN_SHIFT" 12 +.IP "NVME_FEAT_AE_NNSSHDN_MASK" 12 +.IP "NVME_FEAT_AE_TTHRY_SHIFT" 12 +.IP "NVME_FEAT_AE_TTHRY_MASK" 12 +.IP "NVME_FEAT_AE_RASSN_SHIFT" 12 +.IP "NVME_FEAT_AE_RASSN_MASK" 12 +.IP "NVME_FEAT_AE_RGRP0_SHIFT" 12 +.IP "NVME_FEAT_AE_RGRP0_MASK" 12 +.IP "NVME_FEAT_AE_ANSAN_SHIFT" 12 +.IP "NVME_FEAT_AE_ANSAN_MASK" 12 +.IP "NVME_FEAT_AE_ZDCN_SHIFT" 12 +.IP "NVME_FEAT_AE_ZDCN_MASK" 12 +.IP "NVME_FEAT_AE_PMDRLPCN_SHIFT" 12 +.IP "NVME_FEAT_AE_PMDRLPCN_MASK" 12 +.IP "NVME_FEAT_AE_ADLPCN_SHIFT" 12 +.IP "NVME_FEAT_AE_ADLPCN_MASK" 12 +.IP "NVME_FEAT_AE_HDLPCN_SHIFT" 12 +.IP "NVME_FEAT_AE_HDLPCN_MASK" 12 +.IP "NVME_FEAT_AE_DLPCN_SHIFT" 12 +.IP "NVME_FEAT_AE_DLPCN_MASK" 12 .IP "NVME_FEAT_APST_APSTE_SHIFT" 12 .IP "NVME_FEAT_APST_APSTE_MASK" 12 .IP "NVME_FEAT_HMEM_EHM_SHIFT" 12 @@ -502,6 +634,10 @@ enum nvme_feat { .IP "NVME_FEAT_EG_ENDGID_MASK" 12 .IP "NVME_FEAT_EG_EGCW_SHIFT" 12 .IP "NVME_FEAT_EG_EGCW_MASK" 12 +.IP "NVME_FEAT_FDPE_PHNDL_SHIFT" 12 +.IP "NVME_FEAT_FDPE_PHNDL_MASK" 12 +.IP "NVME_FEAT_FDPE_NOET_SHIFT" 12 +.IP "NVME_FEAT_FDPE_NOET_MASK" 12 .IP "NVME_FEAT_SPM_PBSLC_SHIFT" 12 .IP "NVME_FEAT_SPM_PBSLC_MASK" 12 .IP "NVME_FEAT_HOSTID_EXHID_SHIFT" 12 @@ -518,6 +654,10 @@ enum nvme_feat { .IP "NVME_FEAT_WP_WPS_MASK" 12 .IP "NVME_FEAT_IOCSP_IOCSCI_SHIFT" 12 .IP "NVME_FEAT_IOCSP_IOCSCI_MASK" 12 +.IP "NVME_FEAT_SPINUP_CONTROL_SHIFT" 12 +.IP "NVME_FEAT_SPINUP_CONTROL_MASK" 12 +.IP "NVME_FEAT_PLS_MODE_SHIFT" 12 +.IP "NVME_FEAT_PLS_MODE_MASK" 12 .IP "NVME_FEAT_FDP_ENABLED_SHIFT" 12 .IP "NVME_FEAT_FDP_ENABLED_MASK" 12 .IP "NVME_FEAT_FDP_INDEX_SHIFT" 12 diff --git a/doc/man/nvme_feat_auto_pst.2 b/doc/man/nvme_feat_auto_pst.2 index 7e24c37..4ca98dc 100644 --- a/doc/man/nvme_feat_auto_pst.2 +++ b/doc/man/nvme_feat_auto_pst.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_feat_auto_pst" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_feat_auto_pst" "March 2025" "API Manual" LINUX .SH NAME struct nvme_feat_auto_pst \- Autonomous Power State Transition .SH SYNOPSIS diff --git a/doc/man/nvme_feat_fdp_events_cdw11.2 b/doc/man/nvme_feat_fdp_events_cdw11.2 index 5281441..97ac478 100644 --- a/doc/man/nvme_feat_fdp_events_cdw11.2 +++ b/doc/man/nvme_feat_fdp_events_cdw11.2 @@ -1,6 +1,6 @@ -.TH "libnvme" 9 "struct nvme_feat_fdp_events_cdw11" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_feat_fdp_events_cdw11" "March 2025" "API Manual" LINUX .SH NAME -struct nvme_feat_fdp_events_cdw11 \- FDP Events Feature Command Dword 11 +struct nvme_feat_fdp_events_cdw11 \- FDP Events Feature Command Dword 11 Deprecated: doesn't support this struct. Use NVME_FEAT_FDPE_*** definitions instead. .SH SYNOPSIS struct nvme_feat_fdp_events_cdw11 { .br diff --git a/doc/man/nvme_feat_host_behavior.2 b/doc/man/nvme_feat_host_behavior.2 index 785a94a..9b6b535 100644 --- a/doc/man/nvme_feat_host_behavior.2 +++ b/doc/man/nvme_feat_host_behavior.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_feat_host_behavior" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_feat_host_behavior" "March 2025" "API Manual" LINUX .SH NAME struct nvme_feat_host_behavior \- Host Behavior Support - Data Structure .SH SYNOPSIS @@ -10,9 +10,9 @@ struct nvme_feat_host_behavior { .br .BI " __u8 lbafee;" .br -.BI " __u8 rsvd3;" +.BI " __u8 hdisns;" .br -.BI " __u16 cdfe;" +.BI " __le16 cdfe;" .br .BI " __u8 rsvd6[506];" .br @@ -27,8 +27,8 @@ Advanced Command Retry Enable Extended Telemetry Data Area 4 Supported .IP "lbafee" 12 LBA Format Extension Enable -.IP "rsvd3" 12 -Reserved +.IP "hdisns" 12 +Host Dispersed Namespace Support .IP "cdfe" 12 Copy Descriptor Formats Enable .IP "rsvd6" 12 diff --git a/doc/man/nvme_feat_nswpcfg_state.2 b/doc/man/nvme_feat_nswpcfg_state.2 index cf755dc..3ad81c7 100644 --- a/doc/man/nvme_feat_nswpcfg_state.2 +++ b/doc/man/nvme_feat_nswpcfg_state.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_feat_nswpcfg_state" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_feat_nswpcfg_state" "March 2025" "API Manual" LINUX .SH NAME enum nvme_feat_nswpcfg_state \- Write Protection - Write Protection State .SH SYNOPSIS diff --git a/doc/man/nvme_feat_plm_window_select.2 b/doc/man/nvme_feat_plm_window_select.2 index 9610773..f137033 100644 --- a/doc/man/nvme_feat_plm_window_select.2 +++ b/doc/man/nvme_feat_plm_window_select.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_feat_plm_window_select" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_feat_plm_window_select" "March 2025" "API Manual" LINUX .SH NAME enum nvme_feat_plm_window_select \- Predictable Latency Per NVM Set Log .SH SYNOPSIS diff --git a/doc/man/nvme_feat_resv_notify_flags.2 b/doc/man/nvme_feat_resv_notify_flags.2 index fa820a7..6ee4f9c 100644 --- a/doc/man/nvme_feat_resv_notify_flags.2 +++ b/doc/man/nvme_feat_resv_notify_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_feat_resv_notify_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_feat_resv_notify_flags" "March 2025" "API Manual" LINUX .SH NAME enum nvme_feat_resv_notify_flags \- Reservation Notification Configuration .SH SYNOPSIS diff --git a/doc/man/nvme_feat_tmpthresh_thsel.2 b/doc/man/nvme_feat_tmpthresh_thsel.2 index 8ac61cd..be6c3e8 100644 --- a/doc/man/nvme_feat_tmpthresh_thsel.2 +++ b/doc/man/nvme_feat_tmpthresh_thsel.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_feat_tmpthresh_thsel" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_feat_tmpthresh_thsel" "March 2025" "API Manual" LINUX .SH NAME enum nvme_feat_tmpthresh_thsel \- Temperature Threshold - Threshold Type Select .SH SYNOPSIS diff --git a/doc/man/nvme_features_async_event_config_flags.2 b/doc/man/nvme_features_async_event_config_flags.2 index e6aa938..01eb0b8 100644 --- a/doc/man/nvme_features_async_event_config_flags.2 +++ b/doc/man/nvme_features_async_event_config_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_features_async_event_config_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_features_async_event_config_flags" "March 2025" "API Manual" LINUX .SH NAME enum nvme_features_async_event_config_flags \- Asynchronous Event Configuration configuration flags .SH SYNOPSIS diff --git a/doc/man/nvme_features_id.2 b/doc/man/nvme_features_id.2 index f2cee72..10aabd7 100644 --- a/doc/man/nvme_features_id.2 +++ b/doc/man/nvme_features_id.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_features_id" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_features_id" "March 2025" "API Manual" LINUX .SH NAME enum nvme_features_id \- Features - Feature Identifiers .SH SYNOPSIS @@ -108,6 +108,14 @@ enum nvme_features_id { , .br .br +.BI " NVME_FEAT_FID_POWER_LOSS_SIGNAL" +, +.br +.br +.BI " NVME_FEAT_FID_PERF_CHARACTERISTICS" +, +.br +.br .BI " NVME_FEAT_FID_FDP" , .br @@ -116,6 +124,26 @@ enum nvme_features_id { , .br .br +.BI " NVME_FEAT_FID_NS_ADMIN_LABEL" +, +.br +.br +.BI " NVME_FEAT_FID_KEY_VALUE" +, +.br +.br +.BI " NVME_FEAT_FID_CTRL_DATA_QUEUE" +, +.br +.br +.BI " NVME_FEAT_FID_EMB_MGMT_CTRL_ADDR" +, +.br +.br +.BI " NVME_FEAT_FID_HOST_MGMT_AGENT_ADDR" +, +.br +.br .BI " NVME_FEAT_FID_ENH_CTRL_METADATA" , .br @@ -145,6 +173,10 @@ enum nvme_features_id { .br .br .BI " NVME_FEAT_FID_WRITE_PROTECT" +, +.br +.br +.BI " NVME_FEAT_FID_BP_WRITE_PROTECT" }; .SH Constants @@ -193,17 +225,31 @@ LBA Status Information Report Interval .IP "NVME_FEAT_FID_HOST_BEHAVIOR" 12 Host Behavior Support .IP "NVME_FEAT_FID_SANITIZE" 12 -Endurance Group Event Configuration +Sanitize Config .IP "NVME_FEAT_FID_ENDURANCE_EVT_CFG" 12 Endurance Group Event Configuration .IP "NVME_FEAT_FID_IOCS_PROFILE" 12 I/O Command Set Profile .IP "NVME_FEAT_FID_SPINUP_CONTROL" 12 Spinup Control +.IP "NVME_FEAT_FID_POWER_LOSS_SIGNAL" 12 +Power Loss Signaling Config +.IP "NVME_FEAT_FID_PERF_CHARACTERISTICS" 12 +Performance Characteristics .IP "NVME_FEAT_FID_FDP" 12 Flexible Data Placement .IP "NVME_FEAT_FID_FDP_EVENTS" 12 FDP Events +.IP "NVME_FEAT_FID_NS_ADMIN_LABEL" 12 +Namespace Admin Label +.IP "NVME_FEAT_FID_KEY_VALUE" 12 +Key Value Configuration +.IP "NVME_FEAT_FID_CTRL_DATA_QUEUE" 12 +Controller Data Queue +.IP "NVME_FEAT_FID_EMB_MGMT_CTRL_ADDR" 12 +Embedded Management Controller Address +.IP "NVME_FEAT_FID_HOST_MGMT_AGENT_ADDR" 12 +Host Management Agent Address .IP "NVME_FEAT_FID_ENH_CTRL_METADATA" 12 Enhanced Controller Metadata .IP "NVME_FEAT_FID_CTRL_METADATA" 12 @@ -220,3 +266,5 @@ Reservation Notification Mask Reservation Persistence .IP "NVME_FEAT_FID_WRITE_PROTECT" 12 Namespace Write Protection Config +.IP "NVME_FEAT_FID_BP_WRITE_PROTECT" 12 +Boot Partition Write Protection Config diff --git a/doc/man/nvme_fid_supported_effects.2 b/doc/man/nvme_fid_supported_effects.2 index 43aa5f4..a7335c9 100644 --- a/doc/man/nvme_fid_supported_effects.2 +++ b/doc/man/nvme_fid_supported_effects.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fid_supported_effects" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fid_supported_effects" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fid_supported_effects \- FID Supported and Effects Data Structure definitions .SH SYNOPSIS @@ -57,6 +57,10 @@ enum nvme_fid_supported_effects { .br .br .BI " NVME_FID_SUPPORTED_EFFECTS_SCOPE_NSS" +, +.br +.br +.BI " NVME_FID_SUPPORTED_EFFECTS_CDQSCP" }; .SH Constants @@ -88,3 +92,5 @@ Endurance Group Scope Domain Scope .IP "NVME_FID_SUPPORTED_EFFECTS_SCOPE_NSS" 12 NVM Subsystem Scope +.IP "NVME_FID_SUPPORTED_EFFECTS_CDQSCP" 12 +Controller Data Queue diff --git a/doc/man/nvme_fid_supported_effects_log.2 b/doc/man/nvme_fid_supported_effects_log.2 index 7ede4bc..23686ea 100644 --- a/doc/man/nvme_fid_supported_effects_log.2 +++ b/doc/man/nvme_fid_supported_effects_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fid_supported_effects_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fid_supported_effects_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fid_supported_effects_log \- Feature Identifiers Supported and Effects .SH SYNOPSIS diff --git a/doc/man/nvme_firmware_slot.2 b/doc/man/nvme_firmware_slot.2 index 8b627fd..5a6b964 100644 --- a/doc/man/nvme_firmware_slot.2 +++ b/doc/man/nvme_firmware_slot.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_firmware_slot" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_firmware_slot" "March 2025" "API Manual" LINUX .SH NAME struct nvme_firmware_slot \- Firmware Slot Information Log .SH SYNOPSIS diff --git a/doc/man/nvme_first_host.2 b/doc/man/nvme_first_host.2 index 46b6c2f..f177e1b 100644 --- a/doc/man/nvme_first_host.2 +++ b/doc/man/nvme_first_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_first_host" 9 "nvme_first_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_first_host" 9 "nvme_first_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_first_host \- Start host iterator .SH SYNOPSIS diff --git a/doc/man/nvme_first_subsystem.2 b/doc/man/nvme_first_subsystem.2 index 10d885f..55992f1 100644 --- a/doc/man/nvme_first_subsystem.2 +++ b/doc/man/nvme_first_subsystem.2 @@ -1,4 +1,4 @@ -.TH "nvme_first_subsystem" 9 "nvme_first_subsystem" "November 2024" "libnvme API manual" LINUX +.TH "nvme_first_subsystem" 9 "nvme_first_subsystem" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_first_subsystem \- Start subsystem iterator .SH SYNOPSIS diff --git a/doc/man/nvme_flbas.2 b/doc/man/nvme_flbas.2 index 54124b0..f6040c6 100644 --- a/doc/man/nvme_flbas.2 +++ b/doc/man/nvme_flbas.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_flbas" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_flbas" "March 2025" "API Manual" LINUX .SH NAME enum nvme_flbas \- This field indicates the formatted LBA size .SH SYNOPSIS diff --git a/doc/man/nvme_flush.2 b/doc/man/nvme_flush.2 index 6c5972e..649d89f 100644 --- a/doc/man/nvme_flush.2 +++ b/doc/man/nvme_flush.2 @@ -1,4 +1,4 @@ -.TH "nvme_flush" 9 "nvme_flush" "November 2024" "libnvme API manual" LINUX +.TH "nvme_flush" 9 "nvme_flush" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_flush \- Send an nvme flush command .SH SYNOPSIS diff --git a/doc/man/nvme_for_each_host.2 b/doc/man/nvme_for_each_host.2 index 87a69a0..222850c 100644 --- a/doc/man/nvme_for_each_host.2 +++ b/doc/man/nvme_for_each_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_for_each_host" 9 "nvme_for_each_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_for_each_host" 9 "nvme_for_each_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_for_each_host \- Traverse host list .SH SYNOPSIS diff --git a/doc/man/nvme_for_each_host_safe.2 b/doc/man/nvme_for_each_host_safe.2 index a7526f3..20a6c76 100644 --- a/doc/man/nvme_for_each_host_safe.2 +++ b/doc/man/nvme_for_each_host_safe.2 @@ -1,4 +1,4 @@ -.TH "nvme_for_each_host_safe" 9 "nvme_for_each_host_safe" "November 2024" "libnvme API manual" LINUX +.TH "nvme_for_each_host_safe" 9 "nvme_for_each_host_safe" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_for_each_host_safe \- Traverse host list .SH SYNOPSIS diff --git a/doc/man/nvme_for_each_subsystem.2 b/doc/man/nvme_for_each_subsystem.2 index 9d65487..65f09fa 100644 --- a/doc/man/nvme_for_each_subsystem.2 +++ b/doc/man/nvme_for_each_subsystem.2 @@ -1,4 +1,4 @@ -.TH "nvme_for_each_subsystem" 9 "nvme_for_each_subsystem" "November 2024" "libnvme API manual" LINUX +.TH "nvme_for_each_subsystem" 9 "nvme_for_each_subsystem" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_for_each_subsystem \- Traverse subsystems .SH SYNOPSIS diff --git a/doc/man/nvme_for_each_subsystem_safe.2 b/doc/man/nvme_for_each_subsystem_safe.2 index a68fa9c..1039c96 100644 --- a/doc/man/nvme_for_each_subsystem_safe.2 +++ b/doc/man/nvme_for_each_subsystem_safe.2 @@ -1,4 +1,4 @@ -.TH "nvme_for_each_subsystem_safe" 9 "nvme_for_each_subsystem_safe" "November 2024" "libnvme API manual" LINUX +.TH "nvme_for_each_subsystem_safe" 9 "nvme_for_each_subsystem_safe" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_for_each_subsystem_safe \- Traverse subsystems .SH SYNOPSIS diff --git a/doc/man/nvme_format_nvm.2 b/doc/man/nvme_format_nvm.2 index f8b3071..d88c4b9 100644 --- a/doc/man/nvme_format_nvm.2 +++ b/doc/man/nvme_format_nvm.2 @@ -1,4 +1,4 @@ -.TH "nvme_format_nvm" 9 "nvme_format_nvm" "November 2024" "libnvme API manual" LINUX +.TH "nvme_format_nvm" 9 "nvme_format_nvm" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_format_nvm \- Format nvme namespace(s) .SH SYNOPSIS diff --git a/doc/man/nvme_format_nvm_compln_event.2 b/doc/man/nvme_format_nvm_compln_event.2 index c8cddf0..054589a 100644 --- a/doc/man/nvme_format_nvm_compln_event.2 +++ b/doc/man/nvme_format_nvm_compln_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_format_nvm_compln_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_format_nvm_compln_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_format_nvm_compln_event \- Format NVM Completion Event Data .SH SYNOPSIS diff --git a/doc/man/nvme_format_nvm_start_event.2 b/doc/man/nvme_format_nvm_start_event.2 index 592d33c..a1ed266 100644 --- a/doc/man/nvme_format_nvm_start_event.2 +++ b/doc/man/nvme_format_nvm_start_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_format_nvm_start_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_format_nvm_start_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_format_nvm_start_event \- Format NVM Start Event Data .SH SYNOPSIS diff --git a/doc/man/nvme_free_ctrl.2 b/doc/man/nvme_free_ctrl.2 index ae30499..2684457 100644 --- a/doc/man/nvme_free_ctrl.2 +++ b/doc/man/nvme_free_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_free_ctrl" 9 "nvme_free_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_free_ctrl" 9 "nvme_free_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_free_ctrl \- Free controller .SH SYNOPSIS diff --git a/doc/man/nvme_free_host.2 b/doc/man/nvme_free_host.2 index 85a678e..a15d019 100644 --- a/doc/man/nvme_free_host.2 +++ b/doc/man/nvme_free_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_free_host" 9 "nvme_free_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_free_host" 9 "nvme_free_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_free_host \- Free nvme_host_t object .SH SYNOPSIS diff --git a/doc/man/nvme_free_ns.2 b/doc/man/nvme_free_ns.2 index 07529f2..89abbe6 100644 --- a/doc/man/nvme_free_ns.2 +++ b/doc/man/nvme_free_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_free_ns" 9 "nvme_free_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_free_ns" 9 "nvme_free_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_free_ns \- Free a namespace object .SH SYNOPSIS diff --git a/doc/man/nvme_free_subsystem.2 b/doc/man/nvme_free_subsystem.2 index cde3e15..0154b50 100644 --- a/doc/man/nvme_free_subsystem.2 +++ b/doc/man/nvme_free_subsystem.2 @@ -1,4 +1,4 @@ -.TH "nvme_free_subsystem" 9 "nvme_free_subsystem" "November 2024" "libnvme API manual" LINUX +.TH "nvme_free_subsystem" 9 "nvme_free_subsystem" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_free_subsystem \- Free a subsystem .SH SYNOPSIS diff --git a/doc/man/nvme_free_tree.2 b/doc/man/nvme_free_tree.2 index 73c1446..e4f76ed 100644 --- a/doc/man/nvme_free_tree.2 +++ b/doc/man/nvme_free_tree.2 @@ -1,4 +1,4 @@ -.TH "nvme_free_tree" 9 "nvme_free_tree" "November 2024" "libnvme API manual" LINUX +.TH "nvme_free_tree" 9 "nvme_free_tree" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_free_tree \- Free root object .SH SYNOPSIS diff --git a/doc/man/nvme_free_uri.2 b/doc/man/nvme_free_uri.2 index 85262a1..d3e687f 100644 --- a/doc/man/nvme_free_uri.2 +++ b/doc/man/nvme_free_uri.2 @@ -1,4 +1,4 @@ -.TH "nvme_free_uri" 9 "nvme_free_uri" "November 2024" "libnvme API manual" LINUX +.TH "nvme_free_uri" 9 "nvme_free_uri" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_free_uri \- Free the URI structure .SH SYNOPSIS diff --git a/doc/man/nvme_fw_commit.2 b/doc/man/nvme_fw_commit.2 index 612729e..8cdd6e3 100644 --- a/doc/man/nvme_fw_commit.2 +++ b/doc/man/nvme_fw_commit.2 @@ -1,4 +1,4 @@ -.TH "nvme_fw_commit" 9 "nvme_fw_commit" "November 2024" "libnvme API manual" LINUX +.TH "nvme_fw_commit" 9 "nvme_fw_commit" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_fw_commit \- Commit firmware using the specified action .SH SYNOPSIS diff --git a/doc/man/nvme_fw_commit_ca.2 b/doc/man/nvme_fw_commit_ca.2 index 8f01ca0..a847960 100644 --- a/doc/man/nvme_fw_commit_ca.2 +++ b/doc/man/nvme_fw_commit_ca.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_fw_commit_ca" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_fw_commit_ca" "March 2025" "API Manual" LINUX .SH NAME enum nvme_fw_commit_ca \- Firmware Commit - Commit Action .SH SYNOPSIS diff --git a/doc/man/nvme_fw_commit_event.2 b/doc/man/nvme_fw_commit_event.2 index 9138d57..64ccb79 100644 --- a/doc/man/nvme_fw_commit_event.2 +++ b/doc/man/nvme_fw_commit_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_fw_commit_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_fw_commit_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_fw_commit_event \- Firmware Commit Event Data .SH SYNOPSIS diff --git a/doc/man/nvme_fw_download.2 b/doc/man/nvme_fw_download.2 index 7723a1f..3e6b506 100644 --- a/doc/man/nvme_fw_download.2 +++ b/doc/man/nvme_fw_download.2 @@ -1,4 +1,4 @@ -.TH "nvme_fw_download" 9 "nvme_fw_download" "November 2024" "libnvme API manual" LINUX +.TH "nvme_fw_download" 9 "nvme_fw_download" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_fw_download \- Download part or all of a firmware image to the controller .SH SYNOPSIS diff --git a/doc/man/nvme_fw_download_seq.2 b/doc/man/nvme_fw_download_seq.2 index dbb6603..0c0a1bc 100644 --- a/doc/man/nvme_fw_download_seq.2 +++ b/doc/man/nvme_fw_download_seq.2 @@ -1,4 +1,4 @@ -.TH "nvme_fw_download_seq" 9 "nvme_fw_download_seq" "November 2024" "libnvme API manual" LINUX +.TH "nvme_fw_download_seq" 9 "nvme_fw_download_seq" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_fw_download_seq \- Firmware download sequence .SH SYNOPSIS diff --git a/doc/man/nvme_gen_dhchap_key.2 b/doc/man/nvme_gen_dhchap_key.2 index 2f4445e..be97e34 100644 --- a/doc/man/nvme_gen_dhchap_key.2 +++ b/doc/man/nvme_gen_dhchap_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_gen_dhchap_key" 9 "nvme_gen_dhchap_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_gen_dhchap_key" 9 "nvme_gen_dhchap_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_gen_dhchap_key \- DH-HMAC-CHAP key generation .SH SYNOPSIS diff --git a/doc/man/nvme_generate_tls_key_identity.2 b/doc/man/nvme_generate_tls_key_identity.2 index 1363259..20a3b9e 100644 --- a/doc/man/nvme_generate_tls_key_identity.2 +++ b/doc/man/nvme_generate_tls_key_identity.2 @@ -1,4 +1,4 @@ -.TH "nvme_generate_tls_key_identity" 9 "nvme_generate_tls_key_identity" "November 2024" "libnvme API manual" LINUX +.TH "nvme_generate_tls_key_identity" 9 "nvme_generate_tls_key_identity" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_generate_tls_key_identity \- Generate the TLS key identity .SH SYNOPSIS diff --git a/doc/man/nvme_get_ana_log_atomic.2 b/doc/man/nvme_get_ana_log_atomic.2 index fe5f964..96e2ad2 100644 --- a/doc/man/nvme_get_ana_log_atomic.2 +++ b/doc/man/nvme_get_ana_log_atomic.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_ana_log_atomic" 9 "nvme_get_ana_log_atomic" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_ana_log_atomic" 9 "nvme_get_ana_log_atomic" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_ana_log_atomic \- Retrieve Asymmetric Namespace Access log page atomically .SH SYNOPSIS diff --git a/doc/man/nvme_get_ana_log_len.2 b/doc/man/nvme_get_ana_log_len.2 index 0792af7..6ae5997 100644 --- a/doc/man/nvme_get_ana_log_len.2 +++ b/doc/man/nvme_get_ana_log_len.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_ana_log_len" 9 "nvme_get_ana_log_len" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_ana_log_len" 9 "nvme_get_ana_log_len" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_ana_log_len \- Retrieve size of the current ANA log .SH SYNOPSIS diff --git a/doc/man/nvme_get_ana_log_len_from_id_ctrl.2 b/doc/man/nvme_get_ana_log_len_from_id_ctrl.2 index d1f3551..fe3a0b6 100644 --- a/doc/man/nvme_get_ana_log_len_from_id_ctrl.2 +++ b/doc/man/nvme_get_ana_log_len_from_id_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_ana_log_len_from_id_ctrl" 9 "nvme_get_ana_log_len_from_id_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_ana_log_len_from_id_ctrl" 9 "nvme_get_ana_log_len_from_id_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_ana_log_len_from_id_ctrl \- Retrieve maximum possible ANA log size .SH SYNOPSIS diff --git a/doc/man/nvme_get_attr.2 b/doc/man/nvme_get_attr.2 index ea26929..7e5baa6 100644 --- a/doc/man/nvme_get_attr.2 +++ b/doc/man/nvme_get_attr.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_attr" 9 "nvme_get_attr" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_attr" 9 "nvme_get_attr" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_attr \- Read sysfs attribute .SH SYNOPSIS diff --git a/doc/man/nvme_get_ctrl_attr.2 b/doc/man/nvme_get_ctrl_attr.2 index a3411fe..b71a049 100644 --- a/doc/man/nvme_get_ctrl_attr.2 +++ b/doc/man/nvme_get_ctrl_attr.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_ctrl_attr" 9 "nvme_get_ctrl_attr" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_ctrl_attr" 9 "nvme_get_ctrl_attr" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_ctrl_attr \- Read controller sysfs attribute .SH SYNOPSIS diff --git a/doc/man/nvme_get_ctrl_telemetry.2 b/doc/man/nvme_get_ctrl_telemetry.2 index b77daed..0303c4b 100644 --- a/doc/man/nvme_get_ctrl_telemetry.2 +++ b/doc/man/nvme_get_ctrl_telemetry.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_ctrl_telemetry" 9 "nvme_get_ctrl_telemetry" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_ctrl_telemetry" 9 "nvme_get_ctrl_telemetry" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_ctrl_telemetry \- Get controller telemetry log .SH SYNOPSIS diff --git a/doc/man/nvme_get_directive_receive_length.2 b/doc/man/nvme_get_directive_receive_length.2 index a80f362..48a871f 100644 --- a/doc/man/nvme_get_directive_receive_length.2 +++ b/doc/man/nvme_get_directive_receive_length.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_directive_receive_length" 9 "nvme_get_directive_receive_length" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_directive_receive_length" 9 "nvme_get_directive_receive_length" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_directive_receive_length \- Get directive receive length .SH SYNOPSIS diff --git a/doc/man/nvme_get_discovery_args.2 b/doc/man/nvme_get_discovery_args.2 index 7f422c4..24206eb 100644 --- a/doc/man/nvme_get_discovery_args.2 +++ b/doc/man/nvme_get_discovery_args.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_get_discovery_args" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_get_discovery_args" "March 2025" "API Manual" LINUX .SH NAME struct nvme_get_discovery_args \- Arguments for nvmf_get_discovery_wargs() .SH SYNOPSIS diff --git a/doc/man/nvme_get_feature_length.2 b/doc/man/nvme_get_feature_length.2 index 56a4241..adda44e 100644 --- a/doc/man/nvme_get_feature_length.2 +++ b/doc/man/nvme_get_feature_length.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_feature_length" 9 "nvme_get_feature_length" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_feature_length" 9 "nvme_get_feature_length" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_feature_length \- Retreive the command payload length for a specific feature identifier .SH SYNOPSIS diff --git a/doc/man/nvme_get_feature_length2.2 b/doc/man/nvme_get_feature_length2.2 index a9346e7..e49db6e 100644 --- a/doc/man/nvme_get_feature_length2.2 +++ b/doc/man/nvme_get_feature_length2.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_feature_length2" 9 "nvme_get_feature_length2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_feature_length2" 9 "nvme_get_feature_length2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_feature_length2 \- Retreive the command payload length for a specific feature identifier .SH SYNOPSIS diff --git a/doc/man/nvme_get_features.2 b/doc/man/nvme_get_features.2 index 452fecd..0d846e2 100644 --- a/doc/man/nvme_get_features.2 +++ b/doc/man/nvme_get_features.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features" 9 "nvme_get_features" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features" 9 "nvme_get_features" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features \- Retrieve a feature attribute .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_arbitration.2 b/doc/man/nvme_get_features_arbitration.2 index 973e039..fe0c15f 100644 --- a/doc/man/nvme_get_features_arbitration.2 +++ b/doc/man/nvme_get_features_arbitration.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_arbitration" 9 "nvme_get_features_arbitration" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_arbitration" 9 "nvme_get_features_arbitration" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_arbitration \- Get arbitration feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_async_event.2 b/doc/man/nvme_get_features_async_event.2 index 7a85041..96a2bc5 100644 --- a/doc/man/nvme_get_features_async_event.2 +++ b/doc/man/nvme_get_features_async_event.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_async_event" 9 "nvme_get_features_async_event" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_async_event" 9 "nvme_get_features_async_event" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_async_event \- Get asynchronous event feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_auto_pst.2 b/doc/man/nvme_get_features_auto_pst.2 index 20a9cd7..eb2f284 100644 --- a/doc/man/nvme_get_features_auto_pst.2 +++ b/doc/man/nvme_get_features_auto_pst.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_auto_pst" 9 "nvme_get_features_auto_pst" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_auto_pst" 9 "nvme_get_features_auto_pst" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_auto_pst \- Get autonomous power state feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_data.2 b/doc/man/nvme_get_features_data.2 index 513bc65..6a93334 100644 --- a/doc/man/nvme_get_features_data.2 +++ b/doc/man/nvme_get_features_data.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_data" 9 "nvme_get_features_data" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_data" 9 "nvme_get_features_data" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_data \- Helper function for @nvme_get_features() .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_endurance_event_cfg.2 b/doc/man/nvme_get_features_endurance_event_cfg.2 index c72e794..d893014 100644 --- a/doc/man/nvme_get_features_endurance_event_cfg.2 +++ b/doc/man/nvme_get_features_endurance_event_cfg.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_endurance_event_cfg" 9 "nvme_get_features_endurance_event_cfg" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_endurance_event_cfg" 9 "nvme_get_features_endurance_event_cfg" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_endurance_event_cfg \- Get endurance event config feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_err_recovery.2 b/doc/man/nvme_get_features_err_recovery.2 index 49347cf..4d2a371 100644 --- a/doc/man/nvme_get_features_err_recovery.2 +++ b/doc/man/nvme_get_features_err_recovery.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_err_recovery" 9 "nvme_get_features_err_recovery" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_err_recovery" 9 "nvme_get_features_err_recovery" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_err_recovery \- Get error recovery feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_err_recovery2.2 b/doc/man/nvme_get_features_err_recovery2.2 index 852efcc..95b702f 100644 --- a/doc/man/nvme_get_features_err_recovery2.2 +++ b/doc/man/nvme_get_features_err_recovery2.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_err_recovery2" 9 "nvme_get_features_err_recovery2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_err_recovery2" 9 "nvme_get_features_err_recovery2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_err_recovery2 \- Get error recovery feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_hctm.2 b/doc/man/nvme_get_features_hctm.2 index 4a6a3fa..80215a5 100644 --- a/doc/man/nvme_get_features_hctm.2 +++ b/doc/man/nvme_get_features_hctm.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_hctm" 9 "nvme_get_features_hctm" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_hctm" 9 "nvme_get_features_hctm" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_hctm \- Get thermal management feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_host_behavior.2 b/doc/man/nvme_get_features_host_behavior.2 index e9a1f5a..1736a64 100644 --- a/doc/man/nvme_get_features_host_behavior.2 +++ b/doc/man/nvme_get_features_host_behavior.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_host_behavior" 9 "nvme_get_features_host_behavior" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_host_behavior" 9 "nvme_get_features_host_behavior" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_host_behavior \- Get host behavior feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_host_id.2 b/doc/man/nvme_get_features_host_id.2 index 01228d2..8e5f322 100644 --- a/doc/man/nvme_get_features_host_id.2 +++ b/doc/man/nvme_get_features_host_id.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_host_id" 9 "nvme_get_features_host_id" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_host_id" 9 "nvme_get_features_host_id" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_host_id \- Get host id feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_host_mem_buf.2 b/doc/man/nvme_get_features_host_mem_buf.2 index 7fc66a7..7cba222 100644 --- a/doc/man/nvme_get_features_host_mem_buf.2 +++ b/doc/man/nvme_get_features_host_mem_buf.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_host_mem_buf" 9 "nvme_get_features_host_mem_buf" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_host_mem_buf" 9 "nvme_get_features_host_mem_buf" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_host_mem_buf \- Get host memory buffer feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_host_mem_buf2.2 b/doc/man/nvme_get_features_host_mem_buf2.2 index 987a281..2ca1501 100644 --- a/doc/man/nvme_get_features_host_mem_buf2.2 +++ b/doc/man/nvme_get_features_host_mem_buf2.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_host_mem_buf2" 9 "nvme_get_features_host_mem_buf2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_host_mem_buf2" 9 "nvme_get_features_host_mem_buf2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_host_mem_buf2 \- Get host memory buffer feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_iocs_profile.2 b/doc/man/nvme_get_features_iocs_profile.2 index b399455..080bd5e 100644 --- a/doc/man/nvme_get_features_iocs_profile.2 +++ b/doc/man/nvme_get_features_iocs_profile.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_iocs_profile" 9 "nvme_get_features_iocs_profile" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_iocs_profile" 9 "nvme_get_features_iocs_profile" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_iocs_profile \- Get IOCS profile feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_irq_coalesce.2 b/doc/man/nvme_get_features_irq_coalesce.2 index 3b0f327..aeca929 100644 --- a/doc/man/nvme_get_features_irq_coalesce.2 +++ b/doc/man/nvme_get_features_irq_coalesce.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_irq_coalesce" 9 "nvme_get_features_irq_coalesce" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_irq_coalesce" 9 "nvme_get_features_irq_coalesce" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_irq_coalesce \- Get IRQ coalesce feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_irq_config.2 b/doc/man/nvme_get_features_irq_config.2 index 3f7c75a..98b45cd 100644 --- a/doc/man/nvme_get_features_irq_config.2 +++ b/doc/man/nvme_get_features_irq_config.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_irq_config" 9 "nvme_get_features_irq_config" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_irq_config" 9 "nvme_get_features_irq_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_irq_config \- Get IRQ config feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_kato.2 b/doc/man/nvme_get_features_kato.2 index 7436a87..e26200f 100644 --- a/doc/man/nvme_get_features_kato.2 +++ b/doc/man/nvme_get_features_kato.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_kato" 9 "nvme_get_features_kato" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_kato" 9 "nvme_get_features_kato" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_kato \- Get keep alive timeout feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_lba_range.2 b/doc/man/nvme_get_features_lba_range.2 index 38c8834..8d7fdab 100644 --- a/doc/man/nvme_get_features_lba_range.2 +++ b/doc/man/nvme_get_features_lba_range.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_lba_range" 9 "nvme_get_features_lba_range" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_lba_range" 9 "nvme_get_features_lba_range" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_lba_range \- Get LBA range feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_lba_range2.2 b/doc/man/nvme_get_features_lba_range2.2 index 75806ad..482b2d2 100644 --- a/doc/man/nvme_get_features_lba_range2.2 +++ b/doc/man/nvme_get_features_lba_range2.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_lba_range2" 9 "nvme_get_features_lba_range2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_lba_range2" 9 "nvme_get_features_lba_range2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_lba_range2 \- Get LBA range feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_lba_sts_interval.2 b/doc/man/nvme_get_features_lba_sts_interval.2 index 5d70d1f..6dd4957 100644 --- a/doc/man/nvme_get_features_lba_sts_interval.2 +++ b/doc/man/nvme_get_features_lba_sts_interval.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_lba_sts_interval" 9 "nvme_get_features_lba_sts_interval" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_lba_sts_interval" 9 "nvme_get_features_lba_sts_interval" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_lba_sts_interval \- Get LBA status information feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_nopsc.2 b/doc/man/nvme_get_features_nopsc.2 index 07e79c9..7d031bc 100644 --- a/doc/man/nvme_get_features_nopsc.2 +++ b/doc/man/nvme_get_features_nopsc.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_nopsc" 9 "nvme_get_features_nopsc" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_nopsc" 9 "nvme_get_features_nopsc" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_nopsc \- Get non-operational power state feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_num_queues.2 b/doc/man/nvme_get_features_num_queues.2 index e50bdc5..849159a 100644 --- a/doc/man/nvme_get_features_num_queues.2 +++ b/doc/man/nvme_get_features_num_queues.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_num_queues" 9 "nvme_get_features_num_queues" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_num_queues" 9 "nvme_get_features_num_queues" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_num_queues \- Get number of queues feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_plm_config.2 b/doc/man/nvme_get_features_plm_config.2 index a132034..7854878 100644 --- a/doc/man/nvme_get_features_plm_config.2 +++ b/doc/man/nvme_get_features_plm_config.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_plm_config" 9 "nvme_get_features_plm_config" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_plm_config" 9 "nvme_get_features_plm_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_plm_config \- Get predictable latency feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_plm_window.2 b/doc/man/nvme_get_features_plm_window.2 index 2b1cd67..4e849a1 100644 --- a/doc/man/nvme_get_features_plm_window.2 +++ b/doc/man/nvme_get_features_plm_window.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_plm_window" 9 "nvme_get_features_plm_window" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_plm_window" 9 "nvme_get_features_plm_window" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_plm_window \- Get window select feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_power_mgmt.2 b/doc/man/nvme_get_features_power_mgmt.2 index 906f22c..e5619a0 100644 --- a/doc/man/nvme_get_features_power_mgmt.2 +++ b/doc/man/nvme_get_features_power_mgmt.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_power_mgmt" 9 "nvme_get_features_power_mgmt" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_power_mgmt" 9 "nvme_get_features_power_mgmt" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_power_mgmt \- Get power management feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_resv_mask.2 b/doc/man/nvme_get_features_resv_mask.2 index 53846e6..4f1e251 100644 --- a/doc/man/nvme_get_features_resv_mask.2 +++ b/doc/man/nvme_get_features_resv_mask.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_resv_mask" 9 "nvme_get_features_resv_mask" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_resv_mask" 9 "nvme_get_features_resv_mask" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_resv_mask \- Get reservation mask feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_resv_mask2.2 b/doc/man/nvme_get_features_resv_mask2.2 index 7c8b9ee..9610a11 100644 --- a/doc/man/nvme_get_features_resv_mask2.2 +++ b/doc/man/nvme_get_features_resv_mask2.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_resv_mask2" 9 "nvme_get_features_resv_mask2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_resv_mask2" 9 "nvme_get_features_resv_mask2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_resv_mask2 \- Get reservation mask feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_resv_persist.2 b/doc/man/nvme_get_features_resv_persist.2 index 60414b2..5ed3bb9 100644 --- a/doc/man/nvme_get_features_resv_persist.2 +++ b/doc/man/nvme_get_features_resv_persist.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_resv_persist" 9 "nvme_get_features_resv_persist" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_resv_persist" 9 "nvme_get_features_resv_persist" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_resv_persist \- Get reservation persist feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_resv_persist2.2 b/doc/man/nvme_get_features_resv_persist2.2 index c56328a..de35d0d 100644 --- a/doc/man/nvme_get_features_resv_persist2.2 +++ b/doc/man/nvme_get_features_resv_persist2.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_resv_persist2" 9 "nvme_get_features_resv_persist2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_resv_persist2" 9 "nvme_get_features_resv_persist2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_resv_persist2 \- Get reservation persist feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_rrl.2 b/doc/man/nvme_get_features_rrl.2 index 4fa13ae..c282847 100644 --- a/doc/man/nvme_get_features_rrl.2 +++ b/doc/man/nvme_get_features_rrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_rrl" 9 "nvme_get_features_rrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_rrl" 9 "nvme_get_features_rrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_rrl \- Get read recovery level feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_sanitize.2 b/doc/man/nvme_get_features_sanitize.2 index 6fa03f2..89c0a69 100644 --- a/doc/man/nvme_get_features_sanitize.2 +++ b/doc/man/nvme_get_features_sanitize.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_sanitize" 9 "nvme_get_features_sanitize" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_sanitize" 9 "nvme_get_features_sanitize" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_sanitize \- Get sanitize feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_sel.2 b/doc/man/nvme_get_features_sel.2 index 393a503..b65e4d5 100644 --- a/doc/man/nvme_get_features_sel.2 +++ b/doc/man/nvme_get_features_sel.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_get_features_sel" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_get_features_sel" "March 2025" "API Manual" LINUX .SH NAME enum nvme_get_features_sel \- Get Features - Select .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_simple.2 b/doc/man/nvme_get_features_simple.2 index 689a882..596d5a2 100644 --- a/doc/man/nvme_get_features_simple.2 +++ b/doc/man/nvme_get_features_simple.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_simple" 9 "nvme_get_features_simple" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_simple" 9 "nvme_get_features_simple" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_simple \- Helper function for @nvme_get_features() .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_sw_progress.2 b/doc/man/nvme_get_features_sw_progress.2 index dccb89e..70298cb 100644 --- a/doc/man/nvme_get_features_sw_progress.2 +++ b/doc/man/nvme_get_features_sw_progress.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_sw_progress" 9 "nvme_get_features_sw_progress" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_sw_progress" 9 "nvme_get_features_sw_progress" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_sw_progress \- Get software progress feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_temp_thresh.2 b/doc/man/nvme_get_features_temp_thresh.2 index 14c3a9b..0752b1a 100644 --- a/doc/man/nvme_get_features_temp_thresh.2 +++ b/doc/man/nvme_get_features_temp_thresh.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_temp_thresh" 9 "nvme_get_features_temp_thresh" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_temp_thresh" 9 "nvme_get_features_temp_thresh" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_temp_thresh \- Get temperature threshold feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_timestamp.2 b/doc/man/nvme_get_features_timestamp.2 index 15a8479..1091a93 100644 --- a/doc/man/nvme_get_features_timestamp.2 +++ b/doc/man/nvme_get_features_timestamp.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_timestamp" 9 "nvme_get_features_timestamp" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_timestamp" 9 "nvme_get_features_timestamp" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_timestamp \- Get timestamp feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_volatile_wc.2 b/doc/man/nvme_get_features_volatile_wc.2 index d31dc4d..4a34135 100644 --- a/doc/man/nvme_get_features_volatile_wc.2 +++ b/doc/man/nvme_get_features_volatile_wc.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_volatile_wc" 9 "nvme_get_features_volatile_wc" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_volatile_wc" 9 "nvme_get_features_volatile_wc" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_volatile_wc \- Get volatile write cache feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_write_atomic.2 b/doc/man/nvme_get_features_write_atomic.2 index 90b1bff..dec1f56 100644 --- a/doc/man/nvme_get_features_write_atomic.2 +++ b/doc/man/nvme_get_features_write_atomic.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_write_atomic" 9 "nvme_get_features_write_atomic" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_write_atomic" 9 "nvme_get_features_write_atomic" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_write_atomic \- Get write atomic feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_features_write_protect.2 b/doc/man/nvme_get_features_write_protect.2 index 5d37d07..79689d8 100644 --- a/doc/man/nvme_get_features_write_protect.2 +++ b/doc/man/nvme_get_features_write_protect.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_features_write_protect" 9 "nvme_get_features_write_protect" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_features_write_protect" 9 "nvme_get_features_write_protect" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_features_write_protect \- Get write protect feature .SH SYNOPSIS diff --git a/doc/man/nvme_get_host_telemetry.2 b/doc/man/nvme_get_host_telemetry.2 index 84a4145..5d60e3c 100644 --- a/doc/man/nvme_get_host_telemetry.2 +++ b/doc/man/nvme_get_host_telemetry.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_host_telemetry" 9 "nvme_get_host_telemetry" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_host_telemetry" 9 "nvme_get_host_telemetry" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_host_telemetry \- Get host telemetry log .SH SYNOPSIS diff --git a/doc/man/nvme_get_lba_status.2 b/doc/man/nvme_get_lba_status.2 index 4fa70df..3a0f63d 100644 --- a/doc/man/nvme_get_lba_status.2 +++ b/doc/man/nvme_get_lba_status.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_lba_status" 9 "nvme_get_lba_status" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_lba_status" 9 "nvme_get_lba_status" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_lba_status \- Retrieve information on possibly unrecoverable LBAs .SH SYNOPSIS diff --git a/doc/man/nvme_get_lba_status_log.2 b/doc/man/nvme_get_lba_status_log.2 index 2896310..6d5b50a 100644 --- a/doc/man/nvme_get_lba_status_log.2 +++ b/doc/man/nvme_get_lba_status_log.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_lba_status_log" 9 "nvme_get_lba_status_log" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_lba_status_log" 9 "nvme_get_lba_status_log" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_lba_status_log \- Retrieve the LBA Status log page .SH SYNOPSIS diff --git a/doc/man/nvme_get_log.2 b/doc/man/nvme_get_log.2 index c4becd7..b6918b7 100644 --- a/doc/man/nvme_get_log.2 +++ b/doc/man/nvme_get_log.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log" 9 "nvme_get_log" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log" 9 "nvme_get_log" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log \- NVMe Admin Get Log command .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_ana.2 b/doc/man/nvme_get_log_ana.2 index 8403dc3..f5dab1f 100644 --- a/doc/man/nvme_get_log_ana.2 +++ b/doc/man/nvme_get_log_ana.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_ana" 9 "nvme_get_log_ana" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_ana" 9 "nvme_get_log_ana" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_ana \- Retrieve Asymmetric Namespace Access log page .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_ana_groups.2 b/doc/man/nvme_get_log_ana_groups.2 index 76ef120..8cd329a 100644 --- a/doc/man/nvme_get_log_ana_groups.2 +++ b/doc/man/nvme_get_log_ana_groups.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_ana_groups" 9 "nvme_get_log_ana_groups" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_ana_groups" 9 "nvme_get_log_ana_groups" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_ana_groups \- Retrieve Asymmetric Namespace Access groups only log page .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_lba_status.2 b/doc/man/nvme_get_log_ave_discover.2 similarity index 50% copy from doc/man/nvme_get_log_lba_status.2 copy to doc/man/nvme_get_log_ave_discover.2 index 6c11cf1..ba2af63 100644 --- a/doc/man/nvme_get_log_lba_status.2 +++ b/doc/man/nvme_get_log_ave_discover.2 @@ -1,24 +1,21 @@ -.TH "nvme_get_log_lba_status" 9 "nvme_get_log_lba_status" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_ave_discover" 9 "nvme_get_log_ave_discover" "March 2025" "libnvme API manual" LINUX .SH NAME -nvme_get_log_lba_status \- Retrieve LBA Status +nvme_get_log_ave_discover \- Retrieve AVE Discovery Log .SH SYNOPSIS -.B "int" nvme_get_log_lba_status +.B "int" nvme_get_log_ave_discover .BI "(int fd " "," .BI "bool rae " "," -.BI "__u64 offset " "," .BI "__u32 len " "," -.BI "void *log " ");" +.BI "struct nvme_ave_discover_log *log " ");" .SH ARGUMENTS .IP "fd" 12 File descriptor of nvme device .IP "rae" 12 Retain asynchronous events -.IP "offset" 12 -Offset to the start of the log page .IP "len" 12 The allocated length of the log page .IP "log" 12 User address to store the log page .SH "RETURN" The nvme command status if a response was received (see -\fIenum nvme_status_field\fP) or -1 with errno set otherwise. +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_get_log_boot_partition.2 b/doc/man/nvme_get_log_boot_partition.2 index d1f190d..93d3f0c 100644 --- a/doc/man/nvme_get_log_boot_partition.2 +++ b/doc/man/nvme_get_log_boot_partition.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_boot_partition" 9 "nvme_get_log_boot_partition" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_boot_partition" 9 "nvme_get_log_boot_partition" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_boot_partition \- Retrieve Boot Partition .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_lba_status.2 b/doc/man/nvme_get_log_changed_alloc_ns_list.2 similarity index 50% copy from doc/man/nvme_get_log_lba_status.2 copy to doc/man/nvme_get_log_changed_alloc_ns_list.2 index 6c11cf1..ce9d6d0 100644 --- a/doc/man/nvme_get_log_lba_status.2 +++ b/doc/man/nvme_get_log_changed_alloc_ns_list.2 @@ -1,24 +1,21 @@ -.TH "nvme_get_log_lba_status" 9 "nvme_get_log_lba_status" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_changed_alloc_ns_list" 9 "nvme_get_log_changed_alloc_ns_list" "March 2025" "libnvme API manual" LINUX .SH NAME -nvme_get_log_lba_status \- Retrieve LBA Status +nvme_get_log_changed_alloc_ns_list \- Retrieve Changed Allocated Namespace List Log .SH SYNOPSIS -.B "int" nvme_get_log_lba_status +.B "int" nvme_get_log_changed_alloc_ns_list .BI "(int fd " "," .BI "bool rae " "," -.BI "__u64 offset " "," .BI "__u32 len " "," -.BI "void *log " ");" +.BI "struct nvme_ns_list *log " ");" .SH ARGUMENTS .IP "fd" 12 File descriptor of nvme device .IP "rae" 12 Retain asynchronous events -.IP "offset" 12 -Offset to the start of the log page .IP "len" 12 The allocated length of the log page .IP "log" 12 User address to store the log page .SH "RETURN" The nvme command status if a response was received (see -\fIenum nvme_status_field\fP) or -1 with errno set otherwise. +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_get_log_changed_ns_list.2 b/doc/man/nvme_get_log_changed_ns_list.2 index 8968878..b52c16c 100644 --- a/doc/man/nvme_get_log_changed_ns_list.2 +++ b/doc/man/nvme_get_log_changed_ns_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_changed_ns_list" 9 "nvme_get_log_changed_ns_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_changed_ns_list" 9 "nvme_get_log_changed_ns_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_changed_ns_list \- Retrieve namespace changed list .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_cmd_effects.2 b/doc/man/nvme_get_log_cmd_effects.2 index 3f5edee..f1f056c 100644 --- a/doc/man/nvme_get_log_cmd_effects.2 +++ b/doc/man/nvme_get_log_cmd_effects.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_cmd_effects" 9 "nvme_get_log_cmd_effects" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_cmd_effects" 9 "nvme_get_log_cmd_effects" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_cmd_effects \- Retrieve nvme command effects log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_create_telemetry_host.2 b/doc/man/nvme_get_log_create_telemetry_host.2 index 5d0fd6e..fbf87f5 100644 --- a/doc/man/nvme_get_log_create_telemetry_host.2 +++ b/doc/man/nvme_get_log_create_telemetry_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_create_telemetry_host" 9 "nvme_get_log_create_telemetry_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_create_telemetry_host" 9 "nvme_get_log_create_telemetry_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_create_telemetry_host \- Create host telemetry log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_create_telemetry_host_mcda.2 b/doc/man/nvme_get_log_create_telemetry_host_mcda.2 new file mode 100644 index 0000000..f8f4515 --- /dev/null +++ b/doc/man/nvme_get_log_create_telemetry_host_mcda.2 @@ -0,0 +1,18 @@ +.TH "nvme_get_log_create_telemetry_host_mcda" 9 "nvme_get_log_create_telemetry_host_mcda" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_create_telemetry_host_mcda \- Create host telemetry log +.SH SYNOPSIS +.B "int" nvme_get_log_create_telemetry_host_mcda +.BI "(int fd " "," +.BI "enum nvme_telemetry_da mcda " "," +.BI "struct nvme_telemetry_log *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "mcda" 12 +Maximum Created Data Area +.IP "log" 12 +Userspace address of the log payload +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise. diff --git a/doc/man/nvme_get_log_device_self_test.2 b/doc/man/nvme_get_log_device_self_test.2 index fc47ed8..f450396 100644 --- a/doc/man/nvme_get_log_device_self_test.2 +++ b/doc/man/nvme_get_log_device_self_test.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_device_self_test" 9 "nvme_get_log_device_self_test" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_device_self_test" 9 "nvme_get_log_device_self_test" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_device_self_test \- Retrieve the device self test log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_discovery.2 b/doc/man/nvme_get_log_discovery.2 index 8a3e1d3..1f627a7 100644 --- a/doc/man/nvme_get_log_discovery.2 +++ b/doc/man/nvme_get_log_discovery.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_discovery" 9 "nvme_get_log_discovery" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_discovery" 9 "nvme_get_log_discovery" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_discovery \- Retrieve Discovery log page .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_dispersed_ns_participating_nss.2 b/doc/man/nvme_get_log_dispersed_ns_participating_nss.2 new file mode 100644 index 0000000..5927a82 --- /dev/null +++ b/doc/man/nvme_get_log_dispersed_ns_participating_nss.2 @@ -0,0 +1,21 @@ +.TH "nvme_get_log_dispersed_ns_participating_nss" 9 "nvme_get_log_dispersed_ns_participating_nss" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_dispersed_ns_participating_nss \- Retrieve Dispersed Namespace Participating NVM Subsystems Log +.SH SYNOPSIS +.B "int" nvme_get_log_dispersed_ns_participating_nss +.BI "(int fd " "," +.BI "__u32 nsid " "," +.BI "__u32 len " "," +.BI "struct nvme_dispersed_ns_participating_nss_log *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "nsid" 12 +Namespace Identifier +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_get_log_endurance_group.2 b/doc/man/nvme_get_log_endurance_group.2 index f0f68f2..58abecb 100644 --- a/doc/man/nvme_get_log_endurance_group.2 +++ b/doc/man/nvme_get_log_endurance_group.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_endurance_group" 9 "nvme_get_log_endurance_group" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_endurance_group" 9 "nvme_get_log_endurance_group" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_endurance_group \- Get Endurance Group log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_endurance_grp_evt.2 b/doc/man/nvme_get_log_endurance_grp_evt.2 index fd7bc13..1dd84d2 100644 --- a/doc/man/nvme_get_log_endurance_grp_evt.2 +++ b/doc/man/nvme_get_log_endurance_grp_evt.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_endurance_grp_evt" 9 "nvme_get_log_endurance_grp_evt" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_endurance_grp_evt" 9 "nvme_get_log_endurance_grp_evt" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_endurance_grp_evt \- Retrieve Rotational Media Information .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_error.2 b/doc/man/nvme_get_log_error.2 index 2fa264c..a9c03a1 100644 --- a/doc/man/nvme_get_log_error.2 +++ b/doc/man/nvme_get_log_error.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_error" 9 "nvme_get_log_error" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_error" 9 "nvme_get_log_error" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_error \- Retrieve nvme error log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_fdp_configurations.2 b/doc/man/nvme_get_log_fdp_configurations.2 index 0e678cc..4afec70 100644 --- a/doc/man/nvme_get_log_fdp_configurations.2 +++ b/doc/man/nvme_get_log_fdp_configurations.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_fdp_configurations" 9 "nvme_get_log_fdp_configurations" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_fdp_configurations" 9 "nvme_get_log_fdp_configurations" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_fdp_configurations \- Get list of Flexible Data Placement configurations .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_fdp_events.2 b/doc/man/nvme_get_log_fdp_events.2 index 1588d49..33c3666 100644 --- a/doc/man/nvme_get_log_fdp_events.2 +++ b/doc/man/nvme_get_log_fdp_events.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_fdp_events" 9 "nvme_get_log_fdp_events" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_fdp_events" 9 "nvme_get_log_fdp_events" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_fdp_events \- Get Flexible Data Placement events .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_fdp_stats.2 b/doc/man/nvme_get_log_fdp_stats.2 index e22dc6c..cd19ffe 100644 --- a/doc/man/nvme_get_log_fdp_stats.2 +++ b/doc/man/nvme_get_log_fdp_stats.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_fdp_stats" 9 "nvme_get_log_fdp_stats" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_fdp_stats" 9 "nvme_get_log_fdp_stats" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_fdp_stats \- Get Flexible Data Placement statistics .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_fid_supported_effects.2 b/doc/man/nvme_get_log_fid_supported_effects.2 index 6e65e4d..5a1dfc2 100644 --- a/doc/man/nvme_get_log_fid_supported_effects.2 +++ b/doc/man/nvme_get_log_fid_supported_effects.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_fid_supported_effects" 9 "nvme_get_log_fid_supported_effects" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_fid_supported_effects" 9 "nvme_get_log_fid_supported_effects" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_fid_supported_effects \- Retrieve Feature Identifiers Supported and Effects .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_fw_slot.2 b/doc/man/nvme_get_log_fw_slot.2 index 5e07a4e..4c4cf54 100644 --- a/doc/man/nvme_get_log_fw_slot.2 +++ b/doc/man/nvme_get_log_fw_slot.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_fw_slot" 9 "nvme_get_log_fw_slot" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_fw_slot" 9 "nvme_get_log_fw_slot" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_fw_slot \- Retrieves the controller firmware log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_host_discover.2 b/doc/man/nvme_get_log_host_discover.2 new file mode 100644 index 0000000..76e47e5 --- /dev/null +++ b/doc/man/nvme_get_log_host_discover.2 @@ -0,0 +1,24 @@ +.TH "nvme_get_log_host_discover" 9 "nvme_get_log_host_discover" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_host_discover \- Retrieve Host Discovery Log +.SH SYNOPSIS +.B "int" nvme_get_log_host_discover +.BI "(int fd " "," +.BI "bool allhoste " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_host_discover_log *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "allhoste" 12 +All host entries +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_get_log_lba_status.2 b/doc/man/nvme_get_log_lba_status.2 index 6c11cf1..6a7b6c0 100644 --- a/doc/man/nvme_get_log_lba_status.2 +++ b/doc/man/nvme_get_log_lba_status.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_lba_status" 9 "nvme_get_log_lba_status" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_lba_status" 9 "nvme_get_log_lba_status" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_lba_status \- Retrieve LBA Status .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_lockdown.2 b/doc/man/nvme_get_log_lockdown.2 index d9e404e..1180163 100644 --- a/doc/man/nvme_get_log_lockdown.2 +++ b/doc/man/nvme_get_log_lockdown.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_lockdown" 9 "nvme_get_log_lockdown" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_lockdown" 9 "nvme_get_log_lockdown" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_lockdown \- Retrieve lockdown Log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_media_unit_stat.2 b/doc/man/nvme_get_log_media_unit_stat.2 index a81282c..8c9cd47 100644 --- a/doc/man/nvme_get_log_media_unit_stat.2 +++ b/doc/man/nvme_get_log_media_unit_stat.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_media_unit_stat" 9 "nvme_get_log_media_unit_stat" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_media_unit_stat" 9 "nvme_get_log_media_unit_stat" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_media_unit_stat \- Retrieve Media Unit Status .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_mgmt_addr_list.2 b/doc/man/nvme_get_log_mgmt_addr_list.2 new file mode 100644 index 0000000..57d47f5 --- /dev/null +++ b/doc/man/nvme_get_log_mgmt_addr_list.2 @@ -0,0 +1,18 @@ +.TH "nvme_get_log_mgmt_addr_list" 9 "nvme_get_log_mgmt_addr_list" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_mgmt_addr_list \- Retrieve Management Address List Log +.SH SYNOPSIS +.B "int" nvme_get_log_mgmt_addr_list +.BI "(int fd " "," +.BI "__u32 len " "," +.BI "struct nvme_mgmt_addr_list_log *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_get_log_mi_cmd_supported_effects.2 b/doc/man/nvme_get_log_mi_cmd_supported_effects.2 index 555785c..82e9bff 100644 --- a/doc/man/nvme_get_log_mi_cmd_supported_effects.2 +++ b/doc/man/nvme_get_log_mi_cmd_supported_effects.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_mi_cmd_supported_effects" 9 "nvme_get_log_mi_cmd_supported_effects" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_mi_cmd_supported_effects" 9 "nvme_get_log_mi_cmd_supported_effects" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_mi_cmd_supported_effects \- displays the MI Commands Supported by the controller .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_page.2 b/doc/man/nvme_get_log_page.2 index e6ba106..1ac6fd3 100644 --- a/doc/man/nvme_get_log_page.2 +++ b/doc/man/nvme_get_log_page.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_page" 9 "nvme_get_log_page" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_page" 9 "nvme_get_log_page" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_page \- Get log page data .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_persistent_event.2 b/doc/man/nvme_get_log_persistent_event.2 index b67f5a3..9af652a 100644 --- a/doc/man/nvme_get_log_persistent_event.2 +++ b/doc/man/nvme_get_log_persistent_event.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_persistent_event" 9 "nvme_get_log_persistent_event" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_persistent_event" 9 "nvme_get_log_persistent_event" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_persistent_event \- Retrieve Persistent Event Log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_phy_rx_eom.2 b/doc/man/nvme_get_log_phy_rx_eom.2 index e653960..45a1a09 100644 --- a/doc/man/nvme_get_log_phy_rx_eom.2 +++ b/doc/man/nvme_get_log_phy_rx_eom.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_phy_rx_eom" 9 "nvme_get_log_phy_rx_eom" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_phy_rx_eom" 9 "nvme_get_log_phy_rx_eom" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_phy_rx_eom \- Retrieve Physical Interface Receiver Eye Opening Measurement Log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_predictable_lat_event.2 b/doc/man/nvme_get_log_predictable_lat_event.2 index 530ef26..2cb86db 100644 --- a/doc/man/nvme_get_log_predictable_lat_event.2 +++ b/doc/man/nvme_get_log_predictable_lat_event.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_predictable_lat_event" 9 "nvme_get_log_predictable_lat_event" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_predictable_lat_event" 9 "nvme_get_log_predictable_lat_event" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_predictable_lat_event \- Retrieve Predictable Latency Event Aggregate Log Page .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_predictable_lat_nvmset.2 b/doc/man/nvme_get_log_predictable_lat_nvmset.2 index 9066b24..5810f5a 100644 --- a/doc/man/nvme_get_log_predictable_lat_nvmset.2 +++ b/doc/man/nvme_get_log_predictable_lat_nvmset.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_predictable_lat_nvmset" 9 "nvme_get_log_predictable_lat_nvmset" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_predictable_lat_nvmset" 9 "nvme_get_log_predictable_lat_nvmset" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_predictable_lat_nvmset \- Predictable Latency Per NVM Set .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_lba_status.2 b/doc/man/nvme_get_log_pull_model_ddc_req.2 similarity index 50% copy from doc/man/nvme_get_log_lba_status.2 copy to doc/man/nvme_get_log_pull_model_ddc_req.2 index 6c11cf1..9145f27 100644 --- a/doc/man/nvme_get_log_lba_status.2 +++ b/doc/man/nvme_get_log_pull_model_ddc_req.2 @@ -1,24 +1,21 @@ -.TH "nvme_get_log_lba_status" 9 "nvme_get_log_lba_status" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_pull_model_ddc_req" 9 "nvme_get_log_pull_model_ddc_req" "March 2025" "libnvme API manual" LINUX .SH NAME -nvme_get_log_lba_status \- Retrieve LBA Status +nvme_get_log_pull_model_ddc_req \- Retrieve Pull Model DDC Request Log .SH SYNOPSIS -.B "int" nvme_get_log_lba_status +.B "int" nvme_get_log_pull_model_ddc_req .BI "(int fd " "," .BI "bool rae " "," -.BI "__u64 offset " "," .BI "__u32 len " "," -.BI "void *log " ");" +.BI "struct nvme_pull_model_ddc_req_log *log " ");" .SH ARGUMENTS .IP "fd" 12 File descriptor of nvme device .IP "rae" 12 Retain asynchronous events -.IP "offset" 12 -Offset to the start of the log page .IP "len" 12 The allocated length of the log page .IP "log" 12 User address to store the log page .SH "RETURN" The nvme command status if a response was received (see -\fIenum nvme_status_field\fP) or -1 with errno set otherwise. +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_get_log_reachability_associations.2 b/doc/man/nvme_get_log_reachability_associations.2 new file mode 100644 index 0000000..8024be1 --- /dev/null +++ b/doc/man/nvme_get_log_reachability_associations.2 @@ -0,0 +1,24 @@ +.TH "nvme_get_log_reachability_associations" 9 "nvme_get_log_reachability_associations" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_reachability_associations \- Retrieve Reachability Associations Log +.SH SYNOPSIS +.B "int" nvme_get_log_reachability_associations +.BI "(int fd " "," +.BI "bool rao " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_reachability_associations_log *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "rao" 12 +Return associations only +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_get_log_reachability_groups.2 b/doc/man/nvme_get_log_reachability_groups.2 new file mode 100644 index 0000000..daca99d --- /dev/null +++ b/doc/man/nvme_get_log_reachability_groups.2 @@ -0,0 +1,24 @@ +.TH "nvme_get_log_reachability_groups" 9 "nvme_get_log_reachability_groups" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_reachability_groups \- Retrieve Reachability Groups Log +.SH SYNOPSIS +.B "int" nvme_get_log_reachability_groups +.BI "(int fd " "," +.BI "bool rgo " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_reachability_groups_log *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "rgo" 12 +Return groups only +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_get_log_reclaim_unit_handle_usage.2 b/doc/man/nvme_get_log_reclaim_unit_handle_usage.2 index d9e884d..df06050 100644 --- a/doc/man/nvme_get_log_reclaim_unit_handle_usage.2 +++ b/doc/man/nvme_get_log_reclaim_unit_handle_usage.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_reclaim_unit_handle_usage" 9 "nvme_get_log_reclaim_unit_handle_usage" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_reclaim_unit_handle_usage" 9 "nvme_get_log_reclaim_unit_handle_usage" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_reclaim_unit_handle_usage \- Get reclaim unit handle usage .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_reservation.2 b/doc/man/nvme_get_log_reservation.2 index 040f568..93ad027 100644 --- a/doc/man/nvme_get_log_reservation.2 +++ b/doc/man/nvme_get_log_reservation.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_reservation" 9 "nvme_get_log_reservation" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_reservation" 9 "nvme_get_log_reservation" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_reservation \- Retrieve Reservation Notification .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_rotational_media_info.2 b/doc/man/nvme_get_log_rotational_media_info.2 new file mode 100644 index 0000000..27133b5 --- /dev/null +++ b/doc/man/nvme_get_log_rotational_media_info.2 @@ -0,0 +1,21 @@ +.TH "nvme_get_log_rotational_media_info" 9 "nvme_get_log_rotational_media_info" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_get_log_rotational_media_info \- Retrieve Rotational Media Information Log +.SH SYNOPSIS +.B "int" nvme_get_log_rotational_media_info +.BI "(int fd " "," +.BI "__u16 endgid " "," +.BI "__u32 len " "," +.BI "struct nvme_rotational_media_info_log *log " ");" +.SH ARGUMENTS +.IP "fd" 12 +File descriptor of nvme device +.IP "endgid" 12 +Endurance Group Identifier +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_get_log_sanitize.2 b/doc/man/nvme_get_log_sanitize.2 index f86d29c..7b409d0 100644 --- a/doc/man/nvme_get_log_sanitize.2 +++ b/doc/man/nvme_get_log_sanitize.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_sanitize" 9 "nvme_get_log_sanitize" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_sanitize" 9 "nvme_get_log_sanitize" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_sanitize \- Retrieve Sanitize Status .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_smart.2 b/doc/man/nvme_get_log_smart.2 index 6f62b48..8d23eb4 100644 --- a/doc/man/nvme_get_log_smart.2 +++ b/doc/man/nvme_get_log_smart.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_smart" 9 "nvme_get_log_smart" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_smart" 9 "nvme_get_log_smart" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_smart \- Retrieve nvme smart log .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_support_cap_config_list.2 b/doc/man/nvme_get_log_support_cap_config_list.2 index b5fd920..6ea215c 100644 --- a/doc/man/nvme_get_log_support_cap_config_list.2 +++ b/doc/man/nvme_get_log_support_cap_config_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_support_cap_config_list" 9 "nvme_get_log_support_cap_config_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_support_cap_config_list" 9 "nvme_get_log_support_cap_config_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_support_cap_config_list \- Retrieve Supported Capacity Configuration List .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_supported_log_pages.2 b/doc/man/nvme_get_log_supported_log_pages.2 index 9b16092..a980126 100644 --- a/doc/man/nvme_get_log_supported_log_pages.2 +++ b/doc/man/nvme_get_log_supported_log_pages.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_supported_log_pages" 9 "nvme_get_log_supported_log_pages" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_supported_log_pages" 9 "nvme_get_log_supported_log_pages" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_supported_log_pages \- Retrieve nmve supported log pages .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_telemetry_ctrl.2 b/doc/man/nvme_get_log_telemetry_ctrl.2 index 95f3b58..65ff935 100644 --- a/doc/man/nvme_get_log_telemetry_ctrl.2 +++ b/doc/man/nvme_get_log_telemetry_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_telemetry_ctrl" 9 "nvme_get_log_telemetry_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_telemetry_ctrl" 9 "nvme_get_log_telemetry_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_telemetry_ctrl \- Get Telemetry Controller-Initiated log page .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_telemetry_host.2 b/doc/man/nvme_get_log_telemetry_host.2 index 3dc3dc9..3ac4c91 100644 --- a/doc/man/nvme_get_log_telemetry_host.2 +++ b/doc/man/nvme_get_log_telemetry_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_telemetry_host" 9 "nvme_get_log_telemetry_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_telemetry_host" 9 "nvme_get_log_telemetry_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_telemetry_host \- Get Telemetry Host-Initiated log page .SH SYNOPSIS diff --git a/doc/man/nvme_get_log_zns_changed_zones.2 b/doc/man/nvme_get_log_zns_changed_zones.2 index 0203b47..fefb482 100644 --- a/doc/man/nvme_get_log_zns_changed_zones.2 +++ b/doc/man/nvme_get_log_zns_changed_zones.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_log_zns_changed_zones" 9 "nvme_get_log_zns_changed_zones" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_log_zns_changed_zones" 9 "nvme_get_log_zns_changed_zones" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_log_zns_changed_zones \- Retrieve list of zones that have changed .SH SYNOPSIS diff --git a/doc/man/nvme_get_logging_level.2 b/doc/man/nvme_get_logging_level.2 index 03164d2..edc71e2 100644 --- a/doc/man/nvme_get_logging_level.2 +++ b/doc/man/nvme_get_logging_level.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_logging_level" 9 "nvme_get_logging_level" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_logging_level" 9 "nvme_get_logging_level" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_logging_level \- Get current logging level .SH SYNOPSIS diff --git a/doc/man/nvme_get_logical_block_size.2 b/doc/man/nvme_get_logical_block_size.2 index fb56422..4d37d95 100644 --- a/doc/man/nvme_get_logical_block_size.2 +++ b/doc/man/nvme_get_logical_block_size.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_logical_block_size" 9 "nvme_get_logical_block_size" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_logical_block_size" 9 "nvme_get_logical_block_size" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_logical_block_size \- Retrieve block size .SH SYNOPSIS diff --git a/doc/man/nvme_get_new_host_telemetry.2 b/doc/man/nvme_get_new_host_telemetry.2 index 65dc910..e6b3e90 100644 --- a/doc/man/nvme_get_new_host_telemetry.2 +++ b/doc/man/nvme_get_new_host_telemetry.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_new_host_telemetry" 9 "nvme_get_new_host_telemetry" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_new_host_telemetry" 9 "nvme_get_new_host_telemetry" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_new_host_telemetry \- Get new host telemetry log .SH SYNOPSIS diff --git a/doc/man/nvme_get_ns_attr.2 b/doc/man/nvme_get_ns_attr.2 index 3654513..8b93f82 100644 --- a/doc/man/nvme_get_ns_attr.2 +++ b/doc/man/nvme_get_ns_attr.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_ns_attr" 9 "nvme_get_ns_attr" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_ns_attr" 9 "nvme_get_ns_attr" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_ns_attr \- Read namespace sysfs attribute .SH SYNOPSIS diff --git a/doc/man/nvme_get_nsid.2 b/doc/man/nvme_get_nsid.2 index e4956dc..cee30e4 100644 --- a/doc/man/nvme_get_nsid.2 +++ b/doc/man/nvme_get_nsid.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_nsid" 9 "nvme_get_nsid" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_nsid" 9 "nvme_get_nsid" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_nsid \- Retrieve the NSID from a namespace file descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_get_path_attr.2 b/doc/man/nvme_get_path_attr.2 index 59ff50b..c8dee4c 100644 --- a/doc/man/nvme_get_path_attr.2 +++ b/doc/man/nvme_get_path_attr.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_path_attr" 9 "nvme_get_path_attr" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_path_attr" 9 "nvme_get_path_attr" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_path_attr \- Read path sysfs attribute .SH SYNOPSIS diff --git a/doc/man/nvme_get_property.2 b/doc/man/nvme_get_property.2 index f7e7617..2682523 100644 --- a/doc/man/nvme_get_property.2 +++ b/doc/man/nvme_get_property.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_property" 9 "nvme_get_property" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_property" 9 "nvme_get_property" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_property \- Get a controller property .SH SYNOPSIS diff --git a/doc/man/nvme_get_subsys_attr.2 b/doc/man/nvme_get_subsys_attr.2 index 2be2437..d883782 100644 --- a/doc/man/nvme_get_subsys_attr.2 +++ b/doc/man/nvme_get_subsys_attr.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_subsys_attr" 9 "nvme_get_subsys_attr" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_subsys_attr" 9 "nvme_get_subsys_attr" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_subsys_attr \- Read subsystem sysfs attribute .SH SYNOPSIS diff --git a/doc/man/nvme_get_telemetry_log.2 b/doc/man/nvme_get_telemetry_log.2 index bbd8a99..1d6b241 100644 --- a/doc/man/nvme_get_telemetry_log.2 +++ b/doc/man/nvme_get_telemetry_log.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_telemetry_log" 9 "nvme_get_telemetry_log" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_telemetry_log" 9 "nvme_get_telemetry_log" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_telemetry_log \- Get specified telemetry log .SH SYNOPSIS diff --git a/doc/man/nvme_get_telemetry_max.2 b/doc/man/nvme_get_telemetry_max.2 index 51a918a..916d954 100644 --- a/doc/man/nvme_get_telemetry_max.2 +++ b/doc/man/nvme_get_telemetry_max.2 @@ -1,4 +1,4 @@ -.TH "nvme_get_telemetry_max" 9 "nvme_get_telemetry_max" "November 2024" "libnvme API manual" LINUX +.TH "nvme_get_telemetry_max" 9 "nvme_get_telemetry_max" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_get_telemetry_max \- Get telemetry limits .SH SYNOPSIS diff --git a/doc/man/nvme_hmac_alg.2 b/doc/man/nvme_hmac_alg.2 index 48500c6..93e3740 100644 --- a/doc/man/nvme_hmac_alg.2 +++ b/doc/man/nvme_hmac_alg.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_hmac_alg" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_hmac_alg" "March 2025" "API Manual" LINUX .SH NAME enum nvme_hmac_alg \- HMAC algorithm .SH SYNOPSIS diff --git a/doc/man/nvme_host_behavior_support.2 b/doc/man/nvme_host_behavior_support.2 index 8c2d3b5..5f5bab6 100644 --- a/doc/man/nvme_host_behavior_support.2 +++ b/doc/man/nvme_host_behavior_support.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_host_behavior_support" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_host_behavior_support" "March 2025" "API Manual" LINUX .SH NAME enum nvme_host_behavior_support \- Enable Advanced Command .SH SYNOPSIS diff --git a/doc/man/nvme_host_discover_log.2 b/doc/man/nvme_host_discover_log.2 new file mode 100644 index 0000000..c47071c --- /dev/null +++ b/doc/man/nvme_host_discover_log.2 @@ -0,0 +1,43 @@ +.TH "libnvme" 9 "struct nvme_host_discover_log" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_host_discover_log \- Host Discovery Log +.SH SYNOPSIS +struct nvme_host_discover_log { +.br +.BI " __le64 genctr;" +.br +.BI " __le64 numrec;" +.br +.BI " __le16 recfmt;" +.br +.BI " __u8 hdlpf;" +.br +.BI " __u8 rsvd19;" +.br +.BI " __le32 thdlpl;" +.br +.BI " __u8 rsvd24[1000];" +.br +.BI " struct nvme_host_ext_discover_log hedlpe[];" +.br +.BI " +}; +.br + +.SH Members +.IP "genctr" 12 +Generation Counter +.IP "numrec" 12 +Number of Records +.IP "recfmt" 12 +Record Format +.IP "hdlpf" 12 +Host Discovery Log Page Flags +.IP "rsvd19" 12 +Reserved +.IP "thdlpl" 12 +Total Host Discovery Log Page Length +.IP "rsvd24" 12 +Reserved +.IP "hedlpe" 12 +Host Extended Discovery Log Page Entry List diff --git a/doc/man/nvme_host_ext_discover_log.2 b/doc/man/nvme_host_ext_discover_log.2 new file mode 100644 index 0000000..9a1e9db --- /dev/null +++ b/doc/man/nvme_host_ext_discover_log.2 @@ -0,0 +1,59 @@ +.TH "libnvme" 9 "struct nvme_host_ext_discover_log" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_host_ext_discover_log \- Host Extended Discovery Log +.SH SYNOPSIS +struct nvme_host_ext_discover_log { +.br +.BI " __u8 trtype;" +.br +.BI " __u8 adrfam;" +.br +.BI " __u8 rsvd2[8];" +.br +.BI " __le16 eflags;" +.br +.BI " __u8 rsvd12[244];" +.br +.BI " char hostnqn[NVME_NQN_LENGTH];" +.br +.BI " char traddr[NVMF_TRADDR_SIZE];" +.br +.BI " union nvmf_tsas tsas;" +.br +.BI " __le32 tel;" +.br +.BI " __le16 numexat;" +.br +.BI " __u8 rsvd1030[2];" +.br +.BI " struct nvmf_ext_attr exat[];" +.br +.BI " +}; +.br + +.SH Members +.IP "trtype" 12 +Transport Type +.IP "adrfam" 12 +Address Family +.IP "rsvd2" 12 +Reserved +.IP "eflags" 12 +Entry Flags +.IP "rsvd12" 12 +Reserved +.IP "hostnqn" 12 +Host NVMe Qualified Name +.IP "traddr" 12 +Transport Address +.IP "tsas" 12 +Transport Specific Address Subtype +.IP "tel" 12 +Total Entry Length +.IP "numexat" 12 +Number of Extended Attributes +.IP "rsvd1030" 12 +Reserved +.IP "exat" 12 +Extended Attributes List diff --git a/doc/man/nvme_host_get_dhchap_key.2 b/doc/man/nvme_host_get_dhchap_key.2 index 35688b0..1e6e73d 100644 --- a/doc/man/nvme_host_get_dhchap_key.2 +++ b/doc/man/nvme_host_get_dhchap_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_get_dhchap_key" 9 "nvme_host_get_dhchap_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_get_dhchap_key" 9 "nvme_host_get_dhchap_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_get_dhchap_key \- Return host key .SH SYNOPSIS diff --git a/doc/man/nvme_host_get_hostid.2 b/doc/man/nvme_host_get_hostid.2 index 94ba985..ad86372 100644 --- a/doc/man/nvme_host_get_hostid.2 +++ b/doc/man/nvme_host_get_hostid.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_get_hostid" 9 "nvme_host_get_hostid" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_get_hostid" 9 "nvme_host_get_hostid" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_get_hostid \- Host ID of an nvme_host_t object .SH SYNOPSIS diff --git a/doc/man/nvme_host_get_hostnqn.2 b/doc/man/nvme_host_get_hostnqn.2 index aa705b2..7b3baba 100644 --- a/doc/man/nvme_host_get_hostnqn.2 +++ b/doc/man/nvme_host_get_hostnqn.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_get_hostnqn" 9 "nvme_host_get_hostnqn" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_get_hostnqn" 9 "nvme_host_get_hostnqn" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_get_hostnqn \- Host NQN of an nvme_host_t object .SH SYNOPSIS diff --git a/doc/man/nvme_host_get_hostsymname.2 b/doc/man/nvme_host_get_hostsymname.2 index 1909767..683bb25 100644 --- a/doc/man/nvme_host_get_hostsymname.2 +++ b/doc/man/nvme_host_get_hostsymname.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_get_hostsymname" 9 "nvme_host_get_hostsymname" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_get_hostsymname" 9 "nvme_host_get_hostsymname" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_get_hostsymname \- Get the host's symbolic name .SH SYNOPSIS diff --git a/doc/man/nvme_host_get_root.2 b/doc/man/nvme_host_get_root.2 index 6623a5a..4f71704 100644 --- a/doc/man/nvme_host_get_root.2 +++ b/doc/man/nvme_host_get_root.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_get_root" 9 "nvme_host_get_root" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_get_root" 9 "nvme_host_get_root" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_get_root \- Returns nvme_root_t object .SH SYNOPSIS diff --git a/doc/man/nvme_host_is_pdc_enabled.2 b/doc/man/nvme_host_is_pdc_enabled.2 index 5455256..3663534 100644 --- a/doc/man/nvme_host_is_pdc_enabled.2 +++ b/doc/man/nvme_host_is_pdc_enabled.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_is_pdc_enabled" 9 "nvme_host_is_pdc_enabled" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_is_pdc_enabled" 9 "nvme_host_is_pdc_enabled" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_is_pdc_enabled \- Is Persistenct Discovery Controller enabled .SH SYNOPSIS diff --git a/doc/man/nvme_host_mem_buf_attrs.2 b/doc/man/nvme_host_mem_buf_attrs.2 index eb3739b..23278f2 100644 --- a/doc/man/nvme_host_mem_buf_attrs.2 +++ b/doc/man/nvme_host_mem_buf_attrs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_host_mem_buf_attrs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_host_mem_buf_attrs" "March 2025" "API Manual" LINUX .SH NAME struct nvme_host_mem_buf_attrs \- Host Memory Buffer - Attributes Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_host_metadata.2 b/doc/man/nvme_host_metadata.2 index 2c35c14..985924d 100644 --- a/doc/man/nvme_host_metadata.2 +++ b/doc/man/nvme_host_metadata.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_host_metadata" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_host_metadata" "March 2025" "API Manual" LINUX .SH NAME struct nvme_host_metadata \- Host Metadata Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_host_release_fds.2 b/doc/man/nvme_host_release_fds.2 index 3de4b55..091f9af 100644 --- a/doc/man/nvme_host_release_fds.2 +++ b/doc/man/nvme_host_release_fds.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_release_fds" 9 "nvme_host_release_fds" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_release_fds" 9 "nvme_host_release_fds" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_release_fds \- Close all opened file descriptors under host .SH SYNOPSIS diff --git a/doc/man/nvme_host_set_dhchap_key.2 b/doc/man/nvme_host_set_dhchap_key.2 index 2e7f5b3..4f8f9b5 100644 --- a/doc/man/nvme_host_set_dhchap_key.2 +++ b/doc/man/nvme_host_set_dhchap_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_set_dhchap_key" 9 "nvme_host_set_dhchap_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_set_dhchap_key" 9 "nvme_host_set_dhchap_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_set_dhchap_key \- set host key .SH SYNOPSIS diff --git a/doc/man/nvme_host_set_hostsymname.2 b/doc/man/nvme_host_set_hostsymname.2 index 54015b3..d6335c8 100644 --- a/doc/man/nvme_host_set_hostsymname.2 +++ b/doc/man/nvme_host_set_hostsymname.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_set_hostsymname" 9 "nvme_host_set_hostsymname" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_set_hostsymname" 9 "nvme_host_set_hostsymname" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_set_hostsymname \- Set the host's symbolic name .SH SYNOPSIS diff --git a/doc/man/nvme_host_set_pdc_enabled.2 b/doc/man/nvme_host_set_pdc_enabled.2 index 8a8da38..a8072ee 100644 --- a/doc/man/nvme_host_set_pdc_enabled.2 +++ b/doc/man/nvme_host_set_pdc_enabled.2 @@ -1,4 +1,4 @@ -.TH "nvme_host_set_pdc_enabled" 9 "nvme_host_set_pdc_enabled" "November 2024" "libnvme API manual" LINUX +.TH "nvme_host_set_pdc_enabled" 9 "nvme_host_set_pdc_enabled" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_host_set_pdc_enabled \- Set Persistent Discovery Controller flag .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl.2 b/doc/man/nvme_id_ctrl.2 index c9df499..178a496 100644 --- a/doc/man/nvme_id_ctrl.2 +++ b/doc/man/nvme_id_ctrl.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_ctrl" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_ctrl" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_ctrl \- Identify Controller data structure .SH SYNOPSIS @@ -36,7 +36,15 @@ struct nvme_id_ctrl { .br .BI " __le16 rrls;" .br -.BI " __u8 rsvd102[9];" +.BI " __u8 bpcap;" +.br +.BI " __u8 rsvd103;" +.br +.BI " __le32 nssl;" +.br +.BI " __u8 rsvd108[2];" +.br +.BI " __u8 plsi;" .br .BI " __u8 cntrltype;" .br @@ -48,7 +56,9 @@ struct nvme_id_ctrl { .br .BI " __le16 crdt3;" .br -.BI " __u8 rsvd134[119];" +.BI " __u8 crcap;" +.br +.BI " __u8 rsvd135[118];" .br .BI " __u8 nvmsr;" .br @@ -126,13 +136,23 @@ struct nvme_id_ctrl { .br .BI " __le16 domainid;" .br -.BI " __u8 rsvd358[10];" +.BI " __u8 kpioc;" +.br +.BI " __u8 rsvd359;" +.br +.BI " __le16 mptfawr;" +.br +.BI " __u8 rsvd362[6];" .br .BI " __u8 megcap[16];" .br .BI " __u8 tmpthha;" .br -.BI " __u8 rsvd385[127];" +.BI " __u8 rsvd385;" +.br +.BI " __le16 cqt;" +.br +.BI " __u8 rsvd388[124];" .br .BI " __u8 sqes;" .br @@ -172,11 +192,13 @@ struct nvme_id_ctrl { .br .BI " __le32 oaqd;" .br -.BI " __u8 rsvd568[2];" +.BI " __u8 rhiri;" .br -.BI " __u16 cmmrtd;" +.BI " __u8 hirt;" .br -.BI " __u16 nmmrtd;" +.BI " __le16 cmmrtd;" +.br +.BI " __le16 nmmrtd;" .br .BI " __u8 minmrtg;" .br @@ -186,15 +208,15 @@ struct nvme_id_ctrl { .br .BI " __u8 rsvd577;" .br -.BI " __u16 mcudmq;" +.BI " __le16 mcudmq;" .br -.BI " __u16 mnsudmq;" +.BI " __le16 mnsudmq;" .br -.BI " __u16 mcmr;" +.BI " __le16 mcmr;" .br -.BI " __u16 nmcmr;" +.BI " __le16 nmcmr;" .br -.BI " __u16 mcdqpc;" +.BI " __le16 mcdqpc;" .br .BI " __u8 rsvd588[180];" .br @@ -272,8 +294,18 @@ Controller Attributes, see \fIenum\fP nvme_id_ctrl_ctratt. Read Recovery Levels. If a bit is set, then the corresponding Read Recovery Level is supported. If a bit is cleared, then the corresponding Read Recovery Level is not supported. -.IP "rsvd102" 12 +.IP "bpcap" 12 +Boot Partition Capabilities, see \fIenum nvme_id_ctrl_bpcap\fP. +.IP "rsvd103" 12 Reserved +.IP "nssl" 12 +NVM Subsystem Shutdown Latency (NSSL). This field indicates the +typical latency in microseconds for an NVM Subsystem Shutdown to +complete. +.IP "rsvd108" 12 +Reserved +.IP "plsi" 12 +Power Loss Signaling Information (PLSI), see \fIenum nvme_id_ctrl_plsi\fP .IP "cntrltype" 12 Controller Type, see \fIenum nvme_id_ctrl_cntrltype\fP .IP "fguid" 12 @@ -288,7 +320,10 @@ field is 2 .IP "crdt3" 12 Controller Retry Delay time in 100 millisecond units if CQE CRD field is 3 -.IP "rsvd134" 12 +.IP "crcap" 12 +Controller Reachability Capabilities (CRCAP), see +\fIenum nvme_id_ctrl_crcap\fP +.IP "rsvd135" 12 Reserved .IP "nvmsr" 12 NVM Subsystem Report, see \fIenum nvme_id_ctrl_nvmsr\fP @@ -429,7 +464,17 @@ for the Persistent Event Log. .IP "domainid" 12 Domain Identifier indicates the identifier of the domain that contains this controller. -.IP "rsvd358" 12 +.IP "kpioc" 12 +Key Per I/O Capabilities (KPIOC), see \fIenum nvme_id_ctrl_kpioc\fP +.IP "rsvd359" 12 +Reserved +.IP "mptfawr" 12 +Maximum Processing Time for Firmware Activation Without Reset +(MPTFAWR). This field shall indicate the estimated maximum time +in 100 ms units required by the controller to process a Firmware +Commit command that specifies a value of 011b in the Commit +Action field +.IP "rsvd362" 12 Reserved .IP "megcap" 12 Max Endurance Group Capacity indicates the maximum capacity @@ -438,6 +483,13 @@ of a single Endurance Group. Temperature Threshold Hysteresis Attributes .IP "rsvd385" 12 Reserved +.IP "cqt" 12 +Command Quiesce Time (CQT). his field indicates the expected +worst-case time in 1 millisecond units for the controller to +quiesce all outstanding commands after a Keep Alive Timeout or +other communication loss. +.IP "rsvd388" 12 +Reserved .IP "sqes" 12 Submission Queue Entry Size, see \fIenum nvme_id_ctrl_sqes\fP. .IP "cqes" 12 @@ -503,8 +555,19 @@ this I/O controller. Optimal Aggregated Queue Depth indicates the recommended maximum total number of outstanding I/O commands across all I/O queues on the controller for optimal operation. -.IP "rsvd568" 12 -Reserved +.IP "rhiri" 12 +Recommended Host-Initiated Refresh Interval (RHIRI). If the +Host-Initiated Refresh capability is supported, then this field +indicates the recommended time interval in days from last power +down to the time at which the host should initiate the +Host-Initiated Refresh operation. If this field is cleared to +0h, then this field is not reported. +.IP "hirt" 12 +Host-Initiated Refresh Time (HIRT). If the Host-Initiated +Refresh capability is supported, then this field indicates the +nominal amount of time in minutes that the controller takes to +complete the Host-Initiated Refresh operation. If this field is +cleared to 0h, then this field is not reported. .IP "cmmrtd" 12 Controller Maximum Memory Range Tracking Descriptors indicates the maximum number of Memory Range Tracking Descriptors the @@ -524,8 +587,8 @@ value supported in the Requested Memory Range Tracking Granularity (RMRTG) field of the Track Memory Ranges data structure. .IP "trattr" 12 -Tracking Attributes indicates supported attributes for the -Track Send command and Track Receive command. +Tracking Attributes indicates supported attributes for the Track Send +command and Track Receive command. see \fIenum nvme_id_ctrl_trattr\fP .IP "rsvd577" 12 Reserved .IP "mcudmq" 12 diff --git a/doc/man/nvme_id_ctrl_anacap.2 b/doc/man/nvme_id_ctrl_anacap.2 index 4dfa65f..c339e17 100644 --- a/doc/man/nvme_id_ctrl_anacap.2 +++ b/doc/man/nvme_id_ctrl_anacap.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_anacap" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_anacap" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_anacap \- This field indicates the capabilities associated with Asymmetric Namespace Access Reporting. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_apsta.2 b/doc/man/nvme_id_ctrl_apsta.2 index cd76284..e0cdaa3 100644 --- a/doc/man/nvme_id_ctrl_apsta.2 +++ b/doc/man/nvme_id_ctrl_apsta.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_apsta" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_apsta" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_apsta \- Flags indicating the attributes of the autonomous power state transition feature. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_avscc.2 b/doc/man/nvme_id_ctrl_avscc.2 index c0e0b79..7ca2198 100644 --- a/doc/man/nvme_id_ctrl_avscc.2 +++ b/doc/man/nvme_id_ctrl_avscc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_avscc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_avscc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_avscc \- Flags indicating the configuration settings for Admin Vendor Specific command handling. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_bpcap.2 b/doc/man/nvme_id_ctrl_bpcap.2 new file mode 100644 index 0000000..de920d8 --- /dev/null +++ b/doc/man/nvme_id_ctrl_bpcap.2 @@ -0,0 +1,59 @@ +.TH "libnvme" 9 "enum nvme_id_ctrl_bpcap" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_id_ctrl_bpcap \- Boot Partition Capabilities +.SH SYNOPSIS +enum nvme_id_ctrl_bpcap { +.br +.BI " NVME_CTRL_BACAP_RPMBBPWPS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_BACAP_SFBPWPS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_BACAP_RPMBBPWPS_MASK" +, +.br +.br +.BI " NVME_CTRL_BACAP_SFBPWPS_MASK" +, +.br +.br +.BI " NVME_CTRL_BACAP_RPMBBPWPS_NOT_SPECIFIED" +, +.br +.br +.BI " NVME_CTRL_BACAP_RPMBBPWPS_NOT_SUPPORTED" +, +.br +.br +.BI " NVME_CTRL_BACAP_RPMBBPWPS_SUPPORTED" + +}; +.SH Constants +.IP "NVME_CTRL_BACAP_RPMBBPWPS_SHIFT" 12 +Shift amount to get the RPMB Boot Partition Write +Protection Support from the \fIstruct +nvme_id_ctrl\fP.bpcap field. +.IP "NVME_CTRL_BACAP_SFBPWPS_SHIFT" 12 +Shift amount to get the Set Features Boot Partition +Write Protection Support from the \fIstruct +nvme_id_ctrl\fP.bpcap field. +.IP "NVME_CTRL_BACAP_RPMBBPWPS_MASK" 12 +Mask to get the RPMB Boot Partition Write +Protection Support from the \fIstruct +nvme_id_ctrl\fP.bpcap field. +.IP "NVME_CTRL_BACAP_SFBPWPS_MASK" 12 +Mask to get the Set Features Boot Partition Write +Protection Support from the \fIstruct +nvme_id_ctrl\fP.bpcap field. +.IP "NVME_CTRL_BACAP_RPMBBPWPS_NOT_SPECIFIED" 12 +Support for RPMB Boot Partition Write Protection +is not specified. +.IP "NVME_CTRL_BACAP_RPMBBPWPS_NOT_SUPPORTED" 12 +RPMB Boot Partition Write Protection is not +supported by this controller. +.IP "NVME_CTRL_BACAP_RPMBBPWPS_SUPPORTED" 12 +RPMB Boot Partition Write Protection is supported +by this controller. diff --git a/doc/man/nvme_id_ctrl_cmic.2 b/doc/man/nvme_id_ctrl_cmic.2 index c832183..39acee3 100644 --- a/doc/man/nvme_id_ctrl_cmic.2 +++ b/doc/man/nvme_id_ctrl_cmic.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_cmic" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_cmic" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_cmic \- Controller Multipath IO and Namespace Sharing Capabilities of the controller and NVM subsystem. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_cntrltype.2 b/doc/man/nvme_id_ctrl_cntrltype.2 index a5760f1..62ffe14 100644 --- a/doc/man/nvme_id_ctrl_cntrltype.2 +++ b/doc/man/nvme_id_ctrl_cntrltype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_cntrltype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_cntrltype" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_cntrltype \- Controller types .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_cqes.2 b/doc/man/nvme_id_ctrl_cqes.2 index d728790..0f3675a 100644 --- a/doc/man/nvme_id_ctrl_cqes.2 +++ b/doc/man/nvme_id_ctrl_cqes.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_cqes" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_cqes" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_cqes \- Defines the required and maximum Completion Queue entry size when using the NVM Command Set. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_crcap.2 b/doc/man/nvme_id_ctrl_crcap.2 new file mode 100644 index 0000000..375e101 --- /dev/null +++ b/doc/man/nvme_id_ctrl_crcap.2 @@ -0,0 +1,34 @@ +.TH "libnvme" 9 "enum nvme_id_ctrl_crcap" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_id_ctrl_crcap \- Power Loss Signaling Information +.SH SYNOPSIS +enum nvme_id_ctrl_crcap { +.br +.BI " NVME_CTRL_CRCAP_RRSUP_SHIFT" +, +.br +.br +.BI " NVME_CTRL_CRCAP_RGIDC_SHIFT" +, +.br +.br +.BI " NVME_CTRL_CRCAP_RRSUP_MASK" +, +.br +.br +.BI " NVME_CTRL_CRCAP_RGIDC_MASK" + +}; +.SH Constants +.IP "NVME_CTRL_CRCAP_RRSUP_SHIFT" 12 +Shift amount to get the Reachability Reporting Supported +from the \fIstruct nvme_id_ctrl\fP.crcap field. +.IP "NVME_CTRL_CRCAP_RGIDC_SHIFT" 12 +Shift amount to get the Reachability Group ID Changeable +from the \fIstruct nvme_id_ctrl\fP.crcap field. +.IP "NVME_CTRL_CRCAP_RRSUP_MASK" 12 +Mask to get the Reachability Reporting Supported from the +\fIstruct nvme_id_ctrl\fP.crcap field. +.IP "NVME_CTRL_CRCAP_RGIDC_MASK" 12 +Mask to get the Reachability Group ID Changeable from the +\fIstruct nvme_id_ctrl\fP.crcap field. diff --git a/doc/man/nvme_id_ctrl_ctratt.2 b/doc/man/nvme_id_ctrl_ctratt.2 index f440db1..be535d9 100644 --- a/doc/man/nvme_id_ctrl_ctratt.2 +++ b/doc/man/nvme_id_ctrl_ctratt.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_ctratt" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_ctratt" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_ctratt \- Controller attributes .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_dctype.2 b/doc/man/nvme_id_ctrl_dctype.2 index 8fe0578..795af13 100644 --- a/doc/man/nvme_id_ctrl_dctype.2 +++ b/doc/man/nvme_id_ctrl_dctype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_dctype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_dctype" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_dctype \- Discovery Controller types .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_dsto.2 b/doc/man/nvme_id_ctrl_dsto.2 index 848046a..f75e805 100644 --- a/doc/man/nvme_id_ctrl_dsto.2 +++ b/doc/man/nvme_id_ctrl_dsto.2 @@ -1,13 +1,48 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_dsto" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_dsto" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_dsto \- Flags indicating the optional Device Self-test command or operation behaviors supported by the controller or NVM subsystem. .SH SYNOPSIS enum nvme_id_ctrl_dsto { .br +.BI " NVME_CTRL_DSTO_SDSO_SHIFT" +, +.br +.br +.BI " NVME_CTRL_DSTO_HIRS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_DSTO_SDSO_MASK" +, +.br +.br +.BI " NVME_CTRL_DSTO_HIRS_MASK" +, +.br +.br .BI " NVME_CTRL_DSTO_ONE_DST" +, +.br +.br +.BI " NVME_CTRL_DSTO_HIRS" }; .SH Constants +.IP "NVME_CTRL_DSTO_SDSO_SHIFT" 12 +Shift amount to get the value of Single Device Self-test +Operation from Device Self-test Options field. +.IP "NVME_CTRL_DSTO_HIRS_SHIFT" 12 +Shift amount to get the value of Host-Initiated Refresh +Support from Device Self-test Options field. +.IP "NVME_CTRL_DSTO_SDSO_MASK" 12 +Mask to get the value of Single Device Self-test Operation +.IP "NVME_CTRL_DSTO_HIRS_MASK" 12 +Mask to get the value of Host-Initiated Refresh Support .IP "NVME_CTRL_DSTO_ONE_DST" 12 -If set, then the NVM subsystem supports only one -device self-test operation in progress at a time. +If set, then the NVM subsystem supports only one device +self-test operation in progress at a time. If cleared, +then the NVM subsystem supports one device self-test +operation per controller at a time. +.IP "NVME_CTRL_DSTO_HIRS" 12 +If set, then the controller supports the Host-Initiated +Refresh capability. diff --git a/doc/man/nvme_id_ctrl_fcatt.2 b/doc/man/nvme_id_ctrl_fcatt.2 index 01c028e..63923ec 100644 --- a/doc/man/nvme_id_ctrl_fcatt.2 +++ b/doc/man/nvme_id_ctrl_fcatt.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_fcatt" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_fcatt" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_fcatt \- This field indicates attributes of the controller that are specific to NVMe over Fabrics. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_fna.2 b/doc/man/nvme_id_ctrl_fna.2 index 28b690c..ec92a19 100644 --- a/doc/man/nvme_id_ctrl_fna.2 +++ b/doc/man/nvme_id_ctrl_fna.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_fna" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_fna" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_fna \- This field indicates attributes for the Format NVM command. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_frmw.2 b/doc/man/nvme_id_ctrl_frmw.2 index 911d0b2..7322882 100644 --- a/doc/man/nvme_id_ctrl_frmw.2 +++ b/doc/man/nvme_id_ctrl_frmw.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_frmw" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_frmw" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_frmw \- Flags and values indicates capabilities regarding firmware updates from &struct nvme_id_ctrl.frmw. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_fuses.2 b/doc/man/nvme_id_ctrl_fuses.2 index 2165ac7..042e78d 100644 --- a/doc/man/nvme_id_ctrl_fuses.2 +++ b/doc/man/nvme_id_ctrl_fuses.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_fuses" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_fuses" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_fuses \- This field indicates the fused operations that the controller supports. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_hctm.2 b/doc/man/nvme_id_ctrl_hctm.2 index 7b1ae28..8c182ee 100644 --- a/doc/man/nvme_id_ctrl_hctm.2 +++ b/doc/man/nvme_id_ctrl_hctm.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_hctm" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_hctm" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_hctm \- Flags indicate the attributes of the host controlled thermal management feature .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_kpioc.2 b/doc/man/nvme_id_ctrl_kpioc.2 new file mode 100644 index 0000000..d26e856 --- /dev/null +++ b/doc/man/nvme_id_ctrl_kpioc.2 @@ -0,0 +1,34 @@ +.TH "libnvme" 9 "enum nvme_id_ctrl_kpioc" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_id_ctrl_kpioc \- Key Per I/O Capabilities +.SH SYNOPSIS +enum nvme_id_ctrl_kpioc { +.br +.BI " NVME_CTRL_KPIOC_KPIOS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_KPIOC_KPIOSC_SHIFT" +, +.br +.br +.BI " NVME_CTRL_KPIOC_KPIOS_MASK" +, +.br +.br +.BI " NVME_CTRL_KPIOC_KPIOSC_MASK" + +}; +.SH Constants +.IP "NVME_CTRL_KPIOC_KPIOS_SHIFT" 12 +Shift amount to get the Key Per I/O Supported from the +\fIstruct nvme_id_ctrl\fP.kpioc field. +.IP "NVME_CTRL_KPIOC_KPIOSC_SHIFT" 12 +Shift amount to get the Key Per I/O Scope from the +\fIstruct nvme_id_ctrl\fP.kpioc field. +.IP "NVME_CTRL_KPIOC_KPIOS_MASK" 12 +Mask to get the Key Per I/O Supported from the +\fIstruct nvme_id_ctrl\fP.kpioc field. +.IP "NVME_CTRL_KPIOC_KPIOSC_MASK" 12 +Mask to get the Key Per I/O Scope from the +\fIstruct nvme_id_ctrl\fP.kpioc field. diff --git a/doc/man/nvme_id_ctrl_lpa.2 b/doc/man/nvme_id_ctrl_lpa.2 index 13a8cfb..48af556 100644 --- a/doc/man/nvme_id_ctrl_lpa.2 +++ b/doc/man/nvme_id_ctrl_lpa.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_lpa" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_lpa" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_lpa \- Flags indicating optional attributes for log pages that are accessed via the Get Log Page command. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_mec.2 b/doc/man/nvme_id_ctrl_mec.2 index 849abb7..9229d8e 100644 --- a/doc/man/nvme_id_ctrl_mec.2 +++ b/doc/man/nvme_id_ctrl_mec.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_mec" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_mec" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_mec \- Flags indicating the capabilities of the Management Endpoint in the Controller, &struct nvme_id_ctrl.mec. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_nvm.2 b/doc/man/nvme_id_ctrl_nvm.2 index e598749..6600f57 100644 --- a/doc/man/nvme_id_ctrl_nvm.2 +++ b/doc/man/nvme_id_ctrl_nvm.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_ctrl_nvm" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_ctrl_nvm" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_ctrl_nvm \- I/O Command Set Specific Identify Controller data structure .SH SYNOPSIS @@ -16,7 +16,9 @@ struct nvme_id_ctrl_nvm { .br .BI " __le64 dmsl;" .br -.BI " __u8 rsvd16[2];" +.BI " __u8 kpiocap;" +.br +.BI " __u8 wzdsl;" .br .BI " __le16 aocs;" .br @@ -43,8 +45,10 @@ Dataset Management Ranges Limit Dataset Management Range Size Limit .IP "dmsl" 12 Dataset Management Size Limit -.IP "rsvd16" 12 -Reserved +.IP "kpiocap" 12 +Key Per I/O Capabilities +.IP "wzdsl" 12 +Write Zeroes With Deallocate Size Limit .IP "aocs" 12 Admin Optional Command Support .IP "ver" 12 diff --git a/doc/man/nvme_id_ctrl_nvm_lbamqf.2 b/doc/man/nvme_id_ctrl_nvm_lbamqf.2 new file mode 100644 index 0000000..dcd7eb3 --- /dev/null +++ b/doc/man/nvme_id_ctrl_nvm_lbamqf.2 @@ -0,0 +1,21 @@ +.TH "libnvme" 9 "enum nvme_id_ctrl_nvm_lbamqf" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_id_ctrl_nvm_lbamqf \- LBA Migration Queue Format +.SH SYNOPSIS +enum nvme_id_ctrl_nvm_lbamqf { +.br +.BI " NVME_ID_CTRL_NVM_LBAMQF_TYPE_0" +, +.br +.br +.BI " NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MIN" +, +.br +.br +.BI " NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MAX" + +}; +.SH Constants +.IP "NVME_ID_CTRL_NVM_LBAMQF_TYPE_0" 12 +.IP "NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MIN" 12 +.IP "NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MAX" 12 diff --git a/doc/man/nvme_id_ctrl_nvmsr.2 b/doc/man/nvme_id_ctrl_nvmsr.2 index 4758e17..6b59ea7 100644 --- a/doc/man/nvme_id_ctrl_nvmsr.2 +++ b/doc/man/nvme_id_ctrl_nvmsr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_nvmsr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_nvmsr" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_nvmsr \- This field reports information associated with the NVM Subsystem, see &struct nvme_id_ctrl.nvmsr. .SH SYNOPSIS @@ -17,6 +17,6 @@ If set, then the NVM Subsystem is part of an NVMe Storage Device; if cleared, then the NVM Subsystem is not part of an NVMe Storage Device. .IP "NVME_CTRL_NVMSR_NVMEE" 12 -If set’, then the NVM Subsystem is part of an NVMe +If set, then the NVM Subsystem is part of an NVMe Enclosure; if cleared, then the NVM Subsystem is not part of an NVMe Enclosure. diff --git a/doc/man/nvme_id_ctrl_nvscc.2 b/doc/man/nvme_id_ctrl_nvscc.2 index e756682..c5b20c8 100644 --- a/doc/man/nvme_id_ctrl_nvscc.2 +++ b/doc/man/nvme_id_ctrl_nvscc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_nvscc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_nvscc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_nvscc \- This field indicates the configuration settings for NVM Vendor Specific command handling. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_nwpc.2 b/doc/man/nvme_id_ctrl_nwpc.2 index d7eda6f..0ef1f72 100644 --- a/doc/man/nvme_id_ctrl_nwpc.2 +++ b/doc/man/nvme_id_ctrl_nwpc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_nwpc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_nwpc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_nwpc \- This field indicates the optional namespace write protection capabilities supported by the controller. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_oacs.2 b/doc/man/nvme_id_ctrl_oacs.2 index 98ff229..7c57965 100644 --- a/doc/man/nvme_id_ctrl_oacs.2 +++ b/doc/man/nvme_id_ctrl_oacs.2 @@ -1,9 +1,105 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_oacs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_oacs" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_oacs \- Flags indicating the optional Admin commands and features supported by the controller, see &struct nvme_id_ctrl.oacs. .SH SYNOPSIS enum nvme_id_ctrl_oacs { .br +.BI " NVME_CTRL_OACS_SSRS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_FNVMS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_FWDS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_NMS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_DSTS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_DIRS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_NSRS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_VMS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_DBCS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_GLSS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_CFLS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_HMLMS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_OACS_SSRS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_FNVMS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_FWDS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_NMS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_DSTS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_DIRS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_NSRS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_VMS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_DBCS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_GLSS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_CFLS_MASK" +, +.br +.br +.BI " NVME_CTRL_OACS_HMLMS_MASK" +, +.br +.br .BI " NVME_CTRL_OACS_SECURITY" , .br @@ -45,9 +141,61 @@ enum nvme_id_ctrl_oacs { .br .br .BI " NVME_CTRL_OACS_CMD_FEAT_LD" +, +.br +.br +.BI " NVME_CTRL_OACS_HMLM" }; .SH Constants +.IP "NVME_CTRL_OACS_SSRS_SHIFT" 12 +Shift amount to get the Security Send Receive supported +.IP "NVME_CTRL_OACS_FNVMS_SHIFT" 12 +Shift amount to get the Format NVM supported +.IP "NVME_CTRL_OACS_FWDS_SHIFT" 12 +Shift amount to get the Firmware Download supported +.IP "NVME_CTRL_OACS_NMS_SHIFT" 12 +Shift amount to get the Namespace Management supported +.IP "NVME_CTRL_OACS_DSTS_SHIFT" 12 +Shift amount to get the Device Self-test supported +.IP "NVME_CTRL_OACS_DIRS_SHIFT" 12 +Shift amount to get the Directives supported +.IP "NVME_CTRL_OACS_NSRS_SHIFT" 12 +Shift amount to get the NVMe-MI Send Receive supported +.IP "NVME_CTRL_OACS_VMS_SHIFT" 12 +Shift amount to get the Virtualization Management supported +.IP "NVME_CTRL_OACS_DBCS_SHIFT" 12 +Shift amount to get the Doorbell Buffer Config supported +.IP "NVME_CTRL_OACS_GLSS_SHIFT" 12 +Shift amount to get the Get LBA Status supported +.IP "NVME_CTRL_OACS_CFLS_SHIFT" 12 +Shift amount to get the Command and Feature Lockdown supported +.IP "NVME_CTRL_OACS_HMLMS_SHIFT" 12 +Shift amount to get the Host Managed Live Migration support +.IP "NVME_CTRL_OACS_SSRS_MASK" 12 +Mask to get the Security Send Receive supported +.IP "NVME_CTRL_OACS_FNVMS_MASK" 12 +Mask to get the Format NVM supported +.IP "NVME_CTRL_OACS_FWDS_MASK" 12 +Mask to get the Firmware Download supported +.IP "NVME_CTRL_OACS_NMS_MASK" 12 +Mask to get the Namespace Management supported +.IP "NVME_CTRL_OACS_DSTS_MASK" 12 +Mask to get the Device Self-test supported +.IP "NVME_CTRL_OACS_DIRS_MASK" 12 +Mask to get the Directives supported +.IP "NVME_CTRL_OACS_NSRS_MASK" 12 +Mask to get the NVMe-MI Send Receive supported +.IP "NVME_CTRL_OACS_VMS_MASK" 12 +Mask to get the Virtualization Management supported +.IP "NVME_CTRL_OACS_DBCS_MASK" 12 +Mask to get the Doorbell Buffer Config supported +.IP "NVME_CTRL_OACS_GLSS_MASK" 12 +Mask to get the Get LBA Status supported +.IP "NVME_CTRL_OACS_CFLS_MASK" 12 +Mask to get the Command and Feature Lockdown supported +.IP "NVME_CTRL_OACS_HMLMS_MASK" 12 +Mask to get the Host Managed Live Migration support .IP "NVME_CTRL_OACS_SECURITY" 12 If set, then the controller supports the Security Send and Security Receive commands. @@ -82,3 +230,6 @@ Status capability. .IP "NVME_CTRL_OACS_CMD_FEAT_LD" 12 If set, then the controller supports the command and feature lockdown capability. +.IP "NVME_CTRL_OACS_HMLM" 12 +If set, then the controller supports the command +and Host Managed Live Migration capability. diff --git a/doc/man/nvme_id_ctrl_oaes.2 b/doc/man/nvme_id_ctrl_oaes.2 index 10c21d9..bf3d92d 100644 --- a/doc/man/nvme_id_ctrl_oaes.2 +++ b/doc/man/nvme_id_ctrl_oaes.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_oaes" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_oaes" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_oaes \- Optional Asynchronous Events Supported .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_ofcs.2 b/doc/man/nvme_id_ctrl_ofcs.2 index 49fd161..5031e9d 100644 --- a/doc/man/nvme_id_ctrl_ofcs.2 +++ b/doc/man/nvme_id_ctrl_ofcs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_ofcs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_ofcs" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_ofcs \- Indicate whether the controller supports optional fabric commands. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_oncs.2 b/doc/man/nvme_id_ctrl_oncs.2 index d7e70e7..a5eb09b 100644 --- a/doc/man/nvme_id_ctrl_oncs.2 +++ b/doc/man/nvme_id_ctrl_oncs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_oncs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_oncs" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_oncs \- This field indicates the optional NVM commands and features supported by the controller. .SH SYNOPSIS @@ -45,6 +45,14 @@ enum nvme_id_ctrl_oncs { .br .br .BI " NVME_CTRL_ONCS_ALL_FAST_COPY" +, +.br +.br +.BI " NVME_CTRL_ONCS_WRITE_ZEROES_DEALLOCATE" +, +.br +.br +.BI " NVME_CTRL_ONCS_NAMESPACE_ZEROES" }; .SH Constants @@ -88,3 +96,14 @@ a write command apply. If set, then all copy operations for the Copy command are fast copy operations. +.IP "NVME_CTRL_ONCS_WRITE_ZEROES_DEALLOCATE" 12 +If MAXWZD bit set, then the maximum data +size for Write Zeroes command depends on the +value of the Deallocate bit in the Write Zeroes +command and the value in the WZDSL field in the +I/O Command Set specific Identify Controller +data structure. +.IP "NVME_CTRL_ONCS_NAMESPACE_ZEROES" 12 +If NSZS bit set, then the controller supports +the Namespace Zeroes (NSZ) bit in the NVM +Command Set Write Zeroes command. diff --git a/doc/man/nvme_id_ctrl_plsi.2 b/doc/man/nvme_id_ctrl_plsi.2 new file mode 100644 index 0000000..79eab50 --- /dev/null +++ b/doc/man/nvme_id_ctrl_plsi.2 @@ -0,0 +1,34 @@ +.TH "libnvme" 9 "enum nvme_id_ctrl_plsi" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_id_ctrl_plsi \- Power Loss Signaling Information +.SH SYNOPSIS +enum nvme_id_ctrl_plsi { +.br +.BI " NVME_CTRL_PLSI_PLSEPF_SHIFT" +, +.br +.br +.BI " NVME_CTRL_PLSI_PLSFQ_SHIFT" +, +.br +.br +.BI " NVME_CTRL_PLSI_PLSEPF_MASK" +, +.br +.br +.BI " NVME_CTRL_PLSI_PLSFQ_MASK" + +}; +.SH Constants +.IP "NVME_CTRL_PLSI_PLSEPF_SHIFT" 12 +Shift amount to get the PLS Emergency Power Fail from the +\fIstruct nvme_id_ctrl\fP.plsi field. +.IP "NVME_CTRL_PLSI_PLSFQ_SHIFT" 12 +Shift amount to get the PLS Forced Quiescence from the +\fIstruct nvme_id_ctrl\fP.plsi field. +.IP "NVME_CTRL_PLSI_PLSEPF_MASK" 12 +Mask to get the PLS Emergency Power Fail from the +\fIstruct nvme_id_ctrl\fP.plsi field. +.IP "NVME_CTRL_PLSI_PLSFQ_MASK" 12 +Mask to get the PLS Forced Quiescence from the +\fIstruct nvme_id_ctrl\fP.plsi field. diff --git a/doc/man/nvme_id_ctrl_rpmbs.2 b/doc/man/nvme_id_ctrl_rpmbs.2 index 842f866..9f3ba71 100644 --- a/doc/man/nvme_id_ctrl_rpmbs.2 +++ b/doc/man/nvme_id_ctrl_rpmbs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_rpmbs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_rpmbs" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_rpmbs \- This field indicates if the controller supports one or more Replay Protected Memory Blocks, from &struct nvme_id_ctrl.rpmbs. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_sanicap.2 b/doc/man/nvme_id_ctrl_sanicap.2 index 860662b..eefe07c 100644 --- a/doc/man/nvme_id_ctrl_sanicap.2 +++ b/doc/man/nvme_id_ctrl_sanicap.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_sanicap" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_sanicap" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_sanicap \- Indicates attributes for sanitize operations. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_sgls.2 b/doc/man/nvme_id_ctrl_sgls.2 index 0185220..d56371d 100644 --- a/doc/man/nvme_id_ctrl_sgls.2 +++ b/doc/man/nvme_id_ctrl_sgls.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_sgls" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_sgls" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_sgls \- This field indicates if SGLs are supported for the NVM Command Set and the particular SGL types supported. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_sqes.2 b/doc/man/nvme_id_ctrl_sqes.2 index 51a9dab..241ef1e 100644 --- a/doc/man/nvme_id_ctrl_sqes.2 +++ b/doc/man/nvme_id_ctrl_sqes.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_sqes" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_sqes" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_sqes \- Defines the required and maximum Submission Queue entry size when using the NVM Command Set. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_trattr.2 b/doc/man/nvme_id_ctrl_trattr.2 new file mode 100644 index 0000000..2dcd6a0 --- /dev/null +++ b/doc/man/nvme_id_ctrl_trattr.2 @@ -0,0 +1,48 @@ +.TH "libnvme" 9 "enum nvme_id_ctrl_trattr" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_id_ctrl_trattr \- Tracking Attributes +.SH SYNOPSIS +enum nvme_id_ctrl_trattr { +.br +.BI " NVME_CTRL_TRATTR_THMCS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_TRATTR_TUDCS_SHIFT" +, +.br +.br +.BI " NVME_CTRL_TRATTR_MRTLL_SHIFT" +, +.br +.br +.BI " NVME_CTRL_TRATTR_THMCS_MASK" +, +.br +.br +.BI " NVME_CTRL_TRATTR_TUDCS_MASK" +, +.br +.br +.BI " NVME_CTRL_TRATTR_MRTLL_MASK" + +}; +.SH Constants +.IP "NVME_CTRL_TRATTR_THMCS_SHIFT" 12 +Shift amount to get the Track Host Memory Changes Support +from the \fIstruct nvme_id_ctrl\fP.trattr field. +.IP "NVME_CTRL_TRATTR_TUDCS_SHIFT" 12 +Shift amount to get the Track User Data Changes Support +from the \fIstruct nvme_id_ctrl\fP.trattr field. +.IP "NVME_CTRL_TRATTR_MRTLL_SHIFT" 12 +Shift amount to get the Memory Range Tracking Length Limit +from the \fIstruct nvme_id_ctrl\fP.trattr field. +.IP "NVME_CTRL_TRATTR_THMCS_MASK" 12 +Mask to get the Track Host Memory Changes Support +from the \fIstruct nvme_id_ctrl\fP.trattr field. +.IP "NVME_CTRL_TRATTR_TUDCS_MASK" 12 +Mask to get the Track User Data Changes Support +from the \fIstruct nvme_id_ctrl\fP.trattr field. +.IP "NVME_CTRL_TRATTR_MRTLL_MASK" 12 +Mask to get the Memory Range Tracking Length Limit +from the \fIstruct nvme_id_ctrl\fP.trattr field. diff --git a/doc/man/nvme_id_ctrl_vwc.2 b/doc/man/nvme_id_ctrl_vwc.2 index 269ed75..2072ffd 100644 --- a/doc/man/nvme_id_ctrl_vwc.2 +++ b/doc/man/nvme_id_ctrl_vwc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_vwc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_vwc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_vwc \- Volatile write cache .SH SYNOPSIS diff --git a/doc/man/nvme_id_ctrl_vwci.2 b/doc/man/nvme_id_ctrl_vwci.2 index 8349723..7781f31 100644 --- a/doc/man/nvme_id_ctrl_vwci.2 +++ b/doc/man/nvme_id_ctrl_vwci.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ctrl_vwci" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ctrl_vwci" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ctrl_vwci \- This field indicates information about remaining number of times that VPD contents are able to be updated using the VPD Write command, see &struct nvme_id_ctrl.vwci. .SH SYNOPSIS diff --git a/doc/man/nvme_id_directives.2 b/doc/man/nvme_id_directives.2 index 04b3cb3..350f650 100644 --- a/doc/man/nvme_id_directives.2 +++ b/doc/man/nvme_id_directives.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_directives" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_directives" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_directives \- Identify Directive - Return Parameters Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_id_domain_attr.2 b/doc/man/nvme_id_domain_attr.2 index 67b8d73..f25aacb 100644 --- a/doc/man/nvme_id_domain_attr.2 +++ b/doc/man/nvme_id_domain_attr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_domain_attr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_domain_attr" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_domain_attr \- Domain Attributes Entry .SH SYNOPSIS diff --git a/doc/man/nvme_id_domain_list.2 b/doc/man/nvme_id_domain_list.2 index a6754c9..666ca6f 100644 --- a/doc/man/nvme_id_domain_list.2 +++ b/doc/man/nvme_id_domain_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_domain_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_domain_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_domain_list \- Domain List .SH SYNOPSIS diff --git a/doc/man/nvme_id_endurance_group_list.2 b/doc/man/nvme_id_endurance_group_list.2 index af53fdc..87b31c3 100644 --- a/doc/man/nvme_id_endurance_group_list.2 +++ b/doc/man/nvme_id_endurance_group_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_endurance_group_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_endurance_group_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_endurance_group_list \- Endurance Group List .SH SYNOPSIS diff --git a/doc/man/nvme_id_independent_id_ns.2 b/doc/man/nvme_id_independent_id_ns.2 index 24db015..48445f7 100644 --- a/doc/man/nvme_id_independent_id_ns.2 +++ b/doc/man/nvme_id_independent_id_ns.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_independent_id_ns" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_independent_id_ns" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_independent_id_ns \- Identify - I/O Command Set Independent Identify Namespace Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_id_iocs.2 b/doc/man/nvme_id_iocs.2 index 3670e62..f30f31f 100644 --- a/doc/man/nvme_id_iocs.2 +++ b/doc/man/nvme_id_iocs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_iocs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_iocs" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_iocs \- NVMe Identify IO Command Set data structure .SH SYNOPSIS diff --git a/doc/man/nvme_id_iocs_iocsc.2 b/doc/man/nvme_id_iocs_iocsc.2 new file mode 100644 index 0000000..ee25871 --- /dev/null +++ b/doc/man/nvme_id_iocs_iocsc.2 @@ -0,0 +1,70 @@ +.TH "libnvme" 9 "enum nvme_id_iocs_iocsc" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_id_iocs_iocsc \- This field indicates the Identify I/O Command Set Data Structure +.SH SYNOPSIS +enum nvme_id_iocs_iocsc { +.br +.BI " NVME_IOCS_IOCSC_NVMCS_SHIFT" +, +.br +.br +.BI " NVME_IOCS_IOCSC_NVMCS_MASK" +, +.br +.br +.BI " NVME_IOCS_IOCSC_KVCS_SHIFT" +, +.br +.br +.BI " NVME_IOCS_IOCSC_KVCS_MASK" +, +.br +.br +.BI " NVME_IOCS_IOCSC_ZNSCS_SHIFT" +, +.br +.br +.BI " NVME_IOCS_IOCSC_ZNSCS_MASK" +, +.br +.br +.BI " NVME_IOCS_IOCSC_SLMCS_SHIFT" +, +.br +.br +.BI " NVME_IOCS_IOCSC_SLMCS_MASK" +, +.br +.br +.BI " NVME_IOCS_IOCSC_CPNCS_SHIFT" +, +.br +.br +.BI " NVME_IOCS_IOCSC_CPNCS_MASK" + +}; +.SH Constants +.IP "NVME_IOCS_IOCSC_NVMCS_SHIFT" 12 +Shift amount to get the value of NVM Command Set +.IP "NVME_IOCS_IOCSC_NVMCS_MASK" 12 +Mask to get the value of NVM Command Set +.IP "NVME_IOCS_IOCSC_KVCS_SHIFT" 12 +Shift amount to get the value of Key Value Command Set +.IP "NVME_IOCS_IOCSC_KVCS_MASK" 12 +Mask to get the value of Key Value Command Set +.IP "NVME_IOCS_IOCSC_ZNSCS_SHIFT" 12 +Shift amount to get the value of Zoned Namespace Command +Set +.IP "NVME_IOCS_IOCSC_ZNSCS_MASK" 12 +Mask to get the value of Zoned Namespace Command Set +.IP "NVME_IOCS_IOCSC_SLMCS_SHIFT" 12 +Shift amount to get the value of Subsystem Local Memory +Command Set +.IP "NVME_IOCS_IOCSC_SLMCS_MASK" 12 +Mask to get the value of Subsystem Local Memory Command Set +.IP "NVME_IOCS_IOCSC_CPNCS_SHIFT" 12 +Shift amount to get the value of Computational Programs +Namespace Command Set +.IP "NVME_IOCS_IOCSC_CPNCS_MASK" 12 +Mask to get the value of Computational Programs Namespace +Command Set diff --git a/doc/man/nvme_id_ns.2 b/doc/man/nvme_id_ns.2 index 29a4494..bc73a59 100644 --- a/doc/man/nvme_id_ns.2 +++ b/doc/man/nvme_id_ns.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_ns" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_ns" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_ns \- Identify Namespace data structure .SH SYNOPSIS @@ -62,11 +62,15 @@ struct nvme_id_ns { .br .BI " __u8 msrc;" .br -.BI " __u8 rsvd81;" +.BI " __u8 kpios;" .br .BI " __u8 nulbaf;" .br -.BI " __u8 rsvd83[9];" +.BI " __u8 rsvd83;" +.br +.BI " __le32 kpiodaag;" +.br +.BI " __u8 rsvd88[4];" .br .BI " __le32 anagrpid;" .br @@ -193,8 +197,8 @@ blocks that may be specified in a Copy command. Maximum Source Range Count indicates the maximum number of Source Range entries that may be used to specify source data in a Copy command. This is a 0’s based value. -.IP "rsvd81" 12 -Reserved +.IP "kpios" 12 +Key Per I/O Status indicates namespace Key Per I/O capability status. .IP "nulbaf" 12 Number of Unique Capability LBA Formats defines the number of supported user data size and metadata size combinations supported @@ -202,6 +206,12 @@ by the namespace that may not share the same capabilities. LBA formats shall be allocated in order and packed sequentially. .IP "rsvd83" 12 Reserved +.IP "kpiodaag" 12 +Key Per I/O Data Access Alignment and Granularity indicates the +alignment and granularity in logical blocks that is required +for commands that support a KPIOTAG value in the CETYPE field. +.IP "rsvd88" 12 +Reserved .IP "anagrpid" 12 ANA Group Identifier indicates the ANA Group Identifier of the ANA group of which the namespace is a member. diff --git a/doc/man/nvme_id_ns_attr.2 b/doc/man/nvme_id_ns_attr.2 index edb8bb9..2aabf10 100644 --- a/doc/man/nvme_id_ns_attr.2 +++ b/doc/man/nvme_id_ns_attr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ns_attr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_attr" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ns_attr \- Specifies attributes of the namespace. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ns_dlfeat.2 b/doc/man/nvme_id_ns_dlfeat.2 index 4c19580..51aa18c 100644 --- a/doc/man/nvme_id_ns_dlfeat.2 +++ b/doc/man/nvme_id_ns_dlfeat.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ns_dlfeat" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_dlfeat" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ns_dlfeat \- This field indicates information about features that affect deallocating logical blocks for this namespace. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ns_dpc.2 b/doc/man/nvme_id_ns_dpc.2 index c1356cb..564a0cf 100644 --- a/doc/man/nvme_id_ns_dpc.2 +++ b/doc/man/nvme_id_ns_dpc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ns_dpc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_dpc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ns_dpc \- This field indicates the capabilities for the end-to-end data protection feature. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ns_dps.2 b/doc/man/nvme_id_ns_dps.2 index a4d1db4..690de6b 100644 --- a/doc/man/nvme_id_ns_dps.2 +++ b/doc/man/nvme_id_ns_dps.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ns_dps" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_dps" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ns_dps \- This field indicates the Type settings for the end-to-end data protection feature. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ns_flbas.2 b/doc/man/nvme_id_ns_flbas.2 index 6258a95..45211b4 100644 --- a/doc/man/nvme_id_ns_flbas.2 +++ b/doc/man/nvme_id_ns_flbas.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ns_flbas" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_flbas" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ns_flbas \- This field indicates the LBA data size & metadata size combination that the namespace has been formatted with .SH SYNOPSIS diff --git a/doc/man/nvme_id_ns_granularity_desc.2 b/doc/man/nvme_id_ns_granularity_desc.2 index 37796ae..15ef466 100644 --- a/doc/man/nvme_id_ns_granularity_desc.2 +++ b/doc/man/nvme_id_ns_granularity_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_ns_granularity_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_ns_granularity_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_ns_granularity_desc \- Namespace Granularity Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_id_ns_granularity_list.2 b/doc/man/nvme_id_ns_granularity_list.2 index 88c1011..1a6e7b3 100644 --- a/doc/man/nvme_id_ns_granularity_list.2 +++ b/doc/man/nvme_id_ns_granularity_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_ns_granularity_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_ns_granularity_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_ns_granularity_list \- Namespace Granularity List .SH SYNOPSIS diff --git a/doc/man/nvme_id_ns_mc.2 b/doc/man/nvme_id_ns_mc.2 index 977a8ed..ae94b5c 100644 --- a/doc/man/nvme_id_ns_mc.2 +++ b/doc/man/nvme_id_ns_mc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ns_mc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_mc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ns_mc \- This field indicates the capabilities for metadata. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ns_nmic.2 b/doc/man/nvme_id_ns_nmic.2 index 8e83cb5..f31e55a 100644 --- a/doc/man/nvme_id_ns_nmic.2 +++ b/doc/man/nvme_id_ns_nmic.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ns_nmic" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_nmic" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ns_nmic \- This field specifies multi-path I/O and namespace sharing capabilities of the namespace. .SH SYNOPSIS diff --git a/doc/man/nvme_id_ns_rescap.2 b/doc/man/nvme_id_ns_rescap.2 index 9550959..6539508 100644 --- a/doc/man/nvme_id_ns_rescap.2 +++ b/doc/man/nvme_id_ns_rescap.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_ns_rescap" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_ns_rescap" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_ns_rescap \- This field indicates the reservation capabilities of the namespace. .SH SYNOPSIS diff --git a/doc/man/nvme_id_nsfeat.2 b/doc/man/nvme_id_nsfeat.2 index 5f91d6d..60864e1 100644 --- a/doc/man/nvme_id_nsfeat.2 +++ b/doc/man/nvme_id_nsfeat.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_nsfeat" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_nsfeat" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_nsfeat \- This field defines features of the namespace. .SH SYNOPSIS diff --git a/doc/man/nvme_id_nvmset_list.2 b/doc/man/nvme_id_nvmset_list.2 index 09a730f..7f8da78 100644 --- a/doc/man/nvme_id_nvmset_list.2 +++ b/doc/man/nvme_id_nvmset_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_nvmset_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_nvmset_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_nvmset_list \- NVM set list .SH SYNOPSIS diff --git a/doc/man/nvme_id_psd.2 b/doc/man/nvme_id_psd.2 index 93c5274..5a707b7 100644 --- a/doc/man/nvme_id_psd.2 +++ b/doc/man/nvme_id_psd.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_psd" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_psd" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_psd \- Power Management data structure .SH SYNOPSIS @@ -32,7 +32,17 @@ struct nvme_id_psd { .br .BI " __u8 apws;" .br -.BI " __u8 rsvd23[9];" +.BI " __u8 epfrt;" +.br +.BI " __u8 fqvt;" +.br +.BI " __u8 epfvt;" +.br +.BI " __u8 epfr_fqv_ts;" +.br +.BI " __u8 epfvts;" +.br +.BI " __u8 rsvd28[4];" .br .BI " }; @@ -91,5 +101,16 @@ nvme_id_psd\fP.actp, see \fIenum nvme_psd_ps\fP for decoding this value. Bits 2-0: Active Power Workload(APW) indicates the workload used to calculate maximum power for this power state. See \fIenum nvme_psd_workload\fP for decoding this field. -.IP "rsvd23" 12 +.IP "epfrt" 12 +Emergency power fail recovery time +.IP "fqvt" 12 +Forced quiescence vault time +.IP "epfvt" 12 +Emergency power fail vault time +.IP "epfr_fqv_ts" 12 +Bits 7-4: Forced quiescence vault time scale +Bits 3-0: Emergency power fail recovery time scale +.IP "epfvts" 12 +Bits 3-0: Emergency power fail vault time scale +.IP "rsvd28" 12 Reserved diff --git a/doc/man/nvme_id_uuid.2 b/doc/man/nvme_id_uuid.2 index 2164fac..de19640 100644 --- a/doc/man/nvme_id_uuid.2 +++ b/doc/man/nvme_id_uuid.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_id_uuid" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_id_uuid" "March 2025" "API Manual" LINUX .SH NAME enum nvme_id_uuid \- Identifier Association .SH SYNOPSIS diff --git a/doc/man/nvme_id_uuid_list.2 b/doc/man/nvme_id_uuid_list.2 index 9bda533..33393e9 100644 --- a/doc/man/nvme_id_uuid_list.2 +++ b/doc/man/nvme_id_uuid_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_uuid_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_uuid_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_uuid_list \- UUID list .SH SYNOPSIS diff --git a/doc/man/nvme_id_uuid_list_entry.2 b/doc/man/nvme_id_uuid_list_entry.2 index 46b1569..696fbe2 100644 --- a/doc/man/nvme_id_uuid_list_entry.2 +++ b/doc/man/nvme_id_uuid_list_entry.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_id_uuid_list_entry" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_id_uuid_list_entry" "March 2025" "API Manual" LINUX .SH NAME struct nvme_id_uuid_list_entry \- UUID List Entry .SH SYNOPSIS diff --git a/doc/man/nvme_identify.2 b/doc/man/nvme_identify.2 index 08e3eea..b24f7a3 100644 --- a/doc/man/nvme_identify.2 +++ b/doc/man/nvme_identify.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify" 9 "nvme_identify" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify" 9 "nvme_identify" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify \- Send the NVMe Identify command .SH SYNOPSIS diff --git a/doc/man/nvme_identify_active_ns_list.2 b/doc/man/nvme_identify_active_ns_list.2 index 2b4a314..ae641f9 100644 --- a/doc/man/nvme_identify_active_ns_list.2 +++ b/doc/man/nvme_identify_active_ns_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_active_ns_list" 9 "nvme_identify_active_ns_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_active_ns_list" 9 "nvme_identify_active_ns_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_active_ns_list \- Retrieves active namespaces id list .SH SYNOPSIS diff --git a/doc/man/nvme_identify_active_ns_list_csi.2 b/doc/man/nvme_identify_active_ns_list_csi.2 index 8ac02ec..ba8b012 100644 --- a/doc/man/nvme_identify_active_ns_list_csi.2 +++ b/doc/man/nvme_identify_active_ns_list_csi.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_active_ns_list_csi" 9 "nvme_identify_active_ns_list_csi" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_active_ns_list_csi" 9 "nvme_identify_active_ns_list_csi" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_active_ns_list_csi \- Active namespace ID list associated with a specified I/O command set .SH SYNOPSIS diff --git a/doc/man/nvme_identify_allocated_ns.2 b/doc/man/nvme_identify_allocated_ns.2 index c5a7d2e..d4ccb59 100644 --- a/doc/man/nvme_identify_allocated_ns.2 +++ b/doc/man/nvme_identify_allocated_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_allocated_ns" 9 "nvme_identify_allocated_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_allocated_ns" 9 "nvme_identify_allocated_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_allocated_ns \- Same as nvme_identify_ns, but only for allocated namespaces .SH SYNOPSIS diff --git a/doc/man/nvme_identify_allocated_ns_list.2 b/doc/man/nvme_identify_allocated_ns_list.2 index d98f460..d2bb735 100644 --- a/doc/man/nvme_identify_allocated_ns_list.2 +++ b/doc/man/nvme_identify_allocated_ns_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_allocated_ns_list" 9 "nvme_identify_allocated_ns_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_allocated_ns_list" 9 "nvme_identify_allocated_ns_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_allocated_ns_list \- Retrieves allocated namespace id list .SH SYNOPSIS diff --git a/doc/man/nvme_identify_allocated_ns_list_csi.2 b/doc/man/nvme_identify_allocated_ns_list_csi.2 index b8f9040..493e672 100644 --- a/doc/man/nvme_identify_allocated_ns_list_csi.2 +++ b/doc/man/nvme_identify_allocated_ns_list_csi.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_allocated_ns_list_csi" 9 "nvme_identify_allocated_ns_list_csi" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_allocated_ns_list_csi" 9 "nvme_identify_allocated_ns_list_csi" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_allocated_ns_list_csi \- Allocated namespace ID list associated with a specified I/O command set .SH SYNOPSIS diff --git a/doc/man/nvme_identify_cns.2 b/doc/man/nvme_identify_cns.2 index faf2076..cce9bf1 100644 --- a/doc/man/nvme_identify_cns.2 +++ b/doc/man/nvme_identify_cns.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_identify_cns" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_identify_cns" "March 2025" "API Manual" LINUX .SH NAME enum nvme_identify_cns \- Identify - CNS Values .SH SYNOPSIS @@ -100,6 +100,18 @@ enum nvme_identify_cns { , .br .br +.BI " NVME_IDENTIFY_CNS_UNDERLYING_NS_LIST" +, +.br +.br +.BI " NVME_IDENTIFY_CNS_PORTS_LIST" +, +.br +.br +.BI " NVME_IDENTIFY_CNS_IOCS_IND_ID_ALLOC_NS" +, +.br +.br .BI " NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS" }; @@ -164,7 +176,14 @@ ID list I/O Command Set specific ID Namespace Data Structure for Allocated Namespace ID .IP "NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE" 12 -Base Specification 2.0a section 5.17.2.21 +I/O Command Set data structure +.IP "NVME_IDENTIFY_CNS_UNDERLYING_NS_LIST" 12 +Get Underlying Namespace List +.IP "NVME_IDENTIFY_CNS_PORTS_LIST" 12 +Get Ports List +.IP "NVME_IDENTIFY_CNS_IOCS_IND_ID_ALLOC_NS" 12 +I/O Command Set Independent Identify Namespace data +structure for the specified allocated NSID .IP "NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS" 12 Supported Controller State Formats identifying the supported NVMe Controller diff --git a/doc/man/nvme_identify_ctrl.2 b/doc/man/nvme_identify_ctrl.2 index 91f7ee2..8d6f608 100644 --- a/doc/man/nvme_identify_ctrl.2 +++ b/doc/man/nvme_identify_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_ctrl" 9 "nvme_identify_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_ctrl" 9 "nvme_identify_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_ctrl \- Retrieves nvme identify controller .SH SYNOPSIS diff --git a/doc/man/nvme_identify_ctrl_csi.2 b/doc/man/nvme_identify_ctrl_csi.2 index aaa842f..9bbfdf6 100644 --- a/doc/man/nvme_identify_ctrl_csi.2 +++ b/doc/man/nvme_identify_ctrl_csi.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_ctrl_csi" 9 "nvme_identify_ctrl_csi" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_ctrl_csi" 9 "nvme_identify_ctrl_csi" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_ctrl_csi \- I/O command set specific Identify Controller data .SH SYNOPSIS diff --git a/doc/man/nvme_identify_ctrl_list.2 b/doc/man/nvme_identify_ctrl_list.2 index 1203624..26467ea 100644 --- a/doc/man/nvme_identify_ctrl_list.2 +++ b/doc/man/nvme_identify_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_ctrl_list" 9 "nvme_identify_ctrl_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_ctrl_list" 9 "nvme_identify_ctrl_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_ctrl_list \- Retrieves identify controller list .SH SYNOPSIS diff --git a/doc/man/nvme_identify_domain_list.2 b/doc/man/nvme_identify_domain_list.2 index a9757cf..08412bb 100644 --- a/doc/man/nvme_identify_domain_list.2 +++ b/doc/man/nvme_identify_domain_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_domain_list" 9 "nvme_identify_domain_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_domain_list" 9 "nvme_identify_domain_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_domain_list \- Domain list data .SH SYNOPSIS diff --git a/doc/man/nvme_identify_endurance_group_list.2 b/doc/man/nvme_identify_endurance_group_list.2 index 89023fb..3d37fc4 100644 --- a/doc/man/nvme_identify_endurance_group_list.2 +++ b/doc/man/nvme_identify_endurance_group_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_endurance_group_list" 9 "nvme_identify_endurance_group_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_endurance_group_list" 9 "nvme_identify_endurance_group_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_endurance_group_list \- Endurance group list data .SH SYNOPSIS diff --git a/doc/man/nvme_identify_independent_identify_ns.2 b/doc/man/nvme_identify_independent_identify_ns.2 index 247573f..dc117a2 100644 --- a/doc/man/nvme_identify_independent_identify_ns.2 +++ b/doc/man/nvme_identify_independent_identify_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_independent_identify_ns" 9 "nvme_identify_independent_identify_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_independent_identify_ns" 9 "nvme_identify_independent_identify_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_independent_identify_ns \- I/O command set independent Identify namespace data .SH SYNOPSIS diff --git a/doc/man/nvme_identify_iocs.2 b/doc/man/nvme_identify_iocs.2 index 0830eb2..030200f 100644 --- a/doc/man/nvme_identify_iocs.2 +++ b/doc/man/nvme_identify_iocs.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_iocs" 9 "nvme_identify_iocs" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_iocs" 9 "nvme_identify_iocs" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_iocs \- I/O command set data structure .SH SYNOPSIS diff --git a/doc/man/nvme_identify_iocs_ns_csi_user_data_format.2 b/doc/man/nvme_identify_iocs_ns_csi_user_data_format.2 index 50dd37a..06206b4 100644 --- a/doc/man/nvme_identify_iocs_ns_csi_user_data_format.2 +++ b/doc/man/nvme_identify_iocs_ns_csi_user_data_format.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_iocs_ns_csi_user_data_format" 9 "nvme_identify_iocs_ns_csi_user_data_format" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_iocs_ns_csi_user_data_format" 9 "nvme_identify_iocs_ns_csi_user_data_format" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_iocs_ns_csi_user_data_format \- Identify I/O command set namespace data structure .SH SYNOPSIS diff --git a/doc/man/nvme_identify_ns.2 b/doc/man/nvme_identify_ns.2 index 7b3ebbc..28b8de9 100644 --- a/doc/man/nvme_identify_ns.2 +++ b/doc/man/nvme_identify_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_ns" 9 "nvme_identify_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_ns" 9 "nvme_identify_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_ns \- Retrieves nvme identify namespace .SH SYNOPSIS diff --git a/doc/man/nvme_identify_ns_csi.2 b/doc/man/nvme_identify_ns_csi.2 index 79ddcb0..a5b5533 100644 --- a/doc/man/nvme_identify_ns_csi.2 +++ b/doc/man/nvme_identify_ns_csi.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_ns_csi" 9 "nvme_identify_ns_csi" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_ns_csi" 9 "nvme_identify_ns_csi" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_ns_csi \- I/O command set specific identify namespace data .SH SYNOPSIS diff --git a/doc/man/nvme_identify_ns_csi_user_data_format.2 b/doc/man/nvme_identify_ns_csi_user_data_format.2 index cce5da9..3530501 100644 --- a/doc/man/nvme_identify_ns_csi_user_data_format.2 +++ b/doc/man/nvme_identify_ns_csi_user_data_format.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_ns_csi_user_data_format" 9 "nvme_identify_ns_csi_user_data_format" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_ns_csi_user_data_format" 9 "nvme_identify_ns_csi_user_data_format" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_ns_csi_user_data_format \- Identify namespace user data format .SH SYNOPSIS diff --git a/doc/man/nvme_identify_ns_descs.2 b/doc/man/nvme_identify_ns_descs.2 index 2854079..0ab60a4 100644 --- a/doc/man/nvme_identify_ns_descs.2 +++ b/doc/man/nvme_identify_ns_descs.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_ns_descs" 9 "nvme_identify_ns_descs" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_ns_descs" 9 "nvme_identify_ns_descs" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_ns_descs \- Retrieves namespace descriptor list .SH SYNOPSIS diff --git a/doc/man/nvme_identify_ns_granularity.2 b/doc/man/nvme_identify_ns_granularity.2 index 8118664..30e3219 100644 --- a/doc/man/nvme_identify_ns_granularity.2 +++ b/doc/man/nvme_identify_ns_granularity.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_ns_granularity" 9 "nvme_identify_ns_granularity" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_ns_granularity" 9 "nvme_identify_ns_granularity" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_ns_granularity \- Retrieves namespace granularity identification .SH SYNOPSIS diff --git a/doc/man/nvme_identify_nsid_ctrl_list.2 b/doc/man/nvme_identify_nsid_ctrl_list.2 index 96b76ee..e6ec938 100644 --- a/doc/man/nvme_identify_nsid_ctrl_list.2 +++ b/doc/man/nvme_identify_nsid_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_nsid_ctrl_list" 9 "nvme_identify_nsid_ctrl_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_nsid_ctrl_list" 9 "nvme_identify_nsid_ctrl_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_nsid_ctrl_list \- Retrieves controller list attached to an nsid .SH SYNOPSIS diff --git a/doc/man/nvme_identify_nvmset_list.2 b/doc/man/nvme_identify_nvmset_list.2 index c4c0c45..031cd5f 100644 --- a/doc/man/nvme_identify_nvmset_list.2 +++ b/doc/man/nvme_identify_nvmset_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_nvmset_list" 9 "nvme_identify_nvmset_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_nvmset_list" 9 "nvme_identify_nvmset_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_nvmset_list \- Retrieves NVM Set List .SH SYNOPSIS diff --git a/doc/man/nvme_identify_primary_ctrl.2 b/doc/man/nvme_identify_primary_ctrl.2 index b11f67d..375b23f 100644 --- a/doc/man/nvme_identify_primary_ctrl.2 +++ b/doc/man/nvme_identify_primary_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_primary_ctrl" 9 "nvme_identify_primary_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_primary_ctrl" 9 "nvme_identify_primary_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_primary_ctrl \- Retrieve NVMe Primary Controller identification .SH SYNOPSIS diff --git a/doc/man/nvme_identify_secondary_ctrl_list.2 b/doc/man/nvme_identify_secondary_ctrl_list.2 index 6290d84..1967d14 100644 --- a/doc/man/nvme_identify_secondary_ctrl_list.2 +++ b/doc/man/nvme_identify_secondary_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_secondary_ctrl_list" 9 "nvme_identify_secondary_ctrl_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_secondary_ctrl_list" 9 "nvme_identify_secondary_ctrl_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_secondary_ctrl_list \- Retrieves secondary controller list .SH SYNOPSIS diff --git a/doc/man/nvme_identify_uuid.2 b/doc/man/nvme_identify_uuid.2 index b89da11..8f2b79b 100644 --- a/doc/man/nvme_identify_uuid.2 +++ b/doc/man/nvme_identify_uuid.2 @@ -1,4 +1,4 @@ -.TH "nvme_identify_uuid" 9 "nvme_identify_uuid" "November 2024" "libnvme API manual" LINUX +.TH "nvme_identify_uuid" 9 "nvme_identify_uuid" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_identify_uuid \- Retrieves device's UUIDs .SH SYNOPSIS diff --git a/doc/man/nvme_import_tls_key.2 b/doc/man/nvme_import_tls_key.2 index 04b59ef..1e93f3a 100644 --- a/doc/man/nvme_import_tls_key.2 +++ b/doc/man/nvme_import_tls_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_import_tls_key" 9 "nvme_import_tls_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_import_tls_key" 9 "nvme_import_tls_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_import_tls_key \- Import a TLS key .SH SYNOPSIS diff --git a/doc/man/nvme_import_tls_key_versioned.2 b/doc/man/nvme_import_tls_key_versioned.2 index c8d1adf..d951053 100644 --- a/doc/man/nvme_import_tls_key_versioned.2 +++ b/doc/man/nvme_import_tls_key_versioned.2 @@ -1,4 +1,4 @@ -.TH "nvme_import_tls_key_versioned" 9 "nvme_import_tls_key_versioned" "November 2024" "libnvme API manual" LINUX +.TH "nvme_import_tls_key_versioned" 9 "nvme_import_tls_key_versioned" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_import_tls_key_versioned \- Import a TLS key .SH SYNOPSIS diff --git a/doc/man/nvme_init_copy_range.2 b/doc/man/nvme_init_copy_range.2 index 7dbf155..c828b07 100644 --- a/doc/man/nvme_init_copy_range.2 +++ b/doc/man/nvme_init_copy_range.2 @@ -1,4 +1,4 @@ -.TH "nvme_init_copy_range" 9 "nvme_init_copy_range" "November 2024" "libnvme API manual" LINUX +.TH "nvme_init_copy_range" 9 "nvme_init_copy_range" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_init_copy_range \- Constructs a copy range structure .SH SYNOPSIS diff --git a/doc/man/nvme_init_copy_range_f1.2 b/doc/man/nvme_init_copy_range_f1.2 index c8ed463..48b32cf 100644 --- a/doc/man/nvme_init_copy_range_f1.2 +++ b/doc/man/nvme_init_copy_range_f1.2 @@ -1,4 +1,4 @@ -.TH "nvme_init_copy_range_f1" 9 "nvme_init_copy_range_f1" "November 2024" "libnvme API manual" LINUX +.TH "nvme_init_copy_range_f1" 9 "nvme_init_copy_range_f1" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_init_copy_range_f1 \- Constructs a copy range f1 structure .SH SYNOPSIS diff --git a/doc/man/nvme_init_copy_range_f2.2 b/doc/man/nvme_init_copy_range_f2.2 index ad88c09..d389a4e 100644 --- a/doc/man/nvme_init_copy_range_f2.2 +++ b/doc/man/nvme_init_copy_range_f2.2 @@ -1,4 +1,4 @@ -.TH "nvme_init_copy_range_f2" 9 "nvme_init_copy_range_f2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_init_copy_range_f2" 9 "nvme_init_copy_range_f2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_init_copy_range_f2 \- Constructs a copy range f2 structure .SH SYNOPSIS diff --git a/doc/man/nvme_init_copy_range_f3.2 b/doc/man/nvme_init_copy_range_f3.2 index fd790d3..e8b4d1d 100644 --- a/doc/man/nvme_init_copy_range_f3.2 +++ b/doc/man/nvme_init_copy_range_f3.2 @@ -1,4 +1,4 @@ -.TH "nvme_init_copy_range_f3" 9 "nvme_init_copy_range_f3" "November 2024" "libnvme API manual" LINUX +.TH "nvme_init_copy_range_f3" 9 "nvme_init_copy_range_f3" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_init_copy_range_f3 \- Constructs a copy range f3 structure .SH SYNOPSIS diff --git a/doc/man/nvme_init_ctrl.2 b/doc/man/nvme_init_ctrl.2 index c5f14bd..f3f2a03 100644 --- a/doc/man/nvme_init_ctrl.2 +++ b/doc/man/nvme_init_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_init_ctrl" 9 "nvme_init_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_init_ctrl" 9 "nvme_init_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_init_ctrl \- Initialize nvme_ctrl_t object for an existing controller. .SH SYNOPSIS diff --git a/doc/man/nvme_init_ctrl_list.2 b/doc/man/nvme_init_ctrl_list.2 index d1033b5..1211b90 100644 --- a/doc/man/nvme_init_ctrl_list.2 +++ b/doc/man/nvme_init_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_init_ctrl_list" 9 "nvme_init_ctrl_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_init_ctrl_list" 9 "nvme_init_ctrl_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_init_ctrl_list \- Initialize an nvme_ctrl_list structure from an array. .SH SYNOPSIS diff --git a/doc/man/nvme_init_default_logging.2 b/doc/man/nvme_init_default_logging.2 index b010b10..c8276ac 100644 --- a/doc/man/nvme_init_default_logging.2 +++ b/doc/man/nvme_init_default_logging.2 @@ -1,4 +1,4 @@ -.TH "nvme_init_default_logging" 9 "nvme_init_default_logging" "November 2024" "libnvme API manual" LINUX +.TH "nvme_init_default_logging" 9 "nvme_init_default_logging" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_init_default_logging \- Initialize default (fallback) logging .SH SYNOPSIS diff --git a/doc/man/nvme_init_dsm_range.2 b/doc/man/nvme_init_dsm_range.2 index 453a277..f4074b8 100644 --- a/doc/man/nvme_init_dsm_range.2 +++ b/doc/man/nvme_init_dsm_range.2 @@ -1,4 +1,4 @@ -.TH "nvme_init_dsm_range" 9 "nvme_init_dsm_range" "November 2024" "libnvme API manual" LINUX +.TH "nvme_init_dsm_range" 9 "nvme_init_dsm_range" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_init_dsm_range \- Constructs a data set range structure .SH SYNOPSIS diff --git a/doc/man/nvme_init_logging.2 b/doc/man/nvme_init_logging.2 index e523bf3..8cabe25 100644 --- a/doc/man/nvme_init_logging.2 +++ b/doc/man/nvme_init_logging.2 @@ -1,4 +1,4 @@ -.TH "nvme_init_logging" 9 "nvme_init_logging" "November 2024" "libnvme API manual" LINUX +.TH "nvme_init_logging" 9 "nvme_init_logging" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_init_logging \- Initialize logging .SH SYNOPSIS diff --git a/doc/man/nvme_insert_tls_key.2 b/doc/man/nvme_insert_tls_key.2 index 0a14137..0d90b30 100644 --- a/doc/man/nvme_insert_tls_key.2 +++ b/doc/man/nvme_insert_tls_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_insert_tls_key" 9 "nvme_insert_tls_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_insert_tls_key" 9 "nvme_insert_tls_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_insert_tls_key \- Derive and insert TLS key .SH SYNOPSIS diff --git a/doc/man/nvme_insert_tls_key_versioned.2 b/doc/man/nvme_insert_tls_key_versioned.2 index 9bb86dd..cff7a6c 100644 --- a/doc/man/nvme_insert_tls_key_versioned.2 +++ b/doc/man/nvme_insert_tls_key_versioned.2 @@ -1,4 +1,4 @@ -.TH "nvme_insert_tls_key_versioned" 9 "nvme_insert_tls_key_versioned" "November 2024" "libnvme API manual" LINUX +.TH "nvme_insert_tls_key_versioned" 9 "nvme_insert_tls_key_versioned" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_insert_tls_key_versioned \- Derive and insert TLS key .SH SYNOPSIS diff --git a/doc/man/nvme_io.2 b/doc/man/nvme_io.2 index 5212748..c12063c 100644 --- a/doc/man/nvme_io.2 +++ b/doc/man/nvme_io.2 @@ -1,4 +1,4 @@ -.TH "nvme_io" 9 "nvme_io" "November 2024" "libnvme API manual" LINUX +.TH "nvme_io" 9 "nvme_io" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_io \- Submit an nvme user I/O command .SH SYNOPSIS diff --git a/doc/man/nvme_io_control_flags.2 b/doc/man/nvme_io_control_flags.2 index db5344d..896c4cb 100644 --- a/doc/man/nvme_io_control_flags.2 +++ b/doc/man/nvme_io_control_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_io_control_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_io_control_flags" "March 2025" "API Manual" LINUX .SH NAME enum nvme_io_control_flags \- I/O control flags .SH SYNOPSIS @@ -8,6 +8,10 @@ enum nvme_io_control_flags { , .br .br +.BI " NVME_IO_NSZ" +, +.br +.br .BI " NVME_IO_STC" , .br @@ -46,6 +50,8 @@ enum nvme_io_control_flags { .SH Constants .IP "NVME_IO_DTYPE_STREAMS" 12 Directive Type Streams +.IP "NVME_IO_NSZ" 12 +Namespace Zeroes .IP "NVME_IO_STC" 12 Storage Tag Check .IP "NVME_IO_DEAC" 12 diff --git a/doc/man/nvme_io_dsm_flags.2 b/doc/man/nvme_io_dsm_flags.2 index 372ad38..0de2684 100644 --- a/doc/man/nvme_io_dsm_flags.2 +++ b/doc/man/nvme_io_dsm_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_io_dsm_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_io_dsm_flags" "March 2025" "API Manual" LINUX .SH NAME enum nvme_io_dsm_flags \- Dataset Management flags .SH SYNOPSIS diff --git a/doc/man/nvme_io_mgmt_recv.2 b/doc/man/nvme_io_mgmt_recv.2 index 53556fe..c394dbf 100644 --- a/doc/man/nvme_io_mgmt_recv.2 +++ b/doc/man/nvme_io_mgmt_recv.2 @@ -1,4 +1,4 @@ -.TH "nvme_io_mgmt_recv" 9 "nvme_io_mgmt_recv" "November 2024" "libnvme API manual" LINUX +.TH "nvme_io_mgmt_recv" 9 "nvme_io_mgmt_recv" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_io_mgmt_recv \- I/O Management Receive command .SH SYNOPSIS diff --git a/doc/man/nvme_io_mgmt_recv_mo.2 b/doc/man/nvme_io_mgmt_recv_mo.2 index 76bdd4c..90b0254 100644 --- a/doc/man/nvme_io_mgmt_recv_mo.2 +++ b/doc/man/nvme_io_mgmt_recv_mo.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_io_mgmt_recv_mo" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_io_mgmt_recv_mo" "March 2025" "API Manual" LINUX .SH NAME enum nvme_io_mgmt_recv_mo \- I/O Management Receive - Management Operation .SH SYNOPSIS diff --git a/doc/man/nvme_io_mgmt_send.2 b/doc/man/nvme_io_mgmt_send.2 index a0d2cb6..97b1201 100644 --- a/doc/man/nvme_io_mgmt_send.2 +++ b/doc/man/nvme_io_mgmt_send.2 @@ -1,4 +1,4 @@ -.TH "nvme_io_mgmt_send" 9 "nvme_io_mgmt_send" "November 2024" "libnvme API manual" LINUX +.TH "nvme_io_mgmt_send" 9 "nvme_io_mgmt_send" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_io_mgmt_send \- I/O Management Send command .SH SYNOPSIS diff --git a/doc/man/nvme_io_mgmt_send_mo.2 b/doc/man/nvme_io_mgmt_send_mo.2 index e2c0cad..7e03620 100644 --- a/doc/man/nvme_io_mgmt_send_mo.2 +++ b/doc/man/nvme_io_mgmt_send_mo.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_io_mgmt_send_mo" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_io_mgmt_send_mo" "March 2025" "API Manual" LINUX .SH NAME enum nvme_io_mgmt_send_mo \- I/O Management Send - Management Operation .SH SYNOPSIS diff --git a/doc/man/nvme_io_opcode.2 b/doc/man/nvme_io_opcode.2 index db20642..5ce8e84 100644 --- a/doc/man/nvme_io_opcode.2 +++ b/doc/man/nvme_io_opcode.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_io_opcode" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_io_opcode" "March 2025" "API Manual" LINUX .SH NAME enum nvme_io_opcode \- Opcodes for I/O Commands .SH SYNOPSIS @@ -77,6 +77,10 @@ enum nvme_io_opcode { .br .br .BI " nvme_zns_cmd_append" +, +.br +.br +.BI " nvme_cmd_fabric" }; .SH Constants @@ -118,3 +122,5 @@ Zone Management Send Zone Management Receive .IP "nvme_zns_cmd_append" 12 Zone Append +.IP "nvme_cmd_fabric" 12 +Fabric Commands diff --git a/doc/man/nvme_io_passthru.2 b/doc/man/nvme_io_passthru.2 index ffe8572..a6f2a78 100644 --- a/doc/man/nvme_io_passthru.2 +++ b/doc/man/nvme_io_passthru.2 @@ -1,4 +1,4 @@ -.TH "nvme_io_passthru" 9 "nvme_io_passthru" "November 2024" "libnvme API manual" LINUX +.TH "nvme_io_passthru" 9 "nvme_io_passthru" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_io_passthru \- Submit an nvme io passthrough command .SH SYNOPSIS diff --git a/doc/man/nvme_io_passthru64.2 b/doc/man/nvme_io_passthru64.2 index 438506a..641a624 100644 --- a/doc/man/nvme_io_passthru64.2 +++ b/doc/man/nvme_io_passthru64.2 @@ -1,4 +1,4 @@ -.TH "nvme_io_passthru64" 9 "nvme_io_passthru64" "November 2024" "libnvme API manual" LINUX +.TH "nvme_io_passthru64" 9 "nvme_io_passthru64" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_io_passthru64 \- Submit an nvme io passthrough command .SH SYNOPSIS diff --git a/doc/man/nvme_is_64bit_reg.2 b/doc/man/nvme_is_64bit_reg.2 index 7b8a22a..2d38dde 100644 --- a/doc/man/nvme_is_64bit_reg.2 +++ b/doc/man/nvme_is_64bit_reg.2 @@ -1,4 +1,4 @@ -.TH "nvme_is_64bit_reg" 9 "nvme_is_64bit_reg" "November 2024" "libnvme API manual" LINUX +.TH "nvme_is_64bit_reg" 9 "nvme_is_64bit_reg" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_is_64bit_reg \- Checks if offset of the controller register is a know 64bit value. .SH SYNOPSIS diff --git a/doc/man/nvme_kv_opcode.2 b/doc/man/nvme_kv_opcode.2 index bb92439..c551571 100644 --- a/doc/man/nvme_kv_opcode.2 +++ b/doc/man/nvme_kv_opcode.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_kv_opcode" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_kv_opcode" "March 2025" "API Manual" LINUX .SH NAME enum nvme_kv_opcode \- Opcodes for KV Commands .SH SYNOPSIS diff --git a/doc/man/nvme_lba_range_type.2 b/doc/man/nvme_lba_range_type.2 index dec5a71..4a83ae3 100644 --- a/doc/man/nvme_lba_range_type.2 +++ b/doc/man/nvme_lba_range_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_lba_range_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lba_range_type" "March 2025" "API Manual" LINUX .SH NAME struct nvme_lba_range_type \- LBA Range Type .SH SYNOPSIS diff --git a/doc/man/nvme_lba_range_type_entry.2 b/doc/man/nvme_lba_range_type_entry.2 index e1c1a50..d5d6998 100644 --- a/doc/man/nvme_lba_range_type_entry.2 +++ b/doc/man/nvme_lba_range_type_entry.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_lba_range_type_entry" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lba_range_type_entry" "March 2025" "API Manual" LINUX .SH NAME struct nvme_lba_range_type_entry \- LBA Range Type - Data Structure Entry .SH SYNOPSIS diff --git a/doc/man/nvme_lba_rd.2 b/doc/man/nvme_lba_rd.2 index 4d2c0b2..c2f4b3b 100644 --- a/doc/man/nvme_lba_rd.2 +++ b/doc/man/nvme_lba_rd.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_lba_rd" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lba_rd" "March 2025" "API Manual" LINUX .SH NAME struct nvme_lba_rd \- LBA Range Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_lba_status.2 b/doc/man/nvme_lba_status.2 index c7df93a..c47d3d2 100644 --- a/doc/man/nvme_lba_status.2 +++ b/doc/man/nvme_lba_status.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_lba_status" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lba_status" "March 2025" "API Manual" LINUX .SH NAME struct nvme_lba_status \- LBA Status Descriptor List .SH SYNOPSIS diff --git a/doc/man/nvme_lba_status_atype.2 b/doc/man/nvme_lba_status_atype.2 index 03418c8..d24ef3d 100644 --- a/doc/man/nvme_lba_status_atype.2 +++ b/doc/man/nvme_lba_status_atype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_lba_status_atype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_lba_status_atype" "March 2025" "API Manual" LINUX .SH NAME enum nvme_lba_status_atype \- Action type the controller uses to return LBA status .SH SYNOPSIS diff --git a/doc/man/nvme_lba_status_cmpc.2 b/doc/man/nvme_lba_status_cmpc.2 index 84b053b..1673017 100644 --- a/doc/man/nvme_lba_status_cmpc.2 +++ b/doc/man/nvme_lba_status_cmpc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_lba_status_cmpc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_lba_status_cmpc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_lba_status_cmpc \- Get LBA Status Command Completion Condition .SH SYNOPSIS diff --git a/doc/man/nvme_lba_status_desc.2 b/doc/man/nvme_lba_status_desc.2 index 342db20..5db0af7 100644 --- a/doc/man/nvme_lba_status_desc.2 +++ b/doc/man/nvme_lba_status_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_lba_status_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lba_status_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_lba_status_desc \- LBA Status Descriptor Entry .SH SYNOPSIS diff --git a/doc/man/nvme_lba_status_log.2 b/doc/man/nvme_lba_status_log.2 index 771dc54..867868d 100644 --- a/doc/man/nvme_lba_status_log.2 +++ b/doc/man/nvme_lba_status_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_lba_status_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lba_status_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_lba_status_log \- LBA Status Information Log .SH SYNOPSIS diff --git a/doc/man/nvme_lbaf.2 b/doc/man/nvme_lbaf.2 index 71f39ba..c3fa5cd 100644 --- a/doc/man/nvme_lbaf.2 +++ b/doc/man/nvme_lbaf.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_lbaf" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lbaf" "March 2025" "API Manual" LINUX .SH NAME struct nvme_lbaf \- LBA Format Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_lbaf_rp.2 b/doc/man/nvme_lbaf_rp.2 index bdee45b..1aa1774 100644 --- a/doc/man/nvme_lbaf_rp.2 +++ b/doc/man/nvme_lbaf_rp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_lbaf_rp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_lbaf_rp" "March 2025" "API Manual" LINUX .SH NAME enum nvme_lbaf_rp \- This field indicates the relative performance of the LBA format indicated relative to other LBA formats supported by the controller. .SH SYNOPSIS diff --git a/doc/man/nvme_lbart.2 b/doc/man/nvme_lbart.2 index 6f2afe0..379cf70 100644 --- a/doc/man/nvme_lbart.2 +++ b/doc/man/nvme_lbart.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_lbart" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_lbart" "March 2025" "API Manual" LINUX .SH NAME enum nvme_lbart \- LBA Range Type - Data Structure Entry .SH SYNOPSIS diff --git a/doc/man/nvme_lbas_ns_element.2 b/doc/man/nvme_lbas_ns_element.2 index 89f6d77..40c0255 100644 --- a/doc/man/nvme_lbas_ns_element.2 +++ b/doc/man/nvme_lbas_ns_element.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_lbas_ns_element" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lbas_ns_element" "March 2025" "API Manual" LINUX .SH NAME struct nvme_lbas_ns_element \- LBA Status Log Namespace Element .SH SYNOPSIS diff --git a/doc/man/nvme_lm_cdq.2 b/doc/man/nvme_lm_cdq.2 new file mode 100644 index 0000000..3892343 --- /dev/null +++ b/doc/man/nvme_lm_cdq.2 @@ -0,0 +1,12 @@ +.TH "nvme_lm_cdq" 9 "nvme_lm_cdq" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_lm_cdq \- Controller Data Queue - Controller Data Queue command +.SH SYNOPSIS +.B "int" nvme_lm_cdq +.BI "(struct nvme_lm_cdq_args *args " ");" +.SH ARGUMENTS +.IP "args" 12 +\fIstruct nvme_lm_cdq_args\fP argument structure +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise.) diff --git a/doc/man/nvme_lm_cdq_fields.2 b/doc/man/nvme_lm_cdq_fields.2 new file mode 100644 index 0000000..8ed0146 --- /dev/null +++ b/doc/man/nvme_lm_cdq_fields.2 @@ -0,0 +1,104 @@ +.TH "libnvme" 9 "enum nvme_lm_cdq_fields" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_lm_cdq_fields \- Controller Data Queue command fields +.SH SYNOPSIS +enum nvme_lm_cdq_fields { +.br +.BI " NVME_LM_CDQ_MOS_SHIFT" +, +.br +.br +.BI " NVME_LM_CDQ_MOS_MASK" +, +.br +.br +.BI " NVME_LM_CDQ_SEL_SHIFT" +, +.br +.br +.BI " NVME_LM_CDQ_SEL_MASK" +, +.br +.br +.BI " NVME_LM_SEL_CREATE_CDQ" +, +.br +.br +.BI " NVME_LM_SEL_DELETE_CDQ" +, +.br +.br +.BI " NVME_LM_QT_SHIFT" +, +.br +.br +.BI " NVME_LM_QT_MASK" +, +.br +.br +.BI " NVME_LM_QT_USER_DATA_MIGRATION_QUEUE" +, +.br +.br +.BI " NVME_LM_CREATE_CDQ_PC" +, +.br +.br +.BI " NVME_LM_CREATE_CDQ_CNTLID_SHIFT" +, +.br +.br +.BI " NVME_LM_CREATE_CDQ_CNTLID_MASK" +, +.br +.br +.BI " NVME_LM_DELETE_CDQ_CDQID_SHIFT" +, +.br +.br +.BI " NVME_LM_DELETE_CDQ_CDQID_MASK" +, +.br +.br +.BI " NVME_LM_CREATE_CDQ_CDQID_SHIFT" +, +.br +.br +.BI " NVME_LM_CREATE_CDQ_CDQID_MASK" + +}; +.SH Constants +.IP "NVME_LM_CDQ_MOS_SHIFT" 12 +Shift to set Management Operation Specific (MOS) field +.IP "NVME_LM_CDQ_MOS_MASK" 12 +Mask to set MOS field +.IP "NVME_LM_CDQ_SEL_SHIFT" 12 +Shift to set Select (SEL) field +.IP "NVME_LM_CDQ_SEL_MASK" 12 +Mask to set SEL field +.IP "NVME_LM_SEL_CREATE_CDQ" 12 +Create CDQ select option +.IP "NVME_LM_SEL_DELETE_CDQ" 12 +Delete CDQ select option +.IP "NVME_LM_QT_SHIFT" 12 +Shift amount to set Queue Type (QT) field relative to MOS +.IP "NVME_LM_QT_MASK" 12 +Mask to set QT field relative to MOS +.IP "NVME_LM_QT_USER_DATA_MIGRATION_QUEUE" 12 +User Data Migration Queue type +.IP "NVME_LM_CREATE_CDQ_PC" 12 +Physically Contiguous (PC) +.IP "NVME_LM_CREATE_CDQ_CNTLID_SHIFT" 12 +Shift amount to set CNTLID field relative to MOS +.IP "NVME_LM_CREATE_CDQ_CNTLID_MASK" 12 +Mask to set CNTLID field relative to MOS +.IP "NVME_LM_DELETE_CDQ_CDQID_SHIFT" 12 +Shift amount to set CDQID field for deletion +.IP "NVME_LM_DELETE_CDQ_CDQID_MASK" 12 +Mask to set CDQID field for deletion +.IP "NVME_LM_CREATE_CDQ_CDQID_SHIFT" 12 +Shift amount to get CDQID field from Create response in +completion dword0 +.IP "NVME_LM_CREATE_CDQ_CDQID_MASK" 12 +Mask to get CNTLID field from Create response in +completion dword0 diff --git a/doc/man/nvme_lm_controller_state_data.2 b/doc/man/nvme_lm_controller_state_data.2 new file mode 100644 index 0000000..08903e1 --- /dev/null +++ b/doc/man/nvme_lm_controller_state_data.2 @@ -0,0 +1,19 @@ +.TH "libnvme" 9 "struct nvme_lm_controller_state_data" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_lm_controller_state_data \- Controller State data structure contains data on the controller's state. +.SH SYNOPSIS +struct nvme_lm_controller_state_data { +.br +.BI " struct nvme_lm_controller_state_data_header hdr;" +.br +.BI " struct nvme_lm_nvme_controller_state_data data;" +.br +.BI " +}; +.br + +.SH Members +.IP "hdr" 12 +Header +.IP "data" 12 +Data diff --git a/doc/man/nvme_lm_controller_state_data_header.2 b/doc/man/nvme_lm_controller_state_data_header.2 new file mode 100644 index 0000000..940664c --- /dev/null +++ b/doc/man/nvme_lm_controller_state_data_header.2 @@ -0,0 +1,31 @@ +.TH "libnvme" 9 "struct nvme_lm_controller_state_data_header" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_lm_controller_state_data_header \- Controller State data header structure describes the contents of the Controller State data +.SH SYNOPSIS +struct nvme_lm_controller_state_data_header { +.br +.BI " __le16 ver;" +.br +.BI " __u8 csattr;" +.br +.BI " __u8 rsvd3[13];" +.br +.BI " __u8 nvmecss[16];" +.br +.BI " __u8 vss[16];" +.br +.BI " +}; +.br + +.SH Members +.IP "ver" 12 +Version of this data structure +.IP "csattr" 12 +Controller state attributes +.IP "rsvd3" 12 +Reserved +.IP "nvmecss" 12 +NVMe Controller state size in dwords +.IP "vss" 12 +Vendor specific size in dowrds diff --git a/doc/man/nvme_lm_ctrl_data_queue_fid.2 b/doc/man/nvme_lm_ctrl_data_queue_fid.2 new file mode 100644 index 0000000..ccbd97a --- /dev/null +++ b/doc/man/nvme_lm_ctrl_data_queue_fid.2 @@ -0,0 +1,18 @@ +.TH "libnvme" 9 "enum nvme_lm_ctrl_data_queue_fid" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_lm_ctrl_data_queue_fid \- Controller Data Queue - Set Feature +.SH SYNOPSIS +enum nvme_lm_ctrl_data_queue_fid { +.br +.BI " NVME_LM_CTRL_DATA_QUEUE_ETPT_MASK" +, +.br +.br +.BI " NVME_LM_CTRL_DATA_QUEUE_ETPT_SHIFT" + +}; +.SH Constants +.IP "NVME_LM_CTRL_DATA_QUEUE_ETPT_MASK" 12 +Mask to set Enable Tail Pointer Trigger (ETPT) +.IP "NVME_LM_CTRL_DATA_QUEUE_ETPT_SHIFT" 12 +Shift to set ETPT diff --git a/doc/man/nvme_lm_ctrl_data_queue_fid_data.2 b/doc/man/nvme_lm_ctrl_data_queue_fid_data.2 new file mode 100644 index 0000000..93c4825 --- /dev/null +++ b/doc/man/nvme_lm_ctrl_data_queue_fid_data.2 @@ -0,0 +1,19 @@ +.TH "libnvme" 9 "struct nvme_lm_ctrl_data_queue_fid_data" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_lm_ctrl_data_queue_fid_data \- Get Controller Data Queue feature data +.SH SYNOPSIS +struct nvme_lm_ctrl_data_queue_fid_data { +.br +.BI " __le32 hp;" +.br +.BI " __le32 tpt;" +.br +.BI " +}; +.br + +.SH Members +.IP "hp" 12 +Head Pointer +.IP "tpt" 12 +Tail Pointer Trigger diff --git a/doc/man/nvme_lm_io_completion_queue_data.2 b/doc/man/nvme_lm_io_completion_queue_data.2 new file mode 100644 index 0000000..4196c9c --- /dev/null +++ b/doc/man/nvme_lm_io_completion_queue_data.2 @@ -0,0 +1,39 @@ +.TH "libnvme" 9 "struct nvme_lm_io_completion_queue_data" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_lm_io_completion_queue_data \- I/O Completion Queue data structure. Fields related to the contents of Create I/O Completion Queue command that created an I/O Completion Queue. +.SH SYNOPSIS +struct nvme_lm_io_completion_queue_data { +.br +.BI " __le64 iocqprp1;" +.br +.BI " __le16 iocqqsize;" +.br +.BI " __le16 iocqqid;" +.br +.BI " __le16 iocqhp;" +.br +.BI " __le16 iocqtp;" +.br +.BI " __le32 iocqa;" +.br +.BI " __u8 rsvd20[4];" +.br +.BI " +}; +.br + +.SH Members +.IP "iocqprp1" 12 +I/O Completion Queue PRP Entry 1 (IOCQPRP1) +.IP "iocqqsize" 12 +I/O Completion Queue Size (IOCQQSIZE) +.IP "iocqqid" 12 +I/O Completion Queue Identifier (IOCQQID) +.IP "iocqhp" 12 +I/O Completion Queue Head Pointer (IOCQHP) +.IP "iocqtp" 12 +I/O Completion Queue Tail Pointer (IOCQTP) +.IP "iocqa" 12 +I/O Completion Queue Attributes (IOCQA) +.IP "rsvd20" 12 +Reserved diff --git a/doc/man/nvme_lm_io_submission_queue_data.2 b/doc/man/nvme_lm_io_submission_queue_data.2 new file mode 100644 index 0000000..2238b26 --- /dev/null +++ b/doc/man/nvme_lm_io_submission_queue_data.2 @@ -0,0 +1,43 @@ +.TH "libnvme" 9 "struct nvme_lm_io_submission_queue_data" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_lm_io_submission_queue_data \- I/O Submission Queue data structure. Fields related to the contents of Create I/O Submission Queue command that created an I/O Submission Queue. +.SH SYNOPSIS +struct nvme_lm_io_submission_queue_data { +.br +.BI " __le64 iosqprp1;" +.br +.BI " __le16 iosqqsize;" +.br +.BI " __le16 iosqqid;" +.br +.BI " __le16 iosqcqid;" +.br +.BI " __le16 iosqa;" +.br +.BI " __le16 iosqhp;" +.br +.BI " __le16 iosqtp;" +.br +.BI " __u8 rsvd20[4];" +.br +.BI " +}; +.br + +.SH Members +.IP "iosqprp1" 12 +I/O Submission PRP Entry 1 (IOSQPRP1) +.IP "iosqqsize" 12 +I/O Submission Queue Size (IOSQQSIZE) +.IP "iosqqid" 12 +I/O Submission Queue Identifier (IOSQQID) +.IP "iosqcqid" 12 +I/O Completion Queue Identifier (IOSQCQID) +.IP "iosqa" 12 +I/O Submission Queue Attributes (IOSQA) +.IP "iosqhp" 12 +I/O Submission Queue Head Pointer (IOSQHP) +.IP "iosqtp" 12 +I/O Submission Queue Tail Pointer (IOSQTP) +.IP "rsvd20" 12 +Reserved diff --git a/doc/man/nvme_lm_migration_recv_fields.2 b/doc/man/nvme_lm_migration_recv_fields.2 new file mode 100644 index 0000000..9003beb --- /dev/null +++ b/doc/man/nvme_lm_migration_recv_fields.2 @@ -0,0 +1,106 @@ +.TH "libnvme" 9 "enum nvme_lm_migration_recv_fields" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_lm_migration_recv_fields \- Migration Receive command fields +.SH SYNOPSIS +enum nvme_lm_migration_recv_fields { +.br +.BI " NVME_LM_MIGRATION_RECV_MOS_SHIFT" +, +.br +.br +.BI " NVME_LM_MIGRATION_RECV_MOS_MASK" +, +.br +.br +.BI " NVME_LM_MIGRATION_RECV_SEL_SHIFT" +, +.br +.br +.BI " NVME_LM_MIGRATION_RECV_SEL_MASK" +, +.br +.br +.BI " NVME_LM_SEL_GET_CONTROLLER_STATE" +, +.br +.br +.BI " NVME_LM_MIGRATION_RECV_UIDX_SHIFT" +, +.br +.br +.BI " NVME_LM_MIGRATION_RECV_UIDX_MASK" +, +.br +.br +.BI " NVME_LM_GET_CONTROLLER_STATE_CSVI_SHIFT" +, +.br +.br +.BI " NVME_LM_GET_CONTROLLER_STATE_CSVI_MASK" +, +.br +.br +.BI " NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_SHIFT" +, +.br +.br +.BI " NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_MASK" +, +.br +.br +.BI " NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_SHIFT" +, +.br +.br +.BI " NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_MASK" +, +.br +.br +.BI " NVME_LM_GET_CONTROLLER_STATE_CNTLID_SHIFT" +, +.br +.br +.BI " NVME_LM_GET_CONTROLLER_STATE_CNTLID_MASK" +, +.br +.br +.BI " NVME_LM_GET_CONTROLLER_STATE_CSUP" + +}; +.SH Constants +.IP "NVME_LM_MIGRATION_RECV_MOS_SHIFT" 12 +Shift amount to set Management Specific Operation +(MOS) field +.IP "NVME_LM_MIGRATION_RECV_MOS_MASK" 12 +Mask to set MOS field +.IP "NVME_LM_MIGRATION_RECV_SEL_SHIFT" 12 +Shift amount to set Select (SEL) field +.IP "NVME_LM_MIGRATION_RECV_SEL_MASK" 12 +Mask to set SEL field +.IP "NVME_LM_SEL_GET_CONTROLLER_STATE" 12 +Get Controller State select option +.IP "NVME_LM_MIGRATION_RECV_UIDX_SHIFT" 12 +Shift to set UUID Index (UIDX) +.IP "NVME_LM_MIGRATION_RECV_UIDX_MASK" 12 +Mask to set UIDX +.IP "NVME_LM_GET_CONTROLLER_STATE_CSVI_SHIFT" 12 +Shift amount to set Controller State Version Index +(CSVI) relative to MOS +.IP "NVME_LM_GET_CONTROLLER_STATE_CSVI_MASK" 12 +Mask to set CSVI relative to MOS +.IP "NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_SHIFT" 12 +Shift amount to set Controller State UUID Index +Parameter (CSUIDXP) +.IP "NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_MASK" 12 +Mask to set CSUIDXP +.IP "NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_SHIFT" 12 +Shift amount to set Controller State UUID Index +(CSUUIDI) +.IP "NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_MASK" 12 +Mask to set CSUUIDI +.IP "NVME_LM_GET_CONTROLLER_STATE_CNTLID_SHIFT" 12 +Shift amount to set Controller ID (CNTLID) +.IP "NVME_LM_GET_CONTROLLER_STATE_CNTLID_MASK" 12 +Mask to set CNTLID +.IP "NVME_LM_GET_CONTROLLER_STATE_CSUP" 12 +Controller Suspended diff --git a/doc/man/nvme_lm_migration_send.2 b/doc/man/nvme_lm_migration_send.2 new file mode 100644 index 0000000..2832ea8 --- /dev/null +++ b/doc/man/nvme_lm_migration_send.2 @@ -0,0 +1,12 @@ +.TH "nvme_lm_migration_send" 9 "nvme_lm_migration_send" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_lm_migration_send \- Migration Send command +.SH SYNOPSIS +.B "int" nvme_lm_migration_send +.BI "(struct nvme_lm_migration_send_args *args " ");" +.SH ARGUMENTS +.IP "args" 12 +\fIstruct nvme_lm_migration_send_args\fP argument structure +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise. diff --git a/doc/man/nvme_lm_migration_send_fields.2 b/doc/man/nvme_lm_migration_send_fields.2 new file mode 100644 index 0000000..318ab37 --- /dev/null +++ b/doc/man/nvme_lm_migration_send_fields.2 @@ -0,0 +1,202 @@ +.TH "libnvme" 9 "enum nvme_lm_migration_send_fields" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_lm_migration_send_fields \- Migration Send command fields +.SH SYNOPSIS +enum nvme_lm_migration_send_fields { +.br +.BI " NVME_LM_MIGRATION_SEND_MOS_SHIFT" +, +.br +.br +.BI " NVME_LM_MIGRATION_SEND_MOS_MASK" +, +.br +.br +.BI " NVME_LM_MIGRATION_SEND_SEL_SHIFT" +, +.br +.br +.BI " NVME_LM_MIGRATION_SEND_SEL_MASK" +, +.br +.br +.BI " NVME_LM_SEL_SUSPEND" +, +.br +.br +.BI " NVME_LM_SEL_RESUME" +, +.br +.br +.BI " NVME_LM_SEL_SET_CONTROLLER_STATE" +, +.br +.br +.BI " NVME_LM_MIGRATION_SEND_UIDX_SHIFT" +, +.br +.br +.BI " NVME_LM_MIGRATION_SEND_UIDX_MASK" +, +.br +.br +.BI " NVME_LM_DUDMQ" +, +.br +.br +.BI " NVME_LM_STYPE_SHIFT" +, +.br +.br +.BI " NVME_LM_STYPE_MASK" +, +.br +.br +.BI " NVME_LM_STYPE_SUSPEND_NOTIFICATION" +, +.br +.br +.BI " NVME_LM_STYPE_SUSPEND" +, +.br +.br +.BI " NVME_LM_SUSPEND_CNTLID_SHIFT" +, +.br +.br +.BI " NVME_LM_SUSPEND_CNTLID_MASK" +, +.br +.br +.BI " NVME_LM_RESUME_CNTLID_SHIFT" +, +.br +.br +.BI " NVME_LM_RESUME_CNTLID_MASK" +, +.br +.br +.BI " NVME_LM_SEQIND_SHIFT" +, +.br +.br +.BI " NVME_LM_SEQIND_MASK" +, +.br +.br +.BI " NVME_LM_SEQIND_NOT_FIRST_NOT_LAST" +, +.br +.br +.BI " NVME_LM_SEQIND_FIRST" +, +.br +.br +.BI " NVME_LM_SEQIND_LAST" +, +.br +.br +.BI " NVME_LM_SEQIND_ENTIRE" +, +.br +.br +.BI " NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_SHIFT" +, +.br +.br +.BI " NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_MASK" +, +.br +.br +.BI " NVME_LM_SET_CONTROLLER_STATE_CSVI_SHIFT" +, +.br +.br +.BI " NVME_LM_SET_CONTROLLER_STATE_CSVI_MASK" +, +.br +.br +.BI " NVME_LM_SET_CONTROLLER_STATE_CNTLID_SHIFT" +, +.br +.br +.BI " NVME_LM_SET_CONTROLLER_STATE_CNTLID_MASK" + +}; +.SH Constants +.IP "NVME_LM_MIGRATION_SEND_MOS_SHIFT" 12 +Shift to set Management Operation Specific (MOS) +field +.IP "NVME_LM_MIGRATION_SEND_MOS_MASK" 12 +Mask to set MOS field +.IP "NVME_LM_MIGRATION_SEND_SEL_SHIFT" 12 +Shift amount to set Select (SEL) field +.IP "NVME_LM_MIGRATION_SEND_SEL_MASK" 12 +Mask to set SEL field +.IP "NVME_LM_SEL_SUSPEND" 12 +Migration Send - Suspend +.IP "NVME_LM_SEL_RESUME" 12 +Migration Send - Resume +.IP "NVME_LM_SEL_SET_CONTROLLER_STATE" 12 +Migration Send - Set Controller State +.IP "NVME_LM_MIGRATION_SEND_UIDX_SHIFT" 12 +Shift to set UUID Index (UIDX) +.IP "NVME_LM_MIGRATION_SEND_UIDX_MASK" 12 +Mask to set UIDX +.IP "NVME_LM_DUDMQ" 12 +Delete User Data Migration Queue +.IP "NVME_LM_STYPE_SHIFT" 12 +Shift amount to set Suspend Type (STYPE) +.IP "NVME_LM_STYPE_MASK" 12 +Mask to set STYPE +.IP "NVME_LM_STYPE_SUSPEND_NOTIFICATION" 12 +Suspend Notification - The specified controller is +going to be suspended in the future with a +subsequent Migration Send command +.IP "NVME_LM_STYPE_SUSPEND" 12 +Suspend - Suspend the controller +.IP "NVME_LM_SUSPEND_CNTLID_SHIFT" 12 +Shift amount to set Controller ID (CNTLID) when SEL +is Suspend +.IP "NVME_LM_SUSPEND_CNTLID_MASK" 12 +Mask to set CNTLID with SEL Suspend +.IP "NVME_LM_RESUME_CNTLID_SHIFT" 12 +Shift amount to set Controller ID (CNTLID) when SEL +is Resume +.IP "NVME_LM_RESUME_CNTLID_MASK" 12 +Mask to set CNTLID when SEL is Resume +.IP "NVME_LM_SEQIND_SHIFT" 12 +Shift amount to set Sequence Indicator (SEQIND) +field relative to MOS +.IP "NVME_LM_SEQIND_MASK" 12 +Mask to set SEQIND field relative to MOS +.IP "NVME_LM_SEQIND_NOT_FIRST_NOT_LAST" 12 +This command is not the first or last of a sequence +of two or more Migration Send commands with this +management operation used to transfer the controller +state from host to controller +.IP "NVME_LM_SEQIND_FIRST" 12 +This command is the first of a sequence of two or +more Migration Send commands +.IP "NVME_LM_SEQIND_LAST" 12 +This command is the last command of a sequence of +two or more Migration Send commands +.IP "NVME_LM_SEQIND_ENTIRE" 12 +This Migration Send command is the only command and +contains the entire controller state for this +management operation +.IP "NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_SHIFT" 12 +Shift amount to set Controller State UUID Index +(CSUUIDI) +.IP "NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_MASK" 12 +Mask to set CSUUIDI +.IP "NVME_LM_SET_CONTROLLER_STATE_CSVI_SHIFT" 12 +Shift amount to set Controller State Version Index +(CSVI) +.IP "NVME_LM_SET_CONTROLLER_STATE_CSVI_MASK" 12 +Mask to set CSVI +.IP "NVME_LM_SET_CONTROLLER_STATE_CNTLID_SHIFT" 12 +Shift amount to set Controller ID (CNTLID) when SEL +is Set Controller State +.IP "NVME_LM_SET_CONTROLLER_STATE_CNTLID_MASK" 12 +Mask to set CNTLID when SEL is Set Controller State diff --git a/doc/man/nvme_lm_nvme_controller_state_data.2 b/doc/man/nvme_lm_nvme_controller_state_data.2 new file mode 100644 index 0000000..180ec56 --- /dev/null +++ b/doc/man/nvme_lm_nvme_controller_state_data.2 @@ -0,0 +1,29 @@ +.TH "libnvme" 9 "struct nvme_lm_nvme_controller_state_data" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_lm_nvme_controller_state_data \- NVMe Controller State data structure describes the state of a NVMe Controller's I/O Submission and I/O Completion queues +.SH SYNOPSIS +struct nvme_lm_nvme_controller_state_data { +.br +.BI " struct nvme_lm_nvme_controller_state_data_header hdr;" +.br +.BI " union {" +.br +.BI " struct nvme_lm_io_submission_queue_data sqs[0];" +.br +.BI " struct nvme_lm_io_completion_queue_data cqs[0];" +.br +.BI " };" +.br +.BI " +}; +.br + +.SH Members +.IP "hdr" 12 +Header +.IP "{unnamed_union}" 12 +anonymous +.IP "sqs" 12 +I/O Submission Queue list +.IP "cqs" 12 +I/O Completion Queue list diff --git a/doc/man/nvme_lm_nvme_controller_state_data_header.2 b/doc/man/nvme_lm_nvme_controller_state_data_header.2 new file mode 100644 index 0000000..6f149b2 --- /dev/null +++ b/doc/man/nvme_lm_nvme_controller_state_data_header.2 @@ -0,0 +1,27 @@ +.TH "libnvme" 9 "struct nvme_lm_nvme_controller_state_data_header" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_lm_nvme_controller_state_data_header \- Controller State data structure header +.SH SYNOPSIS +struct nvme_lm_nvme_controller_state_data_header { +.br +.BI " __le16 ver;" +.br +.BI " __le16 niosq;" +.br +.BI " __le16 niocq;" +.br +.BI " __le16 rsvd6;" +.br +.BI " +}; +.br + +.SH Members +.IP "ver" 12 +The version of this data structure. +.IP "niosq" 12 +The number of I/O Submission Queues contained in this data structure. +.IP "niocq" 12 +The number of I/O Completion Queues contained in this data structure. +.IP "rsvd6" 12 +Reserved diff --git a/doc/man/nvme_lm_queue_attributes.2 b/doc/man/nvme_lm_queue_attributes.2 new file mode 100644 index 0000000..4db10d0 --- /dev/null +++ b/doc/man/nvme_lm_queue_attributes.2 @@ -0,0 +1,84 @@ +.TH "libnvme" 9 "enum nvme_lm_queue_attributes" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_lm_queue_attributes \- I/O Submission and I/O Completion Queue Attributes +.SH SYNOPSIS +enum nvme_lm_queue_attributes { +.br +.BI " NVME_LM_IOSQPC_MASK" +, +.br +.br +.BI " NVME_LM_IOSQPC_SHIFT" +, +.br +.br +.BI " NVME_LM_IOSQPRIO_MASK" +, +.br +.br +.BI " NVME_LM_IOSQPRIO_SHIFT" +, +.br +.br +.BI " NVME_LM_IOCQPC_MASK" +, +.br +.br +.BI " NVME_LM_IOCQPC_SHIFT" +, +.br +.br +.BI " NVME_LM_IOCQIEN_MASK" +, +.br +.br +.BI " NVME_LM_IOCQIEN_SHIFT" +, +.br +.br +.BI " NVME_LM_S0PT_MASK" +, +.br +.br +.BI " NVME_LM_S0PT_SHIFT" +, +.br +.br +.BI " NVME_LM_IOCQIV_MASK" +, +.br +.br +.BI " NVME_LM_IOCQIV_SHIFT" + +}; +.SH Constants +.IP "NVME_LM_IOSQPC_MASK" 12 +Mask to get the Physically Contiguous (PC) bit for this I/O +submission queue. +.IP "NVME_LM_IOSQPC_SHIFT" 12 +Shift to get the PC bit for this I/O submission queue +.IP "NVME_LM_IOSQPRIO_MASK" 12 +Mask to get the Priority for this I/O submission queue. +.IP "NVME_LM_IOSQPRIO_SHIFT" 12 +Shift to get the Priority for this I/O submission queue. +.IP "NVME_LM_IOCQPC_MASK" 12 +Mask to get the Physicaly Contiguous (PC) bit for this I/O +completion queue. +.IP "NVME_LM_IOCQPC_SHIFT" 12 +Shift to get the PC bit for this I/O completion queue. +.IP "NVME_LM_IOCQIEN_MASK" 12 +Mask to get the Interrupts Enabled bit for this I/O completion +queue +.IP "NVME_LM_IOCQIEN_SHIFT" 12 +Shift to get the Interrupts Enabled bit for this I/O completion +.IP "NVME_LM_S0PT_MASK" 12 +Mask to get the value of the Phase Tag bit for Slot 0 of this I/O +completion queue. +.IP "NVME_LM_S0PT_SHIFT" 12 +Shift to get the value of the Phase Tag bit for Slot 0 of this I/O +completion queue. +.IP "NVME_LM_IOCQIV_MASK" 12 +Mask to get the Interrupt Vector (IV) for this I/O completion +queue. +.IP "NVME_LM_IOCQIV_SHIFT" 12 +Shift to get the IV for this I/O completion queue. diff --git a/doc/man/nvme_lm_track_send.2 b/doc/man/nvme_lm_track_send.2 new file mode 100644 index 0000000..c0e4ab1 --- /dev/null +++ b/doc/man/nvme_lm_track_send.2 @@ -0,0 +1,12 @@ +.TH "nvme_lm_track_send" 9 "nvme_lm_track_send" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_lm_track_send \- Track Send command +.SH SYNOPSIS +.B "int" nvme_lm_track_send +.BI "(struct nvme_lm_track_send_args *args " ");" +.SH ARGUMENTS +.IP "args" 12 +\fIstruct nvme_lm_track_send_args\fP argument structure +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise. diff --git a/doc/man/nvme_lm_track_send_fields.2 b/doc/man/nvme_lm_track_send_fields.2 new file mode 100644 index 0000000..b869eb8 --- /dev/null +++ b/doc/man/nvme_lm_track_send_fields.2 @@ -0,0 +1,73 @@ +.TH "libnvme" 9 "enum nvme_lm_track_send_fields" "March 2025" "API Manual" LINUX +.SH NAME +enum nvme_lm_track_send_fields \- Track Send command fields +.SH SYNOPSIS +enum nvme_lm_track_send_fields { +.br +.BI " NVME_LM_TRACK_SEND_MOS_SHIFT" +, +.br +.br +.BI " NVME_LM_TRACK_SEND_MOS_MASK" +, +.br +.br +.BI " NVME_LM_TRACK_SEND_SEL_SHIFT" +, +.br +.br +.BI " NVME_LM_TRACK_SEND_SEL_MASK" +, +.br +.br +.BI " NVME_LM_SEL_LOG_USER_DATA_CHANGES" +, +.br +.br +.BI " NVME_LM_SEL_TRACK_MEMORY_CHANGES" +, +.br +.br +.BI " NVME_LM_LACT_SHIFT" +, +.br +.br +.BI " NVME_LM_LACT_MASK" +, +.br +.br +.BI " NVME_LM_LACT_STOP_LOGGING" +, +.br +.br +.BI " NVME_LM_LACT_START_LOGGING" + +}; +.SH Constants +.IP "NVME_LM_TRACK_SEND_MOS_SHIFT" 12 +Shift to set Management Operation Specific (MOS) field +.IP "NVME_LM_TRACK_SEND_MOS_MASK" 12 +Mask to set MOS field +.IP "NVME_LM_TRACK_SEND_SEL_SHIFT" 12 +Shift to set Select (SEL) field +.IP "NVME_LM_TRACK_SEND_SEL_MASK" 12 +Mask to set SEL field +.IP "NVME_LM_SEL_LOG_USER_DATA_CHANGES" 12 +Log User Data Changes select option +.IP "NVME_LM_SEL_TRACK_MEMORY_CHANGES" 12 +Track Memory Changes select option +.IP "NVME_LM_LACT_SHIFT" 12 +Shift to set Logging Action (LACT) relative to MOS +.IP "NVME_LM_LACT_MASK" 12 +Mask to set LACT relative to MOS +.IP "NVME_LM_LACT_STOP_LOGGING" 12 +The controller shall stop logging user data changes to +namespaces attached to the controller associated with the +User Data Migration Queue specified in the CDQ ID. +.IP "NVME_LM_LACT_START_LOGGING" 12 +The controller shall start logging user data changes to +namespaces attached to the controller associated with the +User Data Migration Queue into that User Data Migration +Queue where those user data changes are caused by the +controller associated with that User Data Migration Queue +processing commands. diff --git a/doc/man/nvme_lockdown.2 b/doc/man/nvme_lockdown.2 index 1b2af17..c21a6d7 100644 --- a/doc/man/nvme_lockdown.2 +++ b/doc/man/nvme_lockdown.2 @@ -1,4 +1,4 @@ -.TH "nvme_lockdown" 9 "nvme_lockdown" "November 2024" "libnvme API manual" LINUX +.TH "nvme_lockdown" 9 "nvme_lockdown" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_lockdown \- Issue lockdown command .SH SYNOPSIS diff --git a/doc/man/nvme_lockdown_log.2 b/doc/man/nvme_lockdown_log.2 index 1fa31c4..13d65a3 100644 --- a/doc/man/nvme_lockdown_log.2 +++ b/doc/man/nvme_lockdown_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_lockdown_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_lockdown_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_lockdown_log \- Command and Feature Lockdown Log .SH SYNOPSIS diff --git a/doc/man/nvme_lockdown_log_contents.2 b/doc/man/nvme_lockdown_log_contents.2 index fa62e79..c2cccf9 100644 --- a/doc/man/nvme_lockdown_log_contents.2 +++ b/doc/man/nvme_lockdown_log_contents.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_lockdown_log_contents" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_lockdown_log_contents" "March 2025" "API Manual" LINUX .SH NAME enum nvme_lockdown_log_contents \- lockdown log page content attributes .SH SYNOPSIS diff --git a/doc/man/nvme_lockdown_log_scope.2 b/doc/man/nvme_lockdown_log_scope.2 index fbc4ed5..955b28d 100644 --- a/doc/man/nvme_lockdown_log_scope.2 +++ b/doc/man/nvme_lockdown_log_scope.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_lockdown_log_scope" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_lockdown_log_scope" "March 2025" "API Manual" LINUX .SH NAME enum nvme_lockdown_log_scope \- lockdown log page scope attributes .SH SYNOPSIS diff --git a/doc/man/nvme_lockdown_scope_contents.2 b/doc/man/nvme_lockdown_scope_contents.2 index c1b400e..1581085 100644 --- a/doc/man/nvme_lockdown_scope_contents.2 +++ b/doc/man/nvme_lockdown_scope_contents.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_lockdown_scope_contents" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_lockdown_scope_contents" "March 2025" "API Manual" LINUX .SH NAME enum nvme_lockdown_scope_contents \- Lockdown Log shift and mask .SH SYNOPSIS diff --git a/doc/man/nvme_log_ana_lsp.2 b/doc/man/nvme_log_ana_lsp.2 index 68f6320..c7499f8 100644 --- a/doc/man/nvme_log_ana_lsp.2 +++ b/doc/man/nvme_log_ana_lsp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_log_ana_lsp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_log_ana_lsp" "March 2025" "API Manual" LINUX .SH NAME enum nvme_log_ana_lsp \- Asymmetric Namespace Access - Return Groups Only .SH SYNOPSIS diff --git a/doc/man/nvme_log_phy_rx_eom_action.2 b/doc/man/nvme_log_phy_rx_eom_action.2 index 4d77888..959e398 100644 --- a/doc/man/nvme_log_phy_rx_eom_action.2 +++ b/doc/man/nvme_log_phy_rx_eom_action.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_log_phy_rx_eom_action" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_log_phy_rx_eom_action" "March 2025" "API Manual" LINUX .SH NAME enum nvme_log_phy_rx_eom_action \- Physical Interface Receiver Eye Opening Measurement Action .SH SYNOPSIS diff --git a/doc/man/nvme_log_phy_rx_eom_quality.2 b/doc/man/nvme_log_phy_rx_eom_quality.2 index 6d126cd..e73ec1a 100644 --- a/doc/man/nvme_log_phy_rx_eom_quality.2 +++ b/doc/man/nvme_log_phy_rx_eom_quality.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_log_phy_rx_eom_quality" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_log_phy_rx_eom_quality" "March 2025" "API Manual" LINUX .SH NAME enum nvme_log_phy_rx_eom_quality \- Physical Interface Receiver Eye Opening Measurement Quality .SH SYNOPSIS diff --git a/doc/man/nvme_lookup_ctrl.2 b/doc/man/nvme_lookup_ctrl.2 index 6a61087..6fc190f 100644 --- a/doc/man/nvme_lookup_ctrl.2 +++ b/doc/man/nvme_lookup_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_lookup_ctrl" 9 "nvme_lookup_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_lookup_ctrl" 9 "nvme_lookup_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_lookup_ctrl \- Lookup nvme_ctrl_t object .SH SYNOPSIS diff --git a/doc/man/nvme_lookup_host.2 b/doc/man/nvme_lookup_host.2 index 565ef60..4a4ae26 100644 --- a/doc/man/nvme_lookup_host.2 +++ b/doc/man/nvme_lookup_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_lookup_host" 9 "nvme_lookup_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_lookup_host" 9 "nvme_lookup_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_lookup_host \- Lookup nvme_host_t object .SH SYNOPSIS diff --git a/doc/man/nvme_lookup_key.2 b/doc/man/nvme_lookup_key.2 index 3d5858c..21f33ab 100644 --- a/doc/man/nvme_lookup_key.2 +++ b/doc/man/nvme_lookup_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_lookup_key" 9 "nvme_lookup_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_lookup_key" 9 "nvme_lookup_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_lookup_key \- Lookup key serial number .SH SYNOPSIS diff --git a/doc/man/nvme_lookup_keyring.2 b/doc/man/nvme_lookup_keyring.2 index 185edf0..c4e176b 100644 --- a/doc/man/nvme_lookup_keyring.2 +++ b/doc/man/nvme_lookup_keyring.2 @@ -1,4 +1,4 @@ -.TH "nvme_lookup_keyring" 9 "nvme_lookup_keyring" "November 2024" "libnvme API manual" LINUX +.TH "nvme_lookup_keyring" 9 "nvme_lookup_keyring" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_lookup_keyring \- Lookup keyring serial number .SH SYNOPSIS diff --git a/doc/man/nvme_lookup_subsystem.2 b/doc/man/nvme_lookup_subsystem.2 index 20993f1..fb67e80 100644 --- a/doc/man/nvme_lookup_subsystem.2 +++ b/doc/man/nvme_lookup_subsystem.2 @@ -1,4 +1,4 @@ -.TH "nvme_lookup_subsystem" 9 "nvme_lookup_subsystem" "November 2024" "libnvme API manual" LINUX +.TH "nvme_lookup_subsystem" 9 "nvme_lookup_subsystem" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_lookup_subsystem \- Lookup nvme_subsystem_t object .SH SYNOPSIS diff --git a/doc/man/nvme_media_unit_config_desc.2 b/doc/man/nvme_media_unit_config_desc.2 index 446ba69..2d364ba 100644 --- a/doc/man/nvme_media_unit_config_desc.2 +++ b/doc/man/nvme_media_unit_config_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_media_unit_config_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_media_unit_config_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_media_unit_config_desc \- Media Unit Configuration Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_media_unit_stat_desc.2 b/doc/man/nvme_media_unit_stat_desc.2 index 21621e9..5f4995e 100644 --- a/doc/man/nvme_media_unit_stat_desc.2 +++ b/doc/man/nvme_media_unit_stat_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_media_unit_stat_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_media_unit_stat_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_media_unit_stat_desc \- Media Unit Status Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_media_unit_stat_log.2 b/doc/man/nvme_media_unit_stat_log.2 index 3e6545f..6c19f9f 100644 --- a/doc/man/nvme_media_unit_stat_log.2 +++ b/doc/man/nvme_media_unit_stat_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_media_unit_stat_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_media_unit_stat_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_media_unit_stat_log \- Media Unit Status .SH SYNOPSIS diff --git a/doc/man/nvme_metadata_element_desc.2 b/doc/man/nvme_metadata_element_desc.2 index cdc158f..7184d21 100644 --- a/doc/man/nvme_metadata_element_desc.2 +++ b/doc/man/nvme_metadata_element_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_metadata_element_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_metadata_element_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_metadata_element_desc \- Metadata Element Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_mgmt_addr_desc.2 b/doc/man/nvme_mgmt_addr_desc.2 new file mode 100644 index 0000000..765c3d1 --- /dev/null +++ b/doc/man/nvme_mgmt_addr_desc.2 @@ -0,0 +1,23 @@ +.TH "libnvme" 9 "struct nvme_mgmt_addr_desc" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_mgmt_addr_desc \- Management Address Descriptor +.SH SYNOPSIS +struct nvme_mgmt_addr_desc { +.br +.BI " __u8 mat;" +.br +.BI " __u8 rsvd1[3];" +.br +.BI " __u8 madrs[508];" +.br +.BI " +}; +.br + +.SH Members +.IP "mat" 12 +Management Address Type +.IP "rsvd1" 12 +Reserved +.IP "madrs" 12 +Management Address diff --git a/doc/man/nvme_mgmt_addr_list_log.2 b/doc/man/nvme_mgmt_addr_list_log.2 new file mode 100644 index 0000000..1f616f9 --- /dev/null +++ b/doc/man/nvme_mgmt_addr_list_log.2 @@ -0,0 +1,15 @@ +.TH "libnvme" 9 "struct nvme_mgmt_addr_list_log" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_mgmt_addr_list_log \- Management Address List Log +.SH SYNOPSIS +struct nvme_mgmt_addr_list_log { +.br +.BI " struct nvme_mgmt_addr_desc mad[8];" +.br +.BI " +}; +.br + +.SH Members +.IP "mad" 12 +Management Address Descriptor diff --git a/doc/man/nvme_mi_admin_admin_passthru.2 b/doc/man/nvme_mi_admin_admin_passthru.2 index 3cce918..891cc22 100644 --- a/doc/man/nvme_mi_admin_admin_passthru.2 +++ b/doc/man/nvme_mi_admin_admin_passthru.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_admin_passthru" 9 "nvme_mi_admin_admin_passthru" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_admin_passthru" 9 "nvme_mi_admin_admin_passthru" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_admin_passthru \- Submit an nvme admin passthrough command .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_format_nvm.2 b/doc/man/nvme_mi_admin_format_nvm.2 index accae0a..400cb16 100644 --- a/doc/man/nvme_mi_admin_format_nvm.2 +++ b/doc/man/nvme_mi_admin_format_nvm.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_format_nvm" 9 "nvme_mi_admin_format_nvm" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_format_nvm" 9 "nvme_mi_admin_format_nvm" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_format_nvm \- Format NVMe namespace .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_fw_commit.2 b/doc/man/nvme_mi_admin_fw_commit.2 index dc1c7e5..4618f8a 100644 --- a/doc/man/nvme_mi_admin_fw_commit.2 +++ b/doc/man/nvme_mi_admin_fw_commit.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_fw_commit" 9 "nvme_mi_admin_fw_commit" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_fw_commit" 9 "nvme_mi_admin_fw_commit" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_fw_commit \- Commit firmware using the specified action .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_fw_download.2 b/doc/man/nvme_mi_admin_fw_download.2 index e459f46..3fa6872 100644 --- a/doc/man/nvme_mi_admin_fw_download.2 +++ b/doc/man/nvme_mi_admin_fw_download.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_fw_download" 9 "nvme_mi_admin_fw_download" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_fw_download" 9 "nvme_mi_admin_fw_download" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_fw_download \- Download part or all of a firmware image to the controller .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_ana_log_atomic.2 b/doc/man/nvme_mi_admin_get_ana_log_atomic.2 index 51ec1a7..0ff1c40 100644 --- a/doc/man/nvme_mi_admin_get_ana_log_atomic.2 +++ b/doc/man/nvme_mi_admin_get_ana_log_atomic.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_ana_log_atomic" 9 "nvme_mi_admin_get_ana_log_atomic" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_ana_log_atomic" 9 "nvme_mi_admin_get_ana_log_atomic" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_ana_log_atomic \- Retrieve Asymmetric Namespace Access log page atomically .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_nsid_log.2 b/doc/man/nvme_mi_admin_get_endgid_log.2 similarity index 65% copy from doc/man/nvme_mi_admin_get_nsid_log.2 copy to doc/man/nvme_mi_admin_get_endgid_log.2 index c4027cc..9e79ba4 100644 --- a/doc/man/nvme_mi_admin_get_nsid_log.2 +++ b/doc/man/nvme_mi_admin_get_endgid_log.2 @@ -1,12 +1,12 @@ -.TH "nvme_mi_admin_get_nsid_log" 9 "nvme_mi_admin_get_nsid_log" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_endgid_log" 9 "nvme_mi_admin_get_endgid_log" "March 2025" "libnvme API manual" LINUX .SH NAME -nvme_mi_admin_get_nsid_log \- Helper for Get Log Page functions +nvme_mi_admin_get_endgid_log \- Helper for Get Endurance Group ID Log Page functions .SH SYNOPSIS -.B "int" nvme_mi_admin_get_nsid_log +.B "int" nvme_mi_admin_get_endgid_log .BI "(nvme_mi_ctrl_t ctrl " "," .BI "bool rae " "," .BI "enum nvme_cmd_get_log_lid lid " "," -.BI "__u32 nsid " "," +.BI "__u16 endgid " "," .BI "__u32 len " "," .BI "void *log " ");" .SH ARGUMENTS @@ -16,15 +16,15 @@ Controller to query Retain Asynchronous Events .IP "lid" 12 Log identifier -.IP "nsid" 12 -Namespace ID +.IP "endgid" 12 +Endurance Group ID .IP "len" 12 length of log buffer .IP "log" 12 pointer for resulting log data .SH "DESCRIPTION" Performs a Get Log Page Admin command for a specific log ID \fIlid\fP and -namespace ID \fInsid\fP. Log data is expected to be \fIlen\fP bytes, and is stored +endurance group ID \fIendgid\fP. Log data is expected to be \fIlen\fP bytes, and is stored in \fIlog\fP on success. The \fIrae\fP flag is passed as-is to the Get Log Page command, and is specific to the Log Page requested. .SH "RETURN" diff --git a/doc/man/nvme_mi_admin_get_features_data.2 b/doc/man/nvme_mi_admin_get_features_data.2 index 135e623..9e12316 100644 --- a/doc/man/nvme_mi_admin_get_features_data.2 +++ b/doc/man/nvme_mi_admin_get_features_data.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_features_data" 9 "nvme_mi_admin_get_features_data" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_features_data" 9 "nvme_mi_admin_get_features_data" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_features_data \- Helper function for &nvme_mi_admin_get_features() .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log.2 b/doc/man/nvme_mi_admin_get_log.2 index 174e5d5..f9a3b60 100644 --- a/doc/man/nvme_mi_admin_get_log.2 +++ b/doc/man/nvme_mi_admin_get_log.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log" 9 "nvme_mi_admin_get_log" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log" 9 "nvme_mi_admin_get_log" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log \- Retrieve log page data from controller .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_ana.2 b/doc/man/nvme_mi_admin_get_log_ana.2 index be32d75..7a0c72b 100644 --- a/doc/man/nvme_mi_admin_get_log_ana.2 +++ b/doc/man/nvme_mi_admin_get_log_ana.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_ana" 9 "nvme_mi_admin_get_log_ana" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_ana" 9 "nvme_mi_admin_get_log_ana" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_ana \- Retrieve Asymmetric Namespace Access log page .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_ana_groups.2 b/doc/man/nvme_mi_admin_get_log_ana_groups.2 index d6abe99..da38e36 100644 --- a/doc/man/nvme_mi_admin_get_log_ana_groups.2 +++ b/doc/man/nvme_mi_admin_get_log_ana_groups.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_ana_groups" 9 "nvme_mi_admin_get_log_ana_groups" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_ana_groups" 9 "nvme_mi_admin_get_log_ana_groups" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_ana_groups \- Retrieve Asymmetric Namespace Access groups only log page .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_ave_discover.2 b/doc/man/nvme_mi_admin_get_log_ave_discover.2 new file mode 100644 index 0000000..1722a92 --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_ave_discover.2 @@ -0,0 +1,21 @@ +.TH "nvme_mi_admin_get_log_ave_discover" 9 "nvme_mi_admin_get_log_ave_discover" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_ave_discover \- Retrieve AVE Discovery Log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_ave_discover +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_ave_discover_log *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_mi_admin_get_log_boot_partition.2 b/doc/man/nvme_mi_admin_get_log_boot_partition.2 index d43f5c1..7bbbf58 100644 --- a/doc/man/nvme_mi_admin_get_log_boot_partition.2 +++ b/doc/man/nvme_mi_admin_get_log_boot_partition.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_boot_partition" 9 "nvme_mi_admin_get_log_boot_partition" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_boot_partition" 9 "nvme_mi_admin_get_log_boot_partition" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_boot_partition \- Retrieve Boot Partition .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_changed_alloc_ns_list.2 b/doc/man/nvme_mi_admin_get_log_changed_alloc_ns_list.2 new file mode 100644 index 0000000..a65d68a --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_changed_alloc_ns_list.2 @@ -0,0 +1,21 @@ +.TH "nvme_mi_admin_get_log_changed_alloc_ns_list" 9 "nvme_mi_admin_get_log_changed_alloc_ns_list" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_changed_alloc_ns_list \- Retrieve Changed Allocated Namespace List Log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_changed_alloc_ns_list +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_ns_list *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_mi_admin_get_log_changed_ns_list.2 b/doc/man/nvme_mi_admin_get_log_changed_ns_list.2 index 7006f40..10b0011 100644 --- a/doc/man/nvme_mi_admin_get_log_changed_ns_list.2 +++ b/doc/man/nvme_mi_admin_get_log_changed_ns_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_changed_ns_list" 9 "nvme_mi_admin_get_log_changed_ns_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_changed_ns_list" 9 "nvme_mi_admin_get_log_changed_ns_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_changed_ns_list \- Retrieve namespace changed list .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_cmd_effects.2 b/doc/man/nvme_mi_admin_get_log_cmd_effects.2 index 9718512..a590e94 100644 --- a/doc/man/nvme_mi_admin_get_log_cmd_effects.2 +++ b/doc/man/nvme_mi_admin_get_log_cmd_effects.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_cmd_effects" 9 "nvme_mi_admin_get_log_cmd_effects" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_cmd_effects" 9 "nvme_mi_admin_get_log_cmd_effects" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_cmd_effects \- Retrieve nvme command effects log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_create_telemetry_host.2 b/doc/man/nvme_mi_admin_get_log_create_telemetry_host.2 index f269d43..91acd37 100644 --- a/doc/man/nvme_mi_admin_get_log_create_telemetry_host.2 +++ b/doc/man/nvme_mi_admin_get_log_create_telemetry_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_create_telemetry_host" 9 "nvme_mi_admin_get_log_create_telemetry_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_create_telemetry_host" 9 "nvme_mi_admin_get_log_create_telemetry_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_create_telemetry_host \- Create host telemetry log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_create_telemetry_host_mcda.2 b/doc/man/nvme_mi_admin_get_log_create_telemetry_host_mcda.2 new file mode 100644 index 0000000..6240b84 --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_create_telemetry_host_mcda.2 @@ -0,0 +1,18 @@ +.TH "nvme_mi_admin_get_log_create_telemetry_host_mcda" 9 "nvme_mi_admin_get_log_create_telemetry_host_mcda" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_create_telemetry_host_mcda \- Create host telemetry log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_create_telemetry_host_mcda +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "enum nvme_telemetry_da mcda " "," +.BI "struct nvme_telemetry_log *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "mcda" 12 +Maximum Created Data Area +.IP "log" 12 +Userspace address of the log payload +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise. diff --git a/doc/man/nvme_mi_admin_get_log_device_self_test.2 b/doc/man/nvme_mi_admin_get_log_device_self_test.2 index d4706d3..9b6533f 100644 --- a/doc/man/nvme_mi_admin_get_log_device_self_test.2 +++ b/doc/man/nvme_mi_admin_get_log_device_self_test.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_device_self_test" 9 "nvme_mi_admin_get_log_device_self_test" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_device_self_test" 9 "nvme_mi_admin_get_log_device_self_test" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_device_self_test \- Retrieve the device self test log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_discovery.2 b/doc/man/nvme_mi_admin_get_log_discovery.2 index 897c462..1093905 100644 --- a/doc/man/nvme_mi_admin_get_log_discovery.2 +++ b/doc/man/nvme_mi_admin_get_log_discovery.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_discovery" 9 "nvme_mi_admin_get_log_discovery" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_discovery" 9 "nvme_mi_admin_get_log_discovery" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_discovery \- Retrieve Discovery log page .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_dispersed_ns_participating_nss.2 b/doc/man/nvme_mi_admin_get_log_dispersed_ns_participating_nss.2 new file mode 100644 index 0000000..efbe102 --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_dispersed_ns_participating_nss.2 @@ -0,0 +1,21 @@ +.TH "nvme_mi_admin_get_log_dispersed_ns_participating_nss" 9 "nvme_mi_admin_get_log_dispersed_ns_participating_nss" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_dispersed_ns_participating_nss \- Retrieve Dispersed Namespace Participating NVM Subsystems Log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_dispersed_ns_participating_nss +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "__u32 nsid " "," +.BI "__u32 len " "," +.BI "struct nvme_dispersed_ns_participating_nss_log *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "nsid" 12 +Namespace Identifier +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_mi_admin_get_log_endurance_group.2 b/doc/man/nvme_mi_admin_get_log_endurance_group.2 index b164bd9..4ff81c2 100644 --- a/doc/man/nvme_mi_admin_get_log_endurance_group.2 +++ b/doc/man/nvme_mi_admin_get_log_endurance_group.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_endurance_group" 9 "nvme_mi_admin_get_log_endurance_group" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_endurance_group" 9 "nvme_mi_admin_get_log_endurance_group" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_endurance_group \- Get Endurance Group log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_endurance_grp_evt.2 b/doc/man/nvme_mi_admin_get_log_endurance_grp_evt.2 index 554a7fc..8d49a99 100644 --- a/doc/man/nvme_mi_admin_get_log_endurance_grp_evt.2 +++ b/doc/man/nvme_mi_admin_get_log_endurance_grp_evt.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_endurance_grp_evt" 9 "nvme_mi_admin_get_log_endurance_grp_evt" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_endurance_grp_evt" 9 "nvme_mi_admin_get_log_endurance_grp_evt" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_endurance_grp_evt \- Retrieve Rotational Media Information .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_error.2 b/doc/man/nvme_mi_admin_get_log_error.2 index 3443b95..9ec4114 100644 --- a/doc/man/nvme_mi_admin_get_log_error.2 +++ b/doc/man/nvme_mi_admin_get_log_error.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_error" 9 "nvme_mi_admin_get_log_error" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_error" 9 "nvme_mi_admin_get_log_error" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_error \- Retrieve nvme error log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_fid_supported_effects.2 b/doc/man/nvme_mi_admin_get_log_fid_supported_effects.2 index adc1e80..68f6466 100644 --- a/doc/man/nvme_mi_admin_get_log_fid_supported_effects.2 +++ b/doc/man/nvme_mi_admin_get_log_fid_supported_effects.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_fid_supported_effects" 9 "nvme_mi_admin_get_log_fid_supported_effects" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_fid_supported_effects" 9 "nvme_mi_admin_get_log_fid_supported_effects" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_fid_supported_effects \- Retrieve Feature Identifiers Supported and Effects .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_fw_slot.2 b/doc/man/nvme_mi_admin_get_log_fw_slot.2 index ffe50f6..24eadc3 100644 --- a/doc/man/nvme_mi_admin_get_log_fw_slot.2 +++ b/doc/man/nvme_mi_admin_get_log_fw_slot.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_fw_slot" 9 "nvme_mi_admin_get_log_fw_slot" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_fw_slot" 9 "nvme_mi_admin_get_log_fw_slot" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_fw_slot \- Retrieves the controller firmware log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_host_discover.2 b/doc/man/nvme_mi_admin_get_log_host_discover.2 new file mode 100644 index 0000000..6ebbdc7 --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_host_discover.2 @@ -0,0 +1,24 @@ +.TH "nvme_mi_admin_get_log_host_discover" 9 "nvme_mi_admin_get_log_host_discover" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_host_discover \- Retrieve Host Discovery Log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_host_discover +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "bool allhoste " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_host_discover_log *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "allhoste" 12 +All host entries +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_mi_admin_get_log_lba_status.2 b/doc/man/nvme_mi_admin_get_log_lba_status.2 index ae54892..a70c975 100644 --- a/doc/man/nvme_mi_admin_get_log_lba_status.2 +++ b/doc/man/nvme_mi_admin_get_log_lba_status.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_lba_status" 9 "nvme_mi_admin_get_log_lba_status" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_lba_status" 9 "nvme_mi_admin_get_log_lba_status" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_lba_status \- Retrieve LBA Status .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_lockdown.2 b/doc/man/nvme_mi_admin_get_log_lockdown.2 index 6e4abb0..0ccebca 100644 --- a/doc/man/nvme_mi_admin_get_log_lockdown.2 +++ b/doc/man/nvme_mi_admin_get_log_lockdown.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_lockdown" 9 "nvme_mi_admin_get_log_lockdown" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_lockdown" 9 "nvme_mi_admin_get_log_lockdown" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_lockdown \- Retrieve lockdown Log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_media_unit_stat.2 b/doc/man/nvme_mi_admin_get_log_media_unit_stat.2 index 82631d9..7a89d10 100644 --- a/doc/man/nvme_mi_admin_get_log_media_unit_stat.2 +++ b/doc/man/nvme_mi_admin_get_log_media_unit_stat.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_media_unit_stat" 9 "nvme_mi_admin_get_log_media_unit_stat" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_media_unit_stat" 9 "nvme_mi_admin_get_log_media_unit_stat" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_media_unit_stat \- Retrieve Media Unit Status .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_mgmt_addr_list.2 b/doc/man/nvme_mi_admin_get_log_mgmt_addr_list.2 new file mode 100644 index 0000000..2b27b5d --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_mgmt_addr_list.2 @@ -0,0 +1,18 @@ +.TH "nvme_mi_admin_get_log_mgmt_addr_list" 9 "nvme_mi_admin_get_log_mgmt_addr_list" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_mgmt_addr_list \- Retrieve Management Address List Log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_mgmt_addr_list +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "__u32 len " "," +.BI "struct nvme_mgmt_addr_list_log *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_mi_admin_get_log_mi_cmd_supported_effects.2 b/doc/man/nvme_mi_admin_get_log_mi_cmd_supported_effects.2 index 2b322c0..dca2c34 100644 --- a/doc/man/nvme_mi_admin_get_log_mi_cmd_supported_effects.2 +++ b/doc/man/nvme_mi_admin_get_log_mi_cmd_supported_effects.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_mi_cmd_supported_effects" 9 "nvme_mi_admin_get_log_mi_cmd_supported_effects" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_mi_cmd_supported_effects" 9 "nvme_mi_admin_get_log_mi_cmd_supported_effects" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_mi_cmd_supported_effects \- displays the MI Commands Supported by the controller .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_page.2 b/doc/man/nvme_mi_admin_get_log_page.2 index 454f90d..d5f9df2 100644 --- a/doc/man/nvme_mi_admin_get_log_page.2 +++ b/doc/man/nvme_mi_admin_get_log_page.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_page" 9 "nvme_mi_admin_get_log_page" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_page" 9 "nvme_mi_admin_get_log_page" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_page \- Retrieve log page data from controller .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_persistent_event.2 b/doc/man/nvme_mi_admin_get_log_persistent_event.2 index 91c4e4e..0959dd4 100644 --- a/doc/man/nvme_mi_admin_get_log_persistent_event.2 +++ b/doc/man/nvme_mi_admin_get_log_persistent_event.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_persistent_event" 9 "nvme_mi_admin_get_log_persistent_event" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_persistent_event" 9 "nvme_mi_admin_get_log_persistent_event" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_persistent_event \- Retrieve Persistent Event Log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_phy_rx_eom.2 b/doc/man/nvme_mi_admin_get_log_phy_rx_eom.2 index 8b83a5a..0bf2594 100644 --- a/doc/man/nvme_mi_admin_get_log_phy_rx_eom.2 +++ b/doc/man/nvme_mi_admin_get_log_phy_rx_eom.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_phy_rx_eom" 9 "nvme_mi_admin_get_log_phy_rx_eom" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_phy_rx_eom" 9 "nvme_mi_admin_get_log_phy_rx_eom" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_phy_rx_eom \- Retrieve Physical Interface Receiver Eye Opening Measurement Log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_predictable_lat_event.2 b/doc/man/nvme_mi_admin_get_log_predictable_lat_event.2 index 9f608fa..a56ccd8 100644 --- a/doc/man/nvme_mi_admin_get_log_predictable_lat_event.2 +++ b/doc/man/nvme_mi_admin_get_log_predictable_lat_event.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_predictable_lat_event" 9 "nvme_mi_admin_get_log_predictable_lat_event" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_predictable_lat_event" 9 "nvme_mi_admin_get_log_predictable_lat_event" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_predictable_lat_event \- Retrieve Predictable Latency Event Aggregate Log Page .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_predictable_lat_nvmset.2 b/doc/man/nvme_mi_admin_get_log_predictable_lat_nvmset.2 index 1f1e32b..549b6fc 100644 --- a/doc/man/nvme_mi_admin_get_log_predictable_lat_nvmset.2 +++ b/doc/man/nvme_mi_admin_get_log_predictable_lat_nvmset.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_predictable_lat_nvmset" 9 "nvme_mi_admin_get_log_predictable_lat_nvmset" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_predictable_lat_nvmset" 9 "nvme_mi_admin_get_log_predictable_lat_nvmset" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_predictable_lat_nvmset \- Predictable Latency Per NVM Set .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_pull_model_ddc_req.2 b/doc/man/nvme_mi_admin_get_log_pull_model_ddc_req.2 new file mode 100644 index 0000000..3dd84e4 --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_pull_model_ddc_req.2 @@ -0,0 +1,21 @@ +.TH "nvme_mi_admin_get_log_pull_model_ddc_req" 9 "nvme_mi_admin_get_log_pull_model_ddc_req" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_pull_model_ddc_req \- Retrieve Pull Model DDC Request Log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_pull_model_ddc_req +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_pull_model_ddc_req_log *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_mi_admin_get_log_reachability_associations.2 b/doc/man/nvme_mi_admin_get_log_reachability_associations.2 new file mode 100644 index 0000000..fefc3a9 --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_reachability_associations.2 @@ -0,0 +1,24 @@ +.TH "nvme_mi_admin_get_log_reachability_associations" 9 "nvme_mi_admin_get_log_reachability_associations" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_reachability_associations \- Retrieve Reachability Associations Log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_reachability_associations +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "bool rao " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_reachability_associations_log *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "rao" 12 +Return associations only +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_mi_admin_get_log_reachability_groups.2 b/doc/man/nvme_mi_admin_get_log_reachability_groups.2 new file mode 100644 index 0000000..100ab55 --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_reachability_groups.2 @@ -0,0 +1,24 @@ +.TH "nvme_mi_admin_get_log_reachability_groups" 9 "nvme_mi_admin_get_log_reachability_groups" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_reachability_groups \- Retrieve Reachability Groups Log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_reachability_groups +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "bool rgo " "," +.BI "bool rae " "," +.BI "__u32 len " "," +.BI "struct nvme_reachability_groups_log *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "rgo" 12 +Return groups only +.IP "rae" 12 +Retain asynchronous events +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_mi_admin_get_log_reservation.2 b/doc/man/nvme_mi_admin_get_log_reservation.2 index 420cc5b..7f658e8 100644 --- a/doc/man/nvme_mi_admin_get_log_reservation.2 +++ b/doc/man/nvme_mi_admin_get_log_reservation.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_reservation" 9 "nvme_mi_admin_get_log_reservation" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_reservation" 9 "nvme_mi_admin_get_log_reservation" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_reservation \- Retrieve Reservation Notification .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_rotational_media_info.2 b/doc/man/nvme_mi_admin_get_log_rotational_media_info.2 new file mode 100644 index 0000000..6c183b7 --- /dev/null +++ b/doc/man/nvme_mi_admin_get_log_rotational_media_info.2 @@ -0,0 +1,21 @@ +.TH "nvme_mi_admin_get_log_rotational_media_info" 9 "nvme_mi_admin_get_log_rotational_media_info" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_admin_get_log_rotational_media_info \- Retrieve Rotational Media Information Log +.SH SYNOPSIS +.B "int" nvme_mi_admin_get_log_rotational_media_info +.BI "(nvme_mi_ctrl_t ctrl " "," +.BI "__u16 endgid " "," +.BI "__u32 len " "," +.BI "struct nvme_rotational_media_info_log *log " ");" +.SH ARGUMENTS +.IP "ctrl" 12 +Controller to query +.IP "endgid" 12 +Endurance Group Identifier +.IP "len" 12 +The allocated length of the log page +.IP "log" 12 +User address to store the log page +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise diff --git a/doc/man/nvme_mi_admin_get_log_sanitize.2 b/doc/man/nvme_mi_admin_get_log_sanitize.2 index 1d275fd..32f4f5b 100644 --- a/doc/man/nvme_mi_admin_get_log_sanitize.2 +++ b/doc/man/nvme_mi_admin_get_log_sanitize.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_sanitize" 9 "nvme_mi_admin_get_log_sanitize" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_sanitize" 9 "nvme_mi_admin_get_log_sanitize" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_sanitize \- Retrieve Sanitize Status .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_simple.2 b/doc/man/nvme_mi_admin_get_log_simple.2 index d81b794..67a1eb6 100644 --- a/doc/man/nvme_mi_admin_get_log_simple.2 +++ b/doc/man/nvme_mi_admin_get_log_simple.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_simple" 9 "nvme_mi_admin_get_log_simple" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_simple" 9 "nvme_mi_admin_get_log_simple" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_simple \- Helper for Get Log Page functions with no NSID or RAE requirements .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_smart.2 b/doc/man/nvme_mi_admin_get_log_smart.2 index 396803a..db66183 100644 --- a/doc/man/nvme_mi_admin_get_log_smart.2 +++ b/doc/man/nvme_mi_admin_get_log_smart.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_smart" 9 "nvme_mi_admin_get_log_smart" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_smart" 9 "nvme_mi_admin_get_log_smart" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_smart \- Retrieve nvme smart log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_support_cap_config_list.2 b/doc/man/nvme_mi_admin_get_log_support_cap_config_list.2 index 7b9faf0..a7e43aa 100644 --- a/doc/man/nvme_mi_admin_get_log_support_cap_config_list.2 +++ b/doc/man/nvme_mi_admin_get_log_support_cap_config_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_support_cap_config_list" 9 "nvme_mi_admin_get_log_support_cap_config_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_support_cap_config_list" 9 "nvme_mi_admin_get_log_support_cap_config_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_support_cap_config_list \- Retrieve Supported Capacity Configuration List .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_supported_log_pages.2 b/doc/man/nvme_mi_admin_get_log_supported_log_pages.2 index 9b4a77f..51b59b7 100644 --- a/doc/man/nvme_mi_admin_get_log_supported_log_pages.2 +++ b/doc/man/nvme_mi_admin_get_log_supported_log_pages.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_supported_log_pages" 9 "nvme_mi_admin_get_log_supported_log_pages" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_supported_log_pages" 9 "nvme_mi_admin_get_log_supported_log_pages" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_supported_log_pages \- Retrieve nmve supported log pages .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_telemetry_ctrl.2 b/doc/man/nvme_mi_admin_get_log_telemetry_ctrl.2 index f52bdef..4ef391d 100644 --- a/doc/man/nvme_mi_admin_get_log_telemetry_ctrl.2 +++ b/doc/man/nvme_mi_admin_get_log_telemetry_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_telemetry_ctrl" 9 "nvme_mi_admin_get_log_telemetry_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_telemetry_ctrl" 9 "nvme_mi_admin_get_log_telemetry_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_telemetry_ctrl \- Get Telemetry Controller-Initiated log page .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_telemetry_host.2 b/doc/man/nvme_mi_admin_get_log_telemetry_host.2 index b29d304..475e687 100644 --- a/doc/man/nvme_mi_admin_get_log_telemetry_host.2 +++ b/doc/man/nvme_mi_admin_get_log_telemetry_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_telemetry_host" 9 "nvme_mi_admin_get_log_telemetry_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_telemetry_host" 9 "nvme_mi_admin_get_log_telemetry_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_telemetry_host \- Get Telemetry Host-Initiated log page .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_log_zns_changed_zones.2 b/doc/man/nvme_mi_admin_get_log_zns_changed_zones.2 index 93fb71a..941c2b4 100644 --- a/doc/man/nvme_mi_admin_get_log_zns_changed_zones.2 +++ b/doc/man/nvme_mi_admin_get_log_zns_changed_zones.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_log_zns_changed_zones" 9 "nvme_mi_admin_get_log_zns_changed_zones" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_log_zns_changed_zones" 9 "nvme_mi_admin_get_log_zns_changed_zones" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_log_zns_changed_zones \- Retrieve list of zones that have changed .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_get_nsid_log.2 b/doc/man/nvme_mi_admin_get_nsid_log.2 index c4027cc..747b3af 100644 --- a/doc/man/nvme_mi_admin_get_nsid_log.2 +++ b/doc/man/nvme_mi_admin_get_nsid_log.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_get_nsid_log" 9 "nvme_mi_admin_get_nsid_log" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_get_nsid_log" 9 "nvme_mi_admin_get_nsid_log" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_get_nsid_log \- Helper for Get Log Page functions .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify.2 b/doc/man/nvme_mi_admin_identify.2 index 1e99029..4ed5f1e 100644 --- a/doc/man/nvme_mi_admin_identify.2 +++ b/doc/man/nvme_mi_admin_identify.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify" 9 "nvme_mi_admin_identify" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify" 9 "nvme_mi_admin_identify" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify \- Perform an Admin identify command. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_active_ns_list.2 b/doc/man/nvme_mi_admin_identify_active_ns_list.2 index 988c253..3abc339 100644 --- a/doc/man/nvme_mi_admin_identify_active_ns_list.2 +++ b/doc/man/nvme_mi_admin_identify_active_ns_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_active_ns_list" 9 "nvme_mi_admin_identify_active_ns_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_active_ns_list" 9 "nvme_mi_admin_identify_active_ns_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_active_ns_list \- Perform an Admin identify for an active namespace list .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_allocated_ns.2 b/doc/man/nvme_mi_admin_identify_allocated_ns.2 index 2ea5fd8..ab9ad52 100644 --- a/doc/man/nvme_mi_admin_identify_allocated_ns.2 +++ b/doc/man/nvme_mi_admin_identify_allocated_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_allocated_ns" 9 "nvme_mi_admin_identify_allocated_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_allocated_ns" 9 "nvme_mi_admin_identify_allocated_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_allocated_ns \- Perform an Admin identify command for an allocated namespace .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_allocated_ns_list.2 b/doc/man/nvme_mi_admin_identify_allocated_ns_list.2 index dc75d3b..3c1299a 100644 --- a/doc/man/nvme_mi_admin_identify_allocated_ns_list.2 +++ b/doc/man/nvme_mi_admin_identify_allocated_ns_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_allocated_ns_list" 9 "nvme_mi_admin_identify_allocated_ns_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_allocated_ns_list" 9 "nvme_mi_admin_identify_allocated_ns_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_allocated_ns_list \- Perform an Admin identify for an allocated namespace list .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_cns_nsid.2 b/doc/man/nvme_mi_admin_identify_cns_nsid.2 index 9d05bdd..7eb3129 100644 --- a/doc/man/nvme_mi_admin_identify_cns_nsid.2 +++ b/doc/man/nvme_mi_admin_identify_cns_nsid.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_cns_nsid" 9 "nvme_mi_admin_identify_cns_nsid" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_cns_nsid" 9 "nvme_mi_admin_identify_cns_nsid" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_cns_nsid \- Perform an Admin identify command using specific CNS/NSID parameters. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_ctrl.2 b/doc/man/nvme_mi_admin_identify_ctrl.2 index 703965a..176f84c 100644 --- a/doc/man/nvme_mi_admin_identify_ctrl.2 +++ b/doc/man/nvme_mi_admin_identify_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_ctrl" 9 "nvme_mi_admin_identify_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_ctrl" 9 "nvme_mi_admin_identify_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_ctrl \- Perform an Admin identify for a controller .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_ctrl_list.2 b/doc/man/nvme_mi_admin_identify_ctrl_list.2 index c8d105f..df12a16 100644 --- a/doc/man/nvme_mi_admin_identify_ctrl_list.2 +++ b/doc/man/nvme_mi_admin_identify_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_ctrl_list" 9 "nvme_mi_admin_identify_ctrl_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_ctrl_list" 9 "nvme_mi_admin_identify_ctrl_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_ctrl_list \- Perform an Admin identify for a controller list. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_ns.2 b/doc/man/nvme_mi_admin_identify_ns.2 index 2df2553..474dbec 100644 --- a/doc/man/nvme_mi_admin_identify_ns.2 +++ b/doc/man/nvme_mi_admin_identify_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_ns" 9 "nvme_mi_admin_identify_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_ns" 9 "nvme_mi_admin_identify_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_ns \- Perform an Admin identify command for a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_ns_descs.2 b/doc/man/nvme_mi_admin_identify_ns_descs.2 index 7402386..42703ea 100644 --- a/doc/man/nvme_mi_admin_identify_ns_descs.2 +++ b/doc/man/nvme_mi_admin_identify_ns_descs.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_ns_descs" 9 "nvme_mi_admin_identify_ns_descs" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_ns_descs" 9 "nvme_mi_admin_identify_ns_descs" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_ns_descs \- Perform an Admin identify Namespace Identification Descriptor list command for a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_nsid_ctrl_list.2 b/doc/man/nvme_mi_admin_identify_nsid_ctrl_list.2 index 475198f..2d07a14 100644 --- a/doc/man/nvme_mi_admin_identify_nsid_ctrl_list.2 +++ b/doc/man/nvme_mi_admin_identify_nsid_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_nsid_ctrl_list" 9 "nvme_mi_admin_identify_nsid_ctrl_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_nsid_ctrl_list" 9 "nvme_mi_admin_identify_nsid_ctrl_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_nsid_ctrl_list \- Perform an Admin identify for a controller list with specific namespace ID .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_partial.2 b/doc/man/nvme_mi_admin_identify_partial.2 index 8b7a19d..8ec86dd 100644 --- a/doc/man/nvme_mi_admin_identify_partial.2 +++ b/doc/man/nvme_mi_admin_identify_partial.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_partial" 9 "nvme_mi_admin_identify_partial" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_partial" 9 "nvme_mi_admin_identify_partial" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_partial \- Perform an Admin identify command, and retrieve partial response data. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_primary_ctrl.2 b/doc/man/nvme_mi_admin_identify_primary_ctrl.2 index e5f23bd..9c5e347 100644 --- a/doc/man/nvme_mi_admin_identify_primary_ctrl.2 +++ b/doc/man/nvme_mi_admin_identify_primary_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_primary_ctrl" 9 "nvme_mi_admin_identify_primary_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_primary_ctrl" 9 "nvme_mi_admin_identify_primary_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_primary_ctrl \- Perform an Admin identify for primary controller capabilities data structure. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_identify_secondary_ctrl_list.2 b/doc/man/nvme_mi_admin_identify_secondary_ctrl_list.2 index db8df03..175bb3a 100644 --- a/doc/man/nvme_mi_admin_identify_secondary_ctrl_list.2 +++ b/doc/man/nvme_mi_admin_identify_secondary_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_identify_secondary_ctrl_list" 9 "nvme_mi_admin_identify_secondary_ctrl_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_identify_secondary_ctrl_list" 9 "nvme_mi_admin_identify_secondary_ctrl_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_identify_secondary_ctrl_list \- Perform an Admin identify for a secondary controller list. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_ns_attach.2 b/doc/man/nvme_mi_admin_ns_attach.2 index ba9ca70..9cc9f2c 100644 --- a/doc/man/nvme_mi_admin_ns_attach.2 +++ b/doc/man/nvme_mi_admin_ns_attach.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_ns_attach" 9 "nvme_mi_admin_ns_attach" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_ns_attach" 9 "nvme_mi_admin_ns_attach" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_ns_attach \- Attach or detach namespace to controller(s) .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_ns_attach_ctrls.2 b/doc/man/nvme_mi_admin_ns_attach_ctrls.2 index 6d30893..c7ad15a 100644 --- a/doc/man/nvme_mi_admin_ns_attach_ctrls.2 +++ b/doc/man/nvme_mi_admin_ns_attach_ctrls.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_ns_attach_ctrls" 9 "nvme_mi_admin_ns_attach_ctrls" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_ns_attach_ctrls" 9 "nvme_mi_admin_ns_attach_ctrls" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_ns_attach_ctrls \- Attach namespace to controllers .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_ns_detach_ctrls.2 b/doc/man/nvme_mi_admin_ns_detach_ctrls.2 index c941ef4..076fd28 100644 --- a/doc/man/nvme_mi_admin_ns_detach_ctrls.2 +++ b/doc/man/nvme_mi_admin_ns_detach_ctrls.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_ns_detach_ctrls" 9 "nvme_mi_admin_ns_detach_ctrls" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_ns_detach_ctrls" 9 "nvme_mi_admin_ns_detach_ctrls" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_ns_detach_ctrls \- Detach namespace from controllers .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_req_hdr.2 b/doc/man/nvme_mi_admin_req_hdr.2 index b8b907a..5e41884 100644 --- a/doc/man/nvme_mi_admin_req_hdr.2 +++ b/doc/man/nvme_mi_admin_req_hdr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_admin_req_hdr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_admin_req_hdr" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_admin_req_hdr \- Admin command request header. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_resp_hdr.2 b/doc/man/nvme_mi_admin_resp_hdr.2 index d9bab90..187670b 100644 --- a/doc/man/nvme_mi_admin_resp_hdr.2 +++ b/doc/man/nvme_mi_admin_resp_hdr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_admin_resp_hdr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_admin_resp_hdr" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_admin_resp_hdr \- Admin command response header. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_sanitize_nvm.2 b/doc/man/nvme_mi_admin_sanitize_nvm.2 index ece2dc7..bb5232a 100644 --- a/doc/man/nvme_mi_admin_sanitize_nvm.2 +++ b/doc/man/nvme_mi_admin_sanitize_nvm.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_sanitize_nvm" 9 "nvme_mi_admin_sanitize_nvm" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_sanitize_nvm" 9 "nvme_mi_admin_sanitize_nvm" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_sanitize_nvm \- Start a subsystem Sanitize operation .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_security_recv.2 b/doc/man/nvme_mi_admin_security_recv.2 index 8daf1a7..553dbb6 100644 --- a/doc/man/nvme_mi_admin_security_recv.2 +++ b/doc/man/nvme_mi_admin_security_recv.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_security_recv" 9 "nvme_mi_admin_security_recv" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_security_recv" 9 "nvme_mi_admin_security_recv" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_security_recv \- Perform a Security Receive command on a controller. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_security_send.2 b/doc/man/nvme_mi_admin_security_send.2 index 0e87b00..ed6eb99 100644 --- a/doc/man/nvme_mi_admin_security_send.2 +++ b/doc/man/nvme_mi_admin_security_send.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_security_send" 9 "nvme_mi_admin_security_send" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_security_send" 9 "nvme_mi_admin_security_send" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_security_send \- Perform a Security Send command on a controller. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_admin_xfer.2 b/doc/man/nvme_mi_admin_xfer.2 index fbb9f52..d9fb382 100644 --- a/doc/man/nvme_mi_admin_xfer.2 +++ b/doc/man/nvme_mi_admin_xfer.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_admin_xfer" 9 "nvme_mi_admin_xfer" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_admin_xfer" 9 "nvme_mi_admin_xfer" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_admin_xfer \- Raw admin transfer interface. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_ccs.2 b/doc/man/nvme_mi_ccs.2 index faf98c6..bfa5bee 100644 --- a/doc/man/nvme_mi_ccs.2 +++ b/doc/man/nvme_mi_ccs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_ccs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_ccs" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_ccs \- Get State Control Primitive Success Response Fields - Control Primitive Specific Response .SH SYNOPSIS diff --git a/doc/man/nvme_mi_close.2 b/doc/man/nvme_mi_close.2 index 4484204..fae9416 100644 --- a/doc/man/nvme_mi_close.2 +++ b/doc/man/nvme_mi_close.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_close" 9 "nvme_mi_close" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_close" 9 "nvme_mi_close" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_close \- Close an endpoint connection and release resources, including controller objects. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_close_ctrl.2 b/doc/man/nvme_mi_close_ctrl.2 index 826ceff..f6a6552 100644 --- a/doc/man/nvme_mi_close_ctrl.2 +++ b/doc/man/nvme_mi_close_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_close_ctrl" 9 "nvme_mi_close_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_close_ctrl" 9 "nvme_mi_close_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_close_ctrl \- free a controller .SH SYNOPSIS diff --git a/doc/man/nvme_mi_cmd_supported_effects.2 b/doc/man/nvme_mi_cmd_supported_effects.2 index f6093ec..c4a9e53 100644 --- a/doc/man/nvme_mi_cmd_supported_effects.2 +++ b/doc/man/nvme_mi_cmd_supported_effects.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_cmd_supported_effects" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_cmd_supported_effects" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_cmd_supported_effects \- MI Command Supported and Effects Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_mi_cmd_supported_effects_log.2 b/doc/man/nvme_mi_cmd_supported_effects_log.2 index f012bba..80321f2 100644 --- a/doc/man/nvme_mi_cmd_supported_effects_log.2 +++ b/doc/man/nvme_mi_cmd_supported_effects_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_cmd_supported_effects_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_cmd_supported_effects_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_cmd_supported_effects_log \- NVMe-MI Commands Supported and Effects Log .SH SYNOPSIS diff --git a/doc/man/nvme_mi_config_id.2 b/doc/man/nvme_mi_config_id.2 index 60e1668..338e9fc 100644 --- a/doc/man/nvme_mi_config_id.2 +++ b/doc/man/nvme_mi_config_id.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_config_id" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_config_id" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_config_id \- NVMe-MI Configuration identifier. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_config_smbus_freq.2 b/doc/man/nvme_mi_config_smbus_freq.2 index c34c987..7016b1c 100644 --- a/doc/man/nvme_mi_config_smbus_freq.2 +++ b/doc/man/nvme_mi_config_smbus_freq.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_config_smbus_freq" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_config_smbus_freq" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_config_smbus_freq \- SMBus/I2C frequency values .SH SYNOPSIS diff --git a/doc/man/nvme_mi_control.2 b/doc/man/nvme_mi_control.2 index 0ba1cbc..77fa1d6 100644 --- a/doc/man/nvme_mi_control.2 +++ b/doc/man/nvme_mi_control.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_control" 9 "nvme_mi_control" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_control" 9 "nvme_mi_control" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_control \- Perform a Control Primitive command .SH SYNOPSIS diff --git a/doc/man/nvme_mi_control_opcode.2 b/doc/man/nvme_mi_control_opcode.2 index b04422c..9f9f029 100644 --- a/doc/man/nvme_mi_control_opcode.2 +++ b/doc/man/nvme_mi_control_opcode.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_control_opcode" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_control_opcode" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_control_opcode \- Operation code for Control Primitives. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_control_req.2 b/doc/man/nvme_mi_control_req.2 index 50372c3..46ed28d 100644 --- a/doc/man/nvme_mi_control_req.2 +++ b/doc/man/nvme_mi_control_req.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_control_req" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_control_req" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_control_req \- The Control Primitive request. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_create_root.2 b/doc/man/nvme_mi_create_root.2 index ac0e66f..5b4f541 100644 --- a/doc/man/nvme_mi_create_root.2 +++ b/doc/man/nvme_mi_create_root.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_create_root" 9 "nvme_mi_create_root" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_create_root" 9 "nvme_mi_create_root" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_create_root \- Create top-level MI (root) handle. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_csts.2 b/doc/man/nvme_mi_csts.2 index 7c4820c..258c204 100644 --- a/doc/man/nvme_mi_csts.2 +++ b/doc/man/nvme_mi_csts.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_csts" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_csts" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_csts \- Controller Health Data Structure (CHDS) - Controller Status (CSTS) .SH SYNOPSIS diff --git a/doc/man/nvme_mi_ctrl_health_status.2 b/doc/man/nvme_mi_ctrl_health_status.2 index a08528d..d4b4adc 100644 --- a/doc/man/nvme_mi_ctrl_health_status.2 +++ b/doc/man/nvme_mi_ctrl_health_status.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_ctrl_health_status" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_ctrl_health_status" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_ctrl_health_status \- Controller Health Data Structure (CHDS) .SH SYNOPSIS diff --git a/doc/man/nvme_mi_ctrl_id.2 b/doc/man/nvme_mi_ctrl_id.2 index 720227a..50c0457 100644 --- a/doc/man/nvme_mi_ctrl_id.2 +++ b/doc/man/nvme_mi_ctrl_id.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_ctrl_id" 9 "nvme_mi_ctrl_id" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_ctrl_id" 9 "nvme_mi_ctrl_id" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_ctrl_id \- get the ID of a controller .SH SYNOPSIS diff --git a/doc/man/nvme_mi_cwarn.2 b/doc/man/nvme_mi_cwarn.2 index dcf5197..9bcaf2e 100644 --- a/doc/man/nvme_mi_cwarn.2 +++ b/doc/man/nvme_mi_cwarn.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_cwarn" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_cwarn" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_cwarn \- Controller Health Data Structure (CHDS) - Critical Warning (CWARN) .SH SYNOPSIS diff --git a/doc/man/nvme_mi_dtyp.2 b/doc/man/nvme_mi_dtyp.2 index 08a49bf..547785b 100644 --- a/doc/man/nvme_mi_dtyp.2 +++ b/doc/man/nvme_mi_dtyp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_dtyp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_dtyp" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_dtyp \- Data Structure Type field. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_elem.2 b/doc/man/nvme_mi_elem.2 index d8da364..4b3c59c 100644 --- a/doc/man/nvme_mi_elem.2 +++ b/doc/man/nvme_mi_elem.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_elem" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_elem" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_elem \- Element Descriptor Types .SH SYNOPSIS diff --git a/doc/man/nvme_mi_free_root.2 b/doc/man/nvme_mi_free_root.2 index 10bf8ed..64f2762 100644 --- a/doc/man/nvme_mi_free_root.2 +++ b/doc/man/nvme_mi_free_root.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_free_root" 9 "nvme_mi_free_root" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_free_root" 9 "nvme_mi_free_root" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_free_root \- Free root object. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_init_ctrl.2 b/doc/man/nvme_mi_init_ctrl.2 index 8d67ecc..19b7a36 100644 --- a/doc/man/nvme_mi_init_ctrl.2 +++ b/doc/man/nvme_mi_init_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_init_ctrl" 9 "nvme_mi_init_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_init_ctrl" 9 "nvme_mi_init_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_init_ctrl \- initialise a NVMe controller. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_message_type.2 b/doc/man/nvme_mi_message_type.2 index 99fa71a..0754c56 100644 --- a/doc/man/nvme_mi_message_type.2 +++ b/doc/man/nvme_mi_message_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_message_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_message_type" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_message_type \- NVMe-MI message type field. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_mi_opcode.2 b/doc/man/nvme_mi_mi_opcode.2 index c4ee748..a526127 100644 --- a/doc/man/nvme_mi_mi_opcode.2 +++ b/doc/man/nvme_mi_mi_opcode.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_mi_opcode" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_mi_opcode" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_mi_opcode \- Operation code for supported NVMe-MI commands. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_mi_read_mi_data_ctrl.2 b/doc/man/nvme_mi_mi_read_mi_data_ctrl.2 index 80c3c20..1275f9e 100644 --- a/doc/man/nvme_mi_mi_read_mi_data_ctrl.2 +++ b/doc/man/nvme_mi_mi_read_mi_data_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_mi_read_mi_data_ctrl" 9 "nvme_mi_mi_read_mi_data_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_mi_read_mi_data_ctrl" 9 "nvme_mi_mi_read_mi_data_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_mi_read_mi_data_ctrl \- Perform a Read MI Data Structure command, retrieving controller information .SH SYNOPSIS diff --git a/doc/man/nvme_mi_mi_read_mi_data_ctrl_list.2 b/doc/man/nvme_mi_mi_read_mi_data_ctrl_list.2 index ae9b072..a84a98b 100644 --- a/doc/man/nvme_mi_mi_read_mi_data_ctrl_list.2 +++ b/doc/man/nvme_mi_mi_read_mi_data_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_mi_read_mi_data_ctrl_list" 9 "nvme_mi_mi_read_mi_data_ctrl_list" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_mi_read_mi_data_ctrl_list" 9 "nvme_mi_mi_read_mi_data_ctrl_list" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_mi_read_mi_data_ctrl_list \- Perform a Read MI Data Structure command, retrieving the list of attached controllers. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_mi_read_mi_data_port.2 b/doc/man/nvme_mi_mi_read_mi_data_port.2 index b9393f7..3420201 100644 --- a/doc/man/nvme_mi_mi_read_mi_data_port.2 +++ b/doc/man/nvme_mi_mi_read_mi_data_port.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_mi_read_mi_data_port" 9 "nvme_mi_mi_read_mi_data_port" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_mi_read_mi_data_port" 9 "nvme_mi_mi_read_mi_data_port" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_mi_read_mi_data_port \- Perform a Read MI Data Structure command, retrieving port data. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_mi_read_mi_data_subsys.2 b/doc/man/nvme_mi_mi_read_mi_data_subsys.2 index ce0e6cd..7624a45 100644 --- a/doc/man/nvme_mi_mi_read_mi_data_subsys.2 +++ b/doc/man/nvme_mi_mi_read_mi_data_subsys.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_mi_read_mi_data_subsys" 9 "nvme_mi_mi_read_mi_data_subsys" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_mi_read_mi_data_subsys" 9 "nvme_mi_mi_read_mi_data_subsys" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_mi_read_mi_data_subsys \- Perform a Read MI Data Structure command, retrieving subsystem data. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_mi_req_hdr.2 b/doc/man/nvme_mi_mi_req_hdr.2 index a4a7845..9b459dd 100644 --- a/doc/man/nvme_mi_mi_req_hdr.2 +++ b/doc/man/nvme_mi_mi_req_hdr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_mi_req_hdr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_mi_req_hdr" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_mi_req_hdr \- MI request message header. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_mi_resp_hdr.2 b/doc/man/nvme_mi_mi_resp_hdr.2 index 10b6385..6917f42 100644 --- a/doc/man/nvme_mi_mi_resp_hdr.2 +++ b/doc/man/nvme_mi_mi_resp_hdr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_mi_resp_hdr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_mi_resp_hdr" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_mi_resp_hdr \- MI response message header. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_mi_subsystem_health_status_poll.2 b/doc/man/nvme_mi_mi_subsystem_health_status_poll.2 index 6f9dbcd..e539128 100644 --- a/doc/man/nvme_mi_mi_subsystem_health_status_poll.2 +++ b/doc/man/nvme_mi_mi_subsystem_health_status_poll.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_mi_subsystem_health_status_poll" 9 "nvme_mi_mi_subsystem_health_status_poll" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_mi_subsystem_health_status_poll" 9 "nvme_mi_mi_subsystem_health_status_poll" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_mi_subsystem_health_status_poll \- Read the Subsystem Health Data Structure from the NVM subsystem .SH SYNOPSIS diff --git a/doc/man/nvme_mi_mi_xfer.2 b/doc/man/nvme_mi_mi_xfer.2 new file mode 100644 index 0000000..903ba96 --- /dev/null +++ b/doc/man/nvme_mi_mi_xfer.2 @@ -0,0 +1,37 @@ +.TH "nvme_mi_mi_xfer" 9 "nvme_mi_mi_xfer" "March 2025" "libnvme API manual" LINUX +.SH NAME +nvme_mi_mi_xfer \- Raw mi transfer interface. +.SH SYNOPSIS +.B "int" nvme_mi_mi_xfer +.BI "(nvme_mi_ep_t ep " "," +.BI "struct nvme_mi_mi_req_hdr *mi_req " "," +.BI "size_t req_data_size " "," +.BI "struct nvme_mi_mi_resp_hdr *mi_resp " "," +.BI "size_t *resp_data_size " ");" +.SH ARGUMENTS +.IP "ep" 12 +endpoint to send the MI command to +.IP "mi_req" 12 +request data +.IP "req_data_size" 12 +size of request data payload +.IP "mi_resp" 12 +buffer for response data +.IP "resp_data_size" 12 +size of response data buffer, updated to received size +.SH "DESCRIPTION" +Performs an arbitrary NVMe MI command, using the provided request data, +in \fImi_req\fP. The size of the request data *payload* is specified in +\fIreq_data_size\fP - this does not include the standard header length (so a +header-only request would have a size of 0). Note that the Management +Request Doublewords are considered part of the header data. + +On success, response data is stored in \fImi_resp\fP, which has an optional +appended payload buffer of \fIresp_data_size\fP bytes. The actual payload +size transferred will be stored in \fIresp_data_size\fP. This size does not +include the MI response header, so 0 represents no payload. + +See: \fIstruct nvme_mi_mi_req_hdr\fP and \fIstruct nvme_mi_mi_resp_hdr\fP. +.SH "RETURN" +The nvme command status if a response was received (see +\fIenum nvme_status_field\fP) or -1 with errno set otherwise.. diff --git a/doc/man/nvme_mi_msg_hdr.2 b/doc/man/nvme_mi_msg_hdr.2 index 038340d..ec18259 100644 --- a/doc/man/nvme_mi_msg_hdr.2 +++ b/doc/man/nvme_mi_msg_hdr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_msg_hdr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_msg_hdr" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_msg_hdr \- General MI message header. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_msg_resp.2 b/doc/man/nvme_mi_msg_resp.2 index 853f5ff..0a0c63e 100644 --- a/doc/man/nvme_mi_msg_resp.2 +++ b/doc/man/nvme_mi_msg_resp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_msg_resp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_msg_resp" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_msg_resp \- Generic response type. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_nvm_ss_health_status.2 b/doc/man/nvme_mi_nvm_ss_health_status.2 index 11ca6d1..b6746ae 100644 --- a/doc/man/nvme_mi_nvm_ss_health_status.2 +++ b/doc/man/nvme_mi_nvm_ss_health_status.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_nvm_ss_health_status" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_nvm_ss_health_status" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_nvm_ss_health_status \- Subsystem Management Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_mi_open_mctp.2 b/doc/man/nvme_mi_open_mctp.2 index 2bc0f09..b503371 100644 --- a/doc/man/nvme_mi_open_mctp.2 +++ b/doc/man/nvme_mi_open_mctp.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_open_mctp" 9 "nvme_mi_open_mctp" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_open_mctp" 9 "nvme_mi_open_mctp" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_open_mctp \- Create an endpoint using a MCTP connection. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_osc.2 b/doc/man/nvme_mi_osc.2 index 52abd64..b18cfc1 100644 --- a/doc/man/nvme_mi_osc.2 +++ b/doc/man/nvme_mi_osc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_osc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_osc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_osc \- Optionally Supported Command Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_mi_port_pcie.2 b/doc/man/nvme_mi_port_pcie.2 index 7fe9751..c5314f5 100644 --- a/doc/man/nvme_mi_port_pcie.2 +++ b/doc/man/nvme_mi_port_pcie.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_port_pcie" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_port_pcie" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_port_pcie \- PCIe Port Specific Data .SH SYNOPSIS diff --git a/doc/man/nvme_mi_port_smb.2 b/doc/man/nvme_mi_port_smb.2 index afc5c12..212791a 100644 --- a/doc/man/nvme_mi_port_smb.2 +++ b/doc/man/nvme_mi_port_smb.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_port_smb" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_port_smb" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_port_smb \- SMBus Port Specific Data .SH SYNOPSIS diff --git a/doc/man/nvme_mi_read_ctrl_info.2 b/doc/man/nvme_mi_read_ctrl_info.2 index 4889827..ecaf03b 100644 --- a/doc/man/nvme_mi_read_ctrl_info.2 +++ b/doc/man/nvme_mi_read_ctrl_info.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_read_ctrl_info" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_read_ctrl_info" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_read_ctrl_info \- Controller Information Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_mi_read_nvm_ss_info.2 b/doc/man/nvme_mi_read_nvm_ss_info.2 index 5bbf691..ce8a6e5 100644 --- a/doc/man/nvme_mi_read_nvm_ss_info.2 +++ b/doc/man/nvme_mi_read_nvm_ss_info.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_read_nvm_ss_info" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_read_nvm_ss_info" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_read_nvm_ss_info \- NVM Subsystem Information Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_mi_read_port_info.2 b/doc/man/nvme_mi_read_port_info.2 index 972a14a..9755ac8 100644 --- a/doc/man/nvme_mi_read_port_info.2 +++ b/doc/man/nvme_mi_read_port_info.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_read_port_info" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_read_port_info" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_read_port_info \- Port Information Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_mi_read_sc_list.2 b/doc/man/nvme_mi_read_sc_list.2 index a46e284..e9d3dbf 100644 --- a/doc/man/nvme_mi_read_sc_list.2 +++ b/doc/man/nvme_mi_read_sc_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_read_sc_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_read_sc_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_read_sc_list \- Management Endpoint Buffer Supported Command List Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_mi_resp_status.2 b/doc/man/nvme_mi_resp_status.2 index 7b0d6b6..066e7bf 100644 --- a/doc/man/nvme_mi_resp_status.2 +++ b/doc/man/nvme_mi_resp_status.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_mi_resp_status" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_mi_resp_status" "March 2025" "API Manual" LINUX .SH NAME enum nvme_mi_resp_status \- values for the response status field .SH SYNOPSIS diff --git a/doc/man/nvme_mi_set_probe_enabled.2 b/doc/man/nvme_mi_set_probe_enabled.2 index b4165ed..c1623bb 100644 --- a/doc/man/nvme_mi_set_probe_enabled.2 +++ b/doc/man/nvme_mi_set_probe_enabled.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_set_probe_enabled" 9 "nvme_mi_set_probe_enabled" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_set_probe_enabled" 9 "nvme_mi_set_probe_enabled" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_set_probe_enabled \- enable/disable the probe for new endpoints .SH SYNOPSIS diff --git a/doc/man/nvme_mi_status_to_string.2 b/doc/man/nvme_mi_status_to_string.2 index 995d586..4fd928d 100644 --- a/doc/man/nvme_mi_status_to_string.2 +++ b/doc/man/nvme_mi_status_to_string.2 @@ -1,4 +1,4 @@ -.TH "nvme_mi_status_to_string" 9 "nvme_mi_status_to_string" "November 2024" "libnvme API manual" LINUX +.TH "nvme_mi_status_to_string" 9 "nvme_mi_status_to_string" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_mi_status_to_string \- return a string representation of the MI status. .SH SYNOPSIS diff --git a/doc/man/nvme_mi_vpd_hdr.2 b/doc/man/nvme_mi_vpd_hdr.2 index d6e091e..b749e45 100644 --- a/doc/man/nvme_mi_vpd_hdr.2 +++ b/doc/man/nvme_mi_vpd_hdr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_vpd_hdr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_vpd_hdr" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_vpd_hdr \- Vital Product Data Common Header .SH SYNOPSIS diff --git a/doc/man/nvme_mi_vpd_mr_common.2 b/doc/man/nvme_mi_vpd_mr_common.2 index f63365a..dec432a 100644 --- a/doc/man/nvme_mi_vpd_mr_common.2 +++ b/doc/man/nvme_mi_vpd_mr_common.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_vpd_mr_common" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_vpd_mr_common" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_vpd_mr_common \- NVMe MultiRecord Area .SH SYNOPSIS diff --git a/doc/man/nvme_mi_vpd_mra.2 b/doc/man/nvme_mi_vpd_mra.2 index a882e19..779dfcf 100644 --- a/doc/man/nvme_mi_vpd_mra.2 +++ b/doc/man/nvme_mi_vpd_mra.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_vpd_mra" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_vpd_mra" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_vpd_mra \- NVMe MultiRecord Area .SH SYNOPSIS diff --git a/doc/man/nvme_mi_vpd_ppmra.2 b/doc/man/nvme_mi_vpd_ppmra.2 index 76c18f6..977da53 100644 --- a/doc/man/nvme_mi_vpd_ppmra.2 +++ b/doc/man/nvme_mi_vpd_ppmra.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_vpd_ppmra" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_vpd_ppmra" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_vpd_ppmra \- NVMe PCIe Port MultiRecord Area .SH SYNOPSIS diff --git a/doc/man/nvme_mi_vpd_telem.2 b/doc/man/nvme_mi_vpd_telem.2 index d3cc245..f9efd67 100644 --- a/doc/man/nvme_mi_vpd_telem.2 +++ b/doc/man/nvme_mi_vpd_telem.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_vpd_telem" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_vpd_telem" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_vpd_telem \- Vital Product Data Element Descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_mi_vpd_tra.2 b/doc/man/nvme_mi_vpd_tra.2 index f54b248..09160f5 100644 --- a/doc/man/nvme_mi_vpd_tra.2 +++ b/doc/man/nvme_mi_vpd_tra.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_mi_vpd_tra" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_mi_vpd_tra" "March 2025" "API Manual" LINUX .SH NAME struct nvme_mi_vpd_tra \- Vital Product Data Topology MultiRecord .SH SYNOPSIS diff --git a/doc/man/nvme_namespace_attach_ctrls.2 b/doc/man/nvme_namespace_attach_ctrls.2 index 70a192f..be81e3b 100644 --- a/doc/man/nvme_namespace_attach_ctrls.2 +++ b/doc/man/nvme_namespace_attach_ctrls.2 @@ -1,4 +1,4 @@ -.TH "nvme_namespace_attach_ctrls" 9 "nvme_namespace_attach_ctrls" "November 2024" "libnvme API manual" LINUX +.TH "nvme_namespace_attach_ctrls" 9 "nvme_namespace_attach_ctrls" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_namespace_attach_ctrls \- Attach namespace to controller(s) .SH SYNOPSIS diff --git a/doc/man/nvme_namespace_detach_ctrls.2 b/doc/man/nvme_namespace_detach_ctrls.2 index 3dd59c9..2547377 100644 --- a/doc/man/nvme_namespace_detach_ctrls.2 +++ b/doc/man/nvme_namespace_detach_ctrls.2 @@ -1,4 +1,4 @@ -.TH "nvme_namespace_detach_ctrls" 9 "nvme_namespace_detach_ctrls" "November 2024" "libnvme API manual" LINUX +.TH "nvme_namespace_detach_ctrls" 9 "nvme_namespace_detach_ctrls" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_namespace_detach_ctrls \- Detach namespace from controller(s) .SH SYNOPSIS diff --git a/doc/man/nvme_namespace_filter.2 b/doc/man/nvme_namespace_filter.2 index 64ce6be..018e799 100644 --- a/doc/man/nvme_namespace_filter.2 +++ b/doc/man/nvme_namespace_filter.2 @@ -1,4 +1,4 @@ -.TH "nvme_namespace_filter" 9 "nvme_namespace_filter" "November 2024" "libnvme API manual" LINUX +.TH "nvme_namespace_filter" 9 "nvme_namespace_filter" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_namespace_filter \- Filter for namespaces .SH SYNOPSIS diff --git a/doc/man/nvme_namespace_first_path.2 b/doc/man/nvme_namespace_first_path.2 index 7efaa73..dade850 100644 --- a/doc/man/nvme_namespace_first_path.2 +++ b/doc/man/nvme_namespace_first_path.2 @@ -1,4 +1,4 @@ -.TH "nvme_namespace_first_path" 9 "nvme_namespace_first_path" "November 2024" "libnvme API manual" LINUX +.TH "nvme_namespace_first_path" 9 "nvme_namespace_first_path" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_namespace_first_path \- Start path iterator .SH SYNOPSIS diff --git a/doc/man/nvme_namespace_for_each_path.2 b/doc/man/nvme_namespace_for_each_path.2 index cea88d1..3c90cc4 100644 --- a/doc/man/nvme_namespace_for_each_path.2 +++ b/doc/man/nvme_namespace_for_each_path.2 @@ -1,4 +1,4 @@ -.TH "nvme_namespace_for_each_path" 9 "nvme_namespace_for_each_path" "November 2024" "libnvme API manual" LINUX +.TH "nvme_namespace_for_each_path" 9 "nvme_namespace_for_each_path" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_namespace_for_each_path \- Traverse paths .SH SYNOPSIS diff --git a/doc/man/nvme_namespace_for_each_path_safe.2 b/doc/man/nvme_namespace_for_each_path_safe.2 index 7c39ca5..4101070 100644 --- a/doc/man/nvme_namespace_for_each_path_safe.2 +++ b/doc/man/nvme_namespace_for_each_path_safe.2 @@ -1,4 +1,4 @@ -.TH "nvme_namespace_for_each_path_safe" 9 "nvme_namespace_for_each_path_safe" "November 2024" "libnvme API manual" LINUX +.TH "nvme_namespace_for_each_path_safe" 9 "nvme_namespace_for_each_path_safe" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_namespace_for_each_path_safe \- Traverse paths .SH SYNOPSIS diff --git a/doc/man/nvme_namespace_next_path.2 b/doc/man/nvme_namespace_next_path.2 index 3a1b626..776d621 100644 --- a/doc/man/nvme_namespace_next_path.2 +++ b/doc/man/nvme_namespace_next_path.2 @@ -1,4 +1,4 @@ -.TH "nvme_namespace_next_path" 9 "nvme_namespace_next_path" "November 2024" "libnvme API manual" LINUX +.TH "nvme_namespace_next_path" 9 "nvme_namespace_next_path" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_namespace_next_path \- Next path iterator .SH SYNOPSIS diff --git a/doc/man/nvme_nbft_free.2 b/doc/man/nvme_nbft_free.2 index bad5f65..4ce8c8a 100644 --- a/doc/man/nvme_nbft_free.2 +++ b/doc/man/nvme_nbft_free.2 @@ -1,4 +1,4 @@ -.TH "nvme_nbft_free" 9 "nvme_nbft_free" "November 2024" "libnvme API manual" LINUX +.TH "nvme_nbft_free" 9 "nvme_nbft_free" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_nbft_free \- Free the struct nbft_info and its contents .SH SYNOPSIS diff --git a/doc/man/nvme_nbft_read.2 b/doc/man/nvme_nbft_read.2 index df69263..eb4c635 100644 --- a/doc/man/nvme_nbft_read.2 +++ b/doc/man/nvme_nbft_read.2 @@ -1,4 +1,4 @@ -.TH "nvme_nbft_read" 9 "nvme_nbft_read" "November 2024" "libnvme API manual" LINUX +.TH "nvme_nbft_read" 9 "nvme_nbft_read" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_nbft_read \- Read and parse contents of an ACPI NBFT table .SH SYNOPSIS diff --git a/doc/man/nvme_nd_ns_fpi.2 b/doc/man/nvme_nd_ns_fpi.2 index cb6cf70..6426fbb 100644 --- a/doc/man/nvme_nd_ns_fpi.2 +++ b/doc/man/nvme_nd_ns_fpi.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_nd_ns_fpi" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_nd_ns_fpi" "March 2025" "API Manual" LINUX .SH NAME enum nvme_nd_ns_fpi \- If a format operation is in progress, this field indicates the percentage of the namespace that remains to be formatted. .SH SYNOPSIS diff --git a/doc/man/nvme_next_host.2 b/doc/man/nvme_next_host.2 index 3f8f88f..3e13b6f 100644 --- a/doc/man/nvme_next_host.2 +++ b/doc/man/nvme_next_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_next_host" 9 "nvme_next_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_next_host" 9 "nvme_next_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_next_host \- Next host iterator .SH SYNOPSIS diff --git a/doc/man/nvme_next_subsystem.2 b/doc/man/nvme_next_subsystem.2 index d7fe1ac..1321098 100644 --- a/doc/man/nvme_next_subsystem.2 +++ b/doc/man/nvme_next_subsystem.2 @@ -1,4 +1,4 @@ -.TH "nvme_next_subsystem" 9 "nvme_next_subsystem" "November 2024" "libnvme API manual" LINUX +.TH "nvme_next_subsystem" 9 "nvme_next_subsystem" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_next_subsystem \- Next subsystem iterator .SH SYNOPSIS diff --git a/doc/man/nvme_ns_attach.2 b/doc/man/nvme_ns_attach.2 index 8b4fb1b..d1f96c8 100644 --- a/doc/man/nvme_ns_attach.2 +++ b/doc/man/nvme_ns_attach.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_attach" 9 "nvme_ns_attach" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_attach" 9 "nvme_ns_attach" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_attach \- Attach or detach namespace to controller(s) .SH SYNOPSIS diff --git a/doc/man/nvme_ns_attach_ctrls.2 b/doc/man/nvme_ns_attach_ctrls.2 index da752df..093e186 100644 --- a/doc/man/nvme_ns_attach_ctrls.2 +++ b/doc/man/nvme_ns_attach_ctrls.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_attach_ctrls" 9 "nvme_ns_attach_ctrls" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_attach_ctrls" 9 "nvme_ns_attach_ctrls" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_attach_ctrls \- Attach namespace to controllers .SH SYNOPSIS diff --git a/doc/man/nvme_ns_attach_sel.2 b/doc/man/nvme_ns_attach_sel.2 index c86145b..75c8362 100644 --- a/doc/man/nvme_ns_attach_sel.2 +++ b/doc/man/nvme_ns_attach_sel.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ns_attach_sel" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ns_attach_sel" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ns_attach_sel \- Namespace Attachment - Select .SH SYNOPSIS diff --git a/doc/man/nvme_ns_compare.2 b/doc/man/nvme_ns_compare.2 index e48706d..3235c1d 100644 --- a/doc/man/nvme_ns_compare.2 +++ b/doc/man/nvme_ns_compare.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_compare" 9 "nvme_ns_compare" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_compare" 9 "nvme_ns_compare" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_compare \- Compare data on a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_detach_ctrls.2 b/doc/man/nvme_ns_detach_ctrls.2 index 1e7fc17..bf17aec 100644 --- a/doc/man/nvme_ns_detach_ctrls.2 +++ b/doc/man/nvme_ns_detach_ctrls.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_detach_ctrls" 9 "nvme_ns_detach_ctrls" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_detach_ctrls" 9 "nvme_ns_detach_ctrls" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_detach_ctrls \- Detach namespace from controllers .SH SYNOPSIS diff --git a/doc/man/nvme_ns_flush.2 b/doc/man/nvme_ns_flush.2 index a0b3085..0aee7cf 100644 --- a/doc/man/nvme_ns_flush.2 +++ b/doc/man/nvme_ns_flush.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_flush" 9 "nvme_ns_flush" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_flush" 9 "nvme_ns_flush" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_flush \- Flush data to a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_csi.2 b/doc/man/nvme_ns_get_csi.2 index 62b7d8a..a7bf002 100644 --- a/doc/man/nvme_ns_get_csi.2 +++ b/doc/man/nvme_ns_get_csi.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_csi" 9 "nvme_ns_get_csi" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_csi" 9 "nvme_ns_get_csi" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_csi \- Command set identifier of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_ctrl.2 b/doc/man/nvme_ns_get_ctrl.2 index 363eb22..087ff1a 100644 --- a/doc/man/nvme_ns_get_ctrl.2 +++ b/doc/man/nvme_ns_get_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_ctrl" 9 "nvme_ns_get_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_ctrl" 9 "nvme_ns_get_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_ctrl \- &nvme_ctrl_t of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_eui64.2 b/doc/man/nvme_ns_get_eui64.2 index d704e7c..86421b3 100644 --- a/doc/man/nvme_ns_get_eui64.2 +++ b/doc/man/nvme_ns_get_eui64.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_eui64" 9 "nvme_ns_get_eui64" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_eui64" 9 "nvme_ns_get_eui64" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_eui64 \- 64-bit eui of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_fd.2 b/doc/man/nvme_ns_get_fd.2 index bfb383e..cff2024 100644 --- a/doc/man/nvme_ns_get_fd.2 +++ b/doc/man/nvme_ns_get_fd.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_fd" 9 "nvme_ns_get_fd" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_fd" 9 "nvme_ns_get_fd" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_fd \- Get associated file descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_firmware.2 b/doc/man/nvme_ns_get_firmware.2 index 1c4c2fa..05e015f 100644 --- a/doc/man/nvme_ns_get_firmware.2 +++ b/doc/man/nvme_ns_get_firmware.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_firmware" 9 "nvme_ns_get_firmware" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_firmware" 9 "nvme_ns_get_firmware" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_firmware \- Firmware string of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_generic_name.2 b/doc/man/nvme_ns_get_generic_name.2 index 9a3d44b..c988d08 100644 --- a/doc/man/nvme_ns_get_generic_name.2 +++ b/doc/man/nvme_ns_get_generic_name.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_generic_name" 9 "nvme_ns_get_generic_name" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_generic_name" 9 "nvme_ns_get_generic_name" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_generic_name \- Returns name of generic namespace chardev. .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_lba_count.2 b/doc/man/nvme_ns_get_lba_count.2 index fb3b993..2348668 100644 --- a/doc/man/nvme_ns_get_lba_count.2 +++ b/doc/man/nvme_ns_get_lba_count.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_lba_count" 9 "nvme_ns_get_lba_count" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_lba_count" 9 "nvme_ns_get_lba_count" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_lba_count \- LBA count of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_lba_size.2 b/doc/man/nvme_ns_get_lba_size.2 index ff942c6..ca913f5 100644 --- a/doc/man/nvme_ns_get_lba_size.2 +++ b/doc/man/nvme_ns_get_lba_size.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_lba_size" 9 "nvme_ns_get_lba_size" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_lba_size" 9 "nvme_ns_get_lba_size" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_lba_size \- LBA size of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_lba_util.2 b/doc/man/nvme_ns_get_lba_util.2 index ab16675..577f231 100644 --- a/doc/man/nvme_ns_get_lba_util.2 +++ b/doc/man/nvme_ns_get_lba_util.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_lba_util" 9 "nvme_ns_get_lba_util" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_lba_util" 9 "nvme_ns_get_lba_util" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_lba_util \- LBA utilization of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_meta_size.2 b/doc/man/nvme_ns_get_meta_size.2 index 9644e47..1c3d567 100644 --- a/doc/man/nvme_ns_get_meta_size.2 +++ b/doc/man/nvme_ns_get_meta_size.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_meta_size" 9 "nvme_ns_get_meta_size" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_meta_size" 9 "nvme_ns_get_meta_size" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_meta_size \- Metadata size of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_model.2 b/doc/man/nvme_ns_get_model.2 index d3c49f3..381e8de 100644 --- a/doc/man/nvme_ns_get_model.2 +++ b/doc/man/nvme_ns_get_model.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_model" 9 "nvme_ns_get_model" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_model" 9 "nvme_ns_get_model" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_model \- Model of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_name.2 b/doc/man/nvme_ns_get_name.2 index 161ec65..e9481e3 100644 --- a/doc/man/nvme_ns_get_name.2 +++ b/doc/man/nvme_ns_get_name.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_name" 9 "nvme_ns_get_name" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_name" 9 "nvme_ns_get_name" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_name \- sysfs name of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_nguid.2 b/doc/man/nvme_ns_get_nguid.2 index 7ad7cf0..ccab454 100644 --- a/doc/man/nvme_ns_get_nguid.2 +++ b/doc/man/nvme_ns_get_nguid.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_nguid" 9 "nvme_ns_get_nguid" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_nguid" 9 "nvme_ns_get_nguid" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_nguid \- 128-bit nguid of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_nsid.2 b/doc/man/nvme_ns_get_nsid.2 index 704f5f8..5d16648 100644 --- a/doc/man/nvme_ns_get_nsid.2 +++ b/doc/man/nvme_ns_get_nsid.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_nsid" 9 "nvme_ns_get_nsid" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_nsid" 9 "nvme_ns_get_nsid" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_nsid \- NSID of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_serial.2 b/doc/man/nvme_ns_get_serial.2 index e9d2e74..29b4efd 100644 --- a/doc/man/nvme_ns_get_serial.2 +++ b/doc/man/nvme_ns_get_serial.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_serial" 9 "nvme_ns_get_serial" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_serial" 9 "nvme_ns_get_serial" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_serial \- Serial number of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_subsystem.2 b/doc/man/nvme_ns_get_subsystem.2 index c697877..249a556 100644 --- a/doc/man/nvme_ns_get_subsystem.2 +++ b/doc/man/nvme_ns_get_subsystem.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_subsystem" 9 "nvme_ns_get_subsystem" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_subsystem" 9 "nvme_ns_get_subsystem" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_subsystem \- &nvme_subsystem_t of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_sysfs_dir.2 b/doc/man/nvme_ns_get_sysfs_dir.2 index bbecc8e..fd90abc 100644 --- a/doc/man/nvme_ns_get_sysfs_dir.2 +++ b/doc/man/nvme_ns_get_sysfs_dir.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_sysfs_dir" 9 "nvme_ns_get_sysfs_dir" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_sysfs_dir" 9 "nvme_ns_get_sysfs_dir" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_sysfs_dir \- sysfs directory of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_get_uuid.2 b/doc/man/nvme_ns_get_uuid.2 index 31fee53..bf6b2bc 100644 --- a/doc/man/nvme_ns_get_uuid.2 +++ b/doc/man/nvme_ns_get_uuid.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_get_uuid" 9 "nvme_ns_get_uuid" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_get_uuid" 9 "nvme_ns_get_uuid" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_get_uuid \- UUID of a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_id_desc.2 b/doc/man/nvme_ns_id_desc.2 index 222dba3..a00a59e 100644 --- a/doc/man/nvme_ns_id_desc.2 +++ b/doc/man/nvme_ns_id_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_ns_id_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_ns_id_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_ns_id_desc \- Namespace identifier type descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_ns_id_desc_nidt.2 b/doc/man/nvme_ns_id_desc_nidt.2 index 6ae8fa5..b856ea2 100644 --- a/doc/man/nvme_ns_id_desc_nidt.2 +++ b/doc/man/nvme_ns_id_desc_nidt.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ns_id_desc_nidt" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ns_id_desc_nidt" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ns_id_desc_nidt \- Known namespace identifier types .SH SYNOPSIS diff --git a/doc/man/nvme_ns_identify.2 b/doc/man/nvme_ns_identify.2 index 876060a..2c238ed 100644 --- a/doc/man/nvme_ns_identify.2 +++ b/doc/man/nvme_ns_identify.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_identify" 9 "nvme_ns_identify" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_identify" 9 "nvme_ns_identify" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_identify \- Issue an 'identify namespace' command .SH SYNOPSIS diff --git a/doc/man/nvme_ns_identify_descs.2 b/doc/man/nvme_ns_identify_descs.2 index e44d543..89f5d19 100644 --- a/doc/man/nvme_ns_identify_descs.2 +++ b/doc/man/nvme_ns_identify_descs.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_identify_descs" 9 "nvme_ns_identify_descs" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_identify_descs" 9 "nvme_ns_identify_descs" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_identify_descs \- Issue an 'identify descriptors' command .SH SYNOPSIS diff --git a/doc/man/nvme_ns_list.2 b/doc/man/nvme_ns_list.2 index 3b0b172..af34f67 100644 --- a/doc/man/nvme_ns_list.2 +++ b/doc/man/nvme_ns_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_ns_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_ns_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_ns_list \- Namespace List .SH SYNOPSIS diff --git a/doc/man/nvme_ns_metadata_type.2 b/doc/man/nvme_ns_metadata_type.2 index 32c0526..2eff144 100644 --- a/doc/man/nvme_ns_metadata_type.2 +++ b/doc/man/nvme_ns_metadata_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ns_metadata_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ns_metadata_type" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ns_metadata_type \- Namespace Metadata Element Types .SH SYNOPSIS diff --git a/doc/man/nvme_ns_mgmt.2 b/doc/man/nvme_ns_mgmt.2 index 2ace36f..06dc82c 100644 --- a/doc/man/nvme_ns_mgmt.2 +++ b/doc/man/nvme_ns_mgmt.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_mgmt" 9 "nvme_ns_mgmt" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_mgmt" 9 "nvme_ns_mgmt" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_mgmt \- Issue a Namespace management command .SH SYNOPSIS diff --git a/doc/man/nvme_ns_mgmt_create.2 b/doc/man/nvme_ns_mgmt_create.2 index 7556a75..4c9eb00 100644 --- a/doc/man/nvme_ns_mgmt_create.2 +++ b/doc/man/nvme_ns_mgmt_create.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_mgmt_create" 9 "nvme_ns_mgmt_create" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_mgmt_create" 9 "nvme_ns_mgmt_create" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_mgmt_create \- Create a non attached namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_mgmt_delete.2 b/doc/man/nvme_ns_mgmt_delete.2 index 19a6ff6..3ce01ec 100644 --- a/doc/man/nvme_ns_mgmt_delete.2 +++ b/doc/man/nvme_ns_mgmt_delete.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_mgmt_delete" 9 "nvme_ns_mgmt_delete" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_mgmt_delete" 9 "nvme_ns_mgmt_delete" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_mgmt_delete \- Delete a non attached namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_mgmt_delete_timeout.2 b/doc/man/nvme_ns_mgmt_delete_timeout.2 index 7a3676a..e0aa48f 100644 --- a/doc/man/nvme_ns_mgmt_delete_timeout.2 +++ b/doc/man/nvme_ns_mgmt_delete_timeout.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_mgmt_delete_timeout" 9 "nvme_ns_mgmt_delete_timeout" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_mgmt_delete_timeout" 9 "nvme_ns_mgmt_delete_timeout" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_mgmt_delete_timeout \- Delete a non attached namespace with timeout .SH SYNOPSIS diff --git a/doc/man/nvme_ns_mgmt_host_sw_specified.2 b/doc/man/nvme_ns_mgmt_host_sw_specified.2 index c2a0993..924f11d 100644 --- a/doc/man/nvme_ns_mgmt_host_sw_specified.2 +++ b/doc/man/nvme_ns_mgmt_host_sw_specified.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_ns_mgmt_host_sw_specified" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_ns_mgmt_host_sw_specified" "March 2025" "API Manual" LINUX .SH NAME struct nvme_ns_mgmt_host_sw_specified \- Namespace management Host Software Specified Fields. .SH SYNOPSIS diff --git a/doc/man/nvme_ns_mgmt_sel.2 b/doc/man/nvme_ns_mgmt_sel.2 index 26bef3e..5de23f8 100644 --- a/doc/man/nvme_ns_mgmt_sel.2 +++ b/doc/man/nvme_ns_mgmt_sel.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ns_mgmt_sel" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ns_mgmt_sel" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ns_mgmt_sel \- Namespace Management - Select .SH SYNOPSIS diff --git a/doc/man/nvme_ns_read.2 b/doc/man/nvme_ns_read.2 index b3cf9e7..18b93f7 100644 --- a/doc/man/nvme_ns_read.2 +++ b/doc/man/nvme_ns_read.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_read" 9 "nvme_ns_read" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_read" 9 "nvme_ns_read" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_read \- Read from a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_release_fd.2 b/doc/man/nvme_ns_release_fd.2 index 9d8f1ff..d101442 100644 --- a/doc/man/nvme_ns_release_fd.2 +++ b/doc/man/nvme_ns_release_fd.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_release_fd" 9 "nvme_ns_release_fd" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_release_fd" 9 "nvme_ns_release_fd" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_release_fd \- Close fd and clear fd from ns object .SH SYNOPSIS diff --git a/doc/man/nvme_ns_rescan.2 b/doc/man/nvme_ns_rescan.2 index faaa6ec..fbc15ed 100644 --- a/doc/man/nvme_ns_rescan.2 +++ b/doc/man/nvme_ns_rescan.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_rescan" 9 "nvme_ns_rescan" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_rescan" 9 "nvme_ns_rescan" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_rescan \- Initiate a controller rescan .SH SYNOPSIS diff --git a/doc/man/nvme_ns_verify.2 b/doc/man/nvme_ns_verify.2 index 30130d4..b105847 100644 --- a/doc/man/nvme_ns_verify.2 +++ b/doc/man/nvme_ns_verify.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_verify" 9 "nvme_ns_verify" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_verify" 9 "nvme_ns_verify" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_verify \- Verify data on a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_write.2 b/doc/man/nvme_ns_write.2 index 41f5b67..25b1be6 100644 --- a/doc/man/nvme_ns_write.2 +++ b/doc/man/nvme_ns_write.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_write" 9 "nvme_ns_write" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_write" 9 "nvme_ns_write" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_write \- Write to a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_ns_write_protect_cfg.2 b/doc/man/nvme_ns_write_protect_cfg.2 index f0628b7..54d71f1 100644 --- a/doc/man/nvme_ns_write_protect_cfg.2 +++ b/doc/man/nvme_ns_write_protect_cfg.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_ns_write_protect_cfg" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_ns_write_protect_cfg" "March 2025" "API Manual" LINUX .SH NAME enum nvme_ns_write_protect_cfg \- Write Protection - Write Protection State .SH SYNOPSIS diff --git a/doc/man/nvme_ns_write_uncorrectable.2 b/doc/man/nvme_ns_write_uncorrectable.2 index c33c062..a868fb3 100644 --- a/doc/man/nvme_ns_write_uncorrectable.2 +++ b/doc/man/nvme_ns_write_uncorrectable.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_write_uncorrectable" 9 "nvme_ns_write_uncorrectable" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_write_uncorrectable" 9 "nvme_ns_write_uncorrectable" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_write_uncorrectable \- Issus a 'write uncorrectable' command .SH SYNOPSIS diff --git a/doc/man/nvme_ns_write_zeros.2 b/doc/man/nvme_ns_write_zeros.2 index e6f425e..7f16828 100644 --- a/doc/man/nvme_ns_write_zeros.2 +++ b/doc/man/nvme_ns_write_zeros.2 @@ -1,4 +1,4 @@ -.TH "nvme_ns_write_zeros" 9 "nvme_ns_write_zeros" "November 2024" "libnvme API manual" LINUX +.TH "nvme_ns_write_zeros" 9 "nvme_ns_write_zeros" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_ns_write_zeros \- Write zeros to a namespace .SH SYNOPSIS diff --git a/doc/man/nvme_nss_hw_err_event.2 b/doc/man/nvme_nss_hw_err_event.2 index b59627f..c98e129 100644 --- a/doc/man/nvme_nss_hw_err_event.2 +++ b/doc/man/nvme_nss_hw_err_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_nss_hw_err_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_nss_hw_err_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_nss_hw_err_event \- NVM Subsystem Hardware Error Event .SH SYNOPSIS diff --git a/doc/man/nvme_nvm_id_ns.2 b/doc/man/nvme_nvm_id_ns.2 index d766977..c83e294 100644 --- a/doc/man/nvme_nvm_id_ns.2 +++ b/doc/man/nvme_nvm_id_ns.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_nvm_id_ns" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_nvm_id_ns" "March 2025" "API Manual" LINUX .SH NAME struct nvme_nvm_id_ns \- NVME Command Set I/O Command Set Specific Identify Namespace Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_nvm_id_ns_elbaf.2 b/doc/man/nvme_nvm_id_ns_elbaf.2 index d3244b5..4a91e1f 100644 --- a/doc/man/nvme_nvm_id_ns_elbaf.2 +++ b/doc/man/nvme_nvm_id_ns_elbaf.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_nvm_id_ns_elbaf" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_nvm_id_ns_elbaf" "March 2025" "API Manual" LINUX .SH NAME enum nvme_nvm_id_ns_elbaf \- This field indicates the extended LBA format .SH SYNOPSIS diff --git a/doc/man/nvme_nvm_id_ns_pif.2 b/doc/man/nvme_nvm_id_ns_pif.2 index b2f5f3b..38ae32f 100644 --- a/doc/man/nvme_nvm_id_ns_pif.2 +++ b/doc/man/nvme_nvm_id_ns_pif.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_nvm_id_ns_pif" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_nvm_id_ns_pif" "March 2025" "API Manual" LINUX .SH NAME enum nvme_nvm_id_ns_pif \- This field indicates the type of the Protection Information Format .SH SYNOPSIS diff --git a/doc/man/nvme_nvm_identify_ctrl.2 b/doc/man/nvme_nvm_identify_ctrl.2 index f9a2c02..b26338a 100644 --- a/doc/man/nvme_nvm_identify_ctrl.2 +++ b/doc/man/nvme_nvm_identify_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_nvm_identify_ctrl" 9 "nvme_nvm_identify_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_nvm_identify_ctrl" 9 "nvme_nvm_identify_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_nvm_identify_ctrl \- Identify controller data .SH SYNOPSIS diff --git a/doc/man/nvme_nvmeset_pl_status.2 b/doc/man/nvme_nvmeset_pl_status.2 index c256063..75cd6a3 100644 --- a/doc/man/nvme_nvmeset_pl_status.2 +++ b/doc/man/nvme_nvmeset_pl_status.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_nvmeset_pl_status" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_nvmeset_pl_status" "March 2025" "API Manual" LINUX .SH NAME enum nvme_nvmeset_pl_status \- Predictable Latency Per NVM Set Log - Status .SH SYNOPSIS diff --git a/doc/man/nvme_nvmset_attr.2 b/doc/man/nvme_nvmset_attr.2 index 98d7ecd..8910df6 100644 --- a/doc/man/nvme_nvmset_attr.2 +++ b/doc/man/nvme_nvmset_attr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_nvmset_attr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_nvmset_attr" "March 2025" "API Manual" LINUX .SH NAME struct nvme_nvmset_attr \- NVM Set Attributes Entry .SH SYNOPSIS diff --git a/doc/man/nvme_nvmset_pl_events.2 b/doc/man/nvme_nvmset_pl_events.2 index bd15343..7367679 100644 --- a/doc/man/nvme_nvmset_pl_events.2 +++ b/doc/man/nvme_nvmset_pl_events.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_nvmset_pl_events" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_nvmset_pl_events" "March 2025" "API Manual" LINUX .SH NAME enum nvme_nvmset_pl_events \- Predictable Latency Per NVM Set Log - Event Type .SH SYNOPSIS diff --git a/doc/man/nvme_nvmset_predictable_lat_log.2 b/doc/man/nvme_nvmset_predictable_lat_log.2 index 177d384..7c15f38 100644 --- a/doc/man/nvme_nvmset_predictable_lat_log.2 +++ b/doc/man/nvme_nvmset_predictable_lat_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_nvmset_predictable_lat_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_nvmset_predictable_lat_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_nvmset_predictable_lat_log \- Predictable Latency Mode - Deterministic Threshold Configuration Data .SH SYNOPSIS diff --git a/doc/man/nvme_open.2 b/doc/man/nvme_open.2 index 9a58607..9e633b1 100644 --- a/doc/man/nvme_open.2 +++ b/doc/man/nvme_open.2 @@ -1,4 +1,4 @@ -.TH "nvme_open" 9 "nvme_open" "November 2024" "libnvme API manual" LINUX +.TH "nvme_open" 9 "nvme_open" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_open \- Open an nvme controller or namespace device .SH SYNOPSIS diff --git a/doc/man/nvme_parse_uri.2 b/doc/man/nvme_parse_uri.2 index 66c2e72..54d8de9 100644 --- a/doc/man/nvme_parse_uri.2 +++ b/doc/man/nvme_parse_uri.2 @@ -1,4 +1,4 @@ -.TH "nvme_parse_uri" 9 "nvme_parse_uri" "November 2024" "libnvme API manual" LINUX +.TH "nvme_parse_uri" 9 "nvme_parse_uri" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_parse_uri \- Parse the URI string .SH SYNOPSIS diff --git a/doc/man/nvme_passthru_cmd.2 b/doc/man/nvme_passthru_cmd.2 index e1186b4..f8a6fa6 100644 --- a/doc/man/nvme_passthru_cmd.2 +++ b/doc/man/nvme_passthru_cmd.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_passthru_cmd" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_passthru_cmd" "March 2025" "API Manual" LINUX .SH NAME struct nvme_passthru_cmd \- nvme passthrough command structure .SH SYNOPSIS diff --git a/doc/man/nvme_passthru_cmd64.2 b/doc/man/nvme_passthru_cmd64.2 index 246d72d..d77d556 100644 --- a/doc/man/nvme_passthru_cmd64.2 +++ b/doc/man/nvme_passthru_cmd64.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_passthru_cmd64" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_passthru_cmd64" "March 2025" "API Manual" LINUX .SH NAME struct nvme_passthru_cmd64 \- 64-bit nvme passthrough command structure .SH SYNOPSIS diff --git a/doc/man/nvme_path_get_ana_state.2 b/doc/man/nvme_path_get_ana_state.2 index 17ba02e..0133f40 100644 --- a/doc/man/nvme_path_get_ana_state.2 +++ b/doc/man/nvme_path_get_ana_state.2 @@ -1,4 +1,4 @@ -.TH "nvme_path_get_ana_state" 9 "nvme_path_get_ana_state" "November 2024" "libnvme API manual" LINUX +.TH "nvme_path_get_ana_state" 9 "nvme_path_get_ana_state" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_path_get_ana_state \- ANA state of an nvme_path_t object .SH SYNOPSIS diff --git a/doc/man/nvme_path_get_ctrl.2 b/doc/man/nvme_path_get_ctrl.2 index a6b3f15..f0989ae 100644 --- a/doc/man/nvme_path_get_ctrl.2 +++ b/doc/man/nvme_path_get_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_path_get_ctrl" 9 "nvme_path_get_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_path_get_ctrl" 9 "nvme_path_get_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_path_get_ctrl \- Parent controller of an nvme_path_t object .SH SYNOPSIS diff --git a/doc/man/nvme_path_get_name.2 b/doc/man/nvme_path_get_name.2 index 775a48c..9f1a589 100644 --- a/doc/man/nvme_path_get_name.2 +++ b/doc/man/nvme_path_get_name.2 @@ -1,4 +1,4 @@ -.TH "nvme_path_get_name" 9 "nvme_path_get_name" "November 2024" "libnvme API manual" LINUX +.TH "nvme_path_get_name" 9 "nvme_path_get_name" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_path_get_name \- sysfs name of an &nvme_path_t object .SH SYNOPSIS diff --git a/doc/man/nvme_path_get_ns.2 b/doc/man/nvme_path_get_ns.2 index ac8d3d2..9c68e51 100644 --- a/doc/man/nvme_path_get_ns.2 +++ b/doc/man/nvme_path_get_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_path_get_ns" 9 "nvme_path_get_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_path_get_ns" 9 "nvme_path_get_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_path_get_ns \- Parent namespace of an nvme_path_t object .SH SYNOPSIS diff --git a/doc/man/nvme_path_get_sysfs_dir.2 b/doc/man/nvme_path_get_sysfs_dir.2 index a429dea..35bf69e 100644 --- a/doc/man/nvme_path_get_sysfs_dir.2 +++ b/doc/man/nvme_path_get_sysfs_dir.2 @@ -1,4 +1,4 @@ -.TH "nvme_path_get_sysfs_dir" 9 "nvme_path_get_sysfs_dir" "November 2024" "libnvme API manual" LINUX +.TH "nvme_path_get_sysfs_dir" 9 "nvme_path_get_sysfs_dir" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_path_get_sysfs_dir \- sysfs directory of an nvme_path_t object .SH SYNOPSIS diff --git a/doc/man/nvme_paths_filter.2 b/doc/man/nvme_paths_filter.2 index 59e56e0..642c6a2 100644 --- a/doc/man/nvme_paths_filter.2 +++ b/doc/man/nvme_paths_filter.2 @@ -1,4 +1,4 @@ -.TH "nvme_paths_filter" 9 "nvme_paths_filter" "November 2024" "libnvme API manual" LINUX +.TH "nvme_paths_filter" 9 "nvme_paths_filter" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_paths_filter \- Filter for paths .SH SYNOPSIS diff --git a/doc/man/nvme_pel_ehai.2 b/doc/man/nvme_pel_ehai.2 index 4c6b9b6..bfbb700 100644 --- a/doc/man/nvme_pel_ehai.2 +++ b/doc/man/nvme_pel_ehai.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pel_ehai" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pel_ehai" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pel_ehai \- This field indicates the persistent event header additional information .SH SYNOPSIS diff --git a/doc/man/nvme_pel_ehai_pit.2 b/doc/man/nvme_pel_ehai_pit.2 index 7fda966..9961470 100644 --- a/doc/man/nvme_pel_ehai_pit.2 +++ b/doc/man/nvme_pel_ehai_pit.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pel_ehai_pit" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pel_ehai_pit" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pel_ehai_pit \- Persistent Event Header Additional Information - Port Identifier Type .SH SYNOPSIS diff --git a/doc/man/nvme_pel_rci.2 b/doc/man/nvme_pel_rci.2 index 8c1aa46..3cec2e7 100644 --- a/doc/man/nvme_pel_rci.2 +++ b/doc/man/nvme_pel_rci.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pel_rci" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pel_rci" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pel_rci \- This field indicates the persistent event log reporting context .SH SYNOPSIS diff --git a/doc/man/nvme_pel_rci_rcpit.2 b/doc/man/nvme_pel_rci_rcpit.2 index 01c8c9e..23d5af8 100644 --- a/doc/man/nvme_pel_rci_rcpit.2 +++ b/doc/man/nvme_pel_rci_rcpit.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pel_rci_rcpit" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pel_rci_rcpit" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pel_rci_rcpit \- Persistent Event Log Reporting Context - Port Identifier Type .SH SYNOPSIS diff --git a/doc/man/nvme_persistent_event_entry.2 b/doc/man/nvme_persistent_event_entry.2 index 2b4fb10..31ed504 100644 --- a/doc/man/nvme_persistent_event_entry.2 +++ b/doc/man/nvme_persistent_event_entry.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_persistent_event_entry" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_persistent_event_entry" "March 2025" "API Manual" LINUX .SH NAME struct nvme_persistent_event_entry \- Persistent Event .SH SYNOPSIS diff --git a/doc/man/nvme_persistent_event_log.2 b/doc/man/nvme_persistent_event_log.2 index 495e775..66a9ebd 100644 --- a/doc/man/nvme_persistent_event_log.2 +++ b/doc/man/nvme_persistent_event_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_persistent_event_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_persistent_event_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_persistent_event_log \- Persistent Event Log .SH SYNOPSIS diff --git a/doc/man/nvme_persistent_event_types.2 b/doc/man/nvme_persistent_event_types.2 index 0e32313..3d1f3fa 100644 --- a/doc/man/nvme_persistent_event_types.2 +++ b/doc/man/nvme_persistent_event_types.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_persistent_event_types" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_persistent_event_types" "March 2025" "API Manual" LINUX .SH NAME enum nvme_persistent_event_types \- Persistent event log events .SH SYNOPSIS diff --git a/doc/man/nvme_pevent_log_action.2 b/doc/man/nvme_pevent_log_action.2 index 81e10ba..bdb0191 100644 --- a/doc/man/nvme_pevent_log_action.2 +++ b/doc/man/nvme_pevent_log_action.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pevent_log_action" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pevent_log_action" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pevent_log_action \- Persistent Event Log - Action .SH SYNOPSIS diff --git a/doc/man/nvme_phy_rx_eom_log.2 b/doc/man/nvme_phy_rx_eom_log.2 index 7ad71a3..a139203 100644 --- a/doc/man/nvme_phy_rx_eom_log.2 +++ b/doc/man/nvme_phy_rx_eom_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_phy_rx_eom_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_phy_rx_eom_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_phy_rx_eom_log \- Physical Interface Receiver Eye Opening Measurement Log .SH SYNOPSIS diff --git a/doc/man/nvme_phy_rx_eom_progress.2 b/doc/man/nvme_phy_rx_eom_progress.2 index 66d26fd..1307ca7 100644 --- a/doc/man/nvme_phy_rx_eom_progress.2 +++ b/doc/man/nvme_phy_rx_eom_progress.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_phy_rx_eom_progress" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_phy_rx_eom_progress" "March 2025" "API Manual" LINUX .SH NAME enum nvme_phy_rx_eom_progress \- EOM In Progress Values .SH SYNOPSIS diff --git a/doc/man/nvme_plm_config.2 b/doc/man/nvme_plm_config.2 index cb351b3..88a1eb7 100644 --- a/doc/man/nvme_plm_config.2 +++ b/doc/man/nvme_plm_config.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_plm_config" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_plm_config" "March 2025" "API Manual" LINUX .SH NAME struct nvme_plm_config \- Predictable Latency Mode - Deterministic Threshold Configuration Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_pmr_size.2 b/doc/man/nvme_pmr_size.2 index 4979638..b65d04d 100644 --- a/doc/man/nvme_pmr_size.2 +++ b/doc/man/nvme_pmr_size.2 @@ -1,4 +1,4 @@ -.TH "nvme_pmr_size" 9 "nvme_pmr_size" "November 2024" "libnvme API manual" LINUX +.TH "nvme_pmr_size" 9 "nvme_pmr_size" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_pmr_size \- Calculate size of persistent memory region elasticity buffer .SH SYNOPSIS diff --git a/doc/man/nvme_pmr_throughput.2 b/doc/man/nvme_pmr_throughput.2 index 09744ac..da6f16a 100644 --- a/doc/man/nvme_pmr_throughput.2 +++ b/doc/man/nvme_pmr_throughput.2 @@ -1,4 +1,4 @@ -.TH "nvme_pmr_throughput" 9 "nvme_pmr_throughput" "November 2024" "libnvme API manual" LINUX +.TH "nvme_pmr_throughput" 9 "nvme_pmr_throughput" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_pmr_throughput \- Calculate throughput of persistent memory buffer .SH SYNOPSIS diff --git a/doc/man/nvme_pmrcap.2 b/doc/man/nvme_pmrcap.2 index 3a39355..d50a6f0 100644 --- a/doc/man/nvme_pmrcap.2 +++ b/doc/man/nvme_pmrcap.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pmrcap" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pmrcap" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pmrcap \- This field indicates the persistent memory region capabilities .SH SYNOPSIS diff --git a/doc/man/nvme_pmrctl.2 b/doc/man/nvme_pmrctl.2 index ac4936a..fe7becf 100644 --- a/doc/man/nvme_pmrctl.2 +++ b/doc/man/nvme_pmrctl.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pmrctl" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pmrctl" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pmrctl \- This field indicates the persistent memory region control .SH SYNOPSIS diff --git a/doc/man/nvme_pmrebs.2 b/doc/man/nvme_pmrebs.2 index d42c12f..7a00f78 100644 --- a/doc/man/nvme_pmrebs.2 +++ b/doc/man/nvme_pmrebs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pmrebs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pmrebs" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pmrebs \- This field indicates the persistent memory region elasticity buffer size .SH SYNOPSIS diff --git a/doc/man/nvme_pmrmsc.2 b/doc/man/nvme_pmrmsc.2 index 4ad5d8b..2681162 100644 --- a/doc/man/nvme_pmrmsc.2 +++ b/doc/man/nvme_pmrmsc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pmrmsc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pmrmsc" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pmrmsc \- This field indicates the persistent memory region memory space control .SH SYNOPSIS diff --git a/doc/man/nvme_pmrsts.2 b/doc/man/nvme_pmrsts.2 index 4528112..ad1b820 100644 --- a/doc/man/nvme_pmrsts.2 +++ b/doc/man/nvme_pmrsts.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pmrsts" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pmrsts" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pmrsts \- This field indicates the persistent memory region status .SH SYNOPSIS diff --git a/doc/man/nvme_pmrswtp.2 b/doc/man/nvme_pmrswtp.2 index 8be7af6..6e79d79 100644 --- a/doc/man/nvme_pmrswtp.2 +++ b/doc/man/nvme_pmrswtp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_pmrswtp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_pmrswtp" "March 2025" "API Manual" LINUX .SH NAME enum nvme_pmrswtp \- This field indicates the persistent memory region sustained write throughput .SH SYNOPSIS diff --git a/doc/man/nvme_power_on_reset_info_list.2 b/doc/man/nvme_power_on_reset_info_list.2 index 98833b4..ca5c20d 100644 --- a/doc/man/nvme_power_on_reset_info_list.2 +++ b/doc/man/nvme_power_on_reset_info_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_power_on_reset_info_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_power_on_reset_info_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_power_on_reset_info_list \- Controller Reset Information .SH SYNOPSIS diff --git a/doc/man/nvme_primary_ctrl_cap.2 b/doc/man/nvme_primary_ctrl_cap.2 index c945dba..2dd302c 100644 --- a/doc/man/nvme_primary_ctrl_cap.2 +++ b/doc/man/nvme_primary_ctrl_cap.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_primary_ctrl_cap" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_primary_ctrl_cap" "March 2025" "API Manual" LINUX .SH NAME struct nvme_primary_ctrl_cap \- Identify - Controller Capabilities Structure .SH SYNOPSIS diff --git a/doc/man/nvme_psd_flags.2 b/doc/man/nvme_psd_flags.2 index e68619a..106784c 100644 --- a/doc/man/nvme_psd_flags.2 +++ b/doc/man/nvme_psd_flags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_psd_flags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_psd_flags" "March 2025" "API Manual" LINUX .SH NAME enum nvme_psd_flags \- Possible flag values in nvme power state descriptor .SH SYNOPSIS diff --git a/doc/man/nvme_psd_power_scale.2 b/doc/man/nvme_psd_power_scale.2 index d54c5d8..6bf304c 100644 --- a/doc/man/nvme_psd_power_scale.2 +++ b/doc/man/nvme_psd_power_scale.2 @@ -1,4 +1,4 @@ -.TH "nvme_psd_power_scale" 9 "nvme_psd_power_scale" "November 2024" "libnvme API manual" LINUX +.TH "nvme_psd_power_scale" 9 "nvme_psd_power_scale" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_psd_power_scale \- power scale occupies the upper 3 bits .SH SYNOPSIS diff --git a/doc/man/nvme_psd_ps.2 b/doc/man/nvme_psd_ps.2 index c3d66c0..6b7b0f5 100644 --- a/doc/man/nvme_psd_ps.2 +++ b/doc/man/nvme_psd_ps.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_psd_ps" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_psd_ps" "March 2025" "API Manual" LINUX .SH NAME enum nvme_psd_ps \- Known values for &struct nvme_psd %ips and %aps. Use with nvme_psd_power_scale() to extract the power scale field to match this enum. .SH SYNOPSIS diff --git a/doc/man/nvme_psd_workload.2 b/doc/man/nvme_psd_workload.2 index 19c2031..467a921 100644 --- a/doc/man/nvme_psd_workload.2 +++ b/doc/man/nvme_psd_workload.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_psd_workload" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_psd_workload" "March 2025" "API Manual" LINUX .SH NAME enum nvme_psd_workload \- Specifies a workload hint in the Power Management Feature (see &struct nvme_psd.apw) to inform the NVM subsystem or indicate the conditions for the active power level. .SH SYNOPSIS diff --git a/doc/man/nvme_pull_model_ddc_req_log.2 b/doc/man/nvme_pull_model_ddc_req_log.2 new file mode 100644 index 0000000..82ea926 --- /dev/null +++ b/doc/man/nvme_pull_model_ddc_req_log.2 @@ -0,0 +1,27 @@ +.TH "libnvme" 9 "struct nvme_pull_model_ddc_req_log" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_pull_model_ddc_req_log \- Pull Model DDC Request Log +.SH SYNOPSIS +struct nvme_pull_model_ddc_req_log { +.br +.BI " __u8 ori;" +.br +.BI " __u8 rsvd1[3];" +.br +.BI " __le32 tpdrpl;" +.br +.BI " __u8 osp[];" +.br +.BI " +}; +.br + +.SH Members +.IP "ori" 12 +Operation Request Identifier +.IP "rsvd1" 12 +Reserved +.IP "tpdrpl" 12 +Total Pull Model DDC Request Log Page Length +.IP "osp" 12 +Operation Specific Parameters diff --git a/doc/man/nvme_reachability_association_desc.2 b/doc/man/nvme_reachability_association_desc.2 new file mode 100644 index 0000000..b987eb1 --- /dev/null +++ b/doc/man/nvme_reachability_association_desc.2 @@ -0,0 +1,35 @@ +.TH "libnvme" 9 "struct nvme_reachability_association_desc" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_reachability_association_desc \- Reachability Association Descriptor +.SH SYNOPSIS +struct nvme_reachability_association_desc { +.br +.BI " __le32 rasid;" +.br +.BI " __le32 nrid;" +.br +.BI " __le64 chngc;" +.br +.BI " __u8 rac;" +.br +.BI " __u8 rsvd17[15];" +.br +.BI " __le32 rgid[];" +.br +.BI " +}; +.br + +.SH Members +.IP "rasid" 12 +Reachability Association ID +.IP "nrid" 12 +Number of RGID Values +.IP "chngc" 12 +Change Count +.IP "rac" 12 +Reachability Association Characteristics +.IP "rsvd17" 12 +Reserved +.IP "rgid" 12 +Reachability Group Identifier List diff --git a/doc/man/nvme_reachability_associations_log.2 b/doc/man/nvme_reachability_associations_log.2 new file mode 100644 index 0000000..e6559c6 --- /dev/null +++ b/doc/man/nvme_reachability_associations_log.2 @@ -0,0 +1,27 @@ +.TH "libnvme" 9 "struct nvme_reachability_associations_log" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_reachability_associations_log \- Reachability Associations Log +.SH SYNOPSIS +struct nvme_reachability_associations_log { +.br +.BI " __le64 chngc;" +.br +.BI " __le16 nrad;" +.br +.BI " __u8 rsvd10[6];" +.br +.BI " struct nvme_reachability_association_desc rad[];" +.br +.BI " +}; +.br + +.SH Members +.IP "chngc" 12 +Change Count +.IP "nrad" 12 +Number of Reachability Association Descriptors +.IP "rsvd10" 12 +Reserved +.IP "rad" 12 +Reachability Association Descriptor List diff --git a/doc/man/nvme_reachability_group_desc.2 b/doc/man/nvme_reachability_group_desc.2 new file mode 100644 index 0000000..a01fb8e --- /dev/null +++ b/doc/man/nvme_reachability_group_desc.2 @@ -0,0 +1,31 @@ +.TH "libnvme" 9 "struct nvme_reachability_group_desc" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_reachability_group_desc \- Reachability Group Descriptor +.SH SYNOPSIS +struct nvme_reachability_group_desc { +.br +.BI " __le32 rgid;" +.br +.BI " __le32 nnid;" +.br +.BI " __le64 chngc;" +.br +.BI " __u8 rsvd16[16];" +.br +.BI " __le32 nsid[];" +.br +.BI " +}; +.br + +.SH Members +.IP "rgid" 12 +Reachability Group ID +.IP "nnid" 12 +Number of NSID Values +.IP "chngc" 12 +Change Count +.IP "rsvd16" 12 +Reserved +.IP "nsid" 12 +Namespace Identifier List diff --git a/doc/man/nvme_reachability_groups_log.2 b/doc/man/nvme_reachability_groups_log.2 new file mode 100644 index 0000000..0b6b706 --- /dev/null +++ b/doc/man/nvme_reachability_groups_log.2 @@ -0,0 +1,27 @@ +.TH "libnvme" 9 "struct nvme_reachability_groups_log" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_reachability_groups_log \- Reachability Groups Log +.SH SYNOPSIS +struct nvme_reachability_groups_log { +.br +.BI " __le64 chngc;" +.br +.BI " __le16 nrgd;" +.br +.BI " __u8 rsvd10[6];" +.br +.BI " struct nvme_reachability_group_desc rgd[];" +.br +.BI " +}; +.br + +.SH Members +.IP "chngc" 12 +Change Count +.IP "nrgd" 12 +Number of Reachability Group Descriptors +.IP "rsvd10" 12 +Reserved +.IP "rgd" 12 +Reachability Group Descriptor List diff --git a/doc/man/nvme_read.2 b/doc/man/nvme_read.2 index 37f3d70..4b93f24 100644 --- a/doc/man/nvme_read.2 +++ b/doc/man/nvme_read.2 @@ -1,4 +1,4 @@ -.TH "nvme_read" 9 "nvme_read" "November 2024" "libnvme API manual" LINUX +.TH "nvme_read" 9 "nvme_read" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_read \- Submit an nvme user read command .SH SYNOPSIS diff --git a/doc/man/nvme_read_config.2 b/doc/man/nvme_read_config.2 index 55e43e5..b17b59f 100644 --- a/doc/man/nvme_read_config.2 +++ b/doc/man/nvme_read_config.2 @@ -1,4 +1,4 @@ -.TH "nvme_read_config" 9 "nvme_read_config" "November 2024" "libnvme API manual" LINUX +.TH "nvme_read_config" 9 "nvme_read_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_read_config \- Read NVMe JSON configuration file .SH SYNOPSIS diff --git a/doc/man/nvme_read_key.2 b/doc/man/nvme_read_key.2 index 3324101..a1194e1 100644 --- a/doc/man/nvme_read_key.2 +++ b/doc/man/nvme_read_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_read_key" 9 "nvme_read_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_read_key" 9 "nvme_read_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_read_key \- Read key raw data .SH SYNOPSIS diff --git a/doc/man/nvme_refresh_topology.2 b/doc/man/nvme_refresh_topology.2 index 37e611f..f93d945 100644 --- a/doc/man/nvme_refresh_topology.2 +++ b/doc/man/nvme_refresh_topology.2 @@ -1,4 +1,4 @@ -.TH "nvme_refresh_topology" 9 "nvme_refresh_topology" "November 2024" "libnvme API manual" LINUX +.TH "nvme_refresh_topology" 9 "nvme_refresh_topology" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_refresh_topology \- Refresh nvme_root_t object contents .SH SYNOPSIS diff --git a/doc/man/nvme_register_offsets.2 b/doc/man/nvme_register_offsets.2 index 9343d36..09074a4 100644 --- a/doc/man/nvme_register_offsets.2 +++ b/doc/man/nvme_register_offsets.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_register_offsets" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_register_offsets" "March 2025" "API Manual" LINUX .SH NAME enum nvme_register_offsets \- controller registers for all transports. This is the layout of BAR0/1 for PCIe, and properties for fabrics. .SH SYNOPSIS diff --git a/doc/man/nvme_registered_ctrl.2 b/doc/man/nvme_registered_ctrl.2 index d3c2c14..6046808 100644 --- a/doc/man/nvme_registered_ctrl.2 +++ b/doc/man/nvme_registered_ctrl.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_registered_ctrl" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_registered_ctrl" "March 2025" "API Manual" LINUX .SH NAME struct nvme_registered_ctrl \- Registered Controller Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_registered_ctrl_ext.2 b/doc/man/nvme_registered_ctrl_ext.2 index a5e2cf7..934e451 100644 --- a/doc/man/nvme_registered_ctrl_ext.2 +++ b/doc/man/nvme_registered_ctrl_ext.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_registered_ctrl_ext" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_registered_ctrl_ext" "March 2025" "API Manual" LINUX .SH NAME struct nvme_registered_ctrl_ext \- Registered Controller Extended Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_rescan_ctrl.2 b/doc/man/nvme_rescan_ctrl.2 index b6f90df..7fc8657 100644 --- a/doc/man/nvme_rescan_ctrl.2 +++ b/doc/man/nvme_rescan_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_rescan_ctrl" 9 "nvme_rescan_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_rescan_ctrl" 9 "nvme_rescan_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_rescan_ctrl \- Rescan an existing controller .SH SYNOPSIS diff --git a/doc/man/nvme_resv_acquire.2 b/doc/man/nvme_resv_acquire.2 index e393ac2..d40c197 100644 --- a/doc/man/nvme_resv_acquire.2 +++ b/doc/man/nvme_resv_acquire.2 @@ -1,4 +1,4 @@ -.TH "nvme_resv_acquire" 9 "nvme_resv_acquire" "November 2024" "libnvme API manual" LINUX +.TH "nvme_resv_acquire" 9 "nvme_resv_acquire" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_resv_acquire \- Send an nvme reservation acquire .SH SYNOPSIS diff --git a/doc/man/nvme_resv_cptpl.2 b/doc/man/nvme_resv_cptpl.2 index 5983be1..7dcedcd 100644 --- a/doc/man/nvme_resv_cptpl.2 +++ b/doc/man/nvme_resv_cptpl.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_resv_cptpl" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_resv_cptpl" "March 2025" "API Manual" LINUX .SH NAME enum nvme_resv_cptpl \- Reservation Register - Change Persist Through Power Loss State .SH SYNOPSIS diff --git a/doc/man/nvme_resv_notification_log.2 b/doc/man/nvme_resv_notification_log.2 index ff09aa1..b03d9a1 100644 --- a/doc/man/nvme_resv_notification_log.2 +++ b/doc/man/nvme_resv_notification_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_resv_notification_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_resv_notification_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_resv_notification_log \- Reservation Notification Log .SH SYNOPSIS diff --git a/doc/man/nvme_resv_notify_rnlpt.2 b/doc/man/nvme_resv_notify_rnlpt.2 index 5410221..ac1b909 100644 --- a/doc/man/nvme_resv_notify_rnlpt.2 +++ b/doc/man/nvme_resv_notify_rnlpt.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_resv_notify_rnlpt" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_resv_notify_rnlpt" "March 2025" "API Manual" LINUX .SH NAME enum nvme_resv_notify_rnlpt \- Reservation Notification Log - Reservation Notification Log Page Type .SH SYNOPSIS diff --git a/doc/man/nvme_resv_racqa.2 b/doc/man/nvme_resv_racqa.2 index b325eda..0ae66cd 100644 --- a/doc/man/nvme_resv_racqa.2 +++ b/doc/man/nvme_resv_racqa.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_resv_racqa" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_resv_racqa" "March 2025" "API Manual" LINUX .SH NAME enum nvme_resv_racqa \- Reservation Acquire - Reservation Acquire Action .SH SYNOPSIS diff --git a/doc/man/nvme_resv_register.2 b/doc/man/nvme_resv_register.2 index d66567d..bbc5559 100644 --- a/doc/man/nvme_resv_register.2 +++ b/doc/man/nvme_resv_register.2 @@ -1,4 +1,4 @@ -.TH "nvme_resv_register" 9 "nvme_resv_register" "November 2024" "libnvme API manual" LINUX +.TH "nvme_resv_register" 9 "nvme_resv_register" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_resv_register \- Send an nvme reservation register .SH SYNOPSIS diff --git a/doc/man/nvme_resv_release.2 b/doc/man/nvme_resv_release.2 index 2aa4321..01d4d44 100644 --- a/doc/man/nvme_resv_release.2 +++ b/doc/man/nvme_resv_release.2 @@ -1,4 +1,4 @@ -.TH "nvme_resv_release" 9 "nvme_resv_release" "November 2024" "libnvme API manual" LINUX +.TH "nvme_resv_release" 9 "nvme_resv_release" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_resv_release \- Send an nvme reservation release .SH SYNOPSIS diff --git a/doc/man/nvme_resv_report.2 b/doc/man/nvme_resv_report.2 index 2a7fa4a..9d112a4 100644 --- a/doc/man/nvme_resv_report.2 +++ b/doc/man/nvme_resv_report.2 @@ -1,4 +1,4 @@ -.TH "nvme_resv_report" 9 "nvme_resv_report" "November 2024" "libnvme API manual" LINUX +.TH "nvme_resv_report" 9 "nvme_resv_report" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_resv_report \- Send an nvme reservation report .SH SYNOPSIS diff --git a/doc/man/nvme_resv_rrega.2 b/doc/man/nvme_resv_rrega.2 index 0b79b6e..4be1c74 100644 --- a/doc/man/nvme_resv_rrega.2 +++ b/doc/man/nvme_resv_rrega.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_resv_rrega" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_resv_rrega" "March 2025" "API Manual" LINUX .SH NAME enum nvme_resv_rrega \- Reservation Register - Reservation Register Action .SH SYNOPSIS diff --git a/doc/man/nvme_resv_rrela.2 b/doc/man/nvme_resv_rrela.2 index b52a07a..84d7944 100644 --- a/doc/man/nvme_resv_rrela.2 +++ b/doc/man/nvme_resv_rrela.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_resv_rrela" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_resv_rrela" "March 2025" "API Manual" LINUX .SH NAME enum nvme_resv_rrela \- Reservation Release - Reservation Release Action .SH SYNOPSIS diff --git a/doc/man/nvme_resv_rtype.2 b/doc/man/nvme_resv_rtype.2 index 02f6193..c6727af 100644 --- a/doc/man/nvme_resv_rtype.2 +++ b/doc/man/nvme_resv_rtype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_resv_rtype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_resv_rtype" "March 2025" "API Manual" LINUX .SH NAME enum nvme_resv_rtype \- Reservation Type Encoding .SH SYNOPSIS diff --git a/doc/man/nvme_resv_status.2 b/doc/man/nvme_resv_status.2 index 4b19391..4c44a39 100644 --- a/doc/man/nvme_resv_status.2 +++ b/doc/man/nvme_resv_status.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_resv_status" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_resv_status" "March 2025" "API Manual" LINUX .SH NAME struct nvme_resv_status \- Reservation Status Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_revoke_tls_key.2 b/doc/man/nvme_revoke_tls_key.2 index a4fa187..fc69511 100644 --- a/doc/man/nvme_revoke_tls_key.2 +++ b/doc/man/nvme_revoke_tls_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_revoke_tls_key" 9 "nvme_revoke_tls_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_revoke_tls_key" 9 "nvme_revoke_tls_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_revoke_tls_key \- Revoke TLS key from keyring .SH SYNOPSIS diff --git a/doc/man/nvme_rotational_media_info_log.2 b/doc/man/nvme_rotational_media_info_log.2 new file mode 100644 index 0000000..772a8b5 --- /dev/null +++ b/doc/man/nvme_rotational_media_info_log.2 @@ -0,0 +1,47 @@ +.TH "libnvme" 9 "struct nvme_rotational_media_info_log" "March 2025" "API Manual" LINUX +.SH NAME +struct nvme_rotational_media_info_log \- Rotational Media Information Log +.SH SYNOPSIS +struct nvme_rotational_media_info_log { +.br +.BI " __le16 endgid;" +.br +.BI " __le16 numa;" +.br +.BI " __le16 nrs;" +.br +.BI " __u8 rsvd6[2];" +.br +.BI " __le32 spinc;" +.br +.BI " __le32 fspinc;" +.br +.BI " __le32 ldc;" +.br +.BI " __le32 fldc;" +.br +.BI " __u8 rsvd24[488];" +.br +.BI " +}; +.br + +.SH Members +.IP "endgid" 12 +Endurance Group Identifier +.IP "numa" 12 +Number of Actuators +.IP "nrs" 12 +Nominal Rotational Speed +.IP "rsvd6" 12 +Reserved +.IP "spinc" 12 +Spinup Count +.IP "fspinc" 12 +Failed Spinup Count +.IP "ldc" 12 +Load Count +.IP "fldc" 12 +Failed Load Count +.IP "rsvd24" 12 +Reserved diff --git a/doc/man/nvme_sanitize_compln_event.2 b/doc/man/nvme_sanitize_compln_event.2 index a513307..9ed5d1f 100644 --- a/doc/man/nvme_sanitize_compln_event.2 +++ b/doc/man/nvme_sanitize_compln_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_sanitize_compln_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_sanitize_compln_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_sanitize_compln_event \- Sanitize Completion Event Data .SH SYNOPSIS diff --git a/doc/man/nvme_sanitize_log_page.2 b/doc/man/nvme_sanitize_log_page.2 index 875f747..4594e76 100644 --- a/doc/man/nvme_sanitize_log_page.2 +++ b/doc/man/nvme_sanitize_log_page.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_sanitize_log_page" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_sanitize_log_page" "March 2025" "API Manual" LINUX .SH NAME struct nvme_sanitize_log_page \- Sanitize Status (Log Identifier 81h) .SH SYNOPSIS diff --git a/doc/man/nvme_sanitize_nvm.2 b/doc/man/nvme_sanitize_nvm.2 index 1e76e1f..772da06 100644 --- a/doc/man/nvme_sanitize_nvm.2 +++ b/doc/man/nvme_sanitize_nvm.2 @@ -1,4 +1,4 @@ -.TH "nvme_sanitize_nvm" 9 "nvme_sanitize_nvm" "November 2024" "libnvme API manual" LINUX +.TH "nvme_sanitize_nvm" 9 "nvme_sanitize_nvm" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_sanitize_nvm \- Start a sanitize operation .SH SYNOPSIS diff --git a/doc/man/nvme_sanitize_sanact.2 b/doc/man/nvme_sanitize_sanact.2 index ce6e499..5326ea2 100644 --- a/doc/man/nvme_sanitize_sanact.2 +++ b/doc/man/nvme_sanitize_sanact.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_sanitize_sanact" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_sanitize_sanact" "March 2025" "API Manual" LINUX .SH NAME enum nvme_sanitize_sanact \- Sanitize Action .SH SYNOPSIS diff --git a/doc/man/nvme_sanitize_ssi.2 b/doc/man/nvme_sanitize_ssi.2 index 31de356..5ba7120 100644 --- a/doc/man/nvme_sanitize_ssi.2 +++ b/doc/man/nvme_sanitize_ssi.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_sanitize_ssi" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_sanitize_ssi" "March 2025" "API Manual" LINUX .SH NAME enum nvme_sanitize_ssi \- Sanitize State Information (SSI) .SH SYNOPSIS diff --git a/doc/man/nvme_sanitize_sstat.2 b/doc/man/nvme_sanitize_sstat.2 index 41bbe27..7c71fd1 100644 --- a/doc/man/nvme_sanitize_sstat.2 +++ b/doc/man/nvme_sanitize_sstat.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_sanitize_sstat" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_sanitize_sstat" "March 2025" "API Manual" LINUX .SH NAME enum nvme_sanitize_sstat \- Sanitize Status (SSTAT) .SH SYNOPSIS diff --git a/doc/man/nvme_sanitize_start_event.2 b/doc/man/nvme_sanitize_start_event.2 index b8737a5..a0e0d3e 100644 --- a/doc/man/nvme_sanitize_start_event.2 +++ b/doc/man/nvme_sanitize_start_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_sanitize_start_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_sanitize_start_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_sanitize_start_event \- Sanitize Start Event Data .SH SYNOPSIS diff --git a/doc/man/nvme_scan.2 b/doc/man/nvme_scan.2 index d38f9c8..54ebae0 100644 --- a/doc/man/nvme_scan.2 +++ b/doc/man/nvme_scan.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan" 9 "nvme_scan" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan" 9 "nvme_scan" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan \- Scan NVMe topology .SH SYNOPSIS diff --git a/doc/man/nvme_scan_ctrl.2 b/doc/man/nvme_scan_ctrl.2 index e639adb..2f9276e 100644 --- a/doc/man/nvme_scan_ctrl.2 +++ b/doc/man/nvme_scan_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan_ctrl" 9 "nvme_scan_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan_ctrl" 9 "nvme_scan_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan_ctrl \- Scan on a controller .SH SYNOPSIS diff --git a/doc/man/nvme_scan_ctrl_namespace_paths.2 b/doc/man/nvme_scan_ctrl_namespace_paths.2 index 2b7791d..6fe9583 100644 --- a/doc/man/nvme_scan_ctrl_namespace_paths.2 +++ b/doc/man/nvme_scan_ctrl_namespace_paths.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan_ctrl_namespace_paths" 9 "nvme_scan_ctrl_namespace_paths" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan_ctrl_namespace_paths" 9 "nvme_scan_ctrl_namespace_paths" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan_ctrl_namespace_paths \- Scan for namespace paths in a controller .SH SYNOPSIS diff --git a/doc/man/nvme_scan_ctrl_namespaces.2 b/doc/man/nvme_scan_ctrl_namespaces.2 index 89bab92..e9fbfa8 100644 --- a/doc/man/nvme_scan_ctrl_namespaces.2 +++ b/doc/man/nvme_scan_ctrl_namespaces.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan_ctrl_namespaces" 9 "nvme_scan_ctrl_namespaces" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan_ctrl_namespaces" 9 "nvme_scan_ctrl_namespaces" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan_ctrl_namespaces \- Scan for namespaces in a controller .SH SYNOPSIS diff --git a/doc/man/nvme_scan_ctrls.2 b/doc/man/nvme_scan_ctrls.2 index d9d59af..680c2f6 100644 --- a/doc/man/nvme_scan_ctrls.2 +++ b/doc/man/nvme_scan_ctrls.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan_ctrls" 9 "nvme_scan_ctrls" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan_ctrls" 9 "nvme_scan_ctrls" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan_ctrls \- Scan for controllers .SH SYNOPSIS diff --git a/doc/man/nvme_scan_namespace.2 b/doc/man/nvme_scan_namespace.2 index c9db546..bb53230 100644 --- a/doc/man/nvme_scan_namespace.2 +++ b/doc/man/nvme_scan_namespace.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan_namespace" 9 "nvme_scan_namespace" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan_namespace" 9 "nvme_scan_namespace" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan_namespace \- scan namespace based on sysfs name .SH SYNOPSIS diff --git a/doc/man/nvme_scan_subsystem_namespaces.2 b/doc/man/nvme_scan_subsystem_namespaces.2 index 7a368ee..9c388e5 100644 --- a/doc/man/nvme_scan_subsystem_namespaces.2 +++ b/doc/man/nvme_scan_subsystem_namespaces.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan_subsystem_namespaces" 9 "nvme_scan_subsystem_namespaces" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan_subsystem_namespaces" 9 "nvme_scan_subsystem_namespaces" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan_subsystem_namespaces \- Scan for namespaces in a subsystem .SH SYNOPSIS diff --git a/doc/man/nvme_scan_subsystems.2 b/doc/man/nvme_scan_subsystems.2 index f483ed3..f5ddd28 100644 --- a/doc/man/nvme_scan_subsystems.2 +++ b/doc/man/nvme_scan_subsystems.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan_subsystems" 9 "nvme_scan_subsystems" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan_subsystems" 9 "nvme_scan_subsystems" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan_subsystems \- Scan for subsystems .SH SYNOPSIS diff --git a/doc/man/nvme_scan_tls_keys.2 b/doc/man/nvme_scan_tls_keys.2 index d33bce6..5381100 100644 --- a/doc/man/nvme_scan_tls_keys.2 +++ b/doc/man/nvme_scan_tls_keys.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan_tls_keys" 9 "nvme_scan_tls_keys" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan_tls_keys" 9 "nvme_scan_tls_keys" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan_tls_keys \- Iterate over TLS keys in a keyring .SH SYNOPSIS diff --git a/doc/man/nvme_scan_topology.2 b/doc/man/nvme_scan_topology.2 index 7a89345..5f6d4c6 100644 --- a/doc/man/nvme_scan_topology.2 +++ b/doc/man/nvme_scan_topology.2 @@ -1,4 +1,4 @@ -.TH "nvme_scan_topology" 9 "nvme_scan_topology" "November 2024" "libnvme API manual" LINUX +.TH "nvme_scan_topology" 9 "nvme_scan_topology" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_scan_topology \- Scan NVMe topology and apply filter .SH SYNOPSIS diff --git a/doc/man/nvme_secondary_ctrl.2 b/doc/man/nvme_secondary_ctrl.2 index c7d6cc2..0ad895d 100644 --- a/doc/man/nvme_secondary_ctrl.2 +++ b/doc/man/nvme_secondary_ctrl.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_secondary_ctrl" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_secondary_ctrl" "March 2025" "API Manual" LINUX .SH NAME struct nvme_secondary_ctrl \- Secondary Controller Entry .SH SYNOPSIS diff --git a/doc/man/nvme_secondary_ctrl_list.2 b/doc/man/nvme_secondary_ctrl_list.2 index ddb6ea2..153a9b0 100644 --- a/doc/man/nvme_secondary_ctrl_list.2 +++ b/doc/man/nvme_secondary_ctrl_list.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_secondary_ctrl_list" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_secondary_ctrl_list" "March 2025" "API Manual" LINUX .SH NAME struct nvme_secondary_ctrl_list \- Secondary Controller List .SH SYNOPSIS diff --git a/doc/man/nvme_security_receive.2 b/doc/man/nvme_security_receive.2 index 82ebbc1..ebf8089 100644 --- a/doc/man/nvme_security_receive.2 +++ b/doc/man/nvme_security_receive.2 @@ -1,4 +1,4 @@ -.TH "nvme_security_receive" 9 "nvme_security_receive" "November 2024" "libnvme API manual" LINUX +.TH "nvme_security_receive" 9 "nvme_security_receive" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_security_receive \- Security Receive command .SH SYNOPSIS diff --git a/doc/man/nvme_security_send.2 b/doc/man/nvme_security_send.2 index 5f554a1..47c75f7 100644 --- a/doc/man/nvme_security_send.2 +++ b/doc/man/nvme_security_send.2 @@ -1,4 +1,4 @@ -.TH "nvme_security_send" 9 "nvme_security_send" "November 2024" "libnvme API manual" LINUX +.TH "nvme_security_send" 9 "nvme_security_send" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_security_send \- Security Send command .SH SYNOPSIS diff --git a/doc/man/nvme_self_test_log.2 b/doc/man/nvme_self_test_log.2 index cd31ff1..1e65bc1 100644 --- a/doc/man/nvme_self_test_log.2 +++ b/doc/man/nvme_self_test_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_self_test_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_self_test_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_self_test_log \- Device Self-test (Log Identifier 06h) .SH SYNOPSIS diff --git a/doc/man/nvme_set_feat_event_layout.2 b/doc/man/nvme_set_feat_event_layout.2 index cc64c8f..ae6a431 100644 --- a/doc/man/nvme_set_feat_event_layout.2 +++ b/doc/man/nvme_set_feat_event_layout.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_set_feat_event_layout" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_set_feat_event_layout" "March 2025" "API Manual" LINUX .SH NAME enum nvme_set_feat_event_layout \- This field indicates the set feature event layout .SH SYNOPSIS diff --git a/doc/man/nvme_set_feature_event.2 b/doc/man/nvme_set_feature_event.2 index 79cc245..850256d 100644 --- a/doc/man/nvme_set_feature_event.2 +++ b/doc/man/nvme_set_feature_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_set_feature_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_set_feature_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_set_feature_event \- Set Feature Event Data .SH SYNOPSIS diff --git a/doc/man/nvme_set_features.2 b/doc/man/nvme_set_features.2 index 21a2748..d830460 100644 --- a/doc/man/nvme_set_features.2 +++ b/doc/man/nvme_set_features.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features" 9 "nvme_set_features" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features" 9 "nvme_set_features" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features \- Set a feature attribute .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_arbitration.2 b/doc/man/nvme_set_features_arbitration.2 index 272883f..20e18a5 100644 --- a/doc/man/nvme_set_features_arbitration.2 +++ b/doc/man/nvme_set_features_arbitration.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_arbitration" 9 "nvme_set_features_arbitration" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_arbitration" 9 "nvme_set_features_arbitration" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_arbitration \- Set arbitration features .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_async_event.2 b/doc/man/nvme_set_features_async_event.2 index 40050ac..c91dd37 100644 --- a/doc/man/nvme_set_features_async_event.2 +++ b/doc/man/nvme_set_features_async_event.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_async_event" 9 "nvme_set_features_async_event" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_async_event" 9 "nvme_set_features_async_event" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_async_event \- Set asynchronous event feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_auto_pst.2 b/doc/man/nvme_set_features_auto_pst.2 index a3685ae..0185f40 100644 --- a/doc/man/nvme_set_features_auto_pst.2 +++ b/doc/man/nvme_set_features_auto_pst.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_auto_pst" 9 "nvme_set_features_auto_pst" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_auto_pst" 9 "nvme_set_features_auto_pst" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_auto_pst \- Set autonomous power state feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_data.2 b/doc/man/nvme_set_features_data.2 index 4d875dd..ba02909 100644 --- a/doc/man/nvme_set_features_data.2 +++ b/doc/man/nvme_set_features_data.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_data" 9 "nvme_set_features_data" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_data" 9 "nvme_set_features_data" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_data \- Helper function for @nvme_set_features() .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_endurance_evt_cfg.2 b/doc/man/nvme_set_features_endurance_evt_cfg.2 index abedc92..10d294e 100644 --- a/doc/man/nvme_set_features_endurance_evt_cfg.2 +++ b/doc/man/nvme_set_features_endurance_evt_cfg.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_endurance_evt_cfg" 9 "nvme_set_features_endurance_evt_cfg" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_endurance_evt_cfg" 9 "nvme_set_features_endurance_evt_cfg" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_endurance_evt_cfg \- Set endurance event config feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_err_recovery.2 b/doc/man/nvme_set_features_err_recovery.2 index 6192939..4b77e25 100644 --- a/doc/man/nvme_set_features_err_recovery.2 +++ b/doc/man/nvme_set_features_err_recovery.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_err_recovery" 9 "nvme_set_features_err_recovery" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_err_recovery" 9 "nvme_set_features_err_recovery" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_err_recovery \- Set error recovery feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_hctm.2 b/doc/man/nvme_set_features_hctm.2 index 3601d0d..123a02d 100644 --- a/doc/man/nvme_set_features_hctm.2 +++ b/doc/man/nvme_set_features_hctm.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_hctm" 9 "nvme_set_features_hctm" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_hctm" 9 "nvme_set_features_hctm" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_hctm \- Set thermal management feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_host_behavior.2 b/doc/man/nvme_set_features_host_behavior.2 index c14a5e6..937a578 100644 --- a/doc/man/nvme_set_features_host_behavior.2 +++ b/doc/man/nvme_set_features_host_behavior.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_host_behavior" 9 "nvme_set_features_host_behavior" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_host_behavior" 9 "nvme_set_features_host_behavior" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_host_behavior \- Set host behavior feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_host_id.2 b/doc/man/nvme_set_features_host_id.2 index 94bc402..cc49618 100644 --- a/doc/man/nvme_set_features_host_id.2 +++ b/doc/man/nvme_set_features_host_id.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_host_id" 9 "nvme_set_features_host_id" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_host_id" 9 "nvme_set_features_host_id" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_host_id \- Set enable extended host identifiers feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_iocs_profile.2 b/doc/man/nvme_set_features_iocs_profile.2 index 94b6507..d082600 100644 --- a/doc/man/nvme_set_features_iocs_profile.2 +++ b/doc/man/nvme_set_features_iocs_profile.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_iocs_profile" 9 "nvme_set_features_iocs_profile" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_iocs_profile" 9 "nvme_set_features_iocs_profile" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_iocs_profile \- Set I/O command set profile feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_irq_coalesce.2 b/doc/man/nvme_set_features_irq_coalesce.2 index 01efdf9..bd2c65c 100644 --- a/doc/man/nvme_set_features_irq_coalesce.2 +++ b/doc/man/nvme_set_features_irq_coalesce.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_irq_coalesce" 9 "nvme_set_features_irq_coalesce" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_irq_coalesce" 9 "nvme_set_features_irq_coalesce" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_irq_coalesce \- Set IRQ coalesce feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_irq_config.2 b/doc/man/nvme_set_features_irq_config.2 index e25e43d..eea1798 100644 --- a/doc/man/nvme_set_features_irq_config.2 +++ b/doc/man/nvme_set_features_irq_config.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_irq_config" 9 "nvme_set_features_irq_config" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_irq_config" 9 "nvme_set_features_irq_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_irq_config \- Set IRQ config feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_lba_range.2 b/doc/man/nvme_set_features_lba_range.2 index ddc49e8..b3341d7 100644 --- a/doc/man/nvme_set_features_lba_range.2 +++ b/doc/man/nvme_set_features_lba_range.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_lba_range" 9 "nvme_set_features_lba_range" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_lba_range" 9 "nvme_set_features_lba_range" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_lba_range \- Set LBA range feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_lba_sts_interval.2 b/doc/man/nvme_set_features_lba_sts_interval.2 index 80206e8..55178be 100644 --- a/doc/man/nvme_set_features_lba_sts_interval.2 +++ b/doc/man/nvme_set_features_lba_sts_interval.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_lba_sts_interval" 9 "nvme_set_features_lba_sts_interval" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_lba_sts_interval" 9 "nvme_set_features_lba_sts_interval" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_lba_sts_interval \- Set LBA status information feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_nopsc.2 b/doc/man/nvme_set_features_nopsc.2 index db73246..dfb80a6 100644 --- a/doc/man/nvme_set_features_nopsc.2 +++ b/doc/man/nvme_set_features_nopsc.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_nopsc" 9 "nvme_set_features_nopsc" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_nopsc" 9 "nvme_set_features_nopsc" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_nopsc \- Set non-operational power state feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_plm_config.2 b/doc/man/nvme_set_features_plm_config.2 index 1beea3a..1427ba0 100644 --- a/doc/man/nvme_set_features_plm_config.2 +++ b/doc/man/nvme_set_features_plm_config.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_plm_config" 9 "nvme_set_features_plm_config" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_plm_config" 9 "nvme_set_features_plm_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_plm_config \- Set predictable latency feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_plm_window.2 b/doc/man/nvme_set_features_plm_window.2 index a8f0a20..60b0b82 100644 --- a/doc/man/nvme_set_features_plm_window.2 +++ b/doc/man/nvme_set_features_plm_window.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_plm_window" 9 "nvme_set_features_plm_window" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_plm_window" 9 "nvme_set_features_plm_window" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_plm_window \- Set window select feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_power_mgmt.2 b/doc/man/nvme_set_features_power_mgmt.2 index 2a8427b..31114c8 100644 --- a/doc/man/nvme_set_features_power_mgmt.2 +++ b/doc/man/nvme_set_features_power_mgmt.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_power_mgmt" 9 "nvme_set_features_power_mgmt" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_power_mgmt" 9 "nvme_set_features_power_mgmt" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_power_mgmt \- Set power management feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_resv_mask.2 b/doc/man/nvme_set_features_resv_mask.2 index aacdf4d..58de8ce 100644 --- a/doc/man/nvme_set_features_resv_mask.2 +++ b/doc/man/nvme_set_features_resv_mask.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_resv_mask" 9 "nvme_set_features_resv_mask" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_resv_mask" 9 "nvme_set_features_resv_mask" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_resv_mask \- Set reservation notification mask feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_resv_mask2.2 b/doc/man/nvme_set_features_resv_mask2.2 index 290491f..35d0970 100644 --- a/doc/man/nvme_set_features_resv_mask2.2 +++ b/doc/man/nvme_set_features_resv_mask2.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_resv_mask2" 9 "nvme_set_features_resv_mask2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_resv_mask2" 9 "nvme_set_features_resv_mask2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_resv_mask2 \- Set reservation notification mask feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_resv_persist.2 b/doc/man/nvme_set_features_resv_persist.2 index a0066cb..fbb7806 100644 --- a/doc/man/nvme_set_features_resv_persist.2 +++ b/doc/man/nvme_set_features_resv_persist.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_resv_persist" 9 "nvme_set_features_resv_persist" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_resv_persist" 9 "nvme_set_features_resv_persist" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_resv_persist \- Set persist through power loss feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_resv_persist2.2 b/doc/man/nvme_set_features_resv_persist2.2 index 9772758..42e4796 100644 --- a/doc/man/nvme_set_features_resv_persist2.2 +++ b/doc/man/nvme_set_features_resv_persist2.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_resv_persist2" 9 "nvme_set_features_resv_persist2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_resv_persist2" 9 "nvme_set_features_resv_persist2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_resv_persist2 \- Set persist through power loss feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_rrl.2 b/doc/man/nvme_set_features_rrl.2 index 3cc451d..612e695 100644 --- a/doc/man/nvme_set_features_rrl.2 +++ b/doc/man/nvme_set_features_rrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_rrl" 9 "nvme_set_features_rrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_rrl" 9 "nvme_set_features_rrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_rrl \- Set read recovery level feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_sanitize.2 b/doc/man/nvme_set_features_sanitize.2 index de83573..ebbb320 100644 --- a/doc/man/nvme_set_features_sanitize.2 +++ b/doc/man/nvme_set_features_sanitize.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_sanitize" 9 "nvme_set_features_sanitize" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_sanitize" 9 "nvme_set_features_sanitize" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_sanitize \- Set sanitize feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_simple.2 b/doc/man/nvme_set_features_simple.2 index 6ac1be6..2068bb6 100644 --- a/doc/man/nvme_set_features_simple.2 +++ b/doc/man/nvme_set_features_simple.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_simple" 9 "nvme_set_features_simple" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_simple" 9 "nvme_set_features_simple" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_simple \- Helper function for @nvme_set_features() .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_sw_progress.2 b/doc/man/nvme_set_features_sw_progress.2 index b322a63..87a5b3e 100644 --- a/doc/man/nvme_set_features_sw_progress.2 +++ b/doc/man/nvme_set_features_sw_progress.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_sw_progress" 9 "nvme_set_features_sw_progress" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_sw_progress" 9 "nvme_set_features_sw_progress" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_sw_progress \- Set pre-boot software load count feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_temp_thresh.2 b/doc/man/nvme_set_features_temp_thresh.2 index 6a11b84..0920896 100644 --- a/doc/man/nvme_set_features_temp_thresh.2 +++ b/doc/man/nvme_set_features_temp_thresh.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_temp_thresh" 9 "nvme_set_features_temp_thresh" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_temp_thresh" 9 "nvme_set_features_temp_thresh" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_temp_thresh \- Set temperature threshold feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_timestamp.2 b/doc/man/nvme_set_features_timestamp.2 index 2cc2a2d..969a5e4 100644 --- a/doc/man/nvme_set_features_timestamp.2 +++ b/doc/man/nvme_set_features_timestamp.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_timestamp" 9 "nvme_set_features_timestamp" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_timestamp" 9 "nvme_set_features_timestamp" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_timestamp \- Set timestamp feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_volatile_wc.2 b/doc/man/nvme_set_features_volatile_wc.2 index d6a8b9a..cd39da0 100644 --- a/doc/man/nvme_set_features_volatile_wc.2 +++ b/doc/man/nvme_set_features_volatile_wc.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_volatile_wc" 9 "nvme_set_features_volatile_wc" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_volatile_wc" 9 "nvme_set_features_volatile_wc" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_volatile_wc \- Set volatile write cache feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_write_atomic.2 b/doc/man/nvme_set_features_write_atomic.2 index 63e180d..2e0f5ee 100644 --- a/doc/man/nvme_set_features_write_atomic.2 +++ b/doc/man/nvme_set_features_write_atomic.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_write_atomic" 9 "nvme_set_features_write_atomic" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_write_atomic" 9 "nvme_set_features_write_atomic" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_write_atomic \- Set write atomic feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_write_protect.2 b/doc/man/nvme_set_features_write_protect.2 index a27329b..937a53f 100644 --- a/doc/man/nvme_set_features_write_protect.2 +++ b/doc/man/nvme_set_features_write_protect.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_write_protect" 9 "nvme_set_features_write_protect" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_write_protect" 9 "nvme_set_features_write_protect" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_write_protect \- Set write protect feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_features_write_protect2.2 b/doc/man/nvme_set_features_write_protect2.2 index 15348be..54b56c4 100644 --- a/doc/man/nvme_set_features_write_protect2.2 +++ b/doc/man/nvme_set_features_write_protect2.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_features_write_protect2" 9 "nvme_set_features_write_protect2" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_features_write_protect2" 9 "nvme_set_features_write_protect2" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_features_write_protect2 \- Set write protect feature .SH SYNOPSIS diff --git a/doc/man/nvme_set_keyring.2 b/doc/man/nvme_set_keyring.2 index 138ca67..2d9b920 100644 --- a/doc/man/nvme_set_keyring.2 +++ b/doc/man/nvme_set_keyring.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_keyring" 9 "nvme_set_keyring" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_keyring" 9 "nvme_set_keyring" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_keyring \- Link keyring for lookup .SH SYNOPSIS diff --git a/doc/man/nvme_set_property.2 b/doc/man/nvme_set_property.2 index 3af06c1..9d6acd4 100644 --- a/doc/man/nvme_set_property.2 +++ b/doc/man/nvme_set_property.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_property" 9 "nvme_set_property" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_property" 9 "nvme_set_property" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_property \- Set controller property .SH SYNOPSIS diff --git a/doc/man/nvme_set_root.2 b/doc/man/nvme_set_root.2 index 11c6785..2426d2c 100644 --- a/doc/man/nvme_set_root.2 +++ b/doc/man/nvme_set_root.2 @@ -1,4 +1,4 @@ -.TH "nvme_set_root" 9 "nvme_set_root" "November 2024" "libnvme API manual" LINUX +.TH "nvme_set_root" 9 "nvme_set_root" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_set_root \- Set nvme_root_t context .SH SYNOPSIS diff --git a/doc/man/nvme_smart_crit.2 b/doc/man/nvme_smart_crit.2 index a0a6bb0..70beaa3 100644 --- a/doc/man/nvme_smart_crit.2 +++ b/doc/man/nvme_smart_crit.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_smart_crit" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_smart_crit" "March 2025" "API Manual" LINUX .SH NAME enum nvme_smart_crit \- Critical Warning .SH SYNOPSIS diff --git a/doc/man/nvme_smart_egcw.2 b/doc/man/nvme_smart_egcw.2 index b5ba6a6..fd44292 100644 --- a/doc/man/nvme_smart_egcw.2 +++ b/doc/man/nvme_smart_egcw.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_smart_egcw" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_smart_egcw" "March 2025" "API Manual" LINUX .SH NAME enum nvme_smart_egcw \- Endurance Group Critical Warning Summary .SH SYNOPSIS diff --git a/doc/man/nvme_smart_log.2 b/doc/man/nvme_smart_log.2 index 088373a..e153660 100644 --- a/doc/man/nvme_smart_log.2 +++ b/doc/man/nvme_smart_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_smart_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_smart_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_smart_log \- SMART / Health Information Log (Log Identifier 02h) .SH SYNOPSIS diff --git a/doc/man/nvme_st_code.2 b/doc/man/nvme_st_code.2 index 07b00cd..8155c5c 100644 --- a/doc/man/nvme_st_code.2 +++ b/doc/man/nvme_st_code.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_st_code" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_st_code" "March 2025" "API Manual" LINUX .SH NAME enum nvme_st_code \- Self-test Code value .SH SYNOPSIS @@ -16,6 +16,10 @@ enum nvme_st_code { , .br .br +.BI " NVME_ST_CODE_HOST_INIT" +, +.br +.br .BI " NVME_ST_CODE_VS" , .br @@ -34,6 +38,8 @@ Reserved. Short device self-test operation. .IP "NVME_ST_CODE_EXTENDED" 12 Extended device self-test operation. +.IP "NVME_ST_CODE_HOST_INIT" 12 +Host-Initiated Refresh operation. .IP "NVME_ST_CODE_VS" 12 Vendor specific. .IP "NVME_ST_CODE_ABORT" 12 diff --git a/doc/man/nvme_st_curr_op.2 b/doc/man/nvme_st_curr_op.2 index 2899308..3f5f18f 100644 --- a/doc/man/nvme_st_curr_op.2 +++ b/doc/man/nvme_st_curr_op.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_st_curr_op" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_st_curr_op" "March 2025" "API Manual" LINUX .SH NAME enum nvme_st_curr_op \- Current Device Self-Test Operation .SH SYNOPSIS diff --git a/doc/man/nvme_st_result.2 b/doc/man/nvme_st_result.2 index d33e5f5..34aeb7c 100644 --- a/doc/man/nvme_st_result.2 +++ b/doc/man/nvme_st_result.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_st_result" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_st_result" "March 2025" "API Manual" LINUX .SH NAME struct nvme_st_result \- Self-test Result .SH SYNOPSIS diff --git a/doc/man/nvme_st_valid_diag_info.2 b/doc/man/nvme_st_valid_diag_info.2 index caa3d85..326a16c 100644 --- a/doc/man/nvme_st_valid_diag_info.2 +++ b/doc/man/nvme_st_valid_diag_info.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_st_valid_diag_info" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_st_valid_diag_info" "March 2025" "API Manual" LINUX .SH NAME enum nvme_st_valid_diag_info \- Valid Diagnostic Information .SH SYNOPSIS diff --git a/doc/man/nvme_status_code.2 b/doc/man/nvme_status_code.2 index af83958..4ff2230 100644 --- a/doc/man/nvme_status_code.2 +++ b/doc/man/nvme_status_code.2 @@ -1,4 +1,4 @@ -.TH "nvme_status_code" 9 "nvme_status_code" "November 2024" "libnvme API manual" LINUX +.TH "nvme_status_code" 9 "nvme_status_code" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_status_code \- Returns the NVMe Status Code .SH SYNOPSIS diff --git a/doc/man/nvme_status_code_type.2 b/doc/man/nvme_status_code_type.2 index 2665b65..f51cd6e 100644 --- a/doc/man/nvme_status_code_type.2 +++ b/doc/man/nvme_status_code_type.2 @@ -1,4 +1,4 @@ -.TH "nvme_status_code_type" 9 "nvme_status_code_type" "November 2024" "libnvme API manual" LINUX +.TH "nvme_status_code_type" 9 "nvme_status_code_type" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_status_code_type \- Returns the NVMe Status Code Type .SH SYNOPSIS diff --git a/doc/man/nvme_status_equals.2 b/doc/man/nvme_status_equals.2 index 53f4954..41e290c 100644 --- a/doc/man/nvme_status_equals.2 +++ b/doc/man/nvme_status_equals.2 @@ -1,4 +1,4 @@ -.TH "nvme_status_equals" 9 "nvme_status_equals" "November 2024" "libnvme API manual" LINUX +.TH "nvme_status_equals" 9 "nvme_status_equals" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_status_equals \- helper to check a status against a type and value .SH SYNOPSIS diff --git a/doc/man/nvme_status_field.2 b/doc/man/nvme_status_field.2 index b7acbcd..c428351 100644 --- a/doc/man/nvme_status_field.2 +++ b/doc/man/nvme_status_field.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_status_field" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_status_field" "March 2025" "API Manual" LINUX .SH NAME enum nvme_status_field \- Defines all parts of the nvme status field: status code, status code type, and additional flags. .SH SYNOPSIS @@ -184,6 +184,22 @@ enum nvme_status_field { , .br .br +.BI " NVME_SC_INVALID_KEY_TAG" +, +.br +.br +.BI " NVME_SC_HOST_DISPERSED_NS_NOT_ENABLED" +, +.br +.br +.BI " NVME_SC_HOST_ID_NOT_INITIALIZED" +, +.br +.br +.BI " NVME_SC_INCORRECT_KEY" +, +.br +.br .BI " NVME_SC_FDP_DISABLED" , .br @@ -212,6 +228,26 @@ enum nvme_status_field { , .br .br +.BI " NVME_SC_INVALID_VALUE_SIZE" +, +.br +.br +.BI " NVME_SC_INVALID_KEY_SIZE" +, +.br +.br +.BI " NVME_SC_KV_KEY_NOT_EXISTS" +, +.br +.br +.BI " NVME_SC_UNRECOVERED_ERROR" +, +.br +.br +.BI " NVME_SC_KEY_EXISTS" +, +.br +.br .BI " NVME_SC_CQ_INVALID" , .br @@ -817,6 +853,18 @@ the Command and Feature Lockdown. Admin Command Media Not Ready: The Admin command requires access to media and the media is not ready. +.IP "NVME_SC_INVALID_KEY_TAG" 12 +The command was aborted due to an invalid KEYTAG +field value. +.IP "NVME_SC_HOST_DISPERSED_NS_NOT_ENABLED" 12 +The command is prohibited while the +Host Disperesed Namespace Support (HDISNS) field is not +set to 1h in the Host Behavior Support feature. +.IP "NVME_SC_HOST_ID_NOT_INITIALIZED" 12 +Host Identifier Not Initialized. +.IP "NVME_SC_INCORRECT_KEY" 12 +The command was aborted due to the key associated +with the KEYTAG field being incorrect. .IP "NVME_SC_FDP_DISABLED" 12 Command is not allowed when Flexible Data Placement is disabled. @@ -847,6 +895,20 @@ namespace. .IP "NVME_SC_FORMAT_IN_PROGRESS" 12 Format In Progress: A Format NVM command is in progress on the namespace. +.IP "NVME_SC_INVALID_VALUE_SIZE" 12 +The value size is not valid. +.IP "NVME_SC_INVALID_KEY_SIZE" 12 +The KV key size is not valid. +.IP "NVME_SC_KV_KEY_NOT_EXISTS" 12 +The Store If Key Exists (SIKE) bit is set to +'1' in the Store Option field and the KV key does not +exists. +.IP "NVME_SC_UNRECOVERED_ERROR" 12 +There was an unrecovered error when reading +from the meidum. +.IP "NVME_SC_KEY_EXISTS" 12 +The Store If No Key Exists (SINKE) bit is set to '1' +in the Store Option field and the KV key exists. .IP "NVME_SC_CQ_INVALID" 12 Completion Queue Invalid: The Completion Queue identifier specified in the command diff --git a/doc/man/nvme_status_get_type.2 b/doc/man/nvme_status_get_type.2 index ef5e478..be840e0 100644 --- a/doc/man/nvme_status_get_type.2 +++ b/doc/man/nvme_status_get_type.2 @@ -1,4 +1,4 @@ -.TH "nvme_status_get_type" 9 "nvme_status_get_type" "November 2024" "libnvme API manual" LINUX +.TH "nvme_status_get_type" 9 "nvme_status_get_type" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_status_get_type \- extract the type from a nvme_* return value .SH SYNOPSIS diff --git a/doc/man/nvme_status_get_value.2 b/doc/man/nvme_status_get_value.2 index b8f9082..d8bdd74 100644 --- a/doc/man/nvme_status_get_value.2 +++ b/doc/man/nvme_status_get_value.2 @@ -1,4 +1,4 @@ -.TH "nvme_status_get_value" 9 "nvme_status_get_value" "November 2024" "libnvme API manual" LINUX +.TH "nvme_status_get_value" 9 "nvme_status_get_value" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_status_get_value \- extract the status value from a nvme_* return value .SH SYNOPSIS diff --git a/doc/man/nvme_status_result.2 b/doc/man/nvme_status_result.2 index 19e0d25..15e2fbc 100644 --- a/doc/man/nvme_status_result.2 +++ b/doc/man/nvme_status_result.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_status_result" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_status_result" "March 2025" "API Manual" LINUX .SH NAME enum nvme_status_result \- Result of the device self-test operation .SH SYNOPSIS diff --git a/doc/man/nvme_status_to_errno.2 b/doc/man/nvme_status_to_errno.2 index fc2347e..459bf37 100644 --- a/doc/man/nvme_status_to_errno.2 +++ b/doc/man/nvme_status_to_errno.2 @@ -1,4 +1,4 @@ -.TH "nvme_status_to_errno" 9 "nvme_status_to_errno" "November 2024" "libnvme API manual" LINUX +.TH "nvme_status_to_errno" 9 "nvme_status_to_errno" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_status_to_errno \- Converts nvme return status to errno .SH SYNOPSIS diff --git a/doc/man/nvme_status_to_string.2 b/doc/man/nvme_status_to_string.2 index d0edf7f..b1fd197 100644 --- a/doc/man/nvme_status_to_string.2 +++ b/doc/man/nvme_status_to_string.2 @@ -1,4 +1,4 @@ -.TH "nvme_status_to_string" 9 "nvme_status_to_string" "November 2024" "libnvme API manual" LINUX +.TH "nvme_status_to_string" 9 "nvme_status_to_string" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_status_to_string \- Returns string describing nvme return status. .SH SYNOPSIS diff --git a/doc/man/nvme_status_type.2 b/doc/man/nvme_status_type.2 index aab013b..1ebf2d3 100644 --- a/doc/man/nvme_status_type.2 +++ b/doc/man/nvme_status_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_status_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_status_type" "March 2025" "API Manual" LINUX .SH NAME enum nvme_status_type \- type encoding for NVMe return values, when represented as an int. .SH SYNOPSIS diff --git a/doc/man/nvme_streams_directive_params.2 b/doc/man/nvme_streams_directive_params.2 index d333126..5a2d9e0 100644 --- a/doc/man/nvme_streams_directive_params.2 +++ b/doc/man/nvme_streams_directive_params.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_streams_directive_params" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_streams_directive_params" "March 2025" "API Manual" LINUX .SH NAME struct nvme_streams_directive_params \- Streams Directive - Return Parameters Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_streams_directive_status.2 b/doc/man/nvme_streams_directive_status.2 index 5b99662..d012ac1 100644 --- a/doc/man/nvme_streams_directive_status.2 +++ b/doc/man/nvme_streams_directive_status.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_streams_directive_status" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_streams_directive_status" "March 2025" "API Manual" LINUX .SH NAME struct nvme_streams_directive_status \- Streams Directive - Get Status Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_submit_admin_passthru.2 b/doc/man/nvme_submit_admin_passthru.2 index aa343ad..3010939 100644 --- a/doc/man/nvme_submit_admin_passthru.2 +++ b/doc/man/nvme_submit_admin_passthru.2 @@ -1,4 +1,4 @@ -.TH "nvme_submit_admin_passthru" 9 "nvme_submit_admin_passthru" "November 2024" "libnvme API manual" LINUX +.TH "nvme_submit_admin_passthru" 9 "nvme_submit_admin_passthru" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_submit_admin_passthru \- Submit an nvme passthrough admin command .SH SYNOPSIS diff --git a/doc/man/nvme_submit_admin_passthru64.2 b/doc/man/nvme_submit_admin_passthru64.2 index 43d8974..1c5e423 100644 --- a/doc/man/nvme_submit_admin_passthru64.2 +++ b/doc/man/nvme_submit_admin_passthru64.2 @@ -1,4 +1,4 @@ -.TH "nvme_submit_admin_passthru64" 9 "nvme_submit_admin_passthru64" "November 2024" "libnvme API manual" LINUX +.TH "nvme_submit_admin_passthru64" 9 "nvme_submit_admin_passthru64" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_submit_admin_passthru64 \- Submit a 64-bit nvme passthrough admin command .SH SYNOPSIS diff --git a/doc/man/nvme_submit_io_passthru.2 b/doc/man/nvme_submit_io_passthru.2 index 69df3d1..95de44b 100644 --- a/doc/man/nvme_submit_io_passthru.2 +++ b/doc/man/nvme_submit_io_passthru.2 @@ -1,4 +1,4 @@ -.TH "nvme_submit_io_passthru" 9 "nvme_submit_io_passthru" "November 2024" "libnvme API manual" LINUX +.TH "nvme_submit_io_passthru" 9 "nvme_submit_io_passthru" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_submit_io_passthru \- Submit an nvme passthrough command .SH SYNOPSIS diff --git a/doc/man/nvme_submit_io_passthru64.2 b/doc/man/nvme_submit_io_passthru64.2 index 7e16858..6f0157f 100644 --- a/doc/man/nvme_submit_io_passthru64.2 +++ b/doc/man/nvme_submit_io_passthru64.2 @@ -1,4 +1,4 @@ -.TH "nvme_submit_io_passthru64" 9 "nvme_submit_io_passthru64" "November 2024" "libnvme API manual" LINUX +.TH "nvme_submit_io_passthru64" 9 "nvme_submit_io_passthru64" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_submit_io_passthru64 \- Submit a 64-bit nvme passthrough command .SH SYNOPSIS diff --git a/doc/man/nvme_subsys_filter.2 b/doc/man/nvme_subsys_filter.2 index ebe520f..70602f4 100644 --- a/doc/man/nvme_subsys_filter.2 +++ b/doc/man/nvme_subsys_filter.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsys_filter" 9 "nvme_subsys_filter" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsys_filter" 9 "nvme_subsys_filter" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsys_filter \- Filter for subsystems .SH SYNOPSIS diff --git a/doc/man/nvme_subsys_type.2 b/doc/man/nvme_subsys_type.2 index 0af8de2..32504c9 100644 --- a/doc/man/nvme_subsys_type.2 +++ b/doc/man/nvme_subsys_type.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_subsys_type" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_subsys_type" "March 2025" "API Manual" LINUX .SH NAME enum nvme_subsys_type \- Type of the NVM subsystem. .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_first_ctrl.2 b/doc/man/nvme_subsystem_first_ctrl.2 index 3b3fdaa..5a7b153 100644 --- a/doc/man/nvme_subsystem_first_ctrl.2 +++ b/doc/man/nvme_subsystem_first_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_first_ctrl" 9 "nvme_subsystem_first_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_first_ctrl" 9 "nvme_subsystem_first_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_first_ctrl \- First ctrl iterator .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_first_ns.2 b/doc/man/nvme_subsystem_first_ns.2 index f48a54f..e384261 100644 --- a/doc/man/nvme_subsystem_first_ns.2 +++ b/doc/man/nvme_subsystem_first_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_first_ns" 9 "nvme_subsystem_first_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_first_ns" 9 "nvme_subsystem_first_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_first_ns \- Start namespace iterator .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_for_each_ctrl.2 b/doc/man/nvme_subsystem_for_each_ctrl.2 index e42eefe..a890ba4 100644 --- a/doc/man/nvme_subsystem_for_each_ctrl.2 +++ b/doc/man/nvme_subsystem_for_each_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_for_each_ctrl" 9 "nvme_subsystem_for_each_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_for_each_ctrl" 9 "nvme_subsystem_for_each_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_for_each_ctrl \- Traverse controllers .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_for_each_ctrl_safe.2 b/doc/man/nvme_subsystem_for_each_ctrl_safe.2 index 25f4f54..298f69e 100644 --- a/doc/man/nvme_subsystem_for_each_ctrl_safe.2 +++ b/doc/man/nvme_subsystem_for_each_ctrl_safe.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_for_each_ctrl_safe" 9 "nvme_subsystem_for_each_ctrl_safe" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_for_each_ctrl_safe" 9 "nvme_subsystem_for_each_ctrl_safe" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_for_each_ctrl_safe \- Traverse controllers .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_for_each_ns.2 b/doc/man/nvme_subsystem_for_each_ns.2 index 9743367..d3e80be 100644 --- a/doc/man/nvme_subsystem_for_each_ns.2 +++ b/doc/man/nvme_subsystem_for_each_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_for_each_ns" 9 "nvme_subsystem_for_each_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_for_each_ns" 9 "nvme_subsystem_for_each_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_for_each_ns \- Traverse namespaces .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_for_each_ns_safe.2 b/doc/man/nvme_subsystem_for_each_ns_safe.2 index b51a113..753bccf 100644 --- a/doc/man/nvme_subsystem_for_each_ns_safe.2 +++ b/doc/man/nvme_subsystem_for_each_ns_safe.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_for_each_ns_safe" 9 "nvme_subsystem_for_each_ns_safe" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_for_each_ns_safe" 9 "nvme_subsystem_for_each_ns_safe" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_for_each_ns_safe \- Traverse namespaces .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_get_application.2 b/doc/man/nvme_subsystem_get_application.2 index 9aa0b50..497cf56 100644 --- a/doc/man/nvme_subsystem_get_application.2 +++ b/doc/man/nvme_subsystem_get_application.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_get_application" 9 "nvme_subsystem_get_application" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_get_application" 9 "nvme_subsystem_get_application" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_get_application \- Return the application string .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_get_host.2 b/doc/man/nvme_subsystem_get_host.2 index 66307aa..a567b04 100644 --- a/doc/man/nvme_subsystem_get_host.2 +++ b/doc/man/nvme_subsystem_get_host.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_get_host" 9 "nvme_subsystem_get_host" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_get_host" 9 "nvme_subsystem_get_host" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_get_host \- Returns nvme_host_t object .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_get_iopolicy.2 b/doc/man/nvme_subsystem_get_iopolicy.2 index db66e1d..9eb53f0 100644 --- a/doc/man/nvme_subsystem_get_iopolicy.2 +++ b/doc/man/nvme_subsystem_get_iopolicy.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_get_iopolicy" 9 "nvme_subsystem_get_iopolicy" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_get_iopolicy" 9 "nvme_subsystem_get_iopolicy" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_get_iopolicy \- Return the IO policy of subsytem .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_get_name.2 b/doc/man/nvme_subsystem_get_name.2 index 12450f9..45e35a6 100644 --- a/doc/man/nvme_subsystem_get_name.2 +++ b/doc/man/nvme_subsystem_get_name.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_get_name" 9 "nvme_subsystem_get_name" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_get_name" 9 "nvme_subsystem_get_name" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_get_name \- sysfs name of an nvme_subsystem_t object .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_get_nqn.2 b/doc/man/nvme_subsystem_get_nqn.2 index ca981d5..168bcea 100644 --- a/doc/man/nvme_subsystem_get_nqn.2 +++ b/doc/man/nvme_subsystem_get_nqn.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_get_nqn" 9 "nvme_subsystem_get_nqn" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_get_nqn" 9 "nvme_subsystem_get_nqn" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_get_nqn \- Retrieve NQN from subsystem .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_get_sysfs_dir.2 b/doc/man/nvme_subsystem_get_sysfs_dir.2 index 2ce35c9..f0999aa 100644 --- a/doc/man/nvme_subsystem_get_sysfs_dir.2 +++ b/doc/man/nvme_subsystem_get_sysfs_dir.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_get_sysfs_dir" 9 "nvme_subsystem_get_sysfs_dir" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_get_sysfs_dir" 9 "nvme_subsystem_get_sysfs_dir" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_get_sysfs_dir \- sysfs directory of an nvme_subsystem_t object .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_get_type.2 b/doc/man/nvme_subsystem_get_type.2 index c7e4b34..b39c341 100644 --- a/doc/man/nvme_subsystem_get_type.2 +++ b/doc/man/nvme_subsystem_get_type.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_get_type" 9 "nvme_subsystem_get_type" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_get_type" 9 "nvme_subsystem_get_type" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_get_type \- Returns the type of a subsystem .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_lookup_namespace.2 b/doc/man/nvme_subsystem_lookup_namespace.2 index 03224a8..f40a9d6 100644 --- a/doc/man/nvme_subsystem_lookup_namespace.2 +++ b/doc/man/nvme_subsystem_lookup_namespace.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_lookup_namespace" 9 "nvme_subsystem_lookup_namespace" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_lookup_namespace" 9 "nvme_subsystem_lookup_namespace" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_lookup_namespace \- lookup namespace by NSID .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_next_ctrl.2 b/doc/man/nvme_subsystem_next_ctrl.2 index 0f6a978..028972d 100644 --- a/doc/man/nvme_subsystem_next_ctrl.2 +++ b/doc/man/nvme_subsystem_next_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_next_ctrl" 9 "nvme_subsystem_next_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_next_ctrl" 9 "nvme_subsystem_next_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_next_ctrl \- Next ctrl iterator .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_next_ns.2 b/doc/man/nvme_subsystem_next_ns.2 index de78d04..3237abb 100644 --- a/doc/man/nvme_subsystem_next_ns.2 +++ b/doc/man/nvme_subsystem_next_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_next_ns" 9 "nvme_subsystem_next_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_next_ns" 9 "nvme_subsystem_next_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_next_ns \- Next namespace iterator .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_release_fds.2 b/doc/man/nvme_subsystem_release_fds.2 index 320ae89..72f8240 100644 --- a/doc/man/nvme_subsystem_release_fds.2 +++ b/doc/man/nvme_subsystem_release_fds.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_release_fds" 9 "nvme_subsystem_release_fds" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_release_fds" 9 "nvme_subsystem_release_fds" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_release_fds \- Close all opened fds under subsystem .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_reset.2 b/doc/man/nvme_subsystem_reset.2 index a536c74..3b7b9e0 100644 --- a/doc/man/nvme_subsystem_reset.2 +++ b/doc/man/nvme_subsystem_reset.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_reset" 9 "nvme_subsystem_reset" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_reset" 9 "nvme_subsystem_reset" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_reset \- Initiate a subsystem reset .SH SYNOPSIS diff --git a/doc/man/nvme_subsystem_set_application.2 b/doc/man/nvme_subsystem_set_application.2 index 58380e4..bd23a1d 100644 --- a/doc/man/nvme_subsystem_set_application.2 +++ b/doc/man/nvme_subsystem_set_application.2 @@ -1,4 +1,4 @@ -.TH "nvme_subsystem_set_application" 9 "nvme_subsystem_set_application" "November 2024" "libnvme API manual" LINUX +.TH "nvme_subsystem_set_application" 9 "nvme_subsystem_set_application" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_subsystem_set_application \- Set the application string .SH SYNOPSIS diff --git a/doc/man/nvme_supported_cap_config_list_log.2 b/doc/man/nvme_supported_cap_config_list_log.2 index 2534492..b468880 100644 --- a/doc/man/nvme_supported_cap_config_list_log.2 +++ b/doc/man/nvme_supported_cap_config_list_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_supported_cap_config_list_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_supported_cap_config_list_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_supported_cap_config_list_log \- Supported Capacity Configuration list log page .SH SYNOPSIS diff --git a/doc/man/nvme_supported_log_pages.2 b/doc/man/nvme_supported_log_pages.2 index eadbac5..4da1c03 100644 --- a/doc/man/nvme_supported_log_pages.2 +++ b/doc/man/nvme_supported_log_pages.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_supported_log_pages" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_supported_log_pages" "March 2025" "API Manual" LINUX .SH NAME struct nvme_supported_log_pages \- Supported Log Pages - Log .SH SYNOPSIS diff --git a/doc/man/nvme_telemetry_da.2 b/doc/man/nvme_telemetry_da.2 index a4d3117..284da46 100644 --- a/doc/man/nvme_telemetry_da.2 +++ b/doc/man/nvme_telemetry_da.2 @@ -1,9 +1,13 @@ -.TH "libnvme" 9 "enum nvme_telemetry_da" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_telemetry_da" "March 2025" "API Manual" LINUX .SH NAME enum nvme_telemetry_da \- Telemetry Log Data Area .SH SYNOPSIS enum nvme_telemetry_da { .br +.BI " NVME_TELEMETRY_DA_CTRL_DETERMINE" +, +.br +.br .BI " NVME_TELEMETRY_DA_1" , .br @@ -20,6 +24,8 @@ enum nvme_telemetry_da { }; .SH Constants +.IP "NVME_TELEMETRY_DA_CTRL_DETERMINE" 12 +The controller determines the data areas to be created .IP "NVME_TELEMETRY_DA_1" 12 Data Area 1 .IP "NVME_TELEMETRY_DA_2" 12 diff --git a/doc/man/nvme_telemetry_log.2 b/doc/man/nvme_telemetry_log.2 index 1075461..a5c9f64 100644 --- a/doc/man/nvme_telemetry_log.2 +++ b/doc/man/nvme_telemetry_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_telemetry_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_telemetry_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_telemetry_log \- Retrieve internal data specific to the manufacturer. .SH SYNOPSIS @@ -20,9 +20,17 @@ struct nvme_telemetry_log { .br .BI " __le32 dalb4;" .br -.BI " __u8 rsvd20[361];" +.BI " __u8 rsvd20[360];" .br -.BI " __u8 hostdgn;" +.BI " __u8 ths;" +.br +.BI " union {" +.br +.BI " __u8 hostdgn;" +.br +.BI " __u8 tcs;" +.br +.BI " };" .br .BI " __u8 ctrlavail;" .br @@ -46,25 +54,31 @@ Reserved IEEE OUI Identifier is the Organization Unique Identifier (OUI) for the controller vendor that is able to interpret the data. .IP "dalb1" 12 -Telemetry Controller-Initiated Data Area 1 Last Block is +Telemetry Host/Controller Initiated Data Area 1 Last Block is the value of the last block in this area. .IP "dalb2" 12 -Telemetry Controller-Initiated Data Area 1 Last Block is +Telemetry Host/Controller Initiated Data Area 1 Last Block is the value of the last block in this area. .IP "dalb3" 12 -Telemetry Controller-Initiated Data Area 1 Last Block is +Telemetry Host/ControllerInitiated Data Area 1 Last Block is the value of the last block in this area. .IP "rsvd14" 12 Reserved .IP "dalb4" 12 -Telemetry Controller-Initiated Data Area 4 Last Block is +Telemetry Host/Controller Initiated Data Area 4 Last Block is the value of the last block in this area. .IP "rsvd20" 12 Reserved +.IP "ths" 12 +Telemetry Host-Initiated Scope +.IP "{unnamed_union}" 12 +anonymous .IP "hostdgn" 12 Telemetry Host-Initiated Data Generation Number is a value that is incremented each time the host initiates a -capture of its internal controller state in the controller . +capture of its internal controller state in the controller. +.IP "tcs" 12 +Telemetry Controller-Initiated Scope .IP "ctrlavail" 12 Telemetry Controller-Initiated Data Available, if cleared, then the controller telemetry log does not contain saved diff --git a/doc/man/nvme_thermal_exc_event.2 b/doc/man/nvme_thermal_exc_event.2 index 17e84ca..201ed0e 100644 --- a/doc/man/nvme_thermal_exc_event.2 +++ b/doc/man/nvme_thermal_exc_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_thermal_exc_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_thermal_exc_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_thermal_exc_event \- Thermal Excursion Event Data .SH SYNOPSIS diff --git a/doc/man/nvme_time_stamp_change_event.2 b/doc/man/nvme_time_stamp_change_event.2 index 7e98144..08554be 100644 --- a/doc/man/nvme_time_stamp_change_event.2 +++ b/doc/man/nvme_time_stamp_change_event.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_time_stamp_change_event" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_time_stamp_change_event" "March 2025" "API Manual" LINUX .SH NAME struct nvme_time_stamp_change_event \- Timestamp Change Event .SH SYNOPSIS diff --git a/doc/man/nvme_timestamp.2 b/doc/man/nvme_timestamp.2 index d512035..437347a 100644 --- a/doc/man/nvme_timestamp.2 +++ b/doc/man/nvme_timestamp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_timestamp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_timestamp" "March 2025" "API Manual" LINUX .SH NAME struct nvme_timestamp \- Timestamp - Data Structure for Get Features .SH SYNOPSIS diff --git a/doc/man/nvme_unit.2 b/doc/man/nvme_unit.2 index 21a8ce3..e77e5b4 100644 --- a/doc/man/nvme_unit.2 +++ b/doc/man/nvme_unit.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_unit" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_unit" "March 2025" "API Manual" LINUX .SH NAME enum nvme_unit \- Defined buffer size and write throughput granularity units .SH SYNOPSIS diff --git a/doc/man/nvme_unlink_ctrl.2 b/doc/man/nvme_unlink_ctrl.2 index 04afc09..9174f99 100644 --- a/doc/man/nvme_unlink_ctrl.2 +++ b/doc/man/nvme_unlink_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_unlink_ctrl" 9 "nvme_unlink_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_unlink_ctrl" 9 "nvme_unlink_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_unlink_ctrl \- Unlink controller .SH SYNOPSIS diff --git a/doc/man/nvme_update_config.2 b/doc/man/nvme_update_config.2 index 885ee63..e483cd3 100644 --- a/doc/man/nvme_update_config.2 +++ b/doc/man/nvme_update_config.2 @@ -1,4 +1,4 @@ -.TH "nvme_update_config" 9 "nvme_update_config" "November 2024" "libnvme API manual" LINUX +.TH "nvme_update_config" 9 "nvme_update_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_update_config \- Update JSON configuration .SH SYNOPSIS diff --git a/doc/man/nvme_update_key.2 b/doc/man/nvme_update_key.2 index 833a963..3c81175 100644 --- a/doc/man/nvme_update_key.2 +++ b/doc/man/nvme_update_key.2 @@ -1,4 +1,4 @@ -.TH "nvme_update_key" 9 "nvme_update_key" "November 2024" "libnvme API manual" LINUX +.TH "nvme_update_key" 9 "nvme_update_key" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_update_key \- Update key raw data .SH SYNOPSIS diff --git a/doc/man/nvme_uring_cmd.2 b/doc/man/nvme_uring_cmd.2 index e54022b..a184f85 100644 --- a/doc/man/nvme_uring_cmd.2 +++ b/doc/man/nvme_uring_cmd.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_uring_cmd" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_uring_cmd" "March 2025" "API Manual" LINUX .SH NAME struct nvme_uring_cmd \- nvme uring command structure .SH SYNOPSIS diff --git a/doc/man/nvme_verify.2 b/doc/man/nvme_verify.2 index cb24936..b9a527a 100644 --- a/doc/man/nvme_verify.2 +++ b/doc/man/nvme_verify.2 @@ -1,4 +1,4 @@ -.TH "nvme_verify" 9 "nvme_verify" "November 2024" "libnvme API manual" LINUX +.TH "nvme_verify" 9 "nvme_verify" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_verify \- Send an nvme verify command .SH SYNOPSIS diff --git a/doc/man/nvme_version.2 b/doc/man/nvme_version.2 index b8f60bf..50b2cc6 100644 --- a/doc/man/nvme_version.2 +++ b/doc/man/nvme_version.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_version" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_version" "March 2025" "API Manual" LINUX .SH NAME enum nvme_version \- Selector for version to be returned by @nvme_get_version .SH SYNOPSIS diff --git a/doc/man/nvme_virt_mgmt_act.2 b/doc/man/nvme_virt_mgmt_act.2 index 46438e6..68d208d 100644 --- a/doc/man/nvme_virt_mgmt_act.2 +++ b/doc/man/nvme_virt_mgmt_act.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_virt_mgmt_act" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_virt_mgmt_act" "March 2025" "API Manual" LINUX .SH NAME enum nvme_virt_mgmt_act \- Virtualization Management - Action .SH SYNOPSIS diff --git a/doc/man/nvme_virt_mgmt_rt.2 b/doc/man/nvme_virt_mgmt_rt.2 index 06c1bc9..ea688eb 100644 --- a/doc/man/nvme_virt_mgmt_rt.2 +++ b/doc/man/nvme_virt_mgmt_rt.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_virt_mgmt_rt" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_virt_mgmt_rt" "March 2025" "API Manual" LINUX .SH NAME enum nvme_virt_mgmt_rt \- Virtualization Management - Resource Type .SH SYNOPSIS diff --git a/doc/man/nvme_virtual_mgmt.2 b/doc/man/nvme_virtual_mgmt.2 index 9c0a7e0..79bf6cd 100644 --- a/doc/man/nvme_virtual_mgmt.2 +++ b/doc/man/nvme_virtual_mgmt.2 @@ -1,4 +1,4 @@ -.TH "nvme_virtual_mgmt" 9 "nvme_virtual_mgmt" "November 2024" "libnvme API manual" LINUX +.TH "nvme_virtual_mgmt" 9 "nvme_virtual_mgmt" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_virtual_mgmt \- Virtualization resource management .SH SYNOPSIS diff --git a/doc/man/nvme_vs.2 b/doc/man/nvme_vs.2 index 2603b7c..64d15cc 100644 --- a/doc/man/nvme_vs.2 +++ b/doc/man/nvme_vs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_vs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_vs" "March 2025" "API Manual" LINUX .SH NAME enum nvme_vs \- This field indicates the version .SH SYNOPSIS diff --git a/doc/man/nvme_write.2 b/doc/man/nvme_write.2 index 90f7890..8de8a20 100644 --- a/doc/man/nvme_write.2 +++ b/doc/man/nvme_write.2 @@ -1,4 +1,4 @@ -.TH "nvme_write" 9 "nvme_write" "November 2024" "libnvme API manual" LINUX +.TH "nvme_write" 9 "nvme_write" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_write \- Submit an nvme user write command .SH SYNOPSIS diff --git a/doc/man/nvme_write_uncorrectable.2 b/doc/man/nvme_write_uncorrectable.2 index 33a9bd1..143a2dd 100644 --- a/doc/man/nvme_write_uncorrectable.2 +++ b/doc/man/nvme_write_uncorrectable.2 @@ -1,4 +1,4 @@ -.TH "nvme_write_uncorrectable" 9 "nvme_write_uncorrectable" "November 2024" "libnvme API manual" LINUX +.TH "nvme_write_uncorrectable" 9 "nvme_write_uncorrectable" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_write_uncorrectable \- Submit an nvme write uncorrectable command .SH SYNOPSIS diff --git a/doc/man/nvme_write_zeros.2 b/doc/man/nvme_write_zeros.2 index 1a4c322..c9e9aae 100644 --- a/doc/man/nvme_write_zeros.2 +++ b/doc/man/nvme_write_zeros.2 @@ -1,4 +1,4 @@ -.TH "nvme_write_zeros" 9 "nvme_write_zeros" "November 2024" "libnvme API manual" LINUX +.TH "nvme_write_zeros" 9 "nvme_write_zeros" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_write_zeros \- Submit an nvme write zeroes command .SH SYNOPSIS diff --git a/doc/man/nvme_zns_append.2 b/doc/man/nvme_zns_append.2 index 2acd4a5..e4cdea5 100644 --- a/doc/man/nvme_zns_append.2 +++ b/doc/man/nvme_zns_append.2 @@ -1,4 +1,4 @@ -.TH "nvme_zns_append" 9 "nvme_zns_append" "November 2024" "libnvme API manual" LINUX +.TH "nvme_zns_append" 9 "nvme_zns_append" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_zns_append \- Append data to a zone .SH SYNOPSIS diff --git a/doc/man/nvme_zns_changed_zone_log.2 b/doc/man/nvme_zns_changed_zone_log.2 index 93434be..205f9c4 100644 --- a/doc/man/nvme_zns_changed_zone_log.2 +++ b/doc/man/nvme_zns_changed_zone_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_zns_changed_zone_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_zns_changed_zone_log" "March 2025" "API Manual" LINUX .SH NAME struct nvme_zns_changed_zone_log \- ZNS Changed Zone List log .SH SYNOPSIS diff --git a/doc/man/nvme_zns_desc.2 b/doc/man/nvme_zns_desc.2 index 76387ca..c05d0ba 100644 --- a/doc/man/nvme_zns_desc.2 +++ b/doc/man/nvme_zns_desc.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_zns_desc" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_zns_desc" "March 2025" "API Manual" LINUX .SH NAME struct nvme_zns_desc \- Zone Descriptor Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_zns_id_ctrl.2 b/doc/man/nvme_zns_id_ctrl.2 index 120ae73..6b8884a 100644 --- a/doc/man/nvme_zns_id_ctrl.2 +++ b/doc/man/nvme_zns_id_ctrl.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_zns_id_ctrl" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_zns_id_ctrl" "March 2025" "API Manual" LINUX .SH NAME struct nvme_zns_id_ctrl \- I/O Command Set Specific Identify Controller Data Structure for the Zoned Namespace Command Set .SH SYNOPSIS diff --git a/doc/man/nvme_zns_id_ns.2 b/doc/man/nvme_zns_id_ns.2 index 9927c56..a5afa67 100644 --- a/doc/man/nvme_zns_id_ns.2 +++ b/doc/man/nvme_zns_id_ns.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_zns_id_ns" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_zns_id_ns" "March 2025" "API Manual" LINUX .SH NAME struct nvme_zns_id_ns \- Zoned Namespace Command Set Specific Identify Namespace Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_zns_identify_ctrl.2 b/doc/man/nvme_zns_identify_ctrl.2 index 0cbbaf8..3c6a380 100644 --- a/doc/man/nvme_zns_identify_ctrl.2 +++ b/doc/man/nvme_zns_identify_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvme_zns_identify_ctrl" 9 "nvme_zns_identify_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvme_zns_identify_ctrl" 9 "nvme_zns_identify_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_zns_identify_ctrl \- ZNS identify controller data .SH SYNOPSIS diff --git a/doc/man/nvme_zns_identify_ns.2 b/doc/man/nvme_zns_identify_ns.2 index 26026d3..61ccedb 100644 --- a/doc/man/nvme_zns_identify_ns.2 +++ b/doc/man/nvme_zns_identify_ns.2 @@ -1,4 +1,4 @@ -.TH "nvme_zns_identify_ns" 9 "nvme_zns_identify_ns" "November 2024" "libnvme API manual" LINUX +.TH "nvme_zns_identify_ns" 9 "nvme_zns_identify_ns" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_zns_identify_ns \- ZNS identify namespace data .SH SYNOPSIS diff --git a/doc/man/nvme_zns_lbafe.2 b/doc/man/nvme_zns_lbafe.2 index 8659054..3841624 100644 --- a/doc/man/nvme_zns_lbafe.2 +++ b/doc/man/nvme_zns_lbafe.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_zns_lbafe" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_zns_lbafe" "March 2025" "API Manual" LINUX .SH NAME struct nvme_zns_lbafe \- LBA Format Extension Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_zns_mgmt_recv.2 b/doc/man/nvme_zns_mgmt_recv.2 index 62f7eb9..7781570 100644 --- a/doc/man/nvme_zns_mgmt_recv.2 +++ b/doc/man/nvme_zns_mgmt_recv.2 @@ -1,4 +1,4 @@ -.TH "nvme_zns_mgmt_recv" 9 "nvme_zns_mgmt_recv" "November 2024" "libnvme API manual" LINUX +.TH "nvme_zns_mgmt_recv" 9 "nvme_zns_mgmt_recv" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_zns_mgmt_recv \- ZNS management receive command .SH SYNOPSIS diff --git a/doc/man/nvme_zns_mgmt_send.2 b/doc/man/nvme_zns_mgmt_send.2 index 6798feb..ea91653 100644 --- a/doc/man/nvme_zns_mgmt_send.2 +++ b/doc/man/nvme_zns_mgmt_send.2 @@ -1,4 +1,4 @@ -.TH "nvme_zns_mgmt_send" 9 "nvme_zns_mgmt_send" "November 2024" "libnvme API manual" LINUX +.TH "nvme_zns_mgmt_send" 9 "nvme_zns_mgmt_send" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_zns_mgmt_send \- ZNS management send command .SH SYNOPSIS diff --git a/doc/man/nvme_zns_recv_action.2 b/doc/man/nvme_zns_recv_action.2 index 75f2a40..f09d821 100644 --- a/doc/man/nvme_zns_recv_action.2 +++ b/doc/man/nvme_zns_recv_action.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_zns_recv_action" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_zns_recv_action" "March 2025" "API Manual" LINUX .SH NAME enum nvme_zns_recv_action \- Zone Management Receive - Zone Receive Action Specific Features .SH SYNOPSIS diff --git a/doc/man/nvme_zns_report_options.2 b/doc/man/nvme_zns_report_options.2 index 1399bf0..a8f3c48 100644 --- a/doc/man/nvme_zns_report_options.2 +++ b/doc/man/nvme_zns_report_options.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_zns_report_options" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_zns_report_options" "March 2025" "API Manual" LINUX .SH NAME enum nvme_zns_report_options \- Zone Management Receive - Zone Receive Action Specific Field .SH SYNOPSIS diff --git a/doc/man/nvme_zns_report_zones.2 b/doc/man/nvme_zns_report_zones.2 index 5f9b87a..1e07ecd 100644 --- a/doc/man/nvme_zns_report_zones.2 +++ b/doc/man/nvme_zns_report_zones.2 @@ -1,4 +1,4 @@ -.TH "nvme_zns_report_zones" 9 "nvme_zns_report_zones" "November 2024" "libnvme API manual" LINUX +.TH "nvme_zns_report_zones" 9 "nvme_zns_report_zones" "March 2025" "libnvme API manual" LINUX .SH NAME nvme_zns_report_zones \- Return the list of zones .SH SYNOPSIS diff --git a/doc/man/nvme_zns_send_action.2 b/doc/man/nvme_zns_send_action.2 index 341fccb..d737cbd 100644 --- a/doc/man/nvme_zns_send_action.2 +++ b/doc/man/nvme_zns_send_action.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_zns_send_action" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_zns_send_action" "March 2025" "API Manual" LINUX .SH NAME enum nvme_zns_send_action \- Zone Management Send - Zone Send Action .SH SYNOPSIS diff --git a/doc/man/nvme_zns_za.2 b/doc/man/nvme_zns_za.2 index 9f3cd7f..a92bcb6 100644 --- a/doc/man/nvme_zns_za.2 +++ b/doc/man/nvme_zns_za.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_zns_za" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_zns_za" "March 2025" "API Manual" LINUX .SH NAME enum nvme_zns_za \- Zone Descriptor Data Structure .SH SYNOPSIS diff --git a/doc/man/nvme_zns_zs.2 b/doc/man/nvme_zns_zs.2 index 1a7d427..d6343eb 100644 --- a/doc/man/nvme_zns_zs.2 +++ b/doc/man/nvme_zns_zs.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_zns_zs" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_zns_zs" "March 2025" "API Manual" LINUX .SH NAME enum nvme_zns_zs \- Zone Descriptor Data Structure - Zone State .SH SYNOPSIS diff --git a/doc/man/nvme_zns_zt.2 b/doc/man/nvme_zns_zt.2 index a3de9c9..97a9231 100644 --- a/doc/man/nvme_zns_zt.2 +++ b/doc/man/nvme_zns_zt.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvme_zns_zt" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvme_zns_zt" "March 2025" "API Manual" LINUX .SH NAME enum nvme_zns_zt \- Zone Descriptor Data Structure - Zone Type .SH SYNOPSIS diff --git a/doc/man/nvme_zone_report.2 b/doc/man/nvme_zone_report.2 index 0d46e67..e9c8fd8 100644 --- a/doc/man/nvme_zone_report.2 +++ b/doc/man/nvme_zone_report.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvme_zone_report" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvme_zone_report" "March 2025" "API Manual" LINUX .SH NAME struct nvme_zone_report \- Report Zones Data Structure .SH SYNOPSIS diff --git a/doc/man/nvmf_add_ctrl.2 b/doc/man/nvmf_add_ctrl.2 index eecd764..84a8d87 100644 --- a/doc/man/nvmf_add_ctrl.2 +++ b/doc/man/nvmf_add_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvmf_add_ctrl" 9 "nvmf_add_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_add_ctrl" 9 "nvmf_add_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_add_ctrl \- Connect a controller and update topology .SH SYNOPSIS diff --git a/doc/man/nvmf_addr_family.2 b/doc/man/nvmf_addr_family.2 index 9172f02..f020dd0 100644 --- a/doc/man/nvmf_addr_family.2 +++ b/doc/man/nvmf_addr_family.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_addr_family" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_addr_family" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_addr_family \- Address Family codes for Discovery Log Page entry ADRFAM field .SH SYNOPSIS diff --git a/doc/man/nvmf_adrfam_str.2 b/doc/man/nvmf_adrfam_str.2 index 2f592b5..e472985 100644 --- a/doc/man/nvmf_adrfam_str.2 +++ b/doc/man/nvmf_adrfam_str.2 @@ -1,4 +1,4 @@ -.TH "nvmf_adrfam_str" 9 "nvmf_adrfam_str" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_adrfam_str" 9 "nvmf_adrfam_str" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_adrfam_str \- Decode ADRFAM field .SH SYNOPSIS diff --git a/doc/man/nvmf_cms_str.2 b/doc/man/nvmf_cms_str.2 index fef72d0..92d1096 100644 --- a/doc/man/nvmf_cms_str.2 +++ b/doc/man/nvmf_cms_str.2 @@ -1,4 +1,4 @@ -.TH "nvmf_cms_str" 9 "nvmf_cms_str" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_cms_str" 9 "nvmf_cms_str" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_cms_str \- Decode RDMA connection management service field .SH SYNOPSIS diff --git a/doc/man/nvmf_connect_ctrl.2 b/doc/man/nvmf_connect_ctrl.2 index 73ede8f..bff4cb6 100644 --- a/doc/man/nvmf_connect_ctrl.2 +++ b/doc/man/nvmf_connect_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvmf_connect_ctrl" 9 "nvmf_connect_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_connect_ctrl" 9 "nvmf_connect_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_connect_ctrl \- Connect a controller .SH SYNOPSIS diff --git a/doc/man/nvmf_connect_data.2 b/doc/man/nvmf_connect_data.2 index c5aa1af..80123cf 100644 --- a/doc/man/nvmf_connect_data.2 +++ b/doc/man/nvmf_connect_data.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvmf_connect_data" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvmf_connect_data" "March 2025" "API Manual" LINUX .SH NAME struct nvmf_connect_data \- Data payload for the 'connect' command .SH SYNOPSIS diff --git a/doc/man/nvmf_connect_disc_entry.2 b/doc/man/nvmf_connect_disc_entry.2 index 262c3d9..92a0ff3 100644 --- a/doc/man/nvmf_connect_disc_entry.2 +++ b/doc/man/nvmf_connect_disc_entry.2 @@ -1,4 +1,4 @@ -.TH "nvmf_connect_disc_entry" 9 "nvmf_connect_disc_entry" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_connect_disc_entry" 9 "nvmf_connect_disc_entry" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_connect_disc_entry \- Connect controller based on the discovery log page entry .SH SYNOPSIS diff --git a/doc/man/nvmf_default_config.2 b/doc/man/nvmf_default_config.2 index 6f1a6af..50a055a 100644 --- a/doc/man/nvmf_default_config.2 +++ b/doc/man/nvmf_default_config.2 @@ -1,4 +1,4 @@ -.TH "nvmf_default_config" 9 "nvmf_default_config" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_default_config" 9 "nvmf_default_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_default_config \- Default values for fabrics configuration .SH SYNOPSIS diff --git a/doc/man/nvmf_dim_data.2 b/doc/man/nvmf_dim_data.2 index fb6c7a9..83c394a 100644 --- a/doc/man/nvmf_dim_data.2 +++ b/doc/man/nvmf_dim_data.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvmf_dim_data" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvmf_dim_data" "March 2025" "API Manual" LINUX .SH NAME struct nvmf_dim_data \- Discovery Information Management (DIM) - Data .SH SYNOPSIS diff --git a/doc/man/nvmf_dim_entfmt.2 b/doc/man/nvmf_dim_entfmt.2 index 02c1679..90e705e 100644 --- a/doc/man/nvmf_dim_entfmt.2 +++ b/doc/man/nvmf_dim_entfmt.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_dim_entfmt" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_dim_entfmt" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_dim_entfmt \- Discovery Information Management Entry Format .SH SYNOPSIS diff --git a/doc/man/nvmf_dim_etype.2 b/doc/man/nvmf_dim_etype.2 index 6abf26a..bccc6cc 100644 --- a/doc/man/nvmf_dim_etype.2 +++ b/doc/man/nvmf_dim_etype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_dim_etype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_dim_etype" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_dim_etype \- Discovery Information Management Entity Type .SH SYNOPSIS diff --git a/doc/man/nvmf_dim_tas.2 b/doc/man/nvmf_dim_tas.2 index d159c71..69738bf 100644 --- a/doc/man/nvmf_dim_tas.2 +++ b/doc/man/nvmf_dim_tas.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_dim_tas" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_dim_tas" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_dim_tas \- Discovery Information Management Task .SH SYNOPSIS diff --git a/doc/man/nvmf_disc_eflags.2 b/doc/man/nvmf_disc_eflags.2 index a698e50..7877d14 100644 --- a/doc/man/nvmf_disc_eflags.2 +++ b/doc/man/nvmf_disc_eflags.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_disc_eflags" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_disc_eflags" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_disc_eflags \- Discovery Log Page entry flags. .SH SYNOPSIS diff --git a/doc/man/nvmf_disc_log_entry.2 b/doc/man/nvmf_disc_log_entry.2 index 45194d4..cd47a77 100644 --- a/doc/man/nvmf_disc_log_entry.2 +++ b/doc/man/nvmf_disc_log_entry.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvmf_disc_log_entry" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvmf_disc_log_entry" "March 2025" "API Manual" LINUX .SH NAME struct nvmf_disc_log_entry \- Discovery Log Page entry .SH SYNOPSIS diff --git a/doc/man/nvmf_discovery_log.2 b/doc/man/nvmf_discovery_log.2 index 7e04b23..0e4beee 100644 --- a/doc/man/nvmf_discovery_log.2 +++ b/doc/man/nvmf_discovery_log.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvmf_discovery_log" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvmf_discovery_log" "March 2025" "API Manual" LINUX .SH NAME struct nvmf_discovery_log \- Discovery Log Page (Log Identifier 70h) .SH SYNOPSIS diff --git a/doc/man/nvmf_eflags_str.2 b/doc/man/nvmf_eflags_str.2 index 6272bda..560fd22 100644 --- a/doc/man/nvmf_eflags_str.2 +++ b/doc/man/nvmf_eflags_str.2 @@ -1,4 +1,4 @@ -.TH "nvmf_eflags_str" 9 "nvmf_eflags_str" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_eflags_str" 9 "nvmf_eflags_str" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_eflags_str \- Decode EFLAGS field .SH SYNOPSIS diff --git a/doc/man/nvmf_exat_len.2 b/doc/man/nvmf_exat_len.2 index dc4ef8d..787fd24 100644 --- a/doc/man/nvmf_exat_len.2 +++ b/doc/man/nvmf_exat_len.2 @@ -1,4 +1,4 @@ -.TH "nvmf_exat_len" 9 "nvmf_exat_len" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_exat_len" 9 "nvmf_exat_len" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_exat_len \- Return length rounded up by 4 .SH SYNOPSIS diff --git a/doc/man/nvmf_exattype.2 b/doc/man/nvmf_exattype.2 index a969008..2cef204 100644 --- a/doc/man/nvmf_exattype.2 +++ b/doc/man/nvmf_exattype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_exattype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_exattype" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_exattype \- Extended Attribute Type .SH SYNOPSIS diff --git a/doc/man/nvmf_ext_attr.2 b/doc/man/nvmf_ext_attr.2 index 2c4d0c1..657446b 100644 --- a/doc/man/nvmf_ext_attr.2 +++ b/doc/man/nvmf_ext_attr.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvmf_ext_attr" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvmf_ext_attr" "March 2025" "API Manual" LINUX .SH NAME struct nvmf_ext_attr \- Extended Attribute (EXAT) .SH SYNOPSIS diff --git a/doc/man/nvmf_ext_die.2 b/doc/man/nvmf_ext_die.2 index 8d5abc5..11d6039 100644 --- a/doc/man/nvmf_ext_die.2 +++ b/doc/man/nvmf_ext_die.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "struct nvmf_ext_die" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "struct nvmf_ext_die" "March 2025" "API Manual" LINUX .SH NAME struct nvmf_ext_die \- Extended Discovery Information Entry (DIE) .SH SYNOPSIS diff --git a/doc/man/nvmf_get_discovery_log.2 b/doc/man/nvmf_get_discovery_log.2 index c3af865..23ebbcc 100644 --- a/doc/man/nvmf_get_discovery_log.2 +++ b/doc/man/nvmf_get_discovery_log.2 @@ -1,4 +1,4 @@ -.TH "nvmf_get_discovery_log" 9 "nvmf_get_discovery_log" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_get_discovery_log" 9 "nvmf_get_discovery_log" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_get_discovery_log \- Return the discovery log page .SH SYNOPSIS diff --git a/doc/man/nvmf_get_discovery_wargs.2 b/doc/man/nvmf_get_discovery_wargs.2 index bdfe81f..89dcfaf 100644 --- a/doc/man/nvmf_get_discovery_wargs.2 +++ b/doc/man/nvmf_get_discovery_wargs.2 @@ -1,4 +1,4 @@ -.TH "nvmf_get_discovery_wargs" 9 "nvmf_get_discovery_wargs" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_get_discovery_wargs" 9 "nvmf_get_discovery_wargs" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_get_discovery_wargs \- Get the discovery log page with args .SH SYNOPSIS diff --git a/doc/man/nvmf_hostid_from_file.2 b/doc/man/nvmf_hostid_from_file.2 index bd1d11c..66c5919 100644 --- a/doc/man/nvmf_hostid_from_file.2 +++ b/doc/man/nvmf_hostid_from_file.2 @@ -1,4 +1,4 @@ -.TH "nvmf_hostid_from_file" 9 "nvmf_hostid_from_file" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_hostid_from_file" 9 "nvmf_hostid_from_file" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_hostid_from_file \- Reads the host identifier from the config default location .SH SYNOPSIS diff --git a/doc/man/nvmf_hostid_generate.2 b/doc/man/nvmf_hostid_generate.2 index c4a97da..50acf09 100644 --- a/doc/man/nvmf_hostid_generate.2 +++ b/doc/man/nvmf_hostid_generate.2 @@ -1,4 +1,4 @@ -.TH "nvmf_hostid_generate" 9 "nvmf_hostid_generate" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_hostid_generate" 9 "nvmf_hostid_generate" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_hostid_generate \- Generate a machine specific host identifier .SH SYNOPSIS diff --git a/doc/man/nvmf_hostnqn_from_file.2 b/doc/man/nvmf_hostnqn_from_file.2 index 5b5a98f..3f0b732 100644 --- a/doc/man/nvmf_hostnqn_from_file.2 +++ b/doc/man/nvmf_hostnqn_from_file.2 @@ -1,4 +1,4 @@ -.TH "nvmf_hostnqn_from_file" 9 "nvmf_hostnqn_from_file" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_hostnqn_from_file" 9 "nvmf_hostnqn_from_file" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_hostnqn_from_file \- Reads the host nvm qualified name from the config default location .SH SYNOPSIS diff --git a/doc/man/nvmf_hostnqn_generate.2 b/doc/man/nvmf_hostnqn_generate.2 index 1d66eba..ad58463 100644 --- a/doc/man/nvmf_hostnqn_generate.2 +++ b/doc/man/nvmf_hostnqn_generate.2 @@ -1,4 +1,4 @@ -.TH "nvmf_hostnqn_generate" 9 "nvmf_hostnqn_generate" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_hostnqn_generate" 9 "nvmf_hostnqn_generate" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_hostnqn_generate \- Generate a machine specific host nqn .SH SYNOPSIS diff --git a/doc/man/nvmf_hostnqn_generate_from_hostid.2 b/doc/man/nvmf_hostnqn_generate_from_hostid.2 index a70dc85..f308b90 100644 --- a/doc/man/nvmf_hostnqn_generate_from_hostid.2 +++ b/doc/man/nvmf_hostnqn_generate_from_hostid.2 @@ -1,4 +1,4 @@ -.TH "nvmf_hostnqn_generate_from_hostid" 9 "nvmf_hostnqn_generate_from_hostid" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_hostnqn_generate_from_hostid" 9 "nvmf_hostnqn_generate_from_hostid" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_hostnqn_generate_from_hostid \- Generate a host nqn from host identifier .SH SYNOPSIS diff --git a/doc/man/nvmf_log_discovery_lid_support.2 b/doc/man/nvmf_log_discovery_lid_support.2 index e14a437..39fb2a1 100644 --- a/doc/man/nvmf_log_discovery_lid_support.2 +++ b/doc/man/nvmf_log_discovery_lid_support.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_log_discovery_lid_support" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_log_discovery_lid_support" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_log_discovery_lid_support \- Discovery log specific support .SH SYNOPSIS diff --git a/doc/man/nvmf_log_discovery_lsp.2 b/doc/man/nvmf_log_discovery_lsp.2 index 6b153da..44f1273 100644 --- a/doc/man/nvmf_log_discovery_lsp.2 +++ b/doc/man/nvmf_log_discovery_lsp.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_log_discovery_lsp" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_log_discovery_lsp" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_log_discovery_lsp \- Discovery log specific field .SH SYNOPSIS diff --git a/doc/man/nvmf_prtype_str.2 b/doc/man/nvmf_prtype_str.2 index 3aaaf21..f646eae 100644 --- a/doc/man/nvmf_prtype_str.2 +++ b/doc/man/nvmf_prtype_str.2 @@ -1,4 +1,4 @@ -.TH "nvmf_prtype_str" 9 "nvmf_prtype_str" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_prtype_str" 9 "nvmf_prtype_str" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_prtype_str \- Decode RDMA Provider type field .SH SYNOPSIS diff --git a/doc/man/nvmf_qptype_str.2 b/doc/man/nvmf_qptype_str.2 index a7120a2..4ff62c3 100644 --- a/doc/man/nvmf_qptype_str.2 +++ b/doc/man/nvmf_qptype_str.2 @@ -1,4 +1,4 @@ -.TH "nvmf_qptype_str" 9 "nvmf_qptype_str" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_qptype_str" 9 "nvmf_qptype_str" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_qptype_str \- Decode RDMA QP Service type field .SH SYNOPSIS diff --git a/doc/man/nvmf_rdma_cms.2 b/doc/man/nvmf_rdma_cms.2 index 74fb5a9..a775bee 100644 --- a/doc/man/nvmf_rdma_cms.2 +++ b/doc/man/nvmf_rdma_cms.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_rdma_cms" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_rdma_cms" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_rdma_cms \- RDMA Connection Management Service Type codes for Discovery Log Page entry TSAS RDMA_CMS field .SH SYNOPSIS diff --git a/doc/man/nvmf_rdma_prtype.2 b/doc/man/nvmf_rdma_prtype.2 index af8340c..465c35d 100644 --- a/doc/man/nvmf_rdma_prtype.2 +++ b/doc/man/nvmf_rdma_prtype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_rdma_prtype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_rdma_prtype" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_rdma_prtype \- RDMA Provider Type codes for Discovery Log Page entry TSAS RDMA_PRTYPE field .SH SYNOPSIS diff --git a/doc/man/nvmf_rdma_qptype.2 b/doc/man/nvmf_rdma_qptype.2 index c161e54..f932eaa 100644 --- a/doc/man/nvmf_rdma_qptype.2 +++ b/doc/man/nvmf_rdma_qptype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_rdma_qptype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_rdma_qptype" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_rdma_qptype \- RDMA QP Service Type codes for Discovery Log Page entry TSAS RDMA_QPTYPE field .SH SYNOPSIS diff --git a/doc/man/nvmf_register_ctrl.2 b/doc/man/nvmf_register_ctrl.2 index aeb4d4d..8ef59db 100644 --- a/doc/man/nvmf_register_ctrl.2 +++ b/doc/man/nvmf_register_ctrl.2 @@ -1,4 +1,4 @@ -.TH "nvmf_register_ctrl" 9 "nvmf_register_ctrl" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_register_ctrl" 9 "nvmf_register_ctrl" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_register_ctrl \- Perform registration task with a DC .SH SYNOPSIS diff --git a/doc/man/nvmf_sectype_str.2 b/doc/man/nvmf_sectype_str.2 index 4e8f7ae..fc40a26 100644 --- a/doc/man/nvmf_sectype_str.2 +++ b/doc/man/nvmf_sectype_str.2 @@ -1,4 +1,4 @@ -.TH "nvmf_sectype_str" 9 "nvmf_sectype_str" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_sectype_str" 9 "nvmf_sectype_str" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_sectype_str \- Decode SECTYPE field .SH SYNOPSIS diff --git a/doc/man/nvmf_subtype_str.2 b/doc/man/nvmf_subtype_str.2 index 7168a5e..0070e27 100644 --- a/doc/man/nvmf_subtype_str.2 +++ b/doc/man/nvmf_subtype_str.2 @@ -1,4 +1,4 @@ -.TH "nvmf_subtype_str" 9 "nvmf_subtype_str" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_subtype_str" 9 "nvmf_subtype_str" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_subtype_str \- Decode SUBTYPE field .SH SYNOPSIS diff --git a/doc/man/nvmf_tcp_sectype.2 b/doc/man/nvmf_tcp_sectype.2 index 6c0073f..a73af77 100644 --- a/doc/man/nvmf_tcp_sectype.2 +++ b/doc/man/nvmf_tcp_sectype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_tcp_sectype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_tcp_sectype" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_tcp_sectype \- Transport Specific Address Subtype Definition for NVMe/TCP Transport .SH SYNOPSIS diff --git a/doc/man/nvmf_treq.2 b/doc/man/nvmf_treq.2 index 4fd3b5c..148d7b8 100644 --- a/doc/man/nvmf_treq.2 +++ b/doc/man/nvmf_treq.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_treq" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_treq" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_treq \- Transport Requirements codes for Discovery Log Page entry TREQ field .SH SYNOPSIS diff --git a/doc/man/nvmf_treq_str.2 b/doc/man/nvmf_treq_str.2 index 90cd815..fb5b68e 100644 --- a/doc/man/nvmf_treq_str.2 +++ b/doc/man/nvmf_treq_str.2 @@ -1,4 +1,4 @@ -.TH "nvmf_treq_str" 9 "nvmf_treq_str" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_treq_str" 9 "nvmf_treq_str" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_treq_str \- Decode TREQ field .SH SYNOPSIS diff --git a/doc/man/nvmf_trtype.2 b/doc/man/nvmf_trtype.2 index 3bf01e0..4e46f20 100644 --- a/doc/man/nvmf_trtype.2 +++ b/doc/man/nvmf_trtype.2 @@ -1,4 +1,4 @@ -.TH "libnvme" 9 "enum nvmf_trtype" "November 2024" "API Manual" LINUX +.TH "libnvme" 9 "enum nvmf_trtype" "March 2025" "API Manual" LINUX .SH NAME enum nvmf_trtype \- Transport Type codes for Discovery Log Page entry TRTYPE field .SH SYNOPSIS diff --git a/doc/man/nvmf_trtype_str.2 b/doc/man/nvmf_trtype_str.2 index dcc3521..f0cd83e 100644 --- a/doc/man/nvmf_trtype_str.2 +++ b/doc/man/nvmf_trtype_str.2 @@ -1,4 +1,4 @@ -.TH "nvmf_trtype_str" 9 "nvmf_trtype_str" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_trtype_str" 9 "nvmf_trtype_str" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_trtype_str \- Decode TRTYPE field .SH SYNOPSIS diff --git a/doc/man/nvmf_update_config.2 b/doc/man/nvmf_update_config.2 index 2f8253e..ad50181 100644 --- a/doc/man/nvmf_update_config.2 +++ b/doc/man/nvmf_update_config.2 @@ -1,4 +1,4 @@ -.TH "nvmf_update_config" 9 "nvmf_update_config" "November 2024" "libnvme API manual" LINUX +.TH "nvmf_update_config" 9 "nvmf_update_config" "March 2025" "libnvme API manual" LINUX .SH NAME nvmf_update_config \- Update fabrics configuration values .SH SYNOPSIS diff --git a/doc/rst/fabrics.rst b/doc/rst/fabrics.rst index 67ca051..6c8831b 100644 --- a/doc/rst/fabrics.rst +++ b/doc/rst/fabrics.rst @@ -7,7 +7,7 @@ Fabrics-specific definitions. -.. c:type:: struct nvme_fabrics_config +.. c:struct:: nvme_fabrics_config Defines all linux nvme fabrics initiator options @@ -104,7 +104,7 @@ Fabrics-specific definitions. -.. c:type:: struct nvme_fabrics_uri +.. c:struct:: nvme_fabrics_uri Parsed URI structure @@ -430,7 +430,7 @@ Consider using nvmf_get_discovery_wargs() instead. -.. c:type:: struct nvme_get_discovery_args +.. c:struct:: nvme_get_discovery_args Arguments for nvmf_get_discovery_wargs() diff --git a/doc/rst/ioctl.rst b/doc/rst/ioctl.rst index 50123d4..aa69ee7 100644 --- a/doc/rst/ioctl.rst +++ b/doc/rst/ioctl.rst @@ -7,7 +7,7 @@ Linux NVMe ioctl interface functions -.. c:type:: struct nvme_passthru_cmd +.. c:struct:: nvme_passthru_cmd nvme passthrough command structure @@ -96,7 +96,7 @@ Linux NVMe ioctl interface functions -.. c:type:: struct nvme_passthru_cmd64 +.. c:struct:: nvme_passthru_cmd64 64-bit nvme passthrough command structure @@ -189,7 +189,7 @@ Linux NVMe ioctl interface functions -.. c:type:: struct nvme_uring_cmd +.. c:struct:: nvme_uring_cmd nvme uring command structure @@ -276,7 +276,9 @@ Linux NVMe ioctl interface functions -.. c:function:: sizeof_args (type, member, align) +.. c:macro:: sizeof_args + +``sizeof_args (type, member, align)`` Helper function used to determine structure sizes @@ -1742,6 +1744,27 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise. +.. c:function:: int nvme_get_log_create_telemetry_host_mcda (int fd, enum nvme_telemetry_da mcda, struct nvme_telemetry_log *log) + + Create host telemetry log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``enum nvme_telemetry_da mcda`` + Maximum Created Data Area + +``struct nvme_telemetry_log *log`` + Userspace address of the log payload + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise. + + .. c:function:: int nvme_get_log_create_telemetry_host (int fd, struct nvme_telemetry_log *log) Create host telemetry log @@ -2220,6 +2243,75 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise +.. c:function:: int nvme_get_log_rotational_media_info (int fd, __u16 endgid, __u32 len, struct nvme_rotational_media_info_log *log) + + Retrieve Rotational Media Information Log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``__u16 endgid`` + Endurance Group Identifier + +``__u32 len`` + The allocated length of the log page + +``struct nvme_rotational_media_info_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_get_log_dispersed_ns_participating_nss (int fd, __u32 nsid, __u32 len, struct nvme_dispersed_ns_participating_nss_log *log) + + Retrieve Dispersed Namespace Participating NVM Subsystems Log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``__u32 nsid`` + Namespace Identifier + +``__u32 len`` + The allocated length of the log page + +``struct nvme_dispersed_ns_participating_nss_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_get_log_mgmt_addr_list (int fd, __u32 len, struct nvme_mgmt_addr_list_log *log) + + Retrieve Management Address List Log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``__u32 len`` + The allocated length of the log page + +``struct nvme_mgmt_addr_list_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + .. c:function:: int nvme_get_log_phy_rx_eom (int fd, __u8 lsp, __u16 controller, __u32 len, struct nvme_phy_rx_eom_log *log) Retrieve Physical Interface Receiver Eye Opening Measurement Log @@ -2248,6 +2340,84 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise +.. c:function:: int nvme_get_log_reachability_groups (int fd, bool rgo, bool rae, __u32 len, struct nvme_reachability_groups_log *log) + + Retrieve Reachability Groups Log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``bool rgo`` + Return groups only + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_reachability_groups_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_get_log_reachability_associations (int fd, bool rao, bool rae, __u32 len, struct nvme_reachability_associations_log *log) + + Retrieve Reachability Associations Log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``bool rao`` + Return associations only + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_reachability_associations_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_get_log_changed_alloc_ns_list (int fd, bool rae, __u32 len, struct nvme_ns_list *log) + + Retrieve Changed Allocated Namespace List Log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_ns_list *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + .. c:function:: int nvme_get_log_discovery (int fd, bool rae, __u32 offset, __u32 len, void *log) Retrieve Discovery log page @@ -2280,6 +2450,81 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise. +.. c:function:: int nvme_get_log_host_discover (int fd, bool allhoste, bool rae, __u32 len, struct nvme_host_discover_log *log) + + Retrieve Host Discovery Log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``bool allhoste`` + All host entries + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_host_discover_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_get_log_ave_discover (int fd, bool rae, __u32 len, struct nvme_ave_discover_log *log) + + Retrieve AVE Discovery Log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_ave_discover_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_get_log_pull_model_ddc_req (int fd, bool rae, __u32 len, struct nvme_pull_model_ddc_req_log *log) + + Retrieve Pull Model DDC Request Log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_pull_model_ddc_req_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + .. c:function:: int nvme_get_log_media_unit_stat (int fd, __u16 domid, struct nvme_media_unit_stat_log *mus) Retrieve Media Unit Status @@ -5288,3 +5533,117 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise. +.. c:function:: int nvme_lm_cdq (struct nvme_lm_cdq_args *args) + + Controller Data Queue - Controller Data Queue command + +**Parameters** + +``struct nvme_lm_cdq_args *args`` + :c:type:`struct nvme_lm_cdq_args ` argument structure + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise.) + + +.. c:function:: int nvme_lm_track_send (struct nvme_lm_track_send_args *args) + + Track Send command + +**Parameters** + +``struct nvme_lm_track_send_args *args`` + :c:type:`struct nvme_lm_track_send_args ` argument structure + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise. + + +.. c:function:: int nvme_lm_migration_send (struct nvme_lm_migration_send_args *args) + + Migration Send command + +**Parameters** + +``struct nvme_lm_migration_send_args *args`` + :c:type:`struct nvme_lm_migration_send_args ` argument structure + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise. + + +.. c:function:: int nvme_lm_migration_recv (struct nvme_lm_migration_recv_args *args) + + Migration Receive command + +**Parameters** + +``struct nvme_lm_migration_recv_args *args`` + :c:type:`struct nvme_lm_migration_rev_args ` argument structure + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise. + + +.. c:function:: int nvme_lm_set_features_ctrl_data_queue (int fd, __u16 cdqid, __u32 hp, __u32 tpt, bool etpt, __u32 *result) + + Set Controller Datea Queue feature + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``__u16 cdqid`` + Controller Data Queue ID (CDQID) + +``__u32 hp`` + Head Pointer + +``__u32 tpt`` + Tail Pointer Trigger + +``bool etpt`` + Enable Tail Pointer Trigger + +``__u32 *result`` + The command completions result from CQE dword0 + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise. + + +.. c:function:: int nvme_lm_get_features_ctrl_data_queue (int fd, __u16 cdqid, struct nvme_lm_ctrl_data_queue_fid_data *data, __u32 *result) + + Get Controller Data Queue feature + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``__u16 cdqid`` + Controller Data Queue ID (CDQID) + +``struct nvme_lm_ctrl_data_queue_fid_data *data`` + Get Controller Data Queue feature data + +``__u32 *result`` + The command completions result from CQE dword0 + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise. + + diff --git a/doc/rst/linux.rst b/doc/rst/linux.rst index f975a23..6be0d88 100644 --- a/doc/rst/linux.rst +++ b/doc/rst/linux.rst @@ -32,27 +32,6 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise. - - -.. c:type:: enum nvme_telemetry_da - - Telemetry Log Data Area - -**Constants** - -``NVME_TELEMETRY_DA_1`` - Data Area 1 - -``NVME_TELEMETRY_DA_2`` - Data Area 2 - -``NVME_TELEMETRY_DA_3`` - Data Area 3 - -``NVME_TELEMETRY_DA_4`` - Data Area 4 - - .. c:function:: int nvme_get_telemetry_max (int fd, enum nvme_telemetry_da *da, size_t *max_data_tx) Get telemetry limits @@ -352,7 +331,7 @@ errno set otherwise. -.. c:type:: enum nvme_hmac_alg +.. c:enum:: nvme_hmac_alg HMAC algorithm @@ -541,7 +520,7 @@ inaccessible. Key id of the new key or 0 with errno set otherwise. -.. c:type:: nvme_scan_tls_keys_cb_t +.. c:macro:: nvme_scan_tls_keys_cb_t **Typedef**: Callback for iterating TLS keys diff --git a/doc/rst/mi.rst b/doc/rst/mi.rst index 8dfaaf9..8b200e0 100644 --- a/doc/rst/mi.rst +++ b/doc/rst/mi.rst @@ -73,7 +73,9 @@ are: with a couple of accommodations for older spec types, particularly NVMe-MI 1.1, where possible. -.. c:function:: NVME_MI_MSGTYPE_NVME () +.. c:macro:: NVME_MI_MSGTYPE_NVME + +``NVME_MI_MSGTYPE_NVME ()`` MCTP message type for NVMe-MI messages. @@ -89,7 +91,7 @@ bit (0x80) set. -.. c:type:: enum nvme_mi_message_type +.. c:enum:: nvme_mi_message_type NVMe-MI message type field. @@ -115,7 +117,7 @@ byte). Not to be confused with the MCTP message type in byte 0. -.. c:type:: enum nvme_mi_ror +.. c:enum:: nvme_mi_ror Request or response field. @@ -130,7 +132,7 @@ byte). Not to be confused with the MCTP message type in byte 0. -.. c:type:: enum nvme_mi_resp_status +.. c:enum:: nvme_mi_resp_status values for the response status field @@ -196,7 +198,7 @@ byte). Not to be confused with the MCTP message type in byte 0. -.. c:type:: struct nvme_mi_msg_hdr +.. c:struct:: nvme_mi_msg_hdr General MI message header. @@ -234,7 +236,7 @@ section 3.1. This is used for all message types, MI and Admin. -.. c:type:: struct nvme_mi_msg_resp +.. c:struct:: nvme_mi_msg_resp Generic response type. @@ -268,7 +270,7 @@ will define parts of the reserved data, and may add further fields. -.. c:type:: enum nvme_mi_mi_opcode +.. c:enum:: nvme_mi_mi_opcode Operation code for supported NVMe-MI commands. @@ -289,7 +291,7 @@ will define parts of the reserved data, and may add further fields. -.. c:type:: struct nvme_mi_mi_req_hdr +.. c:struct:: nvme_mi_mi_req_hdr MI request message header. @@ -329,7 +331,7 @@ Wire format for MI request message headers, defined in section 5 of NVMe-MI. -.. c:type:: struct nvme_mi_mi_resp_hdr +.. c:struct:: nvme_mi_mi_resp_hdr MI response message header. @@ -362,7 +364,7 @@ Wire format for MI response message header, defined in section 5 of NVMe-MI. -.. c:type:: enum nvme_mi_dtyp +.. c:enum:: nvme_mi_dtyp Data Structure Type field. @@ -394,7 +396,7 @@ indicate the particular structure to query from the endpoint. -.. c:type:: enum nvme_mi_config_id +.. c:enum:: nvme_mi_config_id NVMe-MI Configuration identifier. @@ -421,7 +423,7 @@ See :c:type:`nvme_mi_mi_config_get`() and :c:type:`nvme_mi_config_set`(). -.. c:type:: enum nvme_mi_config_smbus_freq +.. c:enum:: nvme_mi_config_smbus_freq SMBus/I2C frequency values @@ -444,7 +446,7 @@ Values used in the SMBus Frequency device configuration. See -.. c:type:: struct nvme_mi_admin_req_hdr +.. c:struct:: nvme_mi_admin_req_hdr Admin command request header. @@ -534,7 +536,7 @@ NVMe-MI. -.. c:type:: struct nvme_mi_admin_resp_hdr +.. c:struct:: nvme_mi_admin_resp_hdr Admin command response header. @@ -578,7 +580,7 @@ queue data, plus optional response data. -.. c:type:: enum nvme_mi_control_opcode +.. c:enum:: nvme_mi_control_opcode Operation code for Control Primitives. @@ -602,7 +604,7 @@ queue data, plus optional response data. -.. c:type:: struct nvme_mi_control_req +.. c:struct:: nvme_mi_control_req The Control Primitive request. @@ -711,7 +713,7 @@ endpoint to determine model-specific details. -.. c:type:: typedef nvme_mi_ep_t +.. c:type:: nvme_mi_ep_t MI Endpoint object. @@ -770,7 +772,9 @@ next endpoint MI endpoint object after **e** under this root, or NULL See: :c:type:`nvme_mi_first_endpoint`, :c:type:`nvme_mi_for_each_endpoint` -.. c:function:: nvme_mi_for_each_endpoint (m, e) +.. c:macro:: nvme_mi_for_each_endpoint + +``nvme_mi_for_each_endpoint (m, e)`` Iterator for NVMe-MI endpoints. @@ -783,7 +787,9 @@ See: :c:type:`nvme_mi_first_endpoint`, :c:type:`nvme_mi_for_each_endpoint` :c:type:`nvme_mi_ep_t` object, set on each iteration -.. c:function:: nvme_mi_for_each_endpoint_safe (m, e, _e) +.. c:macro:: nvme_mi_for_each_endpoint_safe + +``nvme_mi_for_each_endpoint_safe (m, e, _e)`` Iterator for NVMe-MI endpoints, allowing deletion during traversal @@ -853,7 +859,7 @@ Returns the current timeout value, in milliseconds, for this endpoint. -.. c:type:: typedef nvme_mi_ctrl_t +.. c:type:: nvme_mi_ctrl_t NVMe-MI Controller object. @@ -904,7 +910,9 @@ next MI controller object after **c** under this endpoint, or NULL See: :c:type:`nvme_mi_first_ctrl`, :c:type:`nvme_mi_for_each_ctrl` -.. c:function:: nvme_mi_for_each_ctrl (ep, c) +.. c:macro:: nvme_mi_for_each_ctrl + +``nvme_mi_for_each_ctrl (ep, c)`` Iterator for NVMe-MI controllers. @@ -925,7 +933,9 @@ call :c:type:`nvme_mi_scan_ep`() to scan for the controllers first. See: :c:type:`nvme_mi_scan_ep`() -.. c:function:: nvme_mi_for_each_ctrl_safe (ep, c, _c) +.. c:macro:: nvme_mi_for_each_ctrl_safe + +``nvme_mi_for_each_ctrl_safe (ep, c, _c)`` Iterator for NVMe-MI controllers, allowing deletion during traversal @@ -1118,6 +1128,48 @@ a newly-allocated string containing the endpoint description, or NULL on failure. +.. c:function:: int nvme_mi_mi_xfer (nvme_mi_ep_t ep, struct nvme_mi_mi_req_hdr *mi_req, size_t req_data_size, struct nvme_mi_mi_resp_hdr *mi_resp, size_t *resp_data_size) + + Raw mi transfer interface. + +**Parameters** + +``nvme_mi_ep_t ep`` + endpoint to send the MI command to + +``struct nvme_mi_mi_req_hdr *mi_req`` + request data + +``size_t req_data_size`` + size of request data payload + +``struct nvme_mi_mi_resp_hdr *mi_resp`` + buffer for response data + +``size_t *resp_data_size`` + size of response data buffer, updated to received size + +**Description** + +Performs an arbitrary NVMe MI command, using the provided request data, +in **mi_req**. The size of the request data *payload* is specified in +**req_data_size** - this does not include the standard header length (so a +header-only request would have a size of 0). Note that the Management +Request Doublewords are considered part of the header data. + +On success, response data is stored in **mi_resp**, which has an optional +appended payload buffer of **resp_data_size** bytes. The actual payload +size transferred will be stored in **resp_data_size**. This size does not +include the MI response header, so 0 represents no payload. + +See: :c:type:`struct nvme_mi_mi_req_hdr ` and :c:type:`struct nvme_mi_mi_resp_hdr `. + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise.. + + .. c:function:: int nvme_mi_mi_read_mi_data_subsys (nvme_mi_ep_t ep, struct nvme_mi_read_nvm_ss_info *s) Perform a Read MI Data Structure command, retrieving subsystem data. @@ -2132,6 +2184,43 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise. +.. c:function:: int nvme_mi_admin_get_endgid_log (nvme_mi_ctrl_t ctrl, bool rae, enum nvme_cmd_get_log_lid lid, __u16 endgid, __u32 len, void *log) + + Helper for Get Endurance Group ID Log Page functions + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``bool rae`` + Retain Asynchronous Events + +``enum nvme_cmd_get_log_lid lid`` + Log identifier + +``__u16 endgid`` + Endurance Group ID + +``__u32 len`` + length of log buffer + +``void *log`` + pointer for resulting log data + +**Description** + +Performs a Get Log Page Admin command for a specific log ID **lid** and +endurance group ID **endgid**. Log data is expected to be **len** bytes, and is stored +in **log** on success. The **rae** flag is passed as-is to the Get Log Page +command, and is specific to the Log Page requested. + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise. + + .. c:function:: int nvme_mi_admin_get_log_simple (nvme_mi_ctrl_t ctrl, enum nvme_cmd_get_log_lid lid, __u32 len, void *log) Helper for Get Log Page functions with no NSID or RAE requirements @@ -2349,6 +2438,27 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise. +.. c:function:: int nvme_mi_admin_get_log_create_telemetry_host_mcda (nvme_mi_ctrl_t ctrl, enum nvme_telemetry_da mcda, struct nvme_telemetry_log *log) + + Create host telemetry log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``enum nvme_telemetry_da mcda`` + Maximum Created Data Area + +``struct nvme_telemetry_log *log`` + Userspace address of the log payload + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise. + + .. c:function:: int nvme_mi_admin_get_log_create_telemetry_host (nvme_mi_ctrl_t ctrl, struct nvme_telemetry_log *log) Create host telemetry log @@ -2736,6 +2846,75 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise. +.. c:function:: int nvme_mi_admin_get_log_rotational_media_info (nvme_mi_ctrl_t ctrl, __u16 endgid, __u32 len, struct nvme_rotational_media_info_log *log) + + Retrieve Rotational Media Information Log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``__u16 endgid`` + Endurance Group Identifier + +``__u32 len`` + The allocated length of the log page + +``struct nvme_rotational_media_info_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_mi_admin_get_log_dispersed_ns_participating_nss (nvme_mi_ctrl_t ctrl, __u32 nsid, __u32 len, struct nvme_dispersed_ns_participating_nss_log *log) + + Retrieve Dispersed Namespace Participating NVM Subsystems Log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``__u32 nsid`` + Namespace Identifier + +``__u32 len`` + The allocated length of the log page + +``struct nvme_dispersed_ns_participating_nss_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_mi_admin_get_log_mgmt_addr_list (nvme_mi_ctrl_t ctrl, __u32 len, struct nvme_mgmt_addr_list_log *log) + + Retrieve Management Address List Log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``__u32 len`` + The allocated length of the log page + +``struct nvme_mgmt_addr_list_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + .. c:function:: int nvme_mi_admin_get_log_phy_rx_eom (nvme_mi_ctrl_t ctrl, __u8 lsp, __u16 controller, __u32 len, struct nvme_phy_rx_eom_log *log) Retrieve Physical Interface Receiver Eye Opening Measurement Log @@ -2764,6 +2943,84 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise +.. c:function:: int nvme_mi_admin_get_log_reachability_groups (nvme_mi_ctrl_t ctrl, bool rgo, bool rae, __u32 len, struct nvme_reachability_groups_log *log) + + Retrieve Reachability Groups Log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``bool rgo`` + Return groups only + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_reachability_groups_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_mi_admin_get_log_reachability_associations (nvme_mi_ctrl_t ctrl, bool rao, bool rae, __u32 len, struct nvme_reachability_associations_log *log) + + Retrieve Reachability Associations Log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``bool rao`` + Return associations only + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_reachability_associations_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_mi_admin_get_log_changed_alloc_ns_list (nvme_mi_ctrl_t ctrl, bool rae, __u32 len, struct nvme_ns_list *log) + + Retrieve Changed Allocated Namespace List Log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_ns_list *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + .. c:function:: int nvme_mi_admin_get_log_discovery (nvme_mi_ctrl_t ctrl, bool rae, __u32 offset, __u32 len, void *log) Retrieve Discovery log page @@ -2796,6 +3053,81 @@ The nvme command status if a response was received (see :c:type:`enum nvme_status_field `) or -1 with errno set otherwise. +.. c:function:: int nvme_mi_admin_get_log_host_discover (nvme_mi_ctrl_t ctrl, bool allhoste, bool rae, __u32 len, struct nvme_host_discover_log *log) + + Retrieve Host Discovery Log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``bool allhoste`` + All host entries + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_host_discover_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_mi_admin_get_log_ave_discover (nvme_mi_ctrl_t ctrl, bool rae, __u32 len, struct nvme_ave_discover_log *log) + + Retrieve AVE Discovery Log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_ave_discover_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + +.. c:function:: int nvme_mi_admin_get_log_pull_model_ddc_req (nvme_mi_ctrl_t ctrl, bool rae, __u32 len, struct nvme_pull_model_ddc_req_log *log) + + Retrieve Pull Model DDC Request Log + +**Parameters** + +``nvme_mi_ctrl_t ctrl`` + Controller to query + +``bool rae`` + Retain asynchronous events + +``__u32 len`` + The allocated length of the log page + +``struct nvme_pull_model_ddc_req_log *log`` + User address to store the log page + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise + + .. c:function:: int nvme_mi_admin_get_log_media_unit_stat (nvme_mi_ctrl_t ctrl, __u16 domid, struct nvme_media_unit_stat_log *mus) Retrieve Media Unit Status diff --git a/doc/rst/nbft.rst b/doc/rst/nbft.rst index 984049b..2a7b72f 100644 --- a/doc/rst/nbft.rst +++ b/doc/rst/nbft.rst @@ -9,7 +9,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_desc_type +.. c:enum:: nbft_desc_type NBFT Elements - Descriptor Types (Figure 5) @@ -56,7 +56,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_trtype +.. c:enum:: nbft_trtype NBFT Interface Transport Types (Figure 7) @@ -68,7 +68,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_heap_obj +.. c:struct:: nbft_heap_obj NBFT Header Driver Signature @@ -94,7 +94,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_header +.. c:struct:: nbft_header NBFT Table - Header (Figure 8) @@ -193,7 +193,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_control +.. c:struct:: nbft_control NBFT Table - Control Descriptor (Figure 8) @@ -368,7 +368,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_control_flags +.. c:enum:: nbft_control_flags Control Descriptor Flags @@ -380,7 +380,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_host +.. c:struct:: nbft_host Host Descriptor (Figure 9) @@ -422,7 +422,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_host_flags +.. c:enum:: nbft_host_flags Host Flags @@ -479,7 +479,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_hfi +.. c:struct:: nbft_hfi Host Fabric Interface (HFI) Descriptor (Figure 11) @@ -529,7 +529,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_hfi_flags +.. c:enum:: nbft_hfi_flags HFI Descriptor Flags @@ -542,7 +542,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_hfi_info_tcp +.. c:struct:: nbft_hfi_info_tcp HFI Transport Info Descriptor - NVMe/TCP (Figure 13) @@ -685,7 +685,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_hfi_info_tcp_flags +.. c:enum:: nbft_hfi_info_tcp_flags HFI Transport Flags @@ -714,7 +714,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_ssns +.. c:struct:: nbft_ssns Subsystem Namespace (SSNS) Descriptor (Figure 15) @@ -879,7 +879,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_ssns_flags +.. c:enum:: nbft_ssns_flags Subsystem and Namespace Specific Flags Field (Figure 16) @@ -970,7 +970,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_ssns_trflags +.. c:enum:: nbft_ssns_trflags SSNS Transport Specific Flags Field (Figure 17) @@ -1008,7 +1008,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_ssns_ext_info +.. c:struct:: nbft_ssns_ext_info Subsystem and Namespace Extended Information Descriptor (Figure 19) @@ -1069,7 +1069,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_ssns_ext_info_flags +.. c:enum:: nbft_ssns_ext_info_flags Subsystem and Namespace Extended Information Descriptor Flags @@ -1091,7 +1091,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_security +.. c:struct:: nbft_security Security Profile Descriptor (Figure 21) @@ -1195,7 +1195,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_security_flags +.. c:enum:: nbft_security_flags Security Profile Descriptor Flags (Figure 22) @@ -1317,7 +1317,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_security_secret_type +.. c:enum:: nbft_security_secret_type Security Profile Descriptor Secret Type @@ -1333,7 +1333,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_discovery +.. c:struct:: nbft_discovery Discovery Descriptor (Figure 24) @@ -1410,7 +1410,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_discovery_flags +.. c:enum:: nbft_discovery_flags Discovery Descriptor Flags @@ -1424,7 +1424,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_info_primary_admin_host_flag +.. c:enum:: nbft_info_primary_admin_host_flag Primary Administrative Host Descriptor Flags @@ -1454,7 +1454,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_info_host +.. c:struct:: nbft_info_host Host Descriptor @@ -1496,7 +1496,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_info_hfi_info_tcp +.. c:struct:: nbft_info_hfi_info_tcp HFI Transport Info Descriptor - NVMe/TCP @@ -1585,7 +1585,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_info_hfi +.. c:struct:: nbft_info_hfi Host Fabric Interface (HFI) Descriptor @@ -1615,7 +1615,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_info_discovery +.. c:struct:: nbft_info_discovery Discovery Descriptor @@ -1655,7 +1655,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_info_security +.. c:struct:: nbft_info_security Security Profile Descriptor @@ -1677,7 +1677,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: enum nbft_info_nid_type +.. c:enum:: nbft_info_nid_type Namespace Identifier Type (NIDT) @@ -1698,7 +1698,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_info_subsystem_ns +.. c:struct:: nbft_info_subsystem_ns Subsystem Namespace (SSNS) info @@ -1808,7 +1808,7 @@ Note: this API is currently unstable, subject to further additions. -.. c:type:: struct nbft_info +.. c:struct:: nbft_info The parsed NBFT table data. diff --git a/doc/rst/tree.rst b/doc/rst/tree.rst index 4cbc863..fd3b684 100644 --- a/doc/rst/tree.rst +++ b/doc/rst/tree.rst @@ -694,7 +694,9 @@ First :c:type:`nvme_ns_t` object of an **s** iterator Next :c:type:`nvme_ns_t` object of an **s** iterator -.. c:function:: nvme_for_each_host_safe (r, h, _h) +.. c:macro:: nvme_for_each_host_safe + +``nvme_for_each_host_safe (r, h, _h)`` Traverse host list @@ -710,7 +712,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator Temporary :c:type:`nvme_host_t` object -.. c:function:: nvme_for_each_host (r, h) +.. c:macro:: nvme_for_each_host + +``nvme_for_each_host (r, h)`` Traverse host list @@ -723,7 +727,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator :c:type:`nvme_host_t` object -.. c:function:: nvme_for_each_subsystem_safe (h, s, _s) +.. c:macro:: nvme_for_each_subsystem_safe + +``nvme_for_each_subsystem_safe (h, s, _s)`` Traverse subsystems @@ -739,7 +745,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator Temporary :c:type:`nvme_subsystem_t` object -.. c:function:: nvme_for_each_subsystem (h, s) +.. c:macro:: nvme_for_each_subsystem + +``nvme_for_each_subsystem (h, s)`` Traverse subsystems @@ -752,7 +760,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator :c:type:`nvme_subsystem_t` object -.. c:function:: nvme_subsystem_for_each_ctrl_safe (s, c, _c) +.. c:macro:: nvme_subsystem_for_each_ctrl_safe + +``nvme_subsystem_for_each_ctrl_safe (s, c, _c)`` Traverse controllers @@ -768,7 +778,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator A :c:type:`nvme_ctrl_t_node` to use as temporary storage -.. c:function:: nvme_subsystem_for_each_ctrl (s, c) +.. c:macro:: nvme_subsystem_for_each_ctrl + +``nvme_subsystem_for_each_ctrl (s, c)`` Traverse controllers @@ -781,7 +793,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator Controller instance -.. c:function:: nvme_ctrl_for_each_ns_safe (c, n, _n) +.. c:macro:: nvme_ctrl_for_each_ns_safe + +``nvme_ctrl_for_each_ns_safe (c, n, _n)`` Traverse namespaces @@ -797,7 +811,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator A :c:type:`nvme_ns_t_node` to use as temporary storage -.. c:function:: nvme_ctrl_for_each_ns (c, n) +.. c:macro:: nvme_ctrl_for_each_ns + +``nvme_ctrl_for_each_ns (c, n)`` Traverse namespaces @@ -810,7 +826,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator :c:type:`nvme_ns_t` object -.. c:function:: nvme_ctrl_for_each_path_safe (c, p, _p) +.. c:macro:: nvme_ctrl_for_each_path_safe + +``nvme_ctrl_for_each_path_safe (c, p, _p)`` Traverse paths @@ -826,7 +844,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator A :c:type:`nvme_path_t_node` to use as temporary storage -.. c:function:: nvme_ctrl_for_each_path (c, p) +.. c:macro:: nvme_ctrl_for_each_path + +``nvme_ctrl_for_each_path (c, p)`` Traverse paths @@ -839,7 +859,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator :c:type:`nvme_path_t` object -.. c:function:: nvme_subsystem_for_each_ns_safe (s, n, _n) +.. c:macro:: nvme_subsystem_for_each_ns_safe + +``nvme_subsystem_for_each_ns_safe (s, n, _n)`` Traverse namespaces @@ -855,7 +877,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator A :c:type:`nvme_ns_t_node` to use as temporary storage -.. c:function:: nvme_subsystem_for_each_ns (s, n) +.. c:macro:: nvme_subsystem_for_each_ns + +``nvme_subsystem_for_each_ns (s, n)`` Traverse namespaces @@ -868,7 +892,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator :c:type:`nvme_ns_t` object -.. c:function:: nvme_namespace_for_each_path_safe (n, p, _p) +.. c:macro:: nvme_namespace_for_each_path_safe + +``nvme_namespace_for_each_path_safe (n, p, _p)`` Traverse paths @@ -884,7 +910,9 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator A :c:type:`nvme_path_t_node` to use as temporary storage -.. c:function:: nvme_namespace_for_each_path (n, p) +.. c:macro:: nvme_namespace_for_each_path + +``nvme_namespace_for_each_path (n, p)`` Traverse paths diff --git a/doc/rst/types.rst b/doc/rst/types.rst index dd60493..f2d1957 100644 --- a/doc/rst/types.rst +++ b/doc/rst/types.rst @@ -5,7 +5,9 @@ NVMe standard definitions -.. c:function:: NVME_GET (value, name) +.. c:macro:: NVME_GET + +``NVME_GET (value, name)`` extract field from complex value @@ -28,7 +30,9 @@ sub-field. The 'name' field from 'value' -.. c:function:: NVME_SET (value, name) +.. c:macro:: NVME_SET + +``NVME_SET (value, name)`` set field into complex value @@ -45,7 +49,9 @@ The 'name' field from 'value' The 'name' field from 'value' -.. c:function:: NVME_CHECK (value, name, check) +.. c:macro:: NVME_CHECK + +``NVME_CHECK (value, name, check)`` check value to compare field value @@ -65,7 +71,9 @@ The 'name' field from 'value' The result of compare the value and the sub-field value -.. c:function:: NVME_VAL (name) +.. c:macro:: NVME_VAL + +``NVME_VAL (name)`` get mask value shifted @@ -81,7 +89,7 @@ The mask value shifted -.. c:type:: enum nvme_constants +.. c:enum:: nvme_constants A place to stash various constant nvme values @@ -196,7 +204,7 @@ The mask value shifted -.. c:type:: enum nvme_csi +.. c:enum:: nvme_csi Defined command set indicators @@ -211,10 +219,16 @@ The mask value shifted ``NVME_CSI_ZNS`` Zoned Namespace Command Set +``NVME_CSI_SLM`` + Subsystem Local Memory Command Set + +``NVME_CSI_CP`` + Computational Programs Command Set -.. c:type:: enum nvme_register_offsets + +.. c:enum:: nvme_register_offsets controller registers for all transports. This is the layout of BAR0/1 for PCIe, and properties for fabrics. @@ -328,7 +342,7 @@ true if given offset is 64bit register, otherwise it returns false. -.. c:type:: enum nvme_cap +.. c:enum:: nvme_cap This field indicates the controller capabilities register @@ -460,7 +474,7 @@ true if given offset is 64bit register, otherwise it returns false. -.. c:type:: enum nvme_vs +.. c:enum:: nvme_vs This field indicates the version @@ -487,7 +501,7 @@ true if given offset is 64bit register, otherwise it returns false. -.. c:type:: enum nvme_cc +.. c:enum:: nvme_cc This field indicates the controller configuration @@ -577,7 +591,7 @@ true if given offset is 64bit register, otherwise it returns false. -.. c:type:: enum nvme_csts +.. c:enum:: nvme_csts This field indicates the controller status register @@ -634,7 +648,7 @@ true if given offset is 64bit register, otherwise it returns false. -.. c:type:: enum nvme_aqa +.. c:enum:: nvme_aqa This field indicates the admin queue attributes @@ -655,7 +669,7 @@ true if given offset is 64bit register, otherwise it returns false. -.. c:type:: enum nvme_asq +.. c:enum:: nvme_asq This field indicates the admin submission queue base address @@ -667,7 +681,7 @@ true if given offset is 64bit register, otherwise it returns false. -.. c:type:: enum nvme_acq +.. c:enum:: nvme_acq This field indicates the admin completion queue base address @@ -679,7 +693,7 @@ true if given offset is 64bit register, otherwise it returns false. -.. c:type:: enum nvme_cmbloc +.. c:enum:: nvme_cmbloc This field indicates the controller memory buffer location @@ -736,7 +750,7 @@ true if given offset is 64bit register, otherwise it returns false. -.. c:type:: enum nvme_cmbsz +.. c:enum:: nvme_cmbsz This field indicates the controller memory buffer size @@ -822,7 +836,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_bpinfo +.. c:enum:: nvme_bpinfo This field indicates the boot partition information @@ -861,7 +875,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_bprsel +.. c:enum:: nvme_bprsel This field indicates the boot partition read select @@ -888,7 +902,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_bpmbl +.. c:enum:: nvme_bpmbl This field indicates the boot partition memory buffer location @@ -900,7 +914,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_cmbmsc +.. c:enum:: nvme_cmbmsc This field indicates the controller memory buffer memory space control @@ -924,7 +938,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_cmbsts +.. c:enum:: nvme_cmbsts This field indicates the controller memory buffer status @@ -939,7 +953,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_unit +.. c:enum:: nvme_unit Defined buffer size and write throughput granularity units @@ -960,7 +974,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_cmbebs +.. c:enum:: nvme_cmbebs This field indicates the controller memory buffer elasticity buffer size @@ -999,7 +1013,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_cmbswtp +.. c:enum:: nvme_cmbswtp This field indicates the controller memory buffer sustained write throughput @@ -1032,7 +1046,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_crto +.. c:enum:: nvme_crto This field indicates the controller ready timeouts @@ -1053,7 +1067,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_pmrcap +.. c:enum:: nvme_pmrcap This field indicates the persistent memory region capabilities @@ -1116,7 +1130,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_pmrctl +.. c:enum:: nvme_pmrctl This field indicates the persistent memory region control @@ -1131,7 +1145,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_pmrsts +.. c:enum:: nvme_pmrsts This field indicates the persistent memory region status @@ -1164,7 +1178,7 @@ size of controller memory buffer in bytes -.. c:type:: enum nvme_pmrebs +.. c:enum:: nvme_pmrebs This field indicates the persistent memory region elasticity buffer size @@ -1217,7 +1231,7 @@ size of controller persistent memory buffer in bytes -.. c:type:: enum nvme_pmrswtp +.. c:enum:: nvme_pmrswtp This field indicates the persistent memory region sustained write throughput @@ -1264,7 +1278,7 @@ throughput of controller persistent memory buffer in bytes/second -.. c:type:: enum nvme_pmrmsc +.. c:enum:: nvme_pmrmsc This field indicates the persistent memory region memory space control @@ -1282,7 +1296,7 @@ throughput of controller persistent memory buffer in bytes/second -.. c:type:: enum nvme_flbas +.. c:enum:: nvme_flbas This field indicates the formatted LBA size @@ -1309,7 +1323,7 @@ throughput of controller persistent memory buffer in bytes/second -.. c:type:: enum nvme_psd_flags +.. c:enum:: nvme_psd_flags Possible flag values in nvme power state descriptor @@ -1332,7 +1346,7 @@ throughput of controller persistent memory buffer in bytes/second -.. c:type:: enum nvme_psd_ps +.. c:enum:: nvme_psd_ps Known values for :c:type:`struct nvme_psd ` ``ips`` and ``aps``. Use with nvme_psd_power_scale() to extract the power scale field to match this enum. @@ -1364,7 +1378,7 @@ power scale value -.. c:type:: enum nvme_psd_workload +.. c:enum:: nvme_psd_workload Specifies a workload hint in the Power Management Feature (see :c:type:`struct nvme_psd `.apw) to inform the NVM subsystem or indicate the conditions for the active power level. @@ -1393,7 +1407,7 @@ power scale value -.. c:type:: struct nvme_id_psd +.. c:struct:: nvme_id_psd Power Management data structure @@ -1416,7 +1430,12 @@ power scale value __u8 rsvd19; __le16 actp; __u8 apws; - __u8 rsvd23[9]; + __u8 epfrt; + __u8 fqvt; + __u8 epfvt; + __u8 epfr_fqv_ts; + __u8 epfvts; + __u8 rsvd28[4]; }; **Members** @@ -1487,14 +1506,30 @@ power scale value used to calculate maximum power for this power state. See :c:type:`enum nvme_psd_workload ` for decoding this field. -``rsvd23`` +``epfrt`` + Emergency power fail recovery time + +``fqvt`` + Forced quiescence vault time + +``epfvt`` + Emergency power fail vault time + +``epfr_fqv_ts`` + Bits 7-4: Forced quiescence vault time scale + Bits 3-0: Emergency power fail recovery time scale + +``epfvts`` + Bits 3-0: Emergency power fail vault time scale + +``rsvd28`` Reserved -.. c:type:: struct nvme_id_ctrl +.. c:struct:: nvme_id_ctrl Identify Controller data structure @@ -1519,13 +1554,18 @@ power scale value __le32 oaes; __le32 ctratt; __le16 rrls; - __u8 rsvd102[9]; + __u8 bpcap; + __u8 rsvd103; + __le32 nssl; + __u8 rsvd108[2]; + __u8 plsi; __u8 cntrltype; __u8 fguid[16]; __le16 crdt1; __le16 crdt2; __le16 crdt3; - __u8 rsvd134[119]; + __u8 crcap; + __u8 rsvd135[118]; __u8 nvmsr; __u8 vwci; __u8 mec; @@ -1564,10 +1604,15 @@ power scale value __le32 nanagrpid; __le32 pels; __le16 domainid; - __u8 rsvd358[10]; + __u8 kpioc; + __u8 rsvd359; + __le16 mptfawr; + __u8 rsvd362[6]; __u8 megcap[16]; __u8 tmpthha; - __u8 rsvd385[127]; + __u8 rsvd385; + __le16 cqt; + __u8 rsvd388[124]; __u8 sqes; __u8 cqes; __le16 maxcmd; @@ -1587,18 +1632,19 @@ power scale value __u8 maxdna[16]; __le32 maxcna; __le32 oaqd; - __u8 rsvd568[2]; - __u16 cmmrtd; - __u16 nmmrtd; + __u8 rhiri; + __u8 hirt; + __le16 cmmrtd; + __le16 nmmrtd; __u8 minmrtg; __u8 maxmrtg; __u8 trattr; __u8 rsvd577; - __u16 mcudmq; - __u16 mnsudmq; - __u16 mcmr; - __u16 nmcmr; - __u16 mcdqpc; + __le16 mcudmq; + __le16 mnsudmq; + __le16 mcmr; + __le16 nmcmr; + __le16 mcdqpc; __u8 rsvd588[180]; char subnqn[NVME_NQN_LENGTH]; __u8 rsvd1024[768]; @@ -1677,9 +1723,23 @@ power scale value Read Recovery Level is supported. If a bit is cleared, then the corresponding Read Recovery Level is not supported. -``rsvd102`` +``bpcap`` + Boot Partition Capabilities, see :c:type:`enum nvme_id_ctrl_bpcap `. + +``rsvd103`` Reserved +``nssl`` + NVM Subsystem Shutdown Latency (NSSL). This field indicates the + typical latency in microseconds for an NVM Subsystem Shutdown to + complete. + +``rsvd108`` + Reserved + +``plsi`` + Power Loss Signaling Information (PLSI), see :c:type:`enum nvme_id_ctrl_plsi ` + ``cntrltype`` Controller Type, see :c:type:`enum nvme_id_ctrl_cntrltype ` @@ -1699,7 +1759,11 @@ power scale value Controller Retry Delay time in 100 millisecond units if CQE CRD field is 3 -``rsvd134`` +``crcap`` + Controller Reachability Capabilities (CRCAP), see + :c:type:`enum nvme_id_ctrl_crcap ` + +``rsvd135`` Reserved ``nvmsr`` @@ -1879,7 +1943,20 @@ power scale value Domain Identifier indicates the identifier of the domain that contains this controller. -``rsvd358`` +``kpioc`` + Key Per I/O Capabilities (KPIOC), see :c:type:`enum nvme_id_ctrl_kpioc ` + +``rsvd359`` + Reserved + +``mptfawr`` + Maximum Processing Time for Firmware Activation Without Reset + (MPTFAWR). This field shall indicate the estimated maximum time + in 100 ms units required by the controller to process a Firmware + Commit command that specifies a value of 011b in the Commit + Action field + +``rsvd362`` Reserved ``megcap`` @@ -1892,6 +1969,15 @@ power scale value ``rsvd385`` Reserved +``cqt`` + Command Quiesce Time (CQT). his field indicates the expected + worst-case time in 1 millisecond units for the controller to + quiesce all outstanding commands after a Keep Alive Timeout or + other communication loss. + +``rsvd388`` + Reserved + ``sqes`` Submission Queue Entry Size, see :c:type:`enum nvme_id_ctrl_sqes `. @@ -1976,8 +2062,20 @@ power scale value total number of outstanding I/O commands across all I/O queues on the controller for optimal operation. -``rsvd568`` - Reserved +``rhiri`` + Recommended Host-Initiated Refresh Interval (RHIRI). If the + Host-Initiated Refresh capability is supported, then this field + indicates the recommended time interval in days from last power + down to the time at which the host should initiate the + Host-Initiated Refresh operation. If this field is cleared to + 0h, then this field is not reported. + +``hirt`` + Host-Initiated Refresh Time (HIRT). If the Host-Initiated + Refresh capability is supported, then this field indicates the + nominal amount of time in minutes that the controller takes to + complete the Host-Initiated Refresh operation. If this field is + cleared to 0h, then this field is not reported. ``cmmrtd`` Controller Maximum Memory Range Tracking Descriptors indicates @@ -2002,8 +2100,8 @@ power scale value structure. ``trattr`` - Tracking Attributes indicates supported attributes for the - Track Send command and Track Receive command. + Tracking Attributes indicates supported attributes for the Track Send + command and Track Receive command. see :c:type:`enum nvme_id_ctrl_trattr ` ``rsvd577`` Reserved @@ -2084,7 +2182,7 @@ power scale value -.. c:type:: enum nvme_cmic +.. c:enum:: nvme_cmic This field indicates the controller multi-path I/O and NS sharing capabilities @@ -2123,7 +2221,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_cmic +.. c:enum:: nvme_id_ctrl_cmic Controller Multipath IO and Namespace Sharing Capabilities of the controller and NVM subsystem. @@ -2157,7 +2255,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_oaes +.. c:enum:: nvme_id_ctrl_oaes Optional Asynchronous Events Supported @@ -2283,7 +2381,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_ctratt +.. c:enum:: nvme_id_ctrl_ctratt Controller attributes @@ -2354,7 +2452,98 @@ power scale value -.. c:type:: enum nvme_id_ctrl_cntrltype +.. c:enum:: nvme_id_ctrl_bpcap + + Boot Partition Capabilities + +**Constants** + +``NVME_CTRL_BACAP_RPMBBPWPS_SHIFT`` + Shift amount to get the RPMB Boot Partition Write + Protection Support from the :c:type:`struct + nvme_id_ctrl `.bpcap field. + +``NVME_CTRL_BACAP_SFBPWPS_SHIFT`` + Shift amount to get the Set Features Boot Partition + Write Protection Support from the :c:type:`struct + nvme_id_ctrl `.bpcap field. + +``NVME_CTRL_BACAP_RPMBBPWPS_MASK`` + Mask to get the RPMB Boot Partition Write + Protection Support from the :c:type:`struct + nvme_id_ctrl `.bpcap field. + +``NVME_CTRL_BACAP_SFBPWPS_MASK`` + Mask to get the Set Features Boot Partition Write + Protection Support from the :c:type:`struct + nvme_id_ctrl `.bpcap field. + +``NVME_CTRL_BACAP_RPMBBPWPS_NOT_SPECIFIED`` + Support for RPMB Boot Partition Write Protection + is not specified. + +``NVME_CTRL_BACAP_RPMBBPWPS_NOT_SUPPORTED`` + RPMB Boot Partition Write Protection is not + supported by this controller. + +``NVME_CTRL_BACAP_RPMBBPWPS_SUPPORTED`` + RPMB Boot Partition Write Protection is supported + by this controller. + + + + +.. c:enum:: nvme_id_ctrl_plsi + + Power Loss Signaling Information + +**Constants** + +``NVME_CTRL_PLSI_PLSEPF_SHIFT`` + Shift amount to get the PLS Emergency Power Fail from the + :c:type:`struct nvme_id_ctrl `.plsi field. + +``NVME_CTRL_PLSI_PLSFQ_SHIFT`` + Shift amount to get the PLS Forced Quiescence from the + :c:type:`struct nvme_id_ctrl `.plsi field. + +``NVME_CTRL_PLSI_PLSEPF_MASK`` + Mask to get the PLS Emergency Power Fail from the + :c:type:`struct nvme_id_ctrl `.plsi field. + +``NVME_CTRL_PLSI_PLSFQ_MASK`` + Mask to get the PLS Forced Quiescence from the + :c:type:`struct nvme_id_ctrl `.plsi field. + + + + +.. c:enum:: nvme_id_ctrl_crcap + + Power Loss Signaling Information + +**Constants** + +``NVME_CTRL_CRCAP_RRSUP_SHIFT`` + Shift amount to get the Reachability Reporting Supported + from the :c:type:`struct nvme_id_ctrl `.crcap field. + +``NVME_CTRL_CRCAP_RGIDC_SHIFT`` + Shift amount to get the Reachability Group ID Changeable + from the :c:type:`struct nvme_id_ctrl `.crcap field. + +``NVME_CTRL_CRCAP_RRSUP_MASK`` + Mask to get the Reachability Reporting Supported from the + :c:type:`struct nvme_id_ctrl `.crcap field. + +``NVME_CTRL_CRCAP_RGIDC_MASK`` + Mask to get the Reachability Group ID Changeable from the + :c:type:`struct nvme_id_ctrl `.crcap field. + + + + +.. c:enum:: nvme_id_ctrl_cntrltype Controller types @@ -2372,7 +2561,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_dctype +.. c:enum:: nvme_id_ctrl_dctype Discovery Controller types @@ -2390,7 +2579,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_nvmsr +.. c:enum:: nvme_id_ctrl_nvmsr This field reports information associated with the NVM Subsystem, see :c:type:`struct nvme_id_ctrl `.nvmsr. @@ -2402,14 +2591,14 @@ power scale value is not part of an NVMe Storage Device. ``NVME_CTRL_NVMSR_NVMEE`` - If set’, then the NVM Subsystem is part of an NVMe + If set, then the NVM Subsystem is part of an NVMe Enclosure; if cleared, then the NVM Subsystem is not part of an NVMe Enclosure. -.. c:type:: enum nvme_id_ctrl_vwci +.. c:enum:: nvme_id_ctrl_vwci This field indicates information about remaining number of times that VPD contents are able to be updated using the VPD Write command, see :c:type:`struct nvme_id_ctrl `.vwci. @@ -2434,7 +2623,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_mec +.. c:enum:: nvme_id_ctrl_mec Flags indicating the capabilities of the Management Endpoint in the Controller, :c:type:`struct nvme_id_ctrl `.mec. @@ -2451,12 +2640,84 @@ power scale value -.. c:type:: enum nvme_id_ctrl_oacs +.. c:enum:: nvme_id_ctrl_oacs Flags indicating the optional Admin commands and features supported by the controller, see :c:type:`struct nvme_id_ctrl `.oacs. **Constants** +``NVME_CTRL_OACS_SSRS_SHIFT`` + Shift amount to get the Security Send Receive supported + +``NVME_CTRL_OACS_FNVMS_SHIFT`` + Shift amount to get the Format NVM supported + +``NVME_CTRL_OACS_FWDS_SHIFT`` + Shift amount to get the Firmware Download supported + +``NVME_CTRL_OACS_NMS_SHIFT`` + Shift amount to get the Namespace Management supported + +``NVME_CTRL_OACS_DSTS_SHIFT`` + Shift amount to get the Device Self-test supported + +``NVME_CTRL_OACS_DIRS_SHIFT`` + Shift amount to get the Directives supported + +``NVME_CTRL_OACS_NSRS_SHIFT`` + Shift amount to get the NVMe-MI Send Receive supported + +``NVME_CTRL_OACS_VMS_SHIFT`` + Shift amount to get the Virtualization Management supported + +``NVME_CTRL_OACS_DBCS_SHIFT`` + Shift amount to get the Doorbell Buffer Config supported + +``NVME_CTRL_OACS_GLSS_SHIFT`` + Shift amount to get the Get LBA Status supported + +``NVME_CTRL_OACS_CFLS_SHIFT`` + Shift amount to get the Command and Feature Lockdown supported + +``NVME_CTRL_OACS_HMLMS_SHIFT`` + Shift amount to get the Host Managed Live Migration support + +``NVME_CTRL_OACS_SSRS_MASK`` + Mask to get the Security Send Receive supported + +``NVME_CTRL_OACS_FNVMS_MASK`` + Mask to get the Format NVM supported + +``NVME_CTRL_OACS_FWDS_MASK`` + Mask to get the Firmware Download supported + +``NVME_CTRL_OACS_NMS_MASK`` + Mask to get the Namespace Management supported + +``NVME_CTRL_OACS_DSTS_MASK`` + Mask to get the Device Self-test supported + +``NVME_CTRL_OACS_DIRS_MASK`` + Mask to get the Directives supported + +``NVME_CTRL_OACS_NSRS_MASK`` + Mask to get the NVMe-MI Send Receive supported + +``NVME_CTRL_OACS_VMS_MASK`` + Mask to get the Virtualization Management supported + +``NVME_CTRL_OACS_DBCS_MASK`` + Mask to get the Doorbell Buffer Config supported + +``NVME_CTRL_OACS_GLSS_MASK`` + Mask to get the Get LBA Status supported + +``NVME_CTRL_OACS_CFLS_MASK`` + Mask to get the Command and Feature Lockdown supported + +``NVME_CTRL_OACS_HMLMS_MASK`` + Mask to get the Host Managed Live Migration support + ``NVME_CTRL_OACS_SECURITY`` If set, then the controller supports the Security Send and Security Receive commands. @@ -2502,10 +2763,14 @@ power scale value If set, then the controller supports the command and feature lockdown capability. +``NVME_CTRL_OACS_HMLM`` + If set, then the controller supports the command + and Host Managed Live Migration capability. -.. c:type:: enum nvme_id_ctrl_frmw + +.. c:enum:: nvme_id_ctrl_frmw Flags and values indicates capabilities regarding firmware updates from :c:type:`struct nvme_id_ctrl `.frmw. @@ -2530,7 +2795,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_lpa +.. c:enum:: nvme_id_ctrl_lpa Flags indicating optional attributes for log pages that are accessed via the Get Log Page command. @@ -2577,7 +2842,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_avscc +.. c:enum:: nvme_id_ctrl_avscc Flags indicating the configuration settings for Admin Vendor Specific command handling. @@ -2591,7 +2856,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_apsta +.. c:enum:: nvme_id_ctrl_apsta Flags indicating the attributes of the autonomous power state transition feature. @@ -2604,7 +2869,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_rpmbs +.. c:enum:: nvme_id_ctrl_rpmbs This field indicates if the controller supports one or more Replay Protected Memory Blocks, from :c:type:`struct nvme_id_ctrl `.rpmbs. @@ -2625,20 +2890,40 @@ power scale value -.. c:type:: enum nvme_id_ctrl_dsto +.. c:enum:: nvme_id_ctrl_dsto Flags indicating the optional Device Self-test command or operation behaviors supported by the controller or NVM subsystem. **Constants** +``NVME_CTRL_DSTO_SDSO_SHIFT`` + Shift amount to get the value of Single Device Self-test + Operation from Device Self-test Options field. + +``NVME_CTRL_DSTO_HIRS_SHIFT`` + Shift amount to get the value of Host-Initiated Refresh + Support from Device Self-test Options field. + +``NVME_CTRL_DSTO_SDSO_MASK`` + Mask to get the value of Single Device Self-test Operation + +``NVME_CTRL_DSTO_HIRS_MASK`` + Mask to get the value of Host-Initiated Refresh Support + ``NVME_CTRL_DSTO_ONE_DST`` - If set, then the NVM subsystem supports only one - device self-test operation in progress at a time. + If set, then the NVM subsystem supports only one device + self-test operation in progress at a time. If cleared, + then the NVM subsystem supports one device self-test + operation per controller at a time. + +``NVME_CTRL_DSTO_HIRS`` + If set, then the controller supports the Host-Initiated + Refresh capability. -.. c:type:: enum nvme_id_ctrl_hctm +.. c:enum:: nvme_id_ctrl_hctm Flags indicate the attributes of the host controlled thermal management feature @@ -2653,7 +2938,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_sanicap +.. c:enum:: nvme_id_ctrl_sanicap Indicates attributes for sanitize operations. @@ -2685,7 +2970,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_anacap +.. c:enum:: nvme_id_ctrl_anacap This field indicates the capabilities associated with Asymmetric Namespace Access Reporting. @@ -2726,7 +3011,32 @@ power scale value -.. c:type:: enum nvme_id_ctrl_sqes +.. c:enum:: nvme_id_ctrl_kpioc + + Key Per I/O Capabilities + +**Constants** + +``NVME_CTRL_KPIOC_KPIOS_SHIFT`` + Shift amount to get the Key Per I/O Supported from the + :c:type:`struct nvme_id_ctrl `.kpioc field. + +``NVME_CTRL_KPIOC_KPIOSC_SHIFT`` + Shift amount to get the Key Per I/O Scope from the + :c:type:`struct nvme_id_ctrl `.kpioc field. + +``NVME_CTRL_KPIOC_KPIOS_MASK`` + Mask to get the Key Per I/O Supported from the + :c:type:`struct nvme_id_ctrl `.kpioc field. + +``NVME_CTRL_KPIOC_KPIOSC_MASK`` + Mask to get the Key Per I/O Scope from the + :c:type:`struct nvme_id_ctrl `.kpioc field. + + + + +.. c:enum:: nvme_id_ctrl_sqes Defines the required and maximum Submission Queue entry size when using the NVM Command Set. @@ -2743,7 +3053,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_cqes +.. c:enum:: nvme_id_ctrl_cqes Defines the required and maximum Completion Queue entry size when using the NVM Command Set. @@ -2760,7 +3070,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_oncs +.. c:enum:: nvme_id_ctrl_oncs This field indicates the optional NVM commands and features supported by the controller. @@ -2817,10 +3127,23 @@ power scale value the Copy command are fast copy operations. +``NVME_CTRL_ONCS_WRITE_ZEROES_DEALLOCATE`` + If MAXWZD bit set, then the maximum data + size for Write Zeroes command depends on the + value of the Deallocate bit in the Write Zeroes + command and the value in the WZDSL field in the + I/O Command Set specific Identify Controller + data structure. + +``NVME_CTRL_ONCS_NAMESPACE_ZEROES`` + If NSZS bit set, then the controller supports + the Namespace Zeroes (NSZ) bit in the NVM + Command Set Write Zeroes command. -.. c:type:: enum nvme_id_ctrl_fuses + +.. c:enum:: nvme_id_ctrl_fuses This field indicates the fused operations that the controller supports. @@ -2833,7 +3156,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_fna +.. c:enum:: nvme_id_ctrl_fna This field indicates attributes for the Format NVM command. @@ -2896,7 +3219,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_vwc +.. c:enum:: nvme_id_ctrl_vwc Volatile write cache @@ -2915,7 +3238,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_nvscc +.. c:enum:: nvme_id_ctrl_nvscc This field indicates the configuration settings for NVM Vendor Specific command handling. @@ -2928,7 +3251,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_nwpc +.. c:enum:: nvme_id_ctrl_nwpc This field indicates the optional namespace write protection capabilities supported by the controller. @@ -2957,7 +3280,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_sgls +.. c:enum:: nvme_id_ctrl_sgls This field indicates if SGLs are supported for the NVM Command Set and the particular SGL types supported. @@ -2982,7 +3305,40 @@ power scale value -.. c:type:: enum nvme_id_ctrl_fcatt +.. c:enum:: nvme_id_ctrl_trattr + + Tracking Attributes + +**Constants** + +``NVME_CTRL_TRATTR_THMCS_SHIFT`` + Shift amount to get the Track Host Memory Changes Support + from the :c:type:`struct nvme_id_ctrl `.trattr field. + +``NVME_CTRL_TRATTR_TUDCS_SHIFT`` + Shift amount to get the Track User Data Changes Support + from the :c:type:`struct nvme_id_ctrl `.trattr field. + +``NVME_CTRL_TRATTR_MRTLL_SHIFT`` + Shift amount to get the Memory Range Tracking Length Limit + from the :c:type:`struct nvme_id_ctrl `.trattr field. + +``NVME_CTRL_TRATTR_THMCS_MASK`` + Mask to get the Track Host Memory Changes Support + from the :c:type:`struct nvme_id_ctrl `.trattr field. + +``NVME_CTRL_TRATTR_TUDCS_MASK`` + Mask to get the Track User Data Changes Support + from the :c:type:`struct nvme_id_ctrl `.trattr field. + +``NVME_CTRL_TRATTR_MRTLL_MASK`` + Mask to get the Memory Range Tracking Length Limit + from the :c:type:`struct nvme_id_ctrl `.trattr field. + + + + +.. c:enum:: nvme_id_ctrl_fcatt This field indicates attributes of the controller that are specific to NVMe over Fabrics. @@ -2996,7 +3352,7 @@ power scale value -.. c:type:: enum nvme_id_ctrl_ofcs +.. c:enum:: nvme_id_ctrl_ofcs Indicate whether the controller supports optional fabric commands. @@ -3010,7 +3366,7 @@ power scale value -.. c:type:: struct nvme_lbaf +.. c:struct:: nvme_lbaf LBA Format Data Structure @@ -3041,7 +3397,7 @@ power scale value -.. c:type:: enum nvme_lbaf_rp +.. c:enum:: nvme_lbaf_rp This field indicates the relative performance of the LBA format indicated relative to other LBA formats supported by the controller. @@ -3066,7 +3422,7 @@ power scale value -.. c:type:: struct nvme_id_ns +.. c:struct:: nvme_id_ns Identify Namespace data structure @@ -3104,9 +3460,11 @@ power scale value __le16 mssrl; __le32 mcl; __u8 msrc; - __u8 rsvd81; + __u8 kpios; __u8 nulbaf; - __u8 rsvd83[9]; + __u8 rsvd83; + __le32 kpiodaag; + __u8 rsvd88[4]; __le32 anagrpid; __u8 rsvd96[3]; __u8 nsattr; @@ -3251,8 +3609,8 @@ power scale value Range entries that may be used to specify source data in a Copy command. This is a 0’s based value. -``rsvd81`` - Reserved +``kpios`` + Key Per I/O Status indicates namespace Key Per I/O capability status. ``nulbaf`` Number of Unique Capability LBA Formats defines the number of @@ -3263,6 +3621,14 @@ power scale value ``rsvd83`` Reserved +``kpiodaag`` + Key Per I/O Data Access Alignment and Granularity indicates the + alignment and granularity in logical blocks that is required + for commands that support a KPIOTAG value in the CETYPE field. + +``rsvd88`` + Reserved + ``anagrpid`` ANA Group Identifier indicates the ANA Group Identifier of the ANA group of which the namespace is a member. @@ -3305,7 +3671,7 @@ power scale value -.. c:type:: enum nvme_id_nsfeat +.. c:enum:: nvme_id_nsfeat This field defines features of the namespace. @@ -3343,7 +3709,7 @@ power scale value -.. c:type:: enum nvme_id_ns_flbas +.. c:enum:: nvme_id_ns_flbas This field indicates the LBA data size & metadata size combination that the namespace has been formatted with @@ -3372,7 +3738,7 @@ power scale value -.. c:type:: enum nvme_nvm_id_ns_elbaf +.. c:enum:: nvme_nvm_id_ns_elbaf This field indicates the extended LBA format @@ -3393,7 +3759,7 @@ power scale value -.. c:type:: enum nvme_nvm_id_ns_pif +.. c:enum:: nvme_nvm_id_ns_pif This field indicates the type of the Protection Information Format @@ -3417,7 +3783,7 @@ power scale value -.. c:type:: enum nvme_id_ns_mc +.. c:enum:: nvme_id_ns_mc This field indicates the capabilities for metadata. @@ -3435,7 +3801,7 @@ power scale value -.. c:type:: enum nvme_id_ns_dpc +.. c:enum:: nvme_id_ns_dpc This field indicates the capabilities for the end-to-end data protection feature. @@ -3466,7 +3832,7 @@ power scale value -.. c:type:: enum nvme_id_ns_dps +.. c:enum:: nvme_id_ns_dps This field indicates the Type settings for the end-to-end data protection feature. @@ -3495,7 +3861,7 @@ power scale value -.. c:type:: enum nvme_id_ns_nmic +.. c:enum:: nvme_id_ns_nmic This field specifies multi-path I/O and namespace sharing capabilities of the namespace. @@ -3508,7 +3874,7 @@ power scale value -.. c:type:: enum nvme_id_ns_rescap +.. c:enum:: nvme_id_ns_rescap This field indicates the reservation capabilities of the namespace. @@ -3549,7 +3915,7 @@ power scale value -.. c:type:: enum nvme_nd_ns_fpi +.. c:enum:: nvme_nd_ns_fpi If a format operation is in progress, this field indicates the percentage of the namespace that remains to be formatted. @@ -3565,7 +3931,7 @@ power scale value -.. c:type:: enum nvme_id_ns_dlfeat +.. c:enum:: nvme_id_ns_dlfeat This field indicates information about features that affect deallocating logical blocks for this namespace. @@ -3600,7 +3966,7 @@ power scale value -.. c:type:: enum nvme_id_ns_attr +.. c:enum:: nvme_id_ns_attr Specifies attributes of the namespace. @@ -3614,7 +3980,7 @@ power scale value -.. c:type:: struct nvme_ns_id_desc +.. c:struct:: nvme_ns_id_desc Namespace identifier type descriptor @@ -3650,7 +4016,7 @@ power scale value -.. c:type:: enum nvme_ns_id_desc_nidt +.. c:enum:: nvme_ns_id_desc_nidt Known namespace identifier types @@ -3674,7 +4040,7 @@ power scale value -.. c:type:: struct nvme_nvmset_attr +.. c:struct:: nvme_nvmset_attr NVM Set Attributes Entry @@ -3726,7 +4092,7 @@ power scale value -.. c:type:: struct nvme_id_nvmset_list +.. c:struct:: nvme_id_nvmset_list NVM set list @@ -3755,7 +4121,7 @@ power scale value -.. c:type:: struct nvme_id_independent_id_ns +.. c:struct:: nvme_id_independent_id_ns Identify - I/O Command Set Independent Identify Namespace Data Structure @@ -3817,7 +4183,7 @@ power scale value -.. c:type:: struct nvme_id_ns_granularity_desc +.. c:struct:: nvme_id_ns_granularity_desc Namespace Granularity Descriptor @@ -3842,7 +4208,7 @@ power scale value -.. c:type:: struct nvme_id_ns_granularity_list +.. c:struct:: nvme_id_ns_granularity_list Namespace Granularity List @@ -3879,7 +4245,7 @@ power scale value -.. c:type:: struct nvme_id_uuid_list_entry +.. c:struct:: nvme_id_uuid_list_entry UUID List Entry @@ -3908,7 +4274,7 @@ power scale value -.. c:type:: enum nvme_id_uuid +.. c:enum:: nvme_id_uuid Identifier Association @@ -3925,7 +4291,7 @@ power scale value -.. c:type:: struct nvme_id_uuid_list +.. c:struct:: nvme_id_uuid_list UUID list @@ -3950,7 +4316,7 @@ power scale value -.. c:type:: struct nvme_ctrl_list +.. c:struct:: nvme_ctrl_list Controller List @@ -3975,7 +4341,7 @@ power scale value -.. c:type:: struct nvme_ns_list +.. c:struct:: nvme_ns_list Namespace List @@ -3996,7 +4362,22 @@ power scale value -.. c:type:: struct nvme_id_ctrl_nvm +.. c:enum:: nvme_id_ctrl_nvm_lbamqf + + LBA Migration Queue Format + +**Constants** + +``NVME_ID_CTRL_NVM_LBAMQF_TYPE_0`` + +``NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MIN`` + +``NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MAX`` + + + + +.. c:struct:: nvme_id_ctrl_nvm I/O Command Set Specific Identify Controller data structure @@ -4011,7 +4392,8 @@ power scale value __u8 dmrl; __le32 dmrsl; __le64 dmsl; - __u8 rsvd16[2]; + __u8 kpiocap; + __u8 wzdsl; __le16 aocs; __le32 ver; __u8 lbamqf; @@ -4038,8 +4420,11 @@ power scale value ``dmsl`` Dataset Management Size Limit -``rsvd16`` - Reserved +``kpiocap`` + Key Per I/O Capabilities + +``wzdsl`` + Write Zeroes With Deallocate Size Limit ``aocs`` Admin Optional Command Support @@ -4057,7 +4442,7 @@ power scale value -.. c:type:: struct nvme_nvm_id_ns +.. c:struct:: nvme_nvm_id_ns NVME Command Set I/O Command Set Specific Identify Namespace Data Structure @@ -4126,7 +4511,7 @@ power scale value -.. c:type:: struct nvme_zns_lbafe +.. c:struct:: nvme_zns_lbafe LBA Format Extension Data Structure @@ -4155,7 +4540,7 @@ power scale value -.. c:type:: struct nvme_zns_id_ns +.. c:struct:: nvme_zns_id_ns Zoned Namespace Command Set Specific Identify Namespace Data Structure @@ -4248,7 +4633,7 @@ power scale value -.. c:type:: struct nvme_zns_id_ctrl +.. c:struct:: nvme_zns_id_ctrl I/O Command Set Specific Identify Controller Data Structure for the Zoned Namespace Command Set @@ -4273,7 +4658,7 @@ power scale value -.. c:type:: struct nvme_primary_ctrl_cap +.. c:struct:: nvme_primary_ctrl_cap Identify - Controller Capabilities Structure @@ -4362,7 +4747,7 @@ power scale value -.. c:type:: struct nvme_secondary_ctrl +.. c:struct:: nvme_secondary_ctrl Secondary Controller Entry @@ -4411,7 +4796,7 @@ power scale value -.. c:type:: struct nvme_secondary_ctrl_list +.. c:struct:: nvme_secondary_ctrl_list Secondary Controller List @@ -4440,7 +4825,7 @@ power scale value -.. c:type:: struct nvme_id_iocs +.. c:struct:: nvme_id_iocs NVMe Identify IO Command Set data structure @@ -4461,7 +4846,50 @@ power scale value -.. c:type:: struct nvme_id_domain_attr +.. c:enum:: nvme_id_iocs_iocsc + + This field indicates the Identify I/O Command Set Data Structure + +**Constants** + +``NVME_IOCS_IOCSC_NVMCS_SHIFT`` + Shift amount to get the value of NVM Command Set + +``NVME_IOCS_IOCSC_NVMCS_MASK`` + Mask to get the value of NVM Command Set + +``NVME_IOCS_IOCSC_KVCS_SHIFT`` + Shift amount to get the value of Key Value Command Set + +``NVME_IOCS_IOCSC_KVCS_MASK`` + Mask to get the value of Key Value Command Set + +``NVME_IOCS_IOCSC_ZNSCS_SHIFT`` + Shift amount to get the value of Zoned Namespace Command + Set + +``NVME_IOCS_IOCSC_ZNSCS_MASK`` + Mask to get the value of Zoned Namespace Command Set + +``NVME_IOCS_IOCSC_SLMCS_SHIFT`` + Shift amount to get the value of Subsystem Local Memory + Command Set + +``NVME_IOCS_IOCSC_SLMCS_MASK`` + Mask to get the value of Subsystem Local Memory Command Set + +``NVME_IOCS_IOCSC_CPNCS_SHIFT`` + Shift amount to get the value of Computational Programs + Namespace Command Set + +``NVME_IOCS_IOCSC_CPNCS_MASK`` + Mask to get the value of Computational Programs Namespace + Command Set + + + + +.. c:struct:: nvme_id_domain_attr Domain Attributes Entry @@ -4502,7 +4930,7 @@ power scale value -.. c:type:: struct nvme_id_domain_list +.. c:struct:: nvme_id_domain_list Domain List @@ -4531,7 +4959,7 @@ power scale value -.. c:type:: struct nvme_id_endurance_group_list +.. c:struct:: nvme_id_endurance_group_list Endurance Group List @@ -4556,7 +4984,7 @@ power scale value -.. c:type:: struct nvme_supported_log_pages +.. c:struct:: nvme_supported_log_pages Supported Log Pages - Log @@ -4581,7 +5009,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: struct nvme_error_log_page +.. c:struct:: nvme_error_log_page Error Information Log Entry (Log Identifier 01h) @@ -4708,7 +5136,28 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: struct nvme_smart_log +.. c:enum:: nvme_err_status_field + + This field indicates the error information log entry status field + +**Constants** + +``NVME_ERR_SF_PHASE_TAG_SHIFT`` + Shift amount to get the phase tag + +``NVME_ERR_SF_STATUS_FIELD_SHIFT`` + Shift amount to get the status field + +``NVME_ERR_SF_PHASE_TAG_MASK`` + Mask to get the phase tag + +``NVME_ERR_SF_STATUS_FIELD_MASK`` + Mask to get the status field + + + + +.. c:struct:: nvme_smart_log SMART / Health Information Log (Log Identifier 02h) @@ -4949,7 +5398,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: enum nvme_smart_crit +.. c:enum:: nvme_smart_crit Critical Warning @@ -4988,7 +5437,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: enum nvme_smart_egcw +.. c:enum:: nvme_smart_egcw Endurance Group Critical Warning Summary @@ -5013,7 +5462,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: struct nvme_firmware_slot +.. c:struct:: nvme_firmware_slot Firmware Slot Information Log @@ -5046,7 +5495,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: struct nvme_cmd_effects_log +.. c:struct:: nvme_cmd_effects_log Commands Supported and Effects Log @@ -5075,7 +5524,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: enum nvme_cmd_effects +.. c:enum:: nvme_cmd_effects Commands Supported and Effects @@ -5108,7 +5557,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: struct nvme_st_result +.. c:struct:: nvme_st_result Self-test Result @@ -5191,7 +5640,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: enum nvme_status_result +.. c:enum:: nvme_status_result Result of the device self-test operation @@ -5245,7 +5694,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: enum nvme_st_code +.. c:enum:: nvme_st_code Self-test Code value @@ -5260,6 +5709,9 @@ Supported Log Pages (Log Identifier 00h) ``NVME_ST_CODE_EXTENDED`` Extended device self-test operation. +``NVME_ST_CODE_HOST_INIT`` + Host-Initiated Refresh operation. + ``NVME_ST_CODE_VS`` Vendor specific. @@ -5273,7 +5725,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: enum nvme_st_curr_op +.. c:enum:: nvme_st_curr_op Current Device Self-Test Operation @@ -5305,7 +5757,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: enum nvme_st_valid_diag_info +.. c:enum:: nvme_st_valid_diag_info Valid Diagnostic Information @@ -5330,7 +5782,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: struct nvme_self_test_log +.. c:struct:: nvme_self_test_log Device Self-test (Log Identifier 06h) @@ -5379,7 +5831,7 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: enum nvme_cmd_get_log_telemetry_host_lsp +.. c:enum:: nvme_cmd_get_log_telemetry_host_lsp Telemetry Host-Initiated log specific field @@ -5394,7 +5846,31 @@ Supported Log Pages (Log Identifier 00h) -.. c:type:: struct nvme_telemetry_log +.. c:enum:: nvme_telemetry_da + + Telemetry Log Data Area + +**Constants** + +``NVME_TELEMETRY_DA_CTRL_DETERMINE`` + The controller determines the data areas to be created + +``NVME_TELEMETRY_DA_1`` + Data Area 1 + +``NVME_TELEMETRY_DA_2`` + Data Area 2 + +``NVME_TELEMETRY_DA_3`` + Data Area 3 + +``NVME_TELEMETRY_DA_4`` + Data Area 4 + + + + +.. c:struct:: nvme_telemetry_log Retrieve internal data specific to the manufacturer. @@ -5411,8 +5887,12 @@ Supported Log Pages (Log Identifier 00h) __le16 dalb3; __u8 rsvd14[2]; __le32 dalb4; - __u8 rsvd20[361]; - __u8 hostdgn; + __u8 rsvd20[360]; + __u8 ths; + union { + __u8 hostdgn; + __u8 tcs; + }; __u8 ctrlavail; __u8 ctrldgn; __u8 rsnident[128]; @@ -5433,31 +5913,40 @@ Supported Log Pages (Log Identifier 00h) for the controller vendor that is able to interpret the data. ``dalb1`` - Telemetry Controller-Initiated Data Area 1 Last Block is + Telemetry Host/Controller Initiated Data Area 1 Last Block is the value of the last block in this area. ``dalb2`` - Telemetry Controller-Initiated Data Area 1 Last Block is + Telemetry Host/Controller Initiated Data Area 1 Last Block is the value of the last block in this area. ``dalb3`` - Telemetry Controller-Initiated Data Area 1 Last Block is + Telemetry Host/ControllerInitiated Data Area 1 Last Block is the value of the last block in this area. ``rsvd14`` Reserved ``dalb4`` - Telemetry Controller-Initiated Data Area 4 Last Block is + Telemetry Host/Controller Initiated Data Area 4 Last Block is the value of the last block in this area. ``rsvd20`` Reserved +``ths`` + Telemetry Host-Initiated Scope + +``{unnamed_union}`` + anonymous + ``hostdgn`` Telemetry Host-Initiated Data Generation Number is a value that is incremented each time the host initiates a - capture of its internal controller state in the controller . + capture of its internal controller state in the controller. + +``tcs`` + Telemetry Controller-Initiated Scope ``ctrlavail`` Telemetry Controller-Initiated Data Available, if cleared, @@ -5490,7 +5979,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_endurance_group_log +.. c:struct:: nvme_endurance_group_log Endurance Group Information Log @@ -5583,7 +6072,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_eg_critical_warning_flags +.. c:enum:: nvme_eg_critical_warning_flags Endurance Group Information Log - Critical Warning @@ -5603,7 +6092,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_aggregate_endurance_group_event +.. c:struct:: nvme_aggregate_endurance_group_event Endurance Group Event Aggregate @@ -5628,7 +6117,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_nvmset_predictable_lat_log +.. c:struct:: nvme_nvmset_predictable_lat_log Predictable Latency Mode - Deterministic Threshold Configuration Data @@ -5701,7 +6190,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_nvmeset_pl_status +.. c:enum:: nvme_nvmeset_pl_status Predictable Latency Per NVM Set Log - Status @@ -5719,7 +6208,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_nvmset_pl_events +.. c:enum:: nvme_nvmset_pl_events Predictable Latency Per NVM Set Log - Event Type @@ -5747,7 +6236,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_aggregate_predictable_lat_event +.. c:struct:: nvme_aggregate_predictable_lat_event Predictable Latency Event Aggregate Log Page @@ -5772,7 +6261,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_ana_group_desc +.. c:struct:: nvme_ana_group_desc ANA Group Descriptor @@ -5813,7 +6302,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_ana_state +.. c:enum:: nvme_ana_state ANA Group Descriptor - Asymmetric Namespace Access State @@ -5837,7 +6326,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_ana_log +.. c:struct:: nvme_ana_log Asymmetric Namespace Access Log @@ -5870,7 +6359,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_persistent_event_log +.. c:struct:: nvme_persistent_event_log Persistent Event Log @@ -5963,7 +6452,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_pel_rci +.. c:enum:: nvme_pel_rci This field indicates the persistent event log reporting context @@ -6004,7 +6493,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_pel_rci_rcpit +.. c:enum:: nvme_pel_rci_rcpit Persistent Event Log Reporting Context - Port Identifier Type @@ -6022,7 +6511,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_persistent_event_entry +.. c:struct:: nvme_persistent_event_entry Persistent Event @@ -6079,7 +6568,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_persistent_event_types +.. c:enum:: nvme_persistent_event_types Persistent event log events @@ -6136,7 +6625,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_pel_ehai +.. c:enum:: nvme_pel_ehai This field indicates the persistent event header additional information @@ -6161,7 +6650,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_pel_ehai_pit +.. c:enum:: nvme_pel_ehai_pit Persistent Event Header Additional Information - Port Identifier Type @@ -6182,7 +6671,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fw_commit_event +.. c:struct:: nvme_fw_commit_event Firmware Commit Event Data @@ -6227,7 +6716,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_timestamp +.. c:struct:: nvme_timestamp Timestamp - Data Structure for Get Features @@ -6256,7 +6745,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_time_stamp_change_event +.. c:struct:: nvme_time_stamp_change_event Timestamp Change Event @@ -6281,7 +6770,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_power_on_reset_info_list +.. c:struct:: nvme_power_on_reset_info_list Controller Reset Information @@ -6326,7 +6815,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_nss_hw_err_event +.. c:struct:: nvme_nss_hw_err_event NVM Subsystem Hardware Error Event @@ -6355,7 +6844,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_change_ns_event +.. c:struct:: nvme_change_ns_event Change Namespace Event Data @@ -6424,7 +6913,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_format_nvm_start_event +.. c:struct:: nvme_format_nvm_start_event Format NVM Start Event Data @@ -6457,7 +6946,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_format_nvm_compln_event +.. c:struct:: nvme_format_nvm_compln_event Format NVM Completion Event Data @@ -6494,7 +6983,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_sanitize_start_event +.. c:struct:: nvme_sanitize_start_event Sanitize Start Event Data @@ -6523,7 +7012,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_sanitize_compln_event +.. c:struct:: nvme_sanitize_compln_event Sanitize Completion Event Data @@ -6556,7 +7045,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_set_feature_event +.. c:struct:: nvme_set_feature_event Set Feature Event Data @@ -6581,7 +7070,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_set_feat_event_layout +.. c:enum:: nvme_set_feat_event_layout This field indicates the set feature event layout @@ -6614,7 +7103,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_thermal_exc_event +.. c:struct:: nvme_thermal_exc_event Thermal Excursion Event Data @@ -6639,7 +7128,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_lba_rd +.. c:struct:: nvme_lba_rd LBA Range Descriptor @@ -6668,7 +7157,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_lbas_ns_element +.. c:struct:: nvme_lbas_ns_element LBA Status Log Namespace Element @@ -6705,7 +7194,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_lba_status_atype +.. c:enum:: nvme_lba_status_atype Action type the controller uses to return LBA status @@ -6726,7 +7215,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_lba_status_log +.. c:struct:: nvme_lba_status_log LBA Status Information Log @@ -6767,7 +7256,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_eg_event_aggregate_log +.. c:struct:: nvme_eg_event_aggregate_log Endurance Group Event Aggregate @@ -6792,7 +7281,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_fid_supported_effects +.. c:enum:: nvme_fid_supported_effects FID Supported and Effects Data Structure definitions @@ -6840,10 +7329,13 @@ bytes, in size. This log captures the controller’s internal state. ``NVME_FID_SUPPORTED_EFFECTS_SCOPE_NSS`` NVM Subsystem Scope +``NVME_FID_SUPPORTED_EFFECTS_CDQSCP`` + Controller Data Queue -.. c:type:: struct nvme_fid_supported_effects_log + +.. c:struct:: nvme_fid_supported_effects_log Feature Identifiers Supported and Effects @@ -6864,7 +7356,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_mi_cmd_supported_effects +.. c:enum:: nvme_mi_cmd_supported_effects MI Command Supported and Effects Data Structure @@ -6912,7 +7404,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_mi_cmd_supported_effects_log +.. c:struct:: nvme_mi_cmd_supported_effects_log NVMe-MI Commands Supported and Effects Log @@ -6937,7 +7429,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_boot_partition +.. c:struct:: nvme_boot_partition Boot Partition Log @@ -6975,7 +7467,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_boot_partition_info +.. c:enum:: nvme_boot_partition_info This field indicates the boot partition information @@ -7000,7 +7492,143 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_eom_lane_desc +.. c:struct:: nvme_rotational_media_info_log + + Rotational Media Information Log + +**Definition** + +:: + + struct nvme_rotational_media_info_log { + __le16 endgid; + __le16 numa; + __le16 nrs; + __u8 rsvd6[2]; + __le32 spinc; + __le32 fspinc; + __le32 ldc; + __le32 fldc; + __u8 rsvd24[488]; + }; + +**Members** + +``endgid`` + Endurance Group Identifier + +``numa`` + Number of Actuators + +``nrs`` + Nominal Rotational Speed + +``rsvd6`` + Reserved + +``spinc`` + Spinup Count + +``fspinc`` + Failed Spinup Count + +``ldc`` + Load Count + +``fldc`` + Failed Load Count + +``rsvd24`` + Reserved + + + + + +.. c:struct:: nvme_dispersed_ns_participating_nss_log + + Dispersed Namespace Participating NVM Subsystems Log + +**Definition** + +:: + + struct nvme_dispersed_ns_participating_nss_log { + __le64 genctr; + __le64 numpsub; + __u8 rsvd16[240]; + __u8 participating_nss[]; + }; + +**Members** + +``genctr`` + Generation Counter + +``numpsub`` + Number of Participating NVM Subsystems + +``rsvd16`` + Reserved + +``participating_nss`` + Participating NVM Subsystem Entry + + + + + +.. c:struct:: nvme_mgmt_addr_desc + + Management Address Descriptor + +**Definition** + +:: + + struct nvme_mgmt_addr_desc { + __u8 mat; + __u8 rsvd1[3]; + __u8 madrs[508]; + }; + +**Members** + +``mat`` + Management Address Type + +``rsvd1`` + Reserved + +``madrs`` + Management Address + + + + + +.. c:struct:: nvme_mgmt_addr_list_log + + Management Address List Log + +**Definition** + +:: + + struct nvme_mgmt_addr_list_log { + struct nvme_mgmt_addr_desc mad[8]; + }; + +**Members** + +``mad`` + Management Address Descriptor + + + + + +.. c:struct:: nvme_eom_lane_desc EOM Lane Descriptor @@ -7069,7 +7697,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_phy_rx_eom_log +.. c:struct:: nvme_phy_rx_eom_log Physical Interface Receiver Eye Opening Measurement Log @@ -7174,7 +7802,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_eom_optional_data_present +.. c:enum:: nvme_eom_optional_data_present EOM Optional Data Present Fields @@ -7207,7 +7835,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_eom_optional_data +.. c:enum:: nvme_eom_optional_data EOM Optional Data Present Fields (Deprecated) @@ -7222,7 +7850,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_phy_rx_eom_progress +.. c:enum:: nvme_phy_rx_eom_progress EOM In Progress Values @@ -7240,7 +7868,151 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_media_unit_stat_desc +.. c:struct:: nvme_reachability_group_desc + + Reachability Group Descriptor + +**Definition** + +:: + + struct nvme_reachability_group_desc { + __le32 rgid; + __le32 nnid; + __le64 chngc; + __u8 rsvd16[16]; + __le32 nsid[]; + }; + +**Members** + +``rgid`` + Reachability Group ID + +``nnid`` + Number of NSID Values + +``chngc`` + Change Count + +``rsvd16`` + Reserved + +``nsid`` + Namespace Identifier List + + + + + +.. c:struct:: nvme_reachability_groups_log + + Reachability Groups Log + +**Definition** + +:: + + struct nvme_reachability_groups_log { + __le64 chngc; + __le16 nrgd; + __u8 rsvd10[6]; + struct nvme_reachability_group_desc rgd[]; + }; + +**Members** + +``chngc`` + Change Count + +``nrgd`` + Number of Reachability Group Descriptors + +``rsvd10`` + Reserved + +``rgd`` + Reachability Group Descriptor List + + + + + +.. c:struct:: nvme_reachability_association_desc + + Reachability Association Descriptor + +**Definition** + +:: + + struct nvme_reachability_association_desc { + __le32 rasid; + __le32 nrid; + __le64 chngc; + __u8 rac; + __u8 rsvd17[15]; + __le32 rgid[]; + }; + +**Members** + +``rasid`` + Reachability Association ID + +``nrid`` + Number of RGID Values + +``chngc`` + Change Count + +``rac`` + Reachability Association Characteristics + +``rsvd17`` + Reserved + +``rgid`` + Reachability Group Identifier List + + + + + +.. c:struct:: nvme_reachability_associations_log + + Reachability Associations Log + +**Definition** + +:: + + struct nvme_reachability_associations_log { + __le64 chngc; + __le16 nrad; + __u8 rsvd10[6]; + struct nvme_reachability_association_desc rad[]; + }; + +**Members** + +``chngc`` + Change Count + +``nrad`` + Number of Reachability Association Descriptors + +``rsvd10`` + Reserved + +``rad`` + Reachability Association Descriptor List + + + + + +.. c:struct:: nvme_media_unit_stat_desc Media Unit Status Descriptor @@ -7293,7 +8065,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_media_unit_stat_log +.. c:struct:: nvme_media_unit_stat_log Media Unit Status @@ -7330,7 +8102,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_media_unit_config_desc +.. c:struct:: nvme_media_unit_config_desc Media Unit Configuration Descriptor @@ -7359,7 +8131,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_channel_config_desc +.. c:struct:: nvme_channel_config_desc Channel Configuration Descriptor @@ -7389,7 +8161,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_end_grp_chan_desc +.. c:struct:: nvme_end_grp_chan_desc Endurance Group Channel Configuration Descriptor @@ -7415,7 +8187,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_end_grp_config_desc +.. c:struct:: nvme_end_grp_config_desc Endurance Group Configuration Descriptor @@ -7468,7 +8240,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_capacity_config_desc +.. c:struct:: nvme_capacity_config_desc Capacity Configuration structure definitions @@ -7507,7 +8279,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_supported_cap_config_list_log +.. c:struct:: nvme_supported_cap_config_list_log Supported Capacity Configuration list log page @@ -7537,7 +8309,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_lockdown_log +.. c:struct:: nvme_lockdown_log Command and Feature Lockdown Log @@ -7570,7 +8342,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_resv_notification_log +.. c:struct:: nvme_resv_notification_log Reservation Notification Log @@ -7611,7 +8383,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_resv_notify_rnlpt +.. c:enum:: nvme_resv_notify_rnlpt Reservation Notification Log - Reservation Notification Log Page Type @@ -7632,7 +8404,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_sanitize_log_page +.. c:struct:: nvme_sanitize_log_page Sanitize Status (Log Identifier 81h) @@ -7758,7 +8530,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_sanitize_sstat +.. c:enum:: nvme_sanitize_sstat Sanitize Status (SSTAT) @@ -7838,7 +8610,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_sanitize_ssi +.. c:enum:: nvme_sanitize_ssi Sanitize State Information (SSI) @@ -7903,7 +8675,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_zns_changed_zone_log +.. c:struct:: nvme_zns_changed_zone_log ZNS Changed Zone List log @@ -7932,7 +8704,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_zns_zt +.. c:enum:: nvme_zns_zt Zone Descriptor Data Structure - Zone Type @@ -7944,7 +8716,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_zns_za +.. c:enum:: nvme_zns_za Zone Descriptor Data Structure @@ -7967,7 +8739,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_zns_zs +.. c:enum:: nvme_zns_zs Zone Descriptor Data Structure - Zone State @@ -7997,7 +8769,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_zns_desc +.. c:struct:: nvme_zns_desc Zone Descriptor Data Structure @@ -8050,7 +8822,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_zone_report +.. c:struct:: nvme_zone_report Report Zones Data Structure @@ -8079,7 +8851,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_fdp_ruh_type +.. c:enum:: nvme_fdp_ruh_type Reclaim Unit Handle Type @@ -8094,7 +8866,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_ruh_desc +.. c:struct:: nvme_fdp_ruh_desc Reclaim Unit Handle Descriptor @@ -8119,7 +8891,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_fdp_config_fdpa +.. c:enum:: nvme_fdp_config_fdpa FDP Attributes @@ -8146,7 +8918,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_lockdown_log_scope +.. c:enum:: nvme_lockdown_log_scope lockdown log page scope attributes @@ -8167,7 +8939,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_lockdown_log_contents +.. c:enum:: nvme_lockdown_log_contents lockdown log page content attributes @@ -8185,7 +8957,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_lockdown_scope_contents +.. c:enum:: nvme_lockdown_scope_contents Lockdown Log shift and mask @@ -8206,7 +8978,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_config_desc +.. c:struct:: nvme_fdp_config_desc FDP Configuration Descriptor @@ -8267,7 +9039,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_config_log +.. c:struct:: nvme_fdp_config_log FDP Configurations Log Page @@ -8308,7 +9080,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_fdp_ruha +.. c:enum:: nvme_fdp_ruha Reclaim Unit Handle Attributes @@ -8329,7 +9101,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_ruhu_desc +.. c:struct:: nvme_fdp_ruhu_desc Reclaim Unit Handle Usage Descriptor @@ -8354,7 +9126,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_ruhu_log +.. c:struct:: nvme_fdp_ruhu_log Reclaim Unit Handle Usage Log Page @@ -8383,7 +9155,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_stats_log +.. c:struct:: nvme_fdp_stats_log FDP Statistics Log Page @@ -8416,7 +9188,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_fdp_event_type +.. c:enum:: nvme_fdp_event_type FDP Event Types @@ -8443,7 +9215,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_fdp_event_realloc_flags +.. c:enum:: nvme_fdp_event_realloc_flags Media Reallocated Event Type Specific Flags @@ -8455,7 +9227,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_event_realloc +.. c:struct:: nvme_fdp_event_realloc Media Reallocated Event Type Specific Information @@ -8492,7 +9264,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_fdp_event_flags +.. c:enum:: nvme_fdp_event_flags FDP Event Flags @@ -8510,7 +9282,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_event +.. c:struct:: nvme_fdp_event FDP Event @@ -8567,7 +9339,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_events_log +.. c:struct:: nvme_fdp_events_log FDP Events Log Page @@ -8596,9 +9368,9 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_feat_fdp_events_cdw11 +.. c:struct:: nvme_feat_fdp_events_cdw11 - FDP Events Feature Command Dword 11 + FDP Events Feature Command Dword 11 Deprecated: doesn't support this struct. Use NVME_FEAT_FDPE_*** definitions instead. **Definition** @@ -8625,7 +9397,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_fdp_supported_event_attributes +.. c:enum:: nvme_fdp_supported_event_attributes Supported FDP Event Attributes @@ -8640,7 +9412,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_supported_event_desc +.. c:struct:: nvme_fdp_supported_event_desc Supported FDP Event Descriptor @@ -8665,7 +9437,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_ruh_status_desc +.. c:struct:: nvme_fdp_ruh_status_desc Reclaim Unit Handle Status Descriptor @@ -8702,7 +9474,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_fdp_ruh_status +.. c:struct:: nvme_fdp_ruh_status Reclaim Unit Handle Status @@ -8731,7 +9503,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_lba_status_desc +.. c:struct:: nvme_lba_status_desc LBA Status Descriptor Entry @@ -8768,7 +9540,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_lba_status +.. c:struct:: nvme_lba_status LBA Status Descriptor List @@ -8801,7 +9573,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_lba_status_cmpc +.. c:enum:: nvme_lba_status_cmpc Get LBA Status Command Completion Condition @@ -8823,7 +9595,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_feat_auto_pst +.. c:struct:: nvme_feat_auto_pst Autonomous Power State Transition @@ -8844,7 +9616,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_apst_entry +.. c:enum:: nvme_apst_entry Autonomous Power State Transition @@ -8865,7 +9637,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_metadata_element_desc +.. c:struct:: nvme_metadata_element_desc Metadata Element Descriptor @@ -8898,7 +9670,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_host_metadata +.. c:struct:: nvme_host_metadata Host Metadata Data Structure @@ -8936,7 +9708,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_ctrl_metadata_type +.. c:enum:: nvme_ctrl_metadata_type Controller Metadata Element Types @@ -8999,7 +9771,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_ns_metadata_type +.. c:enum:: nvme_ns_metadata_type Namespace Metadata Element Types @@ -9024,7 +9796,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_lba_range_type_entry +.. c:struct:: nvme_lba_range_type_entry LBA Range Type - Data Structure Entry @@ -9069,7 +9841,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_lbart +.. c:enum:: nvme_lbart LBA Range Type - Data Structure Entry @@ -9099,7 +9871,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_lba_range_type +.. c:struct:: nvme_lba_range_type LBA Range Type @@ -9120,7 +9892,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_plm_config +.. c:struct:: nvme_plm_config Predictable Latency Mode - Deterministic Threshold Configuration Data Structure @@ -9161,7 +9933,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_feat_host_behavior +.. c:struct:: nvme_feat_host_behavior Host Behavior Support - Data Structure @@ -9173,8 +9945,8 @@ bytes, in size. This log captures the controller’s internal state. __u8 acre; __u8 etdas; __u8 lbafee; - __u8 rsvd3; - __u16 cdfe; + __u8 hdisns; + __le16 cdfe; __u8 rsvd6[506]; }; @@ -9189,8 +9961,8 @@ bytes, in size. This log captures the controller’s internal state. ``lbafee`` LBA Format Extension Enable -``rsvd3`` - Reserved +``hdisns`` + Host Dispersed Namespace Support ``cdfe`` Copy Descriptor Formats Enable @@ -9202,7 +9974,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_host_behavior_support +.. c:enum:: nvme_host_behavior_support Enable Advanced Command @@ -9214,7 +9986,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_dsm_range +.. c:struct:: nvme_dsm_range Dataset Management - Range Definition @@ -9243,7 +10015,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_copy_range +.. c:struct:: nvme_copy_range Copy - Source Range Entries Descriptor Format @@ -9289,7 +10061,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_copy_range_f1 +.. c:struct:: nvme_copy_range_f1 Copy - Source Range Entries Descriptor Format 1h @@ -9335,7 +10107,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_copy_range_sopt +.. c:enum:: nvme_copy_range_sopt NVMe Copy Range Source Options @@ -9347,7 +10119,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_copy_range_f2 +.. c:struct:: nvme_copy_range_f2 Copy - Source Range Entries Descriptor Format 2h @@ -9401,7 +10173,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_copy_range_f3 +.. c:struct:: nvme_copy_range_f3 Copy - Source Range Entries Descriptor Format 3h @@ -9459,7 +10231,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_registered_ctrl +.. c:struct:: nvme_registered_ctrl Registered Controller Data Structure @@ -9496,7 +10268,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_registered_ctrl_ext +.. c:struct:: nvme_registered_ctrl_ext Registered Controller Extended Data Structure @@ -9537,7 +10309,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_resv_status +.. c:struct:: nvme_resv_status Reservation Status Data Structure @@ -9600,7 +10372,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_streams_directive_params +.. c:struct:: nvme_streams_directive_params Streams Directive - Return Parameters Data Structure @@ -9657,7 +10429,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_streams_directive_status +.. c:struct:: nvme_streams_directive_status Streams Directive - Get Status Data Structure @@ -9682,7 +10454,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_id_directives +.. c:struct:: nvme_id_directives Identify Directive - Return Parameters Data Structure @@ -9711,7 +10483,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_directive_types +.. c:enum:: nvme_directive_types Directives Supported or Enabled @@ -9729,7 +10501,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvme_host_mem_buf_attrs +.. c:struct:: nvme_host_mem_buf_attrs Host Memory Buffer - Attributes Data Structure @@ -9766,7 +10538,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_ae_type +.. c:enum:: nvme_ae_type Asynchronous Event Type @@ -9781,6 +10553,12 @@ bytes, in size. This log captures the controller’s internal state. ``NVME_AER_NOTICE`` Notice event +``NVME_AER_IMMEDIATE`` + Immediate + +``NVME_AER_ONESHOT`` + One-Shot + ``NVME_AER_CSS`` NVM Command Set Specific events @@ -9790,7 +10568,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_ae_info_error +.. c:enum:: nvme_ae_info_error Asynchronous Event Information - Error Status @@ -9817,7 +10595,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_ae_info_smart +.. c:enum:: nvme_ae_info_smart Asynchronous Event Information - SMART / Health Status @@ -9835,7 +10613,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_ae_info_css_nvm +.. c:enum:: nvme_ae_info_css_nvm Asynchronous Event Information - I/O Command Specific Status @@ -9854,7 +10632,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_ae_info_notice +.. c:enum:: nvme_ae_info_notice Asynchronous Event Information - Notice @@ -9887,7 +10665,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvme_subsys_type +.. c:enum:: nvme_subsys_type Type of the NVM subsystem. @@ -9918,7 +10696,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_disc_eflags +.. c:enum:: nvmf_disc_eflags Discovery Log Page entry flags. @@ -9955,7 +10733,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: union nvmf_tsas +.. c:union:: nvmf_tsas Transport Specific Address Subtype @@ -9993,7 +10771,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvmf_disc_log_entry +.. c:struct:: nvmf_disc_log_entry Discovery Log Page entry @@ -10095,7 +10873,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_trtype +.. c:enum:: nvmf_trtype Transport Type codes for Discovery Log Page entry TRTYPE field @@ -10123,7 +10901,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_addr_family +.. c:enum:: nvmf_addr_family Address Family codes for Discovery Log Page entry ADRFAM field @@ -10151,7 +10929,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_treq +.. c:enum:: nvmf_treq Transport Requirements codes for Discovery Log Page entry TREQ field @@ -10172,7 +10950,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_rdma_qptype +.. c:enum:: nvmf_rdma_qptype RDMA QP Service Type codes for Discovery Log Page entry TSAS RDMA_QPTYPE field @@ -10187,7 +10965,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_rdma_prtype +.. c:enum:: nvmf_rdma_prtype RDMA Provider Type codes for Discovery Log Page entry TSAS RDMA_PRTYPE field @@ -10211,7 +10989,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_rdma_cms +.. c:enum:: nvmf_rdma_cms RDMA Connection Management Service Type codes for Discovery Log Page entry TSAS RDMA_CMS field @@ -10223,7 +11001,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_tcp_sectype +.. c:enum:: nvmf_tcp_sectype Transport Specific Address Subtype Definition for NVMe/TCP Transport @@ -10243,7 +11021,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_log_discovery_lid_support +.. c:enum:: nvmf_log_discovery_lid_support Discovery log specific support @@ -10264,7 +11042,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_log_discovery_lsp +.. c:enum:: nvmf_log_discovery_lsp Discovery log specific field @@ -10285,7 +11063,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvmf_discovery_log +.. c:struct:: nvmf_discovery_log Discovery Log Page (Log Identifier 70h) @@ -10329,7 +11107,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_dim_tas +.. c:enum:: nvmf_dim_tas Discovery Information Management Task @@ -10347,7 +11125,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_dim_entfmt +.. c:enum:: nvmf_dim_entfmt Discovery Information Management Entry Format @@ -10362,7 +11140,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_dim_etype +.. c:enum:: nvmf_dim_etype Discovery Information Management Entity Type @@ -10380,7 +11158,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: enum nvmf_exattype +.. c:enum:: nvmf_exattype Extended Attribute Type @@ -10395,7 +11173,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvmf_ext_attr +.. c:struct:: nvmf_ext_attr Extended Attribute (EXAT) @@ -10425,7 +11203,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: struct nvmf_ext_die +.. c:struct:: nvmf_ext_die Extended Discovery Information Entry (DIE) @@ -10510,7 +11288,7 @@ bytes, in size. This log captures the controller’s internal state. -.. c:type:: union nvmf_die +.. c:union:: nvmf_die Discovery Information Entry (DIE) @@ -10550,7 +11328,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvmf_dim_data +.. c:struct:: nvmf_dim_data Discovery Information Management (DIM) - Data @@ -10619,7 +11397,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvmf_connect_data +.. c:struct:: nvmf_connect_data Data payload for the 'connect' command @@ -10660,7 +11438,269 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_read_nvm_ss_info +.. c:struct:: nvme_host_ext_discover_log + + Host Extended Discovery Log + +**Definition** + +:: + + struct nvme_host_ext_discover_log { + __u8 trtype; + __u8 adrfam; + __u8 rsvd2[8]; + __le16 eflags; + __u8 rsvd12[244]; + char hostnqn[NVME_NQN_LENGTH]; + char traddr[NVMF_TRADDR_SIZE]; + union nvmf_tsas tsas; + __le32 tel; + __le16 numexat; + __u8 rsvd1030[2]; + struct nvmf_ext_attr exat[]; + }; + +**Members** + +``trtype`` + Transport Type + +``adrfam`` + Address Family + +``rsvd2`` + Reserved + +``eflags`` + Entry Flags + +``rsvd12`` + Reserved + +``hostnqn`` + Host NVMe Qualified Name + +``traddr`` + Transport Address + +``tsas`` + Transport Specific Address Subtype + +``tel`` + Total Entry Length + +``numexat`` + Number of Extended Attributes + +``rsvd1030`` + Reserved + +``exat`` + Extended Attributes List + + + + + +.. c:struct:: nvme_host_discover_log + + Host Discovery Log + +**Definition** + +:: + + struct nvme_host_discover_log { + __le64 genctr; + __le64 numrec; + __le16 recfmt; + __u8 hdlpf; + __u8 rsvd19; + __le32 thdlpl; + __u8 rsvd24[1000]; + struct nvme_host_ext_discover_log hedlpe[]; + }; + +**Members** + +``genctr`` + Generation Counter + +``numrec`` + Number of Records + +``recfmt`` + Record Format + +``hdlpf`` + Host Discovery Log Page Flags + +``rsvd19`` + Reserved + +``thdlpl`` + Total Host Discovery Log Page Length + +``rsvd24`` + Reserved + +``hedlpe`` + Host Extended Discovery Log Page Entry List + + + + + +.. c:struct:: nvme_ave_tr_record + + AVE Transport Record + +**Definition** + +:: + + struct nvme_ave_tr_record { + __u8 aveadrfam; + __u8 rsvd1; + __le16 avetrsvcid; + __u8 avetraddr[16]; + }; + +**Members** + +``aveadrfam`` + AVE Address Family + +``rsvd1`` + Reserved + +``avetrsvcid`` + AVE Transport Service Identifier + +``avetraddr`` + AVE Transport Address + + + + + +.. c:struct:: nvme_ave_discover_log_entry + + AVE Discovery Log Entry + +**Definition** + +:: + + struct nvme_ave_discover_log_entry { + __le32 tel; + char avenqn[224]; + __u8 numatr; + __u8 rsvd229[3]; + struct nvme_ave_tr_record atr[]; + }; + +**Members** + +``tel`` + Total Entry Length + +``avenqn`` + AVE NQN + +``numatr`` + Number of AVE Transport Records + +``rsvd229`` + Reserved + +``atr`` + AVE Transport Record List + + + + + +.. c:struct:: nvme_ave_discover_log + + AVE Discovery Log + +**Definition** + +:: + + struct nvme_ave_discover_log { + __le64 genctr; + __le64 numrec; + __le16 recfmt; + __u8 rsvd18[2]; + __le32 tadlpl; + __u8 rsvd24[1000]; + struct nvme_ave_discover_log_entry adlpe[]; + }; + +**Members** + +``genctr`` + Generation Counter + +``numrec`` + Number of Records + +``recfmt`` + Record Format + +``rsvd18`` + Reserved + +``tadlpl`` + Total AVE Discovery Log Page Length + +``rsvd24`` + Reserved + +``adlpe`` + AVE Discovery Log Page Entry List + + + + + +.. c:struct:: nvme_pull_model_ddc_req_log + + Pull Model DDC Request Log + +**Definition** + +:: + + struct nvme_pull_model_ddc_req_log { + __u8 ori; + __u8 rsvd1[3]; + __le32 tpdrpl; + __u8 osp[]; + }; + +**Members** + +``ori`` + Operation Request Identifier + +``rsvd1`` + Reserved + +``tpdrpl`` + Total Pull Model DDC Request Log Page Length + +``osp`` + Operation Specific Parameters + + + + + +.. c:struct:: nvme_mi_read_nvm_ss_info NVM Subsystem Information Data Structure @@ -10693,7 +11733,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_port_pcie +.. c:struct:: nvme_mi_port_pcie PCIe Port Specific Data @@ -10738,7 +11778,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_port_smb +.. c:struct:: nvme_mi_port_smb SMBus Port Specific Data @@ -10779,7 +11819,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_read_port_info +.. c:struct:: nvme_mi_read_port_info Port Information Data Structure @@ -10825,7 +11865,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_read_ctrl_info +.. c:struct:: nvme_mi_read_ctrl_info Controller Information Data Structure @@ -10878,7 +11918,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_osc +.. c:struct:: nvme_mi_osc Optionally Supported Command Data Structure @@ -10903,7 +11943,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_read_sc_list +.. c:struct:: nvme_mi_read_sc_list Management Endpoint Buffer Supported Command List Data Structure @@ -10929,7 +11969,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_nvm_ss_health_status +.. c:struct:: nvme_mi_nvm_ss_health_status Subsystem Management Data Structure @@ -10970,7 +12010,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: enum nvme_mi_ccs +.. c:enum:: nvme_mi_ccs Get State Control Primitive Success Response Fields - Control Primitive Specific Response @@ -11015,7 +12055,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_ctrl_health_status +.. c:struct:: nvme_mi_ctrl_health_status Controller Health Data Structure (CHDS) @@ -11060,7 +12100,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: enum nvme_mi_csts +.. c:enum:: nvme_mi_csts Controller Health Data Structure (CHDS) - Controller Status (CSTS) @@ -11090,7 +12130,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: enum nvme_mi_cwarn +.. c:enum:: nvme_mi_cwarn Controller Health Data Structure (CHDS) - Critical Warning (CWARN) @@ -11114,7 +12154,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_vpd_mra +.. c:struct:: nvme_mi_vpd_mra NVMe MultiRecord Area @@ -11195,7 +12235,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_vpd_ppmra +.. c:struct:: nvme_mi_vpd_ppmra NVMe PCIe Port MultiRecord Area @@ -11248,7 +12288,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_vpd_telem +.. c:struct:: nvme_mi_vpd_telem Vital Product Data Element Descriptor @@ -11282,7 +12322,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: enum nvme_mi_elem +.. c:enum:: nvme_mi_elem Element Descriptor Types @@ -11312,7 +12352,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_vpd_tra +.. c:struct:: nvme_mi_vpd_tra Vital Product Data Topology MultiRecord @@ -11345,7 +12385,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_vpd_mr_common +.. c:struct:: nvme_mi_vpd_mr_common NVMe MultiRecord Area @@ -11399,7 +12439,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: struct nvme_mi_vpd_hdr +.. c:struct:: nvme_mi_vpd_hdr Vital Product Data Common Header @@ -11452,7 +12492,7 @@ entries are of a variable lengths (TEL), TEL is always a multiple of -.. c:type:: enum nvme_status_field +.. c:enum:: nvme_status_field Defines all parts of the nvme status field: status code, status code type, and additional flags. @@ -11704,6 +12744,22 @@ entries are of a variable lengths (TEL), TEL is always a multiple of command requires access to media and the media is not ready. +``NVME_SC_INVALID_KEY_TAG`` + The command was aborted due to an invalid KEYTAG + field value. + +``NVME_SC_HOST_DISPERSED_NS_NOT_ENABLED`` + The command is prohibited while the + Host Disperesed Namespace Support (HDISNS) field is not + set to 1h in the Host Behavior Support feature. + +``NVME_SC_HOST_ID_NOT_INITIALIZED`` + Host Identifier Not Initialized. + +``NVME_SC_INCORRECT_KEY`` + The command was aborted due to the key associated + with the KEYTAG field being incorrect. + ``NVME_SC_FDP_DISABLED`` Command is not allowed when Flexible Data Placement is disabled. @@ -11741,6 +12797,25 @@ entries are of a variable lengths (TEL), TEL is always a multiple of Format In Progress: A Format NVM command is in progress on the namespace. +``NVME_SC_INVALID_VALUE_SIZE`` + The value size is not valid. + +``NVME_SC_INVALID_KEY_SIZE`` + The KV key size is not valid. + +``NVME_SC_KV_KEY_NOT_EXISTS`` + The Store If Key Exists (SIKE) bit is set to + '1' in the Store Option field and the KV key does not + exists. + +``NVME_SC_UNRECOVERED_ERROR`` + There was an unrecovered error when reading + from the meidum. + +``NVME_SC_KEY_EXISTS`` + The Store If No Key Exists (SINKE) bit is set to '1' + in the Store Option field and the KV key exists. + ``NVME_SC_CQ_INVALID`` Completion Queue Invalid: The Completion Queue identifier specified in the command @@ -12275,7 +13350,7 @@ status code -.. c:type:: enum nvme_status_type +.. c:enum:: nvme_status_type type encoding for NVMe return values, when represented as an int. @@ -12357,7 +13432,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_admin_opcode +.. c:enum:: nvme_admin_opcode Known NVMe admin opcodes @@ -12444,9 +13519,42 @@ true if **status** is of the specified type and value ``nvme_admin_fabric_zoning_lookup`` Fabric Zoning Lookup +``nvme_admin_clear_export_nvm_res`` + Clear Exported NVM Resource Configuration + ``nvme_admin_fabric_zoning_send`` Fabric Zoning Send +``nvme_admin_create_export_nvms`` + Create Exported NVM Subsystem + +``nvme_admin_manage_export_nvms`` + Manage Exported NVM Subsystem + +``nvme_admin_manage_export_ns`` + Manage Exported Namespace + +``nvme_admin_manage_export_port`` + Manage Exported Port + +``nvme_admin_send_disc_log_page`` + Send Discovery Log Page + +``nvme_admin_track_send`` + Track Send + +``nvme_admin_track_receive`` + Track Receive + +``nvme_admin_migration_send`` + Migration Send + +``nvme_admin_migration_receive`` + Migration Receive + +``nvme_admin_ctrl_data_queue`` + Controller Data Queue + ``nvme_admin_dbbuf`` Doorbell Buffer Config @@ -12465,13 +13573,22 @@ true if **status** is of the specified type and value ``nvme_admin_sanitize_nvm`` Sanitize +``nvme_admin_load_program`` + Load Program + ``nvme_admin_get_lba_status`` Get LBA Status +``nvme_admin_program_act_mgmt`` + Program Activation Management + +``nvme_admin_mem_range_set_mgmt`` + Memory Range Set Management -.. c:type:: enum nvme_identify_cns + +.. c:enum:: nvme_identify_cns Identify - CNS Values @@ -12560,7 +13677,17 @@ true if **status** is of the specified type and value Data Structure for Allocated Namespace ID ``NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE`` - Base Specification 2.0a section 5.17.2.21 + I/O Command Set data structure + +``NVME_IDENTIFY_CNS_UNDERLYING_NS_LIST`` + Get Underlying Namespace List + +``NVME_IDENTIFY_CNS_PORTS_LIST`` + Get Ports List + +``NVME_IDENTIFY_CNS_IOCS_IND_ID_ALLOC_NS`` + I/O Command Set Independent Identify Namespace data + structure for the specified allocated NSID ``NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS`` Supported Controller State Formats @@ -12570,7 +13697,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_cmd_get_log_lid +.. c:enum:: nvme_cmd_get_log_lid Get Log Page -Log Page Identifiers @@ -12699,7 +13826,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_features_id +.. c:enum:: nvme_features_id Features - Feature Identifiers @@ -12772,7 +13899,7 @@ true if **status** is of the specified type and value Host Behavior Support ``NVME_FEAT_FID_SANITIZE`` - Endurance Group Event Configuration + Sanitize Config ``NVME_FEAT_FID_ENDURANCE_EVT_CFG`` Endurance Group Event Configuration @@ -12783,12 +13910,33 @@ true if **status** is of the specified type and value ``NVME_FEAT_FID_SPINUP_CONTROL`` Spinup Control +``NVME_FEAT_FID_POWER_LOSS_SIGNAL`` + Power Loss Signaling Config + +``NVME_FEAT_FID_PERF_CHARACTERISTICS`` + Performance Characteristics + ``NVME_FEAT_FID_FDP`` Flexible Data Placement ``NVME_FEAT_FID_FDP_EVENTS`` FDP Events +``NVME_FEAT_FID_NS_ADMIN_LABEL`` + Namespace Admin Label + +``NVME_FEAT_FID_KEY_VALUE`` + Key Value Configuration + +``NVME_FEAT_FID_CTRL_DATA_QUEUE`` + Controller Data Queue + +``NVME_FEAT_FID_EMB_MGMT_CTRL_ADDR`` + Embedded Management Controller Address + +``NVME_FEAT_FID_HOST_MGMT_AGENT_ADDR`` + Host Management Agent Address + ``NVME_FEAT_FID_ENH_CTRL_METADATA`` Enhanced Controller Metadata @@ -12813,10 +13961,13 @@ true if **status** is of the specified type and value ``NVME_FEAT_FID_WRITE_PROTECT`` Namespace Write Protection Config +``NVME_FEAT_FID_BP_WRITE_PROTECT`` + Boot Partition Write Protection Config -.. c:type:: enum nvme_feat + +.. c:enum:: nvme_feat Features Access Shifts/Masks values @@ -12934,6 +14085,46 @@ true if **status** is of the specified type and value ``NVME_FEAT_AE_EGA_MASK`` +``NVME_FEAT_AE_NNSSHDN_SHIFT`` + +``NVME_FEAT_AE_NNSSHDN_MASK`` + +``NVME_FEAT_AE_TTHRY_SHIFT`` + +``NVME_FEAT_AE_TTHRY_MASK`` + +``NVME_FEAT_AE_RASSN_SHIFT`` + +``NVME_FEAT_AE_RASSN_MASK`` + +``NVME_FEAT_AE_RGRP0_SHIFT`` + +``NVME_FEAT_AE_RGRP0_MASK`` + +``NVME_FEAT_AE_ANSAN_SHIFT`` + +``NVME_FEAT_AE_ANSAN_MASK`` + +``NVME_FEAT_AE_ZDCN_SHIFT`` + +``NVME_FEAT_AE_ZDCN_MASK`` + +``NVME_FEAT_AE_PMDRLPCN_SHIFT`` + +``NVME_FEAT_AE_PMDRLPCN_MASK`` + +``NVME_FEAT_AE_ADLPCN_SHIFT`` + +``NVME_FEAT_AE_ADLPCN_MASK`` + +``NVME_FEAT_AE_HDLPCN_SHIFT`` + +``NVME_FEAT_AE_HDLPCN_MASK`` + +``NVME_FEAT_AE_DLPCN_SHIFT`` + +``NVME_FEAT_AE_DLPCN_MASK`` + ``NVME_FEAT_APST_APSTE_SHIFT`` ``NVME_FEAT_APST_APSTE_MASK`` @@ -12986,6 +14177,14 @@ true if **status** is of the specified type and value ``NVME_FEAT_EG_EGCW_MASK`` +``NVME_FEAT_FDPE_PHNDL_SHIFT`` + +``NVME_FEAT_FDPE_PHNDL_MASK`` + +``NVME_FEAT_FDPE_NOET_SHIFT`` + +``NVME_FEAT_FDPE_NOET_MASK`` + ``NVME_FEAT_SPM_PBSLC_SHIFT`` ``NVME_FEAT_SPM_PBSLC_MASK`` @@ -13018,6 +14217,14 @@ true if **status** is of the specified type and value ``NVME_FEAT_IOCSP_IOCSCI_MASK`` +``NVME_FEAT_SPINUP_CONTROL_SHIFT`` + +``NVME_FEAT_SPINUP_CONTROL_MASK`` + +``NVME_FEAT_PLS_MODE_SHIFT`` + +``NVME_FEAT_PLS_MODE_MASK`` + ``NVME_FEAT_FDP_ENABLED_SHIFT`` ``NVME_FEAT_FDP_ENABLED_MASK`` @@ -13033,7 +14240,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_get_features_sel +.. c:enum:: nvme_get_features_sel Get Features - Select @@ -13054,7 +14261,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_cmd_format_mset +.. c:enum:: nvme_cmd_format_mset Format NVM - Metadata Settings @@ -13071,7 +14278,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_cmd_format_pi +.. c:enum:: nvme_cmd_format_pi Format NVM - Protection Information @@ -13092,7 +14299,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_cmd_format_pil +.. c:enum:: nvme_cmd_format_pil Format NVM - Protection Information Location @@ -13109,7 +14316,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_cmd_format_ses +.. c:enum:: nvme_cmd_format_ses Format NVM - Secure Erase Settings @@ -13136,7 +14343,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_ns_mgmt_sel +.. c:enum:: nvme_ns_mgmt_sel Namespace Management - Select @@ -13151,7 +14358,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_ns_attach_sel +.. c:enum:: nvme_ns_attach_sel Namespace Attachment - Select @@ -13166,7 +14373,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_fw_commit_ca +.. c:enum:: nvme_fw_commit_ca Firmware Commit - Commit Action @@ -13210,7 +14417,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_directive_dtype +.. c:enum:: nvme_directive_dtype Directive Types @@ -13225,7 +14432,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_directive_receive_doper +.. c:enum:: nvme_directive_receive_doper Directive Receive Directive Operation @@ -13242,7 +14449,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_directive_send_doper +.. c:enum:: nvme_directive_send_doper Directive Send Directive Operation @@ -13257,7 +14464,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_directive_send_identify_endir +.. c:enum:: nvme_directive_send_identify_endir Enable Directive @@ -13270,7 +14477,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_sanitize_sanact +.. c:enum:: nvme_sanitize_sanact Sanitize Action @@ -13294,7 +14501,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_dst_stc +.. c:enum:: nvme_dst_stc Action taken by the Device Self-test command @@ -13306,6 +14513,9 @@ true if **status** is of the specified type and value ``NVME_DST_STC_LONG`` Start an extended device self-test operation +``NVME_DST_STC_HOST_INIT`` + Start a Host-Initiated Refresh operation + ``NVME_DST_STC_VS`` Start a vendor specific device self-test operation @@ -13315,7 +14525,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_virt_mgmt_act +.. c:enum:: nvme_virt_mgmt_act Virtualization Management - Action @@ -13337,7 +14547,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_virt_mgmt_rt +.. c:enum:: nvme_virt_mgmt_rt Virtualization Management - Resource Type @@ -13352,7 +14562,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_ns_write_protect_cfg +.. c:enum:: nvme_ns_write_protect_cfg Write Protection - Write Protection State @@ -13373,7 +14583,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_log_ana_lsp +.. c:enum:: nvme_log_ana_lsp Asymmetric Namespace Access - Return Groups Only @@ -13386,7 +14596,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_log_phy_rx_eom_action +.. c:enum:: nvme_log_phy_rx_eom_action Physical Interface Receiver Eye Opening Measurement Action @@ -13404,7 +14614,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_log_phy_rx_eom_quality +.. c:enum:: nvme_log_phy_rx_eom_quality Physical Interface Receiver Eye Opening Measurement Quality @@ -13422,7 +14632,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_pevent_log_action +.. c:enum:: nvme_pevent_log_action Persistent Event Log - Action @@ -13440,7 +14650,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_feat_tmpthresh_thsel +.. c:enum:: nvme_feat_tmpthresh_thsel Temperature Threshold - Threshold Type Select @@ -13455,7 +14665,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_features_async_event_config_flags +.. c:enum:: nvme_features_async_event_config_flags Asynchronous Event Configuration configuration flags @@ -13492,7 +14702,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_feat_plm_window_select +.. c:enum:: nvme_feat_plm_window_select Predictable Latency Per NVM Set Log @@ -13507,7 +14717,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_feat_resv_notify_flags +.. c:enum:: nvme_feat_resv_notify_flags Reservation Notification Configuration @@ -13525,7 +14735,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_feat_nswpcfg_state +.. c:enum:: nvme_feat_nswpcfg_state Write Protection - Write Protection State @@ -13546,7 +14756,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_fctype +.. c:enum:: nvme_fctype Fabrics Command Types @@ -13573,7 +14783,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_data_tfr +.. c:enum:: nvme_data_tfr Data transfer direction of the command @@ -13594,7 +14804,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_io_opcode +.. c:enum:: nvme_io_opcode Opcodes for I/O Commands @@ -13657,10 +14867,13 @@ true if **status** is of the specified type and value ``nvme_zns_cmd_append`` Zone Append +``nvme_cmd_fabric`` + Fabric Commands -.. c:type:: enum nvme_kv_opcode + +.. c:enum:: nvme_kv_opcode Opcodes for KV Commands @@ -13699,7 +14912,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_io_control_flags +.. c:enum:: nvme_io_control_flags I/O control flags @@ -13708,6 +14921,9 @@ true if **status** is of the specified type and value ``NVME_IO_DTYPE_STREAMS`` Directive Type Streams +``NVME_IO_NSZ`` + Namespace Zeroes + ``NVME_IO_STC`` Storage Tag Check @@ -13738,7 +14954,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_io_dsm_flags +.. c:enum:: nvme_io_dsm_flags Dataset Management flags @@ -13792,7 +15008,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_dsm_attributes +.. c:enum:: nvme_dsm_attributes Dataset Management attributes @@ -13810,7 +15026,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_resv_rtype +.. c:enum:: nvme_resv_rtype Reservation Type Encoding @@ -13837,7 +15053,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_resv_racqa +.. c:enum:: nvme_resv_racqa Reservation Acquire - Reservation Acquire Action @@ -13855,7 +15071,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_resv_rrega +.. c:enum:: nvme_resv_rrega Reservation Register - Reservation Register Action @@ -13873,7 +15089,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_resv_cptpl +.. c:enum:: nvme_resv_cptpl Reservation Register - Change Persist Through Power Loss State @@ -13893,7 +15109,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_resv_rrela +.. c:enum:: nvme_resv_rrela Reservation Release - Reservation Release Action @@ -13908,7 +15124,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_zns_send_action +.. c:enum:: nvme_zns_send_action Zone Management Send - Zone Send Action @@ -13938,7 +15154,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_zns_recv_action +.. c:enum:: nvme_zns_recv_action Zone Management Receive - Zone Receive Action Specific Features @@ -13953,7 +15169,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_zns_report_options +.. c:enum:: nvme_zns_report_options Zone Management Receive - Zone Receive Action Specific Field @@ -13986,7 +15202,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_io_mgmt_recv_mo +.. c:enum:: nvme_io_mgmt_recv_mo I/O Management Receive - Management Operation @@ -13998,7 +15214,7 @@ true if **status** is of the specified type and value -.. c:type:: enum nvme_io_mgmt_send_mo +.. c:enum:: nvme_io_mgmt_send_mo I/O Management Send - Management Operation @@ -14010,7 +15226,7 @@ true if **status** is of the specified type and value -.. c:type:: struct nvme_ns_mgmt_host_sw_specified +.. c:struct:: nvme_ns_mgmt_host_sw_specified Namespace management Host Software Specified Fields. @@ -14130,3 +15346,598 @@ true if **status** is of the specified type and value + + +.. c:enum:: nvme_lm_cdq_fields + + Controller Data Queue command fields + +**Constants** + +``NVME_LM_CDQ_MOS_SHIFT`` + Shift to set Management Operation Specific (MOS) field + +``NVME_LM_CDQ_MOS_MASK`` + Mask to set MOS field + +``NVME_LM_CDQ_SEL_SHIFT`` + Shift to set Select (SEL) field + +``NVME_LM_CDQ_SEL_MASK`` + Mask to set SEL field + +``NVME_LM_SEL_CREATE_CDQ`` + Create CDQ select option + +``NVME_LM_SEL_DELETE_CDQ`` + Delete CDQ select option + +``NVME_LM_QT_SHIFT`` + Shift amount to set Queue Type (QT) field relative to MOS + +``NVME_LM_QT_MASK`` + Mask to set QT field relative to MOS + +``NVME_LM_QT_USER_DATA_MIGRATION_QUEUE`` + User Data Migration Queue type + +``NVME_LM_CREATE_CDQ_PC`` + Physically Contiguous (PC) + +``NVME_LM_CREATE_CDQ_CNTLID_SHIFT`` + Shift amount to set CNTLID field relative to MOS + +``NVME_LM_CREATE_CDQ_CNTLID_MASK`` + Mask to set CNTLID field relative to MOS + +``NVME_LM_DELETE_CDQ_CDQID_SHIFT`` + Shift amount to set CDQID field for deletion + +``NVME_LM_DELETE_CDQ_CDQID_MASK`` + Mask to set CDQID field for deletion + +``NVME_LM_CREATE_CDQ_CDQID_SHIFT`` + Shift amount to get CDQID field from Create response in + completion dword0 + +``NVME_LM_CREATE_CDQ_CDQID_MASK`` + Mask to get CNTLID field from Create response in + completion dword0 + + + + +.. c:enum:: nvme_lm_track_send_fields + + Track Send command fields + +**Constants** + +``NVME_LM_TRACK_SEND_MOS_SHIFT`` + Shift to set Management Operation Specific (MOS) field + +``NVME_LM_TRACK_SEND_MOS_MASK`` + Mask to set MOS field + +``NVME_LM_TRACK_SEND_SEL_SHIFT`` + Shift to set Select (SEL) field + +``NVME_LM_TRACK_SEND_SEL_MASK`` + Mask to set SEL field + +``NVME_LM_SEL_LOG_USER_DATA_CHANGES`` + Log User Data Changes select option + +``NVME_LM_SEL_TRACK_MEMORY_CHANGES`` + Track Memory Changes select option + +``NVME_LM_LACT_SHIFT`` + Shift to set Logging Action (LACT) relative to MOS + +``NVME_LM_LACT_MASK`` + Mask to set LACT relative to MOS + +``NVME_LM_LACT_STOP_LOGGING`` + The controller shall stop logging user data changes to + namespaces attached to the controller associated with the + User Data Migration Queue specified in the CDQ ID. + +``NVME_LM_LACT_START_LOGGING`` + The controller shall start logging user data changes to + namespaces attached to the controller associated with the + User Data Migration Queue into that User Data Migration + Queue where those user data changes are caused by the + controller associated with that User Data Migration Queue + processing commands. + + + + +.. c:enum:: nvme_lm_migration_send_fields + + Migration Send command fields + +**Constants** + +``NVME_LM_MIGRATION_SEND_MOS_SHIFT`` + Shift to set Management Operation Specific (MOS) + field + +``NVME_LM_MIGRATION_SEND_MOS_MASK`` + Mask to set MOS field + +``NVME_LM_MIGRATION_SEND_SEL_SHIFT`` + Shift amount to set Select (SEL) field + +``NVME_LM_MIGRATION_SEND_SEL_MASK`` + Mask to set SEL field + +``NVME_LM_SEL_SUSPEND`` + Migration Send - Suspend + +``NVME_LM_SEL_RESUME`` + Migration Send - Resume + +``NVME_LM_SEL_SET_CONTROLLER_STATE`` + Migration Send - Set Controller State + +``NVME_LM_MIGRATION_SEND_UIDX_SHIFT`` + Shift to set UUID Index (UIDX) + +``NVME_LM_MIGRATION_SEND_UIDX_MASK`` + Mask to set UIDX + +``NVME_LM_DUDMQ`` + Delete User Data Migration Queue + +``NVME_LM_STYPE_SHIFT`` + Shift amount to set Suspend Type (STYPE) + +``NVME_LM_STYPE_MASK`` + Mask to set STYPE + +``NVME_LM_STYPE_SUSPEND_NOTIFICATION`` + Suspend Notification - The specified controller is + going to be suspended in the future with a + subsequent Migration Send command + +``NVME_LM_STYPE_SUSPEND`` + Suspend - Suspend the controller + +``NVME_LM_SUSPEND_CNTLID_SHIFT`` + Shift amount to set Controller ID (CNTLID) when SEL + is Suspend + +``NVME_LM_SUSPEND_CNTLID_MASK`` + Mask to set CNTLID with SEL Suspend + +``NVME_LM_RESUME_CNTLID_SHIFT`` + Shift amount to set Controller ID (CNTLID) when SEL + is Resume + +``NVME_LM_RESUME_CNTLID_MASK`` + Mask to set CNTLID when SEL is Resume + +``NVME_LM_SEQIND_SHIFT`` + Shift amount to set Sequence Indicator (SEQIND) + field relative to MOS + +``NVME_LM_SEQIND_MASK`` + Mask to set SEQIND field relative to MOS + +``NVME_LM_SEQIND_NOT_FIRST_NOT_LAST`` + This command is not the first or last of a sequence + of two or more Migration Send commands with this + management operation used to transfer the controller + state from host to controller + +``NVME_LM_SEQIND_FIRST`` + This command is the first of a sequence of two or + more Migration Send commands + +``NVME_LM_SEQIND_LAST`` + This command is the last command of a sequence of + two or more Migration Send commands + +``NVME_LM_SEQIND_ENTIRE`` + This Migration Send command is the only command and + contains the entire controller state for this + management operation + +``NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_SHIFT`` + Shift amount to set Controller State UUID Index + (CSUUIDI) + +``NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_MASK`` + Mask to set CSUUIDI + +``NVME_LM_SET_CONTROLLER_STATE_CSVI_SHIFT`` + Shift amount to set Controller State Version Index + (CSVI) + +``NVME_LM_SET_CONTROLLER_STATE_CSVI_MASK`` + Mask to set CSVI + +``NVME_LM_SET_CONTROLLER_STATE_CNTLID_SHIFT`` + Shift amount to set Controller ID (CNTLID) when SEL + is Set Controller State + +``NVME_LM_SET_CONTROLLER_STATE_CNTLID_MASK`` + Mask to set CNTLID when SEL is Set Controller State + + + + +.. c:enum:: nvme_lm_migration_recv_fields + + Migration Receive command fields + +**Constants** + +``NVME_LM_MIGRATION_RECV_MOS_SHIFT`` + Shift amount to set Management Specific Operation + (MOS) field + +``NVME_LM_MIGRATION_RECV_MOS_MASK`` + Mask to set MOS field + +``NVME_LM_MIGRATION_RECV_SEL_SHIFT`` + Shift amount to set Select (SEL) field + +``NVME_LM_MIGRATION_RECV_SEL_MASK`` + Mask to set SEL field + +``NVME_LM_SEL_GET_CONTROLLER_STATE`` + Get Controller State select option + +``NVME_LM_MIGRATION_RECV_UIDX_SHIFT`` + Shift to set UUID Index (UIDX) + +``NVME_LM_MIGRATION_RECV_UIDX_MASK`` + Mask to set UIDX + +``NVME_LM_GET_CONTROLLER_STATE_CSVI_SHIFT`` + Shift amount to set Controller State Version Index + (CSVI) relative to MOS + +``NVME_LM_GET_CONTROLLER_STATE_CSVI_MASK`` + Mask to set CSVI relative to MOS + +``NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_SHIFT`` + Shift amount to set Controller State UUID Index + Parameter (CSUIDXP) + +``NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_MASK`` + Mask to set CSUIDXP + +``NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_SHIFT`` + Shift amount to set Controller State UUID Index + (CSUUIDI) + +``NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_MASK`` + Mask to set CSUUIDI + +``NVME_LM_GET_CONTROLLER_STATE_CNTLID_SHIFT`` + Shift amount to set Controller ID (CNTLID) + +``NVME_LM_GET_CONTROLLER_STATE_CNTLID_MASK`` + Mask to set CNTLID + +``NVME_LM_GET_CONTROLLER_STATE_CSUP`` + Controller Suspended + + + + +.. c:struct:: nvme_lm_io_submission_queue_data + + I/O Submission Queue data structure. Fields related to the contents of Create I/O Submission Queue command that created an I/O Submission Queue. + +**Definition** + +:: + + struct nvme_lm_io_submission_queue_data { + __le64 iosqprp1; + __le16 iosqqsize; + __le16 iosqqid; + __le16 iosqcqid; + __le16 iosqa; + __le16 iosqhp; + __le16 iosqtp; + __u8 rsvd20[4]; + }; + +**Members** + +``iosqprp1`` + I/O Submission PRP Entry 1 (IOSQPRP1) + +``iosqqsize`` + I/O Submission Queue Size (IOSQQSIZE) + +``iosqqid`` + I/O Submission Queue Identifier (IOSQQID) + +``iosqcqid`` + I/O Completion Queue Identifier (IOSQCQID) + +``iosqa`` + I/O Submission Queue Attributes (IOSQA) + +``iosqhp`` + I/O Submission Queue Head Pointer (IOSQHP) + +``iosqtp`` + I/O Submission Queue Tail Pointer (IOSQTP) + +``rsvd20`` + Reserved + + + + + +.. c:struct:: nvme_lm_io_completion_queue_data + + I/O Completion Queue data structure. Fields related to the contents of Create I/O Completion Queue command that created an I/O Completion Queue. + +**Definition** + +:: + + struct nvme_lm_io_completion_queue_data { + __le64 iocqprp1; + __le16 iocqqsize; + __le16 iocqqid; + __le16 iocqhp; + __le16 iocqtp; + __le32 iocqa; + __u8 rsvd20[4]; + }; + +**Members** + +``iocqprp1`` + I/O Completion Queue PRP Entry 1 (IOCQPRP1) + +``iocqqsize`` + I/O Completion Queue Size (IOCQQSIZE) + +``iocqqid`` + I/O Completion Queue Identifier (IOCQQID) + +``iocqhp`` + I/O Completion Queue Head Pointer (IOCQHP) + +``iocqtp`` + I/O Completion Queue Tail Pointer (IOCQTP) + +``iocqa`` + I/O Completion Queue Attributes (IOCQA) + +``rsvd20`` + Reserved + + + + + +.. c:struct:: nvme_lm_nvme_controller_state_data_header + + Controller State data structure header + +**Definition** + +:: + + struct nvme_lm_nvme_controller_state_data_header { + __le16 ver; + __le16 niosq; + __le16 niocq; + __le16 rsvd6; + }; + +**Members** + +``ver`` + The version of this data structure. + +``niosq`` + The number of I/O Submission Queues contained in this data structure. + +``niocq`` + The number of I/O Completion Queues contained in this data structure. + +``rsvd6`` + Reserved + + + + + +.. c:struct:: nvme_lm_nvme_controller_state_data + + NVMe Controller State data structure describes the state of a NVMe Controller's I/O Submission and I/O Completion queues + +**Definition** + +:: + + struct nvme_lm_nvme_controller_state_data { + struct nvme_lm_nvme_controller_state_data_header hdr; + union { + struct nvme_lm_io_submission_queue_data sqs[0]; + struct nvme_lm_io_completion_queue_data cqs[0]; + }; + }; + +**Members** + +``hdr`` + Header + +``{unnamed_union}`` + anonymous + +``sqs`` + I/O Submission Queue list + +``cqs`` + I/O Completion Queue list + + + + + +.. c:struct:: nvme_lm_controller_state_data_header + + Controller State data header structure describes the contents of the Controller State data + +**Definition** + +:: + + struct nvme_lm_controller_state_data_header { + __le16 ver; + __u8 csattr; + __u8 rsvd3[13]; + __u8 nvmecss[16]; + __u8 vss[16]; + }; + +**Members** + +``ver`` + Version of this data structure + +``csattr`` + Controller state attributes + +``rsvd3`` + Reserved + +``nvmecss`` + NVMe Controller state size in dwords + +``vss`` + Vendor specific size in dowrds + + + + + +.. c:struct:: nvme_lm_controller_state_data + + Controller State data structure contains data on the controller's state. + +**Definition** + +:: + + struct nvme_lm_controller_state_data { + struct nvme_lm_controller_state_data_header hdr; + struct nvme_lm_nvme_controller_state_data data; + }; + +**Members** + +``hdr`` + Header + +``data`` + Data + + + + + +.. c:enum:: nvme_lm_queue_attributes + + I/O Submission and I/O Completion Queue Attributes + +**Constants** + +``NVME_LM_IOSQPC_MASK`` + Mask to get the Physically Contiguous (PC) bit for this I/O + submission queue. + +``NVME_LM_IOSQPC_SHIFT`` + Shift to get the PC bit for this I/O submission queue + +``NVME_LM_IOSQPRIO_MASK`` + Mask to get the Priority for this I/O submission queue. + +``NVME_LM_IOSQPRIO_SHIFT`` + Shift to get the Priority for this I/O submission queue. + +``NVME_LM_IOCQPC_MASK`` + Mask to get the Physicaly Contiguous (PC) bit for this I/O + completion queue. + +``NVME_LM_IOCQPC_SHIFT`` + Shift to get the PC bit for this I/O completion queue. + +``NVME_LM_IOCQIEN_MASK`` + Mask to get the Interrupts Enabled bit for this I/O completion + queue + +``NVME_LM_IOCQIEN_SHIFT`` + Shift to get the Interrupts Enabled bit for this I/O completion + +``NVME_LM_S0PT_MASK`` + Mask to get the value of the Phase Tag bit for Slot 0 of this I/O + completion queue. + +``NVME_LM_S0PT_SHIFT`` + Shift to get the value of the Phase Tag bit for Slot 0 of this I/O + completion queue. + +``NVME_LM_IOCQIV_MASK`` + Mask to get the Interrupt Vector (IV) for this I/O completion + queue. + +``NVME_LM_IOCQIV_SHIFT`` + Shift to get the IV for this I/O completion queue. + + + + +.. c:enum:: nvme_lm_ctrl_data_queue_fid + + Controller Data Queue - Set Feature + +**Constants** + +``NVME_LM_CTRL_DATA_QUEUE_ETPT_MASK`` + Mask to set Enable Tail Pointer Trigger (ETPT) + +``NVME_LM_CTRL_DATA_QUEUE_ETPT_SHIFT`` + Shift to set ETPT + + + + +.. c:struct:: nvme_lm_ctrl_data_queue_fid_data + + Get Controller Data Queue feature data + +**Definition** + +:: + + struct nvme_lm_ctrl_data_queue_fid_data { + __le32 hp; + __le32 tpt; + }; + +**Members** + +``hp`` + Head Pointer + +``tpt`` + Tail Pointer Trigger + + + diff --git a/doc/rst/util.rst b/doc/rst/util.rst index f8d4a52..6d024ed 100644 --- a/doc/rst/util.rst +++ b/doc/rst/util.rst @@ -7,7 +7,7 @@ libnvme utility functions -.. c:type:: enum nvme_connect_err +.. c:enum:: nvme_connect_err nvme connect error codes @@ -487,7 +487,9 @@ If **s** starts with **prefix**, then return a pointer within **s** at the first character after the matched **prefix**. NULL otherwise. -.. c:function:: round_up (val, mult) +.. c:macro:: round_up + +``round_up (val, mult)`` Round a value **val** to the next multiple specified by **mult**. @@ -570,7 +572,7 @@ Pointer to the next element in the array. -.. c:type:: enum nvme_version +.. c:enum:: nvme_version Selector for version to be returned by **nvme_get_version** diff --git a/examples/mi-conf.c b/examples/mi-conf.c index 4fdd405..e47d281 100644 --- a/examples/mi-conf.c +++ b/examples/mi-conf.c @@ -25,9 +25,9 @@ #include -#define MCTP_DBUS_NAME "xyz.openbmc_project.MCTP" -#define MCTP_DBUS_PATH "/xyz/openbmc_project/mctp" -#define MCTP_DBUS_EP_IFACE "au.com.CodeConstruct.MCTP.Endpoint" +#define MCTP_DBUS_NAME "au.com.codeconstruct.MCTP1" +#define MCTP_DBUS_PATH "/au/com/codeconstruct/mctp1" +#define MCTP_DBUS_EP_IFACE "au.com.codeconstruct.MCTP.Endpoint1" static int parse_mctp(const char *devstr, unsigned int *net, uint8_t *eid) { @@ -87,7 +87,8 @@ int set_local_mtu(DBusConnection *bus, unsigned int net, uint8_t eid, char *ep_path; int rc; - rc = asprintf(&ep_path, "%s/%u/%hhu", MCTP_DBUS_PATH, net, eid); + rc = asprintf(&ep_path, "%s/networks/%u/endpoints/%hhu", MCTP_DBUS_PATH, + net, eid); if (rc < 0) { warn("Failed to create dbus path"); return -1; diff --git a/examples/telemetry-listen.c b/examples/telemetry-listen.c index 9aae8b0..e38a8ad 100644 --- a/examples/telemetry-listen.c +++ b/examples/telemetry-listen.c @@ -50,8 +50,8 @@ static void save_telemetry(nvme_ctrl_t c) return; s = time(NULL); - ret = snprintf(buf, sizeof(buf), "/var/log/%s-telemetry-%ld", - nvme_ctrl_get_subsysnqn(c), s); + ret = snprintf(buf, sizeof(buf), "/var/log/%s-telemetry-%llu", + nvme_ctrl_get_subsysnqn(c), (unsigned long long)s); if (ret < 0) { free(log); return; diff --git a/internal/meson.build b/internal/meson.build index 744f83e..99003a8 100644 --- a/internal/meson.build +++ b/internal/meson.build @@ -21,10 +21,4 @@ config_dep = declare_dependency( sources: config_h) config_h_path = meson.current_build_dir() / 'config.h' - -add_project_arguments( - [ - '-include', config_h_path, - ], - language : 'c', -) +config_h_arg = [ '-include', config_h_path ] diff --git a/libnvme.spec.in b/libnvme.spec.in index ea263ce..82cea0f 100644 --- a/libnvme.spec.in +++ b/libnvme.spec.in @@ -21,6 +21,8 @@ Provides: libnvme.so.1 This package provides header files to include and libraries to link with for Linux-native nvme device maangement. +%define _prefix @PREFIX@ + %prep %autosetup -c diff --git a/libnvme/meson.build b/libnvme/meson.build index b5b99fc..c06c07f 100644 --- a/libnvme/meson.build +++ b/libnvme/meson.build @@ -62,9 +62,9 @@ if build_python_bindings # Set the PYTHONPATH so that we can run the # tests directly from the build directory. test_env = environment() - test_env.append('MALLOC_PERTURB_', '0') - test_env.append('PYTHONPATH', join_paths(meson.current_build_dir(), '..')) - test_env.append('PYTHONMALLOC', 'malloc') + test_env.set('MALLOC_PERTURB_', '90') + test_env.prepend('PYTHONPATH', join_paths(meson.current_build_dir(), '..')) + test_env.set('PYTHONMALLOC', 'malloc') # Test section test('python-import-libnvme', python3, args: ['-c', 'from libnvme import nvme'], env: test_env, depends: pynvme_clib) diff --git a/libnvme/nvme.i b/libnvme/nvme.i index eb94cac..4ede50e 100644 --- a/libnvme/nvme.i +++ b/libnvme/nvme.i @@ -357,6 +357,9 @@ struct nvme_subsystem { }; struct nvme_ctrl { + %immutable name; + %immutable subsystem; + %immutable state; %immutable sysfs_dir; %immutable address; %immutable firmware; @@ -369,34 +372,67 @@ struct nvme_ctrl { %immutable subsysnqn; %immutable traddr; %immutable trsvcid; - %immutable dhchap_host_key; - %immutable dhchap_key; %immutable cntrltype; + %immutable cntlid; %immutable dctype; - %immutable discovery_ctrl; + %immutable phy_slot; %immutable discovered; - %immutable persistent; - char *sysfs_dir; - char *address; - char *firmware; - char *model; - char *numa_node; - char *queue_count; - char *serial; - char *sqsize; - char *transport; - char *subsysnqn; - char *traddr; - char *trsvcid; + + const char *cntrltype; // Do not put in %extend because there's no getter method in libnvme.map + const char *dctype; // Do not put in %extend because there's no getter method in libnvme.map + const bool discovered; // Do not put in %extend because there's no getter method in libnvme.map + %extend { - char *dhchap_host_key: - char *dhchap_key; + /** + * By putting these attributes in an %extend block, we're + * forcing SWIG to invoke getter/setter methods instead of + * accessing the members directly. + * + * For example, SWIG will generate code like this: + * name = nvme_ctrl_name_get(ctrl) + * + * instead of that: + * name = ctrl->name + */ + const char *name; + const char *state; + const char *sysfs_dir; + const char *address; + const char *firmware; + const char *model; + const char *numa_node; + const char *queue_count; + const char *serial; + const char *sqsize; + const char *transport; + const char *subsysnqn; + const char *traddr; + const char *trsvcid; + const char *cntlid; + const char *phy_slot; + + bool unique_discovery_ctrl; + bool discovery_ctrl; + bool persistent; + + char *keyring; + char *tls_key_identity; + char *tls_key; + + /** + * We are remapping the following members of the C code's + * nvme_ctrl_t to different names in Python. Here's the mapping: + * + * C code Python (SWIG) + * ===================== ===================== + * ctrl->s ctrl->subsystem + * ctrl->dhchap_key ctrl->dhchap_host_key + * ctrl->dhchap_ctrl_key ctrl->dhchap_key + */ + struct nvme_subsystem *subsystem; // Maps to "s" in the C code + char *dhchap_host_key; // Maps to "dhchap_key" in the C code + char *dhchap_key; // Maps to "dhchap_ctrl_key" in the C code } - char *cntrltype; - char *dctype; - bool discovery_ctrl; - bool discovered; - bool persistent; }; struct nvme_ns { @@ -634,9 +670,13 @@ struct nvme_ns { nvme_free_ctrl($self); } - void discovery_ctrl_set(bool discovery) { - nvme_ctrl_set_discovery_ctrl($self, discovery); - } + %pythoncode %{ + def discovery_ctrl_set(self, discovery: bool): + r"""DEPRECATED METHOD: Use property setter instead (e.g. ctrl.discovery_ctrl = True)""" + import warnings + warnings.warn("Use property setter instead (e.g. ctrl_obj.discovery_ctrl = True)", DeprecationWarning, stacklevel=2) + return _nvme.ctrl_discovery_ctrl_set(self, discovery) + %} bool init(struct nvme_host *h, int instance) { return nvme_init_ctrl(h, $self, instance) == 0; @@ -665,9 +705,13 @@ struct nvme_ns { bool connected() { return nvme_ctrl_get_name($self) != NULL; } - void persistent_set(bool persistent) { - nvme_ctrl_set_persistent($self, persistent); - } + %pythoncode %{ + def persistent_set(self, persistent: bool): + r"""DEPRECATED METHOD: Use property setter instead (e.g. ctrl.persistent = True)""" + import warnings + warnings.warn("Use property setter instead (e.g. ctrl_obj.persistent = True)", DeprecationWarning, stacklevel=2) + return _nvme.ctrl_persistent_set(self, persistent) + %} void rescan() { nvme_rescan_ctrl($self); } @@ -760,15 +804,22 @@ struct nvme_ns { struct nvme_ns* namespaces() { return nvme_ctrl_first_ns($self); } - %immutable name; - const char *name; - %immutable subsystem; - struct nvme_subsystem *subsystem; - %immutable state; - const char *state; } %{ + /********************************************************************** + * SWIG automatically generates getter and setter methods using + * the syntax: [class]_[member]_[get|set]. These need to be mapped + * to the matching methods in libnvme (i.e. those that are defined + * publicly in libnvme.map). Typically, we get the following mapping: + * + * SWIG libnvme.map + * ====================== ======================= + * nvme_ctrl_[member]_get -> nvme_ctrl_get_[member] + * nvme_ctrl_[member]_set -> nvme_ctrl_set_[member] + * + */ + const char *nvme_ctrl_name_get(struct nvme_ctrl *c) { return nvme_ctrl_get_name(c); } @@ -787,7 +838,108 @@ struct nvme_ns { const char *nvme_ctrl_dhchap_host_key_get(struct nvme_ctrl *c) { return nvme_ctrl_get_dhchap_host_key(c); } -%}; + void nvme_ctrl_dhchap_host_key_set(struct nvme_ctrl *c, const char *key) { + nvme_ctrl_set_dhchap_host_key(c, key); + } + + const char *nvme_ctrl_cntlid_get(nvme_ctrl_t c) { + return nvme_ctrl_get_cntlid(c); + } + + bool nvme_ctrl_persistent_get(struct nvme_ctrl *c) { + return nvme_ctrl_is_persistent(c); + } + void nvme_ctrl_persistent_set(struct nvme_ctrl *c, bool persistent) { + nvme_ctrl_set_persistent(c, persistent); + } + + const char *nvme_ctrl_phy_slot_get(nvme_ctrl_t c) { + return nvme_ctrl_get_phy_slot(c); + } + + const char *nvme_ctrl_trsvcid_get(nvme_ctrl_t c) { + return nvme_ctrl_get_trsvcid(c); + } + + const char *nvme_ctrl_traddr_get(nvme_ctrl_t c) { + return nvme_ctrl_get_traddr(c); + } + + const char *nvme_ctrl_subsysnqn_get(nvme_ctrl_t c) { + return nvme_ctrl_get_subsysnqn(c); + } + + const char *nvme_ctrl_transport_get(nvme_ctrl_t c) { + return nvme_ctrl_get_transport(c); + } + + const char *nvme_ctrl_sqsize_get(nvme_ctrl_t c) { + return nvme_ctrl_get_sqsize(c); + } + + const char *nvme_ctrl_serial_get(nvme_ctrl_t c) { + return nvme_ctrl_get_serial(c); + } + + const char *nvme_ctrl_queue_count_get(nvme_ctrl_t c) { + return nvme_ctrl_get_queue_count(c); + } + + const char *nvme_ctrl_numa_node_get(nvme_ctrl_t c) { + return nvme_ctrl_get_numa_node(c); + } + + const char *nvme_ctrl_model_get(nvme_ctrl_t c) { + return nvme_ctrl_get_model(c); + } + + const char *nvme_ctrl_firmware_get(nvme_ctrl_t c) { + return nvme_ctrl_get_firmware(c); + } + + const char *nvme_ctrl_address_get(nvme_ctrl_t c) { + return nvme_ctrl_get_address(c); + } + + const char *nvme_ctrl_sysfs_dir_get(nvme_ctrl_t c) { + return nvme_ctrl_get_sysfs_dir(c); + } + + bool nvme_ctrl_discovery_ctrl_get(struct nvme_ctrl *c) { + return nvme_ctrl_is_discovery_ctrl(c); + } + void nvme_ctrl_discovery_ctrl_set(struct nvme_ctrl *c, bool discovery) { + nvme_ctrl_set_discovery_ctrl(c, discovery); + } + + bool nvme_ctrl_unique_discovery_ctrl_get(nvme_ctrl_t c) { + return nvme_ctrl_is_unique_discovery_ctrl(c); + } + void nvme_ctrl_unique_discovery_ctrl_set(nvme_ctrl_t c, bool unique) { + nvme_ctrl_set_unique_discovery_ctrl(c, unique); + } + + const char *nvme_ctrl_keyring_get(nvme_ctrl_t c) { + return nvme_ctrl_get_keyring(c); + } + void nvme_ctrl_keyring_set(nvme_ctrl_t c, const char *keyring) { + nvme_ctrl_set_keyring(c, keyring); + } + + const char *nvme_ctrl_tls_key_identity_get(nvme_ctrl_t c) { + return nvme_ctrl_get_tls_key_identity(c); + } + void nvme_ctrl_tls_key_identity_set(nvme_ctrl_t c, const char *identity) { + nvme_ctrl_set_tls_key_identity(c, identity); + } + + const char *nvme_ctrl_tls_key_get(nvme_ctrl_t c) { + return nvme_ctrl_get_tls_key(c); + } + void nvme_ctrl_tls_key_set(nvme_ctrl_t c, const char *key) { + nvme_ctrl_set_tls_key(c, key); + } +%} %pythonappend nvme_ns::nvme_ns(struct nvme_subsystem *s, unsigned int nsid) { diff --git a/meson.build b/meson.build index 50f68d1..58b4cc2 100644 --- a/meson.build +++ b/meson.build @@ -7,8 +7,8 @@ # project( 'libnvme', ['c'], - meson_version: '>= 0.50.0', - version: '1.11.1', + meson_version: '>= 0.62.0', + version: '1.12', license: 'LGPL-2.1-or-later', default_options: [ 'c_std=gnu99', @@ -31,7 +31,7 @@ endif ################################################################################ cc = meson.get_compiler('c') -cxx_available = add_languages('cpp', required: false) +cxx_available = add_languages('cpp', required: false, native: false) prefixdir = get_option('prefix') libdir = join_paths(prefixdir, get_option('libdir')) @@ -68,40 +68,34 @@ else endif conf.set('CONFIG_JSONC', json_c_dep.found(), description: 'Is json-c required?') +if get_option('liburing').disabled() + liburing_dep = dependency('', required: false) +else + liburing_dep = dependency('liburing', version: '>=2.2', required: get_option('liburing')) +endif +conf.set('CONFIG_LIBURING', liburing_dep.found(), description: 'Is liburing available?') + if get_option('openssl').disabled() openssl_dep = dependency('', required: false) else openssl_dep = dependency('openssl', - version: '>=1.1.0', + version: '>=3.0.0', required: get_option('openssl'), fallback : ['openssl', 'libssl_dep']) - - if openssl_dep.found() - if openssl_dep.version().version_compare('<2.0.0') - api_version = 1 +endif +if openssl_dep.found() + # Test for LibreSSL v3.x with incomplete OpenSSL v3 APIs + if openssl_dep.type_name() != 'internal' + is_libressl = cc.has_header_symbol('openssl/opensslv.h', + 'LIBRESSL_VERSION_NUMBER', + dependencies: openssl_dep) + has_header = cc.has_header('openssl/core_names.h', + dependencies: openssl_dep) + if is_libressl and not has_header + openssl_dep = dependency('', required: false) endif - - if openssl_dep.version().version_compare('>=3.0.0') - api_version = 3 - endif - - # Test for LibreSSL v3.x with incomplete OpenSSL v3 APIs - if openssl_dep.type_name() != 'internal' - is_libressl = cc.has_header_symbol('openssl/opensslv.h', - 'LIBRESSL_VERSION_NUMBER', - dependencies: openssl_dep) - has_header = cc.has_header('openssl/core_names.h', - dependencies: openssl_dep) - if is_libressl and not has_header - api_version = 1 - endif - endif - - conf.set('CONFIG_OPENSSL_@0@'.format(api_version), true, - description: 'OpenSSL/LibreSSL API version @0@'.format(api_version)) endif endif - conf.set('CONFIG_OPENSSL', openssl_dep.found(), description: 'Is OpenSSL/LibreSSL available?') @@ -236,15 +230,11 @@ conf.set( ), description: 'Is network address and service translation available' ) +dl_dep = dependency('dl', required: false) conf.set( - 'HAVE_GLIBC_IOCTL', - cc.compiles( - '''#include - int ioctl(int fd, unsigned long request, ...); - ''', - name: 'ioctl has glibc-style prototype' - ), - description: 'Is ioctl the glibc interface (rather than POSIX)' + 'HAVE_LIBC_DLSYM', + cc.has_function('dlsym', dependencies: dl_dep), + description: 'Is dlsym function present', ) if cc.has_function_attribute('fallthrough') @@ -258,6 +248,7 @@ substs = configuration_data() substs.set('NAME', meson.project_name()) substs.set('VERSION', meson.project_version()) substs.set('LICENSE', meson.project_license()[0]) +substs.set('PREFIX', prefixdir) configure_file( input: 'libnvme.spec.in', output: 'libnvme.spec', @@ -304,6 +295,7 @@ if meson.version().version_compare('>=0.53.0') 'keyutitls': keyutils_dep.found(), 'libdbus': libdbus_dep.found(), 'Python 3': py3_dep.found(), + 'liburing': liburing_dep.found(), } summary(dep_dict, section: 'Dependencies') conf_dict = { diff --git a/meson_options.txt b/meson_options.txt index 251ae11..051b4ae 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -13,3 +13,4 @@ option('openssl', type : 'feature', value: 'auto', description : 'OpenSSL suppor option('libdbus', type : 'feature', value: 'disabled', description : 'libdbus support') option('json-c', type : 'feature', value: 'auto', description : 'JSON support') option('keyutils', type: 'feature', value: 'auto', description: 'keyutils support') +option('liburing', type : 'feature', value: 'auto', description : 'liburing support') diff --git a/pyproject.toml b/pyproject.toml index 5416f3d..626fb92 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [build-system] -requires = ["mesonpep517", "wheel", "meson==0.61.2", "ninja"] # PEP 508 specifications. +requires = ["mesonpep517", "wheel", "meson", "ninja"] # PEP 508 specifications. build-backend = "mesonpep517.buildapi" [tool.mesonpep517.metadata] diff --git a/src/libnvme-mi.map b/src/libnvme-mi.map index 11b3954..0fb3782 100644 --- a/src/libnvme-mi.map +++ b/src/libnvme-mi.map @@ -1,3 +1,8 @@ +LIBNVME_MI_1_12 { + global: + nvme_mi_mi_xfer; +}; + LIBNVME_MI_1_11 { global: nvme_mi_control; diff --git a/src/libnvme.map b/src/libnvme.map index d60d076..31daf75 100644 --- a/src/libnvme.map +++ b/src/libnvme.map @@ -1,4 +1,15 @@ # SPDX-License-Identifier: LGPL-2.1-or-later +LIBNVME_1.12 { + global: + nvme_lm_cdq; + nvme_lm_track_send; + nvme_lm_migration_send; + nvme_lm_migration_recv; + nvme_lm_set_features_ctrl_data_queue; + nvme_lm_get_features_ctrl_data_queue; + nvmf_exat_ptr_next; +}; + LIBNVME_1.11 { global: nvme_ctrl_get_keyring; diff --git a/src/meson.build b/src/meson.build index 001c3b9..ca27187 100644 --- a/src/meson.build +++ b/src/meson.build @@ -35,6 +35,7 @@ deps = [ json_c_dep, openssl_dep, keyutils_dep, + liburing_dep, ] mi_deps = [ @@ -54,6 +55,7 @@ libnvme = library( link_args: ['-Wl,--version-script=' + version_script_arg], dependencies: deps, link_depends: mapfile, + c_args: config_h_arg, include_directories: [incdir, internal_incdir], install: true, link_with: libccan, @@ -80,6 +82,7 @@ libnvme_mi = library( 'nvme-mi', # produces libnvme-mi.so mi_sources, version: library_version, + c_args: config_h_arg, link_args: ['-Wl,--version-script=' + mi_version_script_arg], dependencies: mi_deps, link_depends: mi_mapfile, @@ -99,6 +102,7 @@ libnvme_mi_test = library( 'nvme-mi-test', # produces libnvme-mi-test.so mi_sources, dependencies: mi_deps, + c_args: config_h_arg, include_directories: [incdir, internal_incdir], install: false, link_with: libccan, diff --git a/src/nvme/api-types.h b/src/nvme/api-types.h index 4cf8e8c..9126343 100644 --- a/src/nvme/api-types.h +++ b/src/nvme/api-types.h @@ -962,4 +962,141 @@ struct nvme_dim_args { __u8 tas; }; +/** + * struct nvme_lm_cdq_args - Arguments for Controller Data Queue (CDQ) command + * @result: Set on completion to the command's CQE DWORD 0 controller response + * @data: Pointer to data + * @args_size: Length of structure + * @fd: File descriptor of nvme device + * @timeout: Timeout in ms + * @mos: Management Operation Specific (MOS): This field is specific to the SEL type + * @cntlid: Controller ID: For Create CDQ, specifies the target migratable controller + * @cdqid: Controller Data Queue ID (CDQID): For Create CDQ, this field is the CDQID created + * by the controller if no error is present. For Delete CDQ, this field is the CDQID + * to delete. + * @sel: Select (SEL): This field specifies the type of management operation to perform. + * @sz: For Create CDQ, specifies the size of CDQ, in dwords + */ +struct nvme_lm_cdq_args { + __u32 *result; + void *data; + int args_size; + int fd; + __u32 timeout; + __u16 mos; + __u16 cntlid; + __u16 cdqid; + __u8 sel; + __u8 sz; +}; + +/** + * struct nvme_lm_track_send_args - Arguments for the Track Send command + * @result: Set on completion to the command's CQE DWORD 0 controller response + * @args_size: Length of structure + * @fd: File descriptor of nvme device + * @timeout: Timeout in ms + * @mos: Management Operation Specific (MOS): This field is specific to the SEL type + * @cdqid: Controller Data Queue ID (CDQID) + * @sel: Select (SEL): This field specifies the type of management operation to perform + */ +struct nvme_lm_track_send_args { + __u32 *result; + int args_size; + int fd; + __u32 timeout; + __u16 mos; + __u16 cdqid; + __u8 sel; +}; + +/** + * struct nvme_lm_migration_send_args - Arguments for the Migration Send command + * @offset: Offset: This field specifies the offset, in bytes, within the data available to be + * returned and specifies the starting point for that data for what is actually + * returned to the host. + * @result: Set on completion to the command's CQE DWORD 0 controller response + * @data: Pointer to data + * @args_size: Length of structure + * @fd: File descriptor of nvme device + * @timeout: Timeout in ms + * @numd: Number of Dwords (NUMD): This field specifies the number of dwords being transferred + * @mos: Management Operation Specific (MOS): This field is specific to the SEL type + * @cntlid: Controller ID: This field specifies the identifier of the controller to which the + * operation is performed. + * @csuuidi: Controller State UUID Index (CSUUIDI): A non-zero value in this field specifies the + * index to a specific entry in the Vendor Specific Controller State UUID Supported. + * list of the Supported Controller State Formats data structure. + * @sel: Select (SEL): This field specifies the type of management operation to perform. + * @uidx: UUID Index (UIDX): If this field is set to a non-zero value, then the value of this + * field is the index of a UUID in the UUID List (refer to Figure 320) that is used by + * the command. + * @stype: Suspend Type (STYPE): This field specifies the type of suspend. + * @seqind: Sequence Identifier (SEQIND): This field identified the sequences of this Migration + * Send command in relation to other Migration Send commands. + * @csvi: Controller State Version Index (CSVI): A non-zero value in this field specifies the + * index to a specific entry in the NVMe Controller State Version list of the Supported + * Controller State Formats data structure. + * @dudmq: Delete User Data Migration Queue (DUDMQ): If set, the migration queue is deleted + * is deleted as part of the Suspend operation. If cleared, it is retained. + */ +struct nvme_lm_migration_send_args { + __u64 offset; + __u32 *result; + void *data; + int args_size; + int fd; + __u32 timeout; + __u32 numd; + __u16 mos; + __u16 cntlid; + __u16 csuuidi; + __u8 sel; + __u8 uidx; + __u8 stype; + __u8 seqind; + __u8 csvi; + bool dudmq; +}; + +/** + * struct nvme_lm_migration_recv_args - Arguments for the Migration Receive command + * @offset: Offset: This field specifies the offset, in bytes, within the data available to be + * returned and specifies the starting point for that data for what is actually + * returned to the host. + * @result: Set on completion to the command's CQE DWORD 0 controller response + * @data: Pointer to data + * @args_size: Length of structure + * @fd: File descriptor of nvme device + * @timeout: Timeout in ms + * @numd: Number of Dwords (NUMD): This field specifies the number of dwords to return. This + * is a 0's based value. + * @mos: Management Operation Specific (MOS): This field is specific to the SEL type + * @cntlid: Controller ID: This field specifies the identifier of the controller to which the + * operation is performed. + * @csuuidi: Controller State UUID Index (CSUUIDI): A non-zero value in this field specifies the + * index to a specific entry in the Vendor Specific Controller State UUID Supported. + * list of the Supported Controller State Formats data structure. + * @sel: Select (SEL): This field specifies the type of management operation to perform + * @uidx: UUID Index (UIDX): If this field is set to a non-zero value, then the value of this + * field is the index of a UUID in the UUID List (refer to Figure 320) that is used by + * the command. + * @csuidxp: Controller State UUID Index Parameter (CSUIDXP): This field is vendor specific. + */ +struct nvme_lm_migration_recv_args { + __u64 offset; + __u32 *result; + void *data; + int args_size; + int fd; + __u32 timeout; + __u32 numd; + __u16 mos; + __u16 cntlid; + __u16 csuuidi; + __u8 sel; + __u8 uidx; + __u8 csuidxp; +}; + #endif /* _LIBNVME_API_TYPES_H */ diff --git a/src/nvme/ioctl.c b/src/nvme/ioctl.c index ba9d5b1..18b228d 100644 --- a/src/nvme/ioctl.c +++ b/src/nvme/ioctl.c @@ -8,6 +8,9 @@ */ #include #include +#ifdef CONFIG_LIBURING +#include +#endif #include #include #include @@ -20,6 +23,7 @@ #include #include +#include #include #include "ioctl.h" @@ -316,6 +320,115 @@ int nvme_get_log(struct nvme_get_log_args *args) return nvme_submit_admin_passthru(args->fd, &cmd, args->result); } +#ifdef CONFIG_LIBURING +enum { + IO_URING_NOT_AVAILABLE, + IO_URING_AVAILABLE, +} io_uring_kernel_support = IO_URING_NOT_AVAILABLE; + +/* + * gcc specific attribute, call automatically on the library loading. + * if IORING_OP_URING_CMD is not supported, fallback to ioctl interface. + */ +__attribute__((constructor)) +static void nvme_uring_cmd_probe() +{ + struct io_uring_probe *probe = io_uring_get_probe(); + + if (!probe) + return; + + if (!io_uring_opcode_supported(probe, IORING_OP_URING_CMD)) + return; + + io_uring_kernel_support = IO_URING_AVAILABLE; +} + +static int nvme_uring_cmd_setup(struct io_uring *ring) +{ + return io_uring_queue_init(NVME_URING_ENTRIES, ring, + IORING_SETUP_SQE128 | IORING_SETUP_CQE32); +} + +static void nvme_uring_cmd_exit(struct io_uring *ring) +{ + io_uring_queue_exit(ring); +} + +static int nvme_uring_cmd_admin_passthru_async(struct io_uring *ring, struct nvme_get_log_args *args) +{ + struct io_uring_sqe *sqe; + struct nvme_uring_cmd *cmd; + int ret; + + __u32 numd = (args->len >> 2) - 1; + __u16 numdu = numd >> 16, numdl = numd & 0xffff; + + __u32 cdw10 = NVME_SET(args->lid, LOG_CDW10_LID) | + NVME_SET(args->lsp, LOG_CDW10_LSP) | + NVME_SET(!!args->rae, LOG_CDW10_RAE) | + NVME_SET(numdl, LOG_CDW10_NUMDL); + __u32 cdw11 = NVME_SET(numdu, LOG_CDW11_NUMDU) | + NVME_SET(args->lsi, LOG_CDW11_LSI); + __u32 cdw12 = args->lpo & 0xffffffff; + __u32 cdw13 = args->lpo >> 32; + __u32 cdw14 = NVME_SET(args->uuidx, LOG_CDW14_UUID) | + NVME_SET(!!args->ot, LOG_CDW14_OT) | + NVME_SET(args->csi, LOG_CDW14_CSI); + + if (args->args_size < sizeof(struct nvme_get_log_args)) { + errno = EINVAL; + return -1; + } + + sqe = io_uring_get_sqe(ring); + if (!sqe) + return -1; + + cmd = (void *)&sqe->cmd; + cmd->opcode = nvme_admin_get_log_page, + cmd->nsid = args->nsid, + cmd->addr = (__u64)(uintptr_t)args->log, + cmd->data_len = args->len, + cmd->cdw10 = cdw10, + cmd->cdw11 = cdw11, + cmd->cdw12 = cdw12, + cmd->cdw13 = cdw13, + cmd->cdw14 = cdw14, + cmd->timeout_ms = args->timeout, + + sqe->fd = args->fd; + sqe->opcode = IORING_OP_URING_CMD; + sqe->cmd_op = NVME_URING_CMD_ADMIN; + + ret = io_uring_submit(ring); + if (ret < 0) { + errno = -ret; + return -1; + } + + return 0; +} + +static int nvme_uring_cmd_wait_complete(struct io_uring *ring, int n) +{ + struct io_uring_cqe *cqe; + int i, ret; + + for (i = 0; i < n; i++) { + ret = io_uring_wait_cqe(ring, &cqe); + if (ret) { + errno = -ret; + return -1; + } + + io_uring_cqe_seen(ring, cqe); + } + + return n; +} +#endif + int nvme_get_log_page(int fd, __u32 xfer_len, struct nvme_get_log_args *args) { __u64 offset = 0, xfer, data_len = args->len; @@ -326,6 +439,15 @@ int nvme_get_log_page(int fd, __u32 xfer_len, struct nvme_get_log_args *args) args->fd = fd; +#ifdef CONFIG_LIBURING + int n = 0; + struct io_uring ring; + + if (io_uring_kernel_support == IO_URING_AVAILABLE) { + if (nvme_uring_cmd_setup(&ring)) + return -1; + } +#endif /* * 4k is the smallest possible transfer unit, so restricting to 4k * avoids having to check the MDTS value of the controller. @@ -344,6 +466,16 @@ int nvme_get_log_page(int fd, __u32 xfer_len, struct nvme_get_log_args *args) args->len = xfer; args->log = ptr; args->rae = offset + xfer < data_len || retain; +#ifdef CONFIG_LIBURING + if (io_uring_kernel_support == IO_URING_AVAILABLE) { + if (n >= NVME_URING_ENTRIES) { + nvme_uring_cmd_wait_complete(&ring, n); + n = 0; + } + n += 1; + ret = nvme_uring_cmd_admin_passthru_async(&ring, args); + } else +#endif ret = nvme_get_log(args); if (ret) return ret; @@ -352,6 +484,14 @@ int nvme_get_log_page(int fd, __u32 xfer_len, struct nvme_get_log_args *args) ptr += xfer; } while (offset < data_len); +#ifdef CONFIG_LIBURING + if (io_uring_kernel_support == IO_URING_AVAILABLE) { + ret = nvme_uring_cmd_wait_complete(&ring, n); + nvme_uring_cmd_exit(&ring); + if (ret < 0) + return -1; + } +#endif return 0; } @@ -364,7 +504,7 @@ static int read_ana_chunk(int fd, enum nvme_log_ana_lsp lsp, bool rae, } while (*read < to_read) { - __u32 len = min(log_end - *read, NVME_LOG_PAGE_PDU_SIZE); + __u32 len = min_t(__u32, log_end - *read, NVME_LOG_PAGE_PDU_SIZE); int ret; ret = nvme_get_log_ana(fd, lsp, rae, *read - log, len, *read); @@ -2163,3 +2303,174 @@ int nvme_dim_send(struct nvme_dim_args *args) return nvme_submit_admin_passthru(args->fd, &cmd, args->result); } + + +int nvme_lm_cdq(struct nvme_lm_cdq_args *args) +{ + __u32 cdw10 = NVME_SET(args->sel, LM_CDQ_SEL) | + NVME_SET(args->mos, LM_CDQ_MOS); + __u32 cdw11 = 0, data_len = 0; + int err; + + if (args->sel == NVME_LM_SEL_CREATE_CDQ) { + cdw11 = NVME_SET(args->cntlid, LM_CREATE_CDQ_CNTLID) | + NVME_LM_CREATE_CDQ_PC; + data_len = args->sz << 2; + } else if (args->sel == NVME_LM_SEL_DELETE_CDQ) { + cdw11 = NVME_SET(args->cdqid, LM_DELETE_CDQ_CDQID); + } + + struct nvme_passthru_cmd cmd = { + .opcode = nvme_admin_ctrl_data_queue, + .cdw10 = cdw10, + .cdw11 = cdw11, + .cdw12 = args->sz, + .addr = (__u64)(uintptr_t)args->data, + .data_len = data_len, + .timeout_ms = args->timeout, + }; + + if (args->args_size < sizeof(*args)) { + errno = EINVAL; + return -1; + } + + err = nvme_submit_admin_passthru(args->fd, &cmd, args->result); + + if (!err) + args->cdqid = NVME_GET(cmd.result, LM_CREATE_CDQ_CDQID); + + return err; +} + +int nvme_lm_track_send(struct nvme_lm_track_send_args *args) +{ + __u32 cdw10 = NVME_SET(args->sel, LM_TRACK_SEND_SEL) | + NVME_SET(args->mos, LM_TRACK_SEND_MOS); + + struct nvme_passthru_cmd cmd = { + .opcode = nvme_admin_track_send, + .cdw10 = cdw10, + .cdw11 = args->cdqid, + .timeout_ms = args->timeout, + }; + + if (args->args_size < sizeof(*args)) { + errno = EINVAL; + return -1; + } + + return nvme_submit_admin_passthru(args->fd, &cmd, args->result); +} + +int nvme_lm_migration_send(struct nvme_lm_migration_send_args *args) +{ + __u32 cdw10 = NVME_SET(args->sel, LM_MIGRATION_SEND_SEL) | + NVME_SET(args->mos, LM_MIGRATION_SEND_MOS); + __u32 cdw11 = 0; + + if (args->sel == NVME_LM_SEL_SUSPEND) { + cdw11 = NVME_SET(args->stype, LM_STYPE) | + NVME_SET(args->cntlid, LM_SUSPEND_CNTLID); + if (args->dudmq) + cdw11 |= NVME_LM_DUDMQ; + } else if (args->sel == NVME_LM_SEL_RESUME) { + cdw11 = NVME_SET(args->cntlid, LM_RESUME_CNTLID); + } else if (args->sel == NVME_LM_SEL_SET_CONTROLLER_STATE) { + cdw11 = NVME_SET(args->csuuidi, LM_SET_CONTROLLER_STATE_CSUUIDI) | + NVME_SET(args->csvi, LM_SET_CONTROLLER_STATE_CSVI) | + NVME_SET(args->cntlid, LM_SET_CONTROLLER_STATE_CNTLID); + } + + struct nvme_passthru_cmd cmd = { + .opcode = nvme_admin_migration_send, + .cdw10 = cdw10, + .cdw11 = cdw11, + .cdw12 = (__u32)args->offset, + .cdw13 = (__u32)(args->offset >> 32), + .cdw14 = NVME_SET(args->uidx, LM_MIGRATION_SEND_UIDX), + .cdw15 = args->numd, + .addr = (__u64)(uintptr_t)args->data, + .data_len = args->numd << 2, + .timeout_ms = args->timeout, + }; + + if (args->args_size < sizeof(*args)) { + errno = EINVAL; + return -1; + } + + return nvme_submit_admin_passthru(args->fd, &cmd, args->result); +} + +int nvme_lm_migration_recv(struct nvme_lm_migration_recv_args *args) +{ + __u32 cdw10 = NVME_SET(args->sel, LM_MIGRATION_RECV_SEL) | + NVME_SET(args->mos, LM_MIGRATION_RECV_MOS); + __u32 cdw11 = 0, data_len = 0; + + if (args->sel == NVME_LM_SEL_GET_CONTROLLER_STATE) { + cdw11 = NVME_SET(args->csuidxp, LM_GET_CONTROLLER_STATE_CSUIDXP) | + NVME_SET(args->csuuidi, LM_GET_CONTROLLER_STATE_CSUUIDI) | + NVME_SET(args->cntlid, LM_GET_CONTROLLER_STATE_CNTLID); + data_len = (args->numd + 1 /*0's based*/) << 2; + } + + struct nvme_passthru_cmd cmd = { + .opcode = nvme_admin_migration_receive, + .cdw10 = cdw10, + .cdw11 = cdw11, + .cdw12 = (__u32)args->offset, + .cdw13 = (__u32)(args->offset >> 32), + .cdw14 = NVME_SET(args->uidx, LM_MIGRATION_RECV_UIDX), + .cdw15 = args->numd, + .addr = (__u64)(uintptr_t)args->data, + .data_len = data_len, + .timeout_ms = args->timeout, + }; + + if (args->args_size < sizeof(*args)) { + errno = EINVAL; + return -1; + } + + return nvme_submit_admin_passthru(args->fd, &cmd, args->result); +} + +int nvme_lm_set_features_ctrl_data_queue(int fd, __u16 cdqid, __u32 hp, __u32 tpt, bool etpt, + __u32 *result) +{ + struct nvme_set_features_args args = { + .args_size = sizeof(args), + .fd = fd, + .fid = NVME_FEAT_FID_CTRL_DATA_QUEUE, + .nsid = NVME_NSID_NONE, + .cdw11 = cdqid | NVME_SET(tpt, LM_CTRL_DATA_QUEUE_ETPT), + .cdw12 = hp, + .cdw13 = tpt, + .save = false, + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .result = result, + }; + + return nvme_set_features(&args); +} + +int nvme_lm_get_features_ctrl_data_queue(int fd, __u16 cdqid, + struct nvme_lm_ctrl_data_queue_fid_data *data, + __u32 *result) +{ + struct nvme_get_features_args args = { + .args_size = sizeof(args), + .fd = fd, + .fid = NVME_FEAT_FID_CTRL_DATA_QUEUE, + .nsid = NVME_NSID_NONE, + .cdw11 = cdqid, + .data = data, + .data_len = sizeof(*data), + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .result = result, + }; + + return nvme_get_features(&args); +} diff --git a/src/nvme/ioctl.h b/src/nvme/ioctl.h index 7d407a0..b1449f9 100644 --- a/src/nvme/ioctl.h +++ b/src/nvme/ioctl.h @@ -40,6 +40,11 @@ */ #define NVME_LOG_PAGE_PDU_SIZE 4096 +/* + * should not exceed CAP.MQES, 16 is rational for most ssd + */ +#define NVME_URING_ENTRIES 16 + /** * struct nvme_passthru_cmd - nvme passthrough command structure * @opcode: Operation code, see &enum nvme_io_opcodes and &enum nvme_admin_opcodes @@ -180,6 +185,8 @@ struct nvme_uring_cmd { /* io_uring async commands: */ #define NVME_URING_CMD_IO _IOWR('N', 0x80, struct nvme_uring_cmd) #define NVME_URING_CMD_IO_VEC _IOWR('N', 0x81, struct nvme_uring_cmd) +#define NVME_URING_CMD_ADMIN _IOWR('N', 0x82, struct nvme_uring_cmd) +#define NVME_URING_CMD_ADMIN_VEC _IOWR('N', 0x83, struct nvme_uring_cmd) #endif /* _UAPI_LINUX_NVME_IOCTL_H */ @@ -1363,6 +1370,30 @@ static inline int nvme_get_nsid_log(int fd, bool rae, return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } +static inline int nvme_get_endgid_log(int fd, bool rae, enum nvme_cmd_get_log_lid lid, __u16 endgid, + __u32 len, void *log) +{ + struct nvme_get_log_args args = { + .lpo = 0, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .fd = fd, + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = lid, + .len = len, + .nsid = NVME_NSID_NONE, + .csi = NVME_CSI_NVM, + .lsi = endgid, + .lsp = NVME_LOG_LSP_NONE, + .uuidx = NVME_LOG_LSP_NONE, + .rae = rae, + .ot = false, + }; + + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); +} + static inline int nvme_get_log_simple(int fd, enum nvme_cmd_get_log_lid lid, __u32 len, void *log) { @@ -1526,14 +1557,16 @@ static inline int nvme_get_log_device_self_test(int fd, } /** - * nvme_get_log_create_telemetry_host() - Create host telemetry log + * nvme_get_log_create_telemetry_host_mcda() - Create host telemetry log * @fd: File descriptor of nvme device + * @mcda: Maximum Created Data Area * @log: Userspace address of the log payload * * Return: The nvme command status if a response was received (see * &enum nvme_status_field) or -1 with errno set otherwise. */ -static inline int nvme_get_log_create_telemetry_host(int fd, +static inline int nvme_get_log_create_telemetry_host_mcda(int fd, + enum nvme_telemetry_da mcda, struct nvme_telemetry_log *log) { struct nvme_get_log_args args = { @@ -1548,7 +1581,7 @@ static inline int nvme_get_log_create_telemetry_host(int fd, .nsid = NVME_NSID_NONE, .csi = NVME_CSI_NVM, .lsi = NVME_LOG_LSI_NONE, - .lsp = NVME_LOG_TELEM_HOST_LSP_CREATE, + .lsp = (__u8)((mcda << 1) | NVME_LOG_TELEM_HOST_LSP_CREATE), .uuidx = NVME_UUID_NONE, .rae = false, .ot = false, @@ -1556,6 +1589,20 @@ static inline int nvme_get_log_create_telemetry_host(int fd, return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } +/** + * nvme_get_log_create_telemetry_host() - Create host telemetry log + * @fd: File descriptor of nvme device + * @log: Userspace address of the log payload + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise. + */ +static inline int nvme_get_log_create_telemetry_host(int fd, + struct nvme_telemetry_log *log) +{ + return nvme_get_log_create_telemetry_host_mcda(fd, NVME_TELEMETRY_DA_CTRL_DETERMINE, log); +} + /** * nvme_get_log_telemetry_host() - Get Telemetry Host-Initiated log page * @fd: File descriptor of nvme device @@ -2072,6 +2119,55 @@ static inline int nvme_get_log_boot_partition(int fd, bool rae, return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } +/** + * nvme_get_log_rotational_media_info() - Retrieve Rotational Media Information Log + * @fd: File descriptor of nvme device + * @endgid: Endurance Group Identifier + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_get_log_rotational_media_info(int fd, __u16 endgid, __u32 len, + struct nvme_rotational_media_info_log *log) +{ + return nvme_get_endgid_log(fd, false, NVME_LOG_LID_ROTATIONAL_MEDIA_INFO, endgid, len, log); +} + +/** + * nvme_get_log_dispersed_ns_participating_nss() - Retrieve Dispersed Namespace Participating NVM + * Subsystems Log + * @fd: File descriptor of nvme device + * @nsid: Namespace Identifier + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_get_log_dispersed_ns_participating_nss(int fd, __u32 nsid, __u32 len, + struct nvme_dispersed_ns_participating_nss_log *log) +{ + return nvme_get_nsid_log(fd, false, NVME_LOG_LID_DISPERSED_NS_PARTICIPATING_NSS, nsid, len, + log); +} + +/** + * nvme_get_log_mgmt_addr_list() - Retrieve Management Address List Log + * @fd: File descriptor of nvme device + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_get_log_mgmt_addr_list(int fd, __u32 len, + struct nvme_mgmt_addr_list_log *log) +{ + return nvme_get_log_simple(fd, NVME_LOG_LID_MGMT_ADDR_LIST, len, log); +} + /** * nvme_get_log_phy_rx_eom() - Retrieve Physical Interface Receiver Eye Opening Measurement Log * @fd: File descriptor of nvme device @@ -2107,6 +2203,93 @@ static inline int nvme_get_log_phy_rx_eom(int fd, __u8 lsp, __u16 controller, return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } +/** + * nvme_get_log_reachability_groups() - Retrieve Reachability Groups Log + * @fd: File descriptor of nvme device + * @rgo: Return groups only + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_get_log_reachability_groups(int fd, bool rgo, bool rae, __u32 len, + struct nvme_reachability_groups_log *log) +{ + struct nvme_get_log_args args = { + .lpo = 0, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .fd = fd, + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = NVME_LOG_LID_REACHABILITY_GROUPS, + .len = len, + .nsid = NVME_NSID_ALL, + .csi = NVME_CSI_NVM, + .lsi = NVME_LOG_LSI_NONE, + .lsp = rgo, + .uuidx = NVME_LOG_LSP_NONE, + .rae = rae, + .ot = false, + }; + + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); +} + +/** + * nvme_get_log_reachability_associations() - Retrieve Reachability Associations Log + * @fd: File descriptor of nvme device + * @rao: Return associations only + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_get_log_reachability_associations(int fd, bool rao, bool rae, __u32 len, + struct nvme_reachability_associations_log *log) +{ + struct nvme_get_log_args args = { + .lpo = 0, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .fd = fd, + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = NVME_LOG_LID_REACHABILITY_ASSOCIATIONS, + .len = len, + .nsid = NVME_NSID_ALL, + .csi = NVME_CSI_NVM, + .lsi = NVME_LOG_LSI_NONE, + .lsp = rao, + .uuidx = NVME_LOG_LSP_NONE, + .rae = rae, + .ot = false, + }; + + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); +} + +/** + * nvme_get_log_changed_alloc_ns_list() - Retrieve Changed Allocated Namespace List Log + * @fd: File descriptor of nvme device + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_get_log_changed_alloc_ns_list(int fd, bool rae, __u32 len, + struct nvme_ns_list *log) +{ + return nvme_get_nsid_log(fd, rae, NVME_LOG_LID_CHANGED_ALLOC_NS_LIST, NVME_NSID_ALL, len, + log); +} + /** * nvme_get_log_discovery() - Retrieve Discovery log page * @fd: File descriptor of nvme device @@ -2144,6 +2327,73 @@ static inline int nvme_get_log_discovery(int fd, bool rae, return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); } +/** + * nvme_get_log_host_discover() - Retrieve Host Discovery Log + * @fd: File descriptor of nvme device + * @allhoste: All host entries + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_get_log_host_discover(int fd, bool allhoste, bool rae, __u32 len, + struct nvme_host_discover_log *log) +{ + struct nvme_get_log_args args = { + .lpo = 0, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .fd = fd, + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = NVME_LOG_LID_HOST_DISCOVER, + .len = len, + .nsid = NVME_NSID_ALL, + .csi = NVME_CSI_NVM, + .lsi = NVME_LOG_LSI_NONE, + .lsp = allhoste, + .uuidx = NVME_LOG_LSP_NONE, + .rae = rae, + .ot = false, + }; + + return nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &args); +} + +/** + * nvme_get_log_ave_discover() - Retrieve AVE Discovery Log + * @fd: File descriptor of nvme device + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_get_log_ave_discover(int fd, bool rae, __u32 len, + struct nvme_ave_discover_log *log) +{ + return nvme_get_nsid_log(fd, rae, NVME_LOG_LID_AVE_DISCOVER, NVME_NSID_ALL, len, log); +} + +/** + * nvme_get_log_pull_model_ddc_req() - Retrieve Pull Model DDC Request Log + * @fd: File descriptor of nvme device + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_get_log_pull_model_ddc_req(int fd, bool rae, __u32 len, + struct nvme_pull_model_ddc_req_log *log) +{ + return nvme_get_nsid_log(fd, rae, NVME_LOG_LID_PULL_MODEL_DDC_REQ, NVME_NSID_ALL, len, log); +} + /** * nvme_get_log_media_unit_stat() - Retrieve Media Unit Status * @fd: File descriptor of nvme device @@ -4242,4 +4492,68 @@ int nvme_zns_append(struct nvme_zns_append_args *args); */ int nvme_dim_send(struct nvme_dim_args *args); +/** + * nvme_lm_cdq() - Controller Data Queue - Controller Data Queue command + * @args: &struct nvme_lm_cdq_args argument structure + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise.) + */ +int nvme_lm_cdq(struct nvme_lm_cdq_args *args); + +/** + * nvme_lm_track_send() - Track Send command + * @args: &struct nvme_lm_track_send_args argument structure + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise. + */ +int nvme_lm_track_send(struct nvme_lm_track_send_args *args); + +/** + * nvme_lm_migration_send() - Migration Send command + * @args: &struct nvme_lm_migration_send_args argument structure + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise. + */ +int nvme_lm_migration_send(struct nvme_lm_migration_send_args *args); + +/** + * nvme_lm_migration_recv - Migration Receive command + * @args: &struct nvme_lm_migration_rev_args argument structure + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise. + */ +int nvme_lm_migration_recv(struct nvme_lm_migration_recv_args *args); + +/** + * nvme_lm_set_features_ctrl_data_queue - Set Controller Datea Queue feature + * @fd: File descriptor of nvme device + * @cdqid: Controller Data Queue ID (CDQID) + * @hp: Head Pointer + * @tpt: Tail Pointer Trigger + * @etpt: Enable Tail Pointer Trigger + * @result: The command completions result from CQE dword0 + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise. + */ +int nvme_lm_set_features_ctrl_data_queue(int fd, __u16 cdqid, __u32 hp, __u32 tpt, bool etpt, + __u32 *result); + +/** + * nvme_lm_get_features_ctrl_data_queue - Get Controller Data Queue feature + * @fd: File descriptor of nvme device + * @cdqid: Controller Data Queue ID (CDQID) + * @data: Get Controller Data Queue feature data + * @result: The command completions result from CQE dword0 + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise. + */ +int nvme_lm_get_features_ctrl_data_queue(int fd, __u16 cdqid, + struct nvme_lm_ctrl_data_queue_fid_data *data, + __u32 *result); #endif /* _LIBNVME_IOCTL_H */ diff --git a/src/nvme/linux.c b/src/nvme/linux.c index a9ba58b..ae4aa52 100644 --- a/src/nvme/linux.c +++ b/src/nvme/linux.c @@ -21,12 +21,9 @@ #include #include #include - -#ifdef CONFIG_OPENSSL_3 #include #include #endif -#endif #ifdef CONFIG_KEYUTILS #include @@ -197,7 +194,7 @@ int nvme_get_telemetry_log(int fd, bool create, bool ctrl, bool rae, size_t max_ } else { lid = NVME_LOG_LID_TELEMETRY_HOST; if (create) - err = nvme_get_log_create_telemetry_host(fd, log); + err = nvme_get_log_create_telemetry_host_mcda(fd, da, log); else err = nvme_get_log_telemetry_host(fd, 0, xfer, log); } @@ -812,149 +809,7 @@ static int derive_tls_key(int version, unsigned char cipher, return key_len; } -#endif /* CONFIG_OPENSSL */ -#ifdef CONFIG_OPENSSL_1 -static DEFINE_CLEANUP_FUNC(cleanup_hmac_ctx, HMAC_CTX *, HMAC_CTX_free) -#define _cleanup_hmac_ctx_ __cleanup__(cleanup_hmac_ctx) - -int nvme_gen_dhchap_key(char *hostnqn, enum nvme_hmac_alg hmac, - unsigned int key_len, unsigned char *secret, - unsigned char *key) -{ - const char hmac_seed[] = "NVMe-over-Fabrics"; - _cleanup_hmac_ctx_ HMAC_CTX *hmac_ctx = NULL; - const EVP_MD *md; - - hmac_ctx = HMAC_CTX_new(); - if (!hmac_ctx) { - errno = ENOMEM; - return -1; - } - - switch (hmac) { - case NVME_HMAC_ALG_NONE: - memcpy(key, secret, key_len); - return 0; - case NVME_HMAC_ALG_SHA2_256: - md = EVP_sha256(); - break; - case NVME_HMAC_ALG_SHA2_384: - md = EVP_sha384(); - break; - case NVME_HMAC_ALG_SHA2_512: - md = EVP_sha512(); - break; - default: - errno = EINVAL; - return -1; - } - - if (!md) { - errno = EINVAL; - return -1; - } - - if (!HMAC_Init_ex(hmac_ctx, secret, key_len, md, NULL)) { - errno = ENOMEM; - return -1; - } - - if (!HMAC_Update(hmac_ctx, (unsigned char *)hostnqn, - strlen(hostnqn))) { - errno = ENOKEY; - return -1; - } - - if (!HMAC_Update(hmac_ctx, (unsigned char *)hmac_seed, - strlen(hmac_seed))) { - errno = ENOKEY; - return -1; - } - - if (!HMAC_Final(hmac_ctx, key, &key_len)) { - errno = ENOKEY; - return -1; - } - - return 0; -} - -static int derive_psk_digest(const char *hostnqn, const char *subsysnqn, - int version, int cipher, - unsigned char *retained, size_t key_len, - char *digest, size_t digest_len) -{ - static const char hmac_seed[] = "NVMe-over-Fabrics"; - _cleanup_hmac_ctx_ HMAC_CTX *hmac_ctx = NULL; - _cleanup_free_ unsigned char *psk_ctx = NULL; - const EVP_MD *md; - size_t hmac_len; - size_t len; - - hmac_ctx = HMAC_CTX_new(); - if (!hmac_ctx) { - errno = ENOMEM; - return -1; - } - md = select_hmac(cipher, &hmac_len); - if (!md || !hmac_len) { - errno = EINVAL; - return -1; - } - - psk_ctx = malloc(key_len); - if (!psk_ctx) { - errno = ENOMEM; - return -1; - } - if (!HMAC_Init_ex(hmac_ctx, retained, key_len, md, NULL)) { - errno = ENOMEM; - return -1; - } - if (!HMAC_Update(hmac_ctx, (unsigned char *)hostnqn, - strlen(hostnqn))) { - errno = ENOKEY; - return -1; - } - if (!HMAC_Update(hmac_ctx, (unsigned char *)" ", 1)) { - errno = ENOKEY; - return -1; - } - if (!HMAC_Update(hmac_ctx, (unsigned char *)subsysnqn, - strlen(subsysnqn))) { - errno = ENOKEY; - return -1; - } - if (!HMAC_Update(hmac_ctx, (unsigned char *)" ", 1)) { - errno = ENOKEY; - return -1; - } - if (!HMAC_Update(hmac_ctx, (unsigned char *)hmac_seed, - strlen(hmac_seed))) { - errno = ENOKEY; - return -1; - } - if (!HMAC_Final(hmac_ctx, psk_ctx, (unsigned int *)&key_len)) { - errno = ENOKEY; - return -1; - } - if (key_len * 2 > digest_len) { - errno = EINVAL; - return -1; - } - memset(digest, 0, digest_len); - len = base64_encode(psk_ctx, key_len, digest); - if (len < 0) { - errno = ENOKEY; - return len; - } - return strlen(digest); -} - -#endif /* !CONFIG_OPENSSL_1 */ - -#ifdef CONFIG_OPENSSL_3 static DEFINE_CLEANUP_FUNC( cleanup_ossl_lib_ctx, OSSL_LIB_CTX *, OSSL_LIB_CTX_free) #define _cleanup_ossl_lib_ctx_ __cleanup__(cleanup_ossl_lib_ctx) @@ -1148,7 +1003,7 @@ static int derive_psk_digest(const char *hostnqn, const char *subsysnqn, } return strlen(digest); } -#endif /* !CONFIG_OPENSSL_3 */ +#endif /* !CONFIG_OPENSSL */ static int gen_tls_identity(const char *hostnqn, const char *subsysnqn, int version, int cipher, char *digest, diff --git a/src/nvme/linux.h b/src/nvme/linux.h index 5dbc092..c38c47a 100644 --- a/src/nvme/linux.h +++ b/src/nvme/linux.h @@ -34,20 +34,6 @@ int nvme_fw_download_seq(int fd, __u32 size, __u32 xfer, __u32 offset, void *buf); -/** - * enum nvme_telemetry_da - Telemetry Log Data Area - * @NVME_TELEMETRY_DA_1: Data Area 1 - * @NVME_TELEMETRY_DA_2: Data Area 2 - * @NVME_TELEMETRY_DA_3: Data Area 3 - * @NVME_TELEMETRY_DA_4: Data Area 4 - */ -enum nvme_telemetry_da { - NVME_TELEMETRY_DA_1 = 1, - NVME_TELEMETRY_DA_2 = 2, - NVME_TELEMETRY_DA_3 = 3, - NVME_TELEMETRY_DA_4 = 4, -}; - /** * nvme_get_telemetry_max() - Get telemetry limits * @fd: File descriptor of nvme device diff --git a/src/nvme/mi-mctp.c b/src/nvme/mi-mctp.c index 2f1c02d..a4124f0 100644 --- a/src/nvme/mi-mctp.c +++ b/src/nvme/mi-mctp.c @@ -26,8 +26,8 @@ #ifdef CONFIG_DBUS #include -#define MCTP_DBUS_PATH "/xyz/openbmc_project/mctp" -#define MCTP_DBUS_IFACE "xyz.openbmc_project.MCTP" +#define MCTP_DBUS_PATH "/au/com/codeconstruct/mctp1" +#define MCTP_DBUS_IFACE "au.com.codeconstruct.MCTP1" #define MCTP_DBUS_IFACE_ENDPOINT "xyz.openbmc_project.MCTP.Endpoint" #endif diff --git a/src/nvme/mi.c b/src/nvme/mi.c index e9f39a8..4640b0a 100644 --- a/src/nvme/mi.c +++ b/src/nvme/mi.c @@ -14,6 +14,7 @@ #include #include +#include #include #include "log.h" @@ -1021,7 +1022,7 @@ static int read_ana_chunk(nvme_mi_ctrl_t ctrl, enum nvme_log_ana_lsp lsp, bool r } while (*read < to_read) { - __u32 len = min(log_end - *read, NVME_LOG_PAGE_PDU_SIZE); + __u32 len = min_t(__u32, log_end - *read, NVME_LOG_PAGE_PDU_SIZE); int ret; ret = nvme_mi_admin_get_log_ana(ctrl, lsp, rae, @@ -1599,6 +1600,72 @@ static int nvme_mi_read_data(nvme_mi_ep_t ep, __u32 cdw0, return 0; } +int nvme_mi_mi_xfer(nvme_mi_ep_t ep, + struct nvme_mi_mi_req_hdr *mi_req, + size_t req_data_size, + struct nvme_mi_mi_resp_hdr *mi_resp, + size_t *resp_data_size) +{ + int rc; + struct nvme_mi_req req; + struct nvme_mi_resp resp; + + /* There is nothing in the spec to define this limit but going with the limits + * from the admin message types for DLEN seems like a reasonable starting point + * to check for coding errors + */ + const size_t mi_data_xfer_size_limit = 4096; + + /* length/offset checks. The common _submit() API will do further + * checking on the message lengths too, so these are kept specific + * to the requirements of the particular command set + */ + + if (*resp_data_size > mi_data_xfer_size_limit) { + errno = EINVAL; + return -1; + } + + /* request and response lengths & offset must be aligned */ + if ((req_data_size & 0x3) || + (*resp_data_size & 0x3)) { + errno = EINVAL; + return -1; + } + + /* bidirectional not permitted */ + if (req_data_size && *resp_data_size) { + errno = EINVAL; + return -1; + } + + mi_req->hdr.type = NVME_MI_MSGTYPE_NVME; + mi_req->hdr.nmp = (NVME_MI_ROR_REQ << 7) | + (NVME_MI_MT_MI << 3); + + memset(&req, 0, sizeof(req)); + req.hdr = &mi_req->hdr; + req.hdr_len = sizeof(*mi_req); + req.data = mi_req + 1; + req.data_len = req_data_size; + + nvme_mi_calc_req_mic(&req); + + memset(&resp, 0, sizeof(resp)); + resp.hdr = &mi_resp->hdr; + resp.hdr_len = sizeof(*mi_resp); + resp.data = mi_resp + 1; + resp.data_len = *resp_data_size; + + rc = nvme_mi_submit(ep, &req, &resp); + if (rc) + return rc; + + *resp_data_size = resp.data_len; + + return 0; +} + int nvme_mi_mi_read_mi_data_subsys(nvme_mi_ep_t ep, struct nvme_mi_read_nvm_ss_info *s) { diff --git a/src/nvme/mi.h b/src/nvme/mi.h index 3ea2b22..825de27 100644 --- a/src/nvme/mi.h +++ b/src/nvme/mi.h @@ -729,6 +729,36 @@ char *nvme_mi_endpoint_desc(nvme_mi_ep_t ep); /* MI Command API: nvme_mi_mi_ prefix */ +/** + * nvme_mi_mi_xfer() - Raw mi transfer interface. + * @ep: endpoint to send the MI command to + * @mi_req: request data + * @req_data_size: size of request data payload + * @mi_resp: buffer for response data + * @resp_data_size: size of response data buffer, updated to received size + * + * Performs an arbitrary NVMe MI command, using the provided request data, + * in @mi_req. The size of the request data *payload* is specified in + * @req_data_size - this does not include the standard header length (so a + * header-only request would have a size of 0). Note that the Management + * Request Doublewords are considered part of the header data. + * + * On success, response data is stored in @mi_resp, which has an optional + * appended payload buffer of @resp_data_size bytes. The actual payload + * size transferred will be stored in @resp_data_size. This size does not + * include the MI response header, so 0 represents no payload. + * + * See: &struct nvme_mi_mi_req_hdr and &struct nvme_mi_mi_resp_hdr. + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise.. + */ +int nvme_mi_mi_xfer(nvme_mi_ep_t ep, + struct nvme_mi_mi_req_hdr *mi_req, + size_t req_data_size, + struct nvme_mi_mi_resp_hdr *mi_resp, + size_t *resp_data_size); + /** * nvme_mi_mi_read_mi_data_subsys() - Perform a Read MI Data Structure command, * retrieving subsystem data. @@ -1575,6 +1605,47 @@ static inline int nvme_mi_admin_get_nsid_log(nvme_mi_ctrl_t ctrl, bool rae, return nvme_mi_admin_get_log(ctrl, &args); } +/** + * nvme_mi_admin_get_endgid_log() - Helper for Get Endurance Group ID Log Page functions + * @ctrl: Controller to query + * @rae: Retain Asynchronous Events + * @lid: Log identifier + * @endgid: Endurance Group ID + * @len: length of log buffer + * @log: pointer for resulting log data + * + * Performs a Get Log Page Admin command for a specific log ID @lid and + * endurance group ID @endgid. Log data is expected to be @len bytes, and is stored + * in @log on success. The @rae flag is passed as-is to the Get Log Page + * command, and is specific to the Log Page requested. + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise. + */ +static inline int nvme_mi_admin_get_endgid_log(nvme_mi_ctrl_t ctrl, bool rae, + enum nvme_cmd_get_log_lid lid, __u16 endgid, + __u32 len, void *log) +{ + struct nvme_get_log_args args = { + .lpo = 0, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = lid, + .len = len, + .nsid = NVME_NSID_NONE, + .csi = NVME_CSI_NVM, + .lsi = endgid, + .lsp = NVME_LOG_LSP_NONE, + .uuidx = NVME_LOG_LSP_NONE, + .rae = rae, + .ot = false, + }; + + return nvme_mi_admin_get_log(ctrl, &args); +} + /** * nvme_mi_admin_get_log_simple() - Helper for Get Log Page functions with no * NSID or RAE requirements @@ -1635,8 +1706,8 @@ static inline int nvme_mi_admin_get_log_error(nvme_mi_ctrl_t ctrl, struct nvme_error_log_page *err_log) { return nvme_mi_admin_get_nsid_log(ctrl, rae, NVME_LOG_LID_ERROR, - NVME_NSID_ALL, sizeof(*err_log) * nr_entries, - err_log); + NVME_NSID_ALL, sizeof(*err_log) * nr_entries, + err_log); } /** @@ -1661,7 +1732,7 @@ static inline int nvme_mi_admin_get_log_smart(nvme_mi_ctrl_t ctrl, __u32 nsid, struct nvme_smart_log *smart_log) { return nvme_mi_admin_get_nsid_log(ctrl, rae, NVME_LOG_LID_SMART, - nsid, sizeof(*smart_log), smart_log); + nsid, sizeof(*smart_log), smart_log); } /** @@ -1681,7 +1752,7 @@ static inline int nvme_mi_admin_get_log_fw_slot(nvme_mi_ctrl_t ctrl, bool rae, struct nvme_firmware_slot *fw_log) { return nvme_mi_admin_get_nsid_log(ctrl, rae, NVME_LOG_LID_FW_SLOT, - NVME_NSID_ALL, sizeof(*fw_log), fw_log); + NVME_NSID_ALL, sizeof(*fw_log), fw_log); } /** @@ -1702,7 +1773,7 @@ static inline int nvme_mi_admin_get_log_changed_ns_list(nvme_mi_ctrl_t ctrl, struct nvme_ns_list *ns_log) { return nvme_mi_admin_get_nsid_log(ctrl, rae, NVME_LOG_LID_CHANGED_NS, - NVME_NSID_ALL, sizeof(*ns_log), ns_log); + NVME_NSID_ALL, sizeof(*ns_log), ns_log); } /** @@ -1760,15 +1831,17 @@ static inline int nvme_mi_admin_get_log_device_self_test(nvme_mi_ctrl_t ctrl, } /** - * nvme_mi_admin_get_log_create_telemetry_host() - Create host telemetry log + * nvme_mi_admin_get_log_create_telemetry_host_mcda() - Create host telemetry log * @ctrl: Controller to query + * @mcda: Maximum Created Data Area * @log: Userspace address of the log payload * * Return: The nvme command status if a response was received (see * &enum nvme_status_field) or -1 with errno set otherwise. */ -static inline int nvme_mi_admin_get_log_create_telemetry_host(nvme_mi_ctrl_t ctrl, - struct nvme_telemetry_log *log) +static inline int nvme_mi_admin_get_log_create_telemetry_host_mcda(nvme_mi_ctrl_t ctrl, + enum nvme_telemetry_da mcda, + struct nvme_telemetry_log *log) { struct nvme_get_log_args args = { .lpo = 0, @@ -1780,7 +1853,7 @@ static inline int nvme_mi_admin_get_log_create_telemetry_host(nvme_mi_ctrl_t ctr .nsid = NVME_NSID_NONE, .csi = NVME_CSI_NVM, .lsi = NVME_LOG_LSI_NONE, - .lsp = NVME_LOG_TELEM_HOST_LSP_CREATE, + .lsp = (__u8)((mcda << 1) | NVME_LOG_TELEM_HOST_LSP_CREATE), .uuidx = NVME_UUID_NONE, .rae = false, .ot = false, @@ -1788,6 +1861,20 @@ static inline int nvme_mi_admin_get_log_create_telemetry_host(nvme_mi_ctrl_t ctr return nvme_mi_admin_get_log(ctrl, &args); } +/** + * nvme_mi_admin_get_log_create_telemetry_host() - Create host telemetry log + * @ctrl: Controller to query + * @log: Userspace address of the log payload + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise. + */ +static inline int nvme_mi_admin_get_log_create_telemetry_host(nvme_mi_ctrl_t ctrl, + struct nvme_telemetry_log *log) +{ + return nvme_mi_admin_get_log_create_telemetry_host_mcda(ctrl, NVME_TELEMETRY_DA_CTRL_DETERMINE, log); +} + /** * nvme_mi_admin_get_log_telemetry_host() - Get Telemetry Host-Initiated log * page @@ -2157,7 +2244,7 @@ static inline int nvme_mi_admin_get_log_mi_cmd_supported_effects(nvme_mi_ctrl_t struct nvme_mi_cmd_supported_effects_log *log) { return nvme_mi_admin_get_nsid_log(ctrl, rae, NVME_LOG_LID_MI_CMD_SUPPORTED_EFFECTS, - NVME_NSID_NONE, sizeof(*log), log); + NVME_NSID_NONE, sizeof(*log), log); } /** @@ -2195,6 +2282,58 @@ static inline int nvme_mi_admin_get_log_boot_partition(nvme_mi_ctrl_t ctrl, return nvme_mi_admin_get_log(ctrl, &args); } +/** + * nvme_mi_admin_get_log_rotational_media_info() - Retrieve Rotational Media Information Log + * @ctrl: Controller to query + * @endgid: Endurance Group Identifier + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_mi_admin_get_log_rotational_media_info(nvme_mi_ctrl_t ctrl, __u16 endgid, + __u32 len, + struct nvme_rotational_media_info_log *log) +{ + return nvme_mi_admin_get_endgid_log(ctrl, false, NVME_LOG_LID_ROTATIONAL_MEDIA_INFO, endgid, + len, log); +} + +/** + * nvme_mi_admin_get_log_dispersed_ns_participating_nss() - Retrieve Dispersed Namespace + * Participating NVM Subsystems Log + * @ctrl: Controller to query + * @nsid: Namespace Identifier + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_mi_admin_get_log_dispersed_ns_participating_nss(nvme_mi_ctrl_t ctrl, + __u32 nsid, __u32 len, + struct nvme_dispersed_ns_participating_nss_log *log) +{ + return nvme_mi_admin_get_nsid_log(ctrl, false, NVME_LOG_LID_DISPERSED_NS_PARTICIPATING_NSS, + nsid, len, log); +} + +/** + * nvme_mi_admin_get_log_mgmt_addr_list() - Retrieve Management Address List Log + * @ctrl: Controller to query + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_mi_admin_get_log_mgmt_addr_list(nvme_mi_ctrl_t ctrl, __u32 len, + struct nvme_mgmt_addr_list_log *log) +{ + return nvme_mi_admin_get_log_simple(ctrl, NVME_LOG_LID_MGMT_ADDR_LIST, len, log); +} + /** * nvme_mi_admin_get_log_phy_rx_eom() - Retrieve Physical Interface Receiver Eye Opening Measurement Log * @ctrl: Controller to query @@ -2230,6 +2369,92 @@ static inline int nvme_mi_admin_get_log_phy_rx_eom(nvme_mi_ctrl_t ctrl, return nvme_mi_admin_get_log(ctrl, &args); } +/** + * nvme_mi_admin_get_log_reachability_groups() - Retrieve Reachability Groups Log + * @ctrl: Controller to query + * @rgo: Return groups only + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_mi_admin_get_log_reachability_groups(nvme_mi_ctrl_t ctrl, bool rgo, bool rae, + __u32 len, struct nvme_reachability_groups_log *log) +{ + struct nvme_get_log_args args = { + .lpo = 0, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = NVME_LOG_LID_REACHABILITY_GROUPS, + .len = len, + .nsid = NVME_NSID_ALL, + .csi = NVME_CSI_NVM, + .lsi = NVME_LOG_LSI_NONE, + .lsp = rgo, + .uuidx = NVME_LOG_LSP_NONE, + .rae = rae, + .ot = false, + }; + + return nvme_mi_admin_get_log_page(ctrl, NVME_LOG_PAGE_PDU_SIZE, &args); +} + +/** + * nvme_mi_admin_get_log_reachability_associations() - Retrieve Reachability Associations Log + * @ctrl: Controller to query + * @rao: Return associations only + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_mi_admin_get_log_reachability_associations(nvme_mi_ctrl_t ctrl, bool rao, + bool rae, __u32 len, + struct nvme_reachability_associations_log *log) +{ + struct nvme_get_log_args args = { + .lpo = 0, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = NVME_LOG_LID_REACHABILITY_ASSOCIATIONS, + .len = len, + .nsid = NVME_NSID_ALL, + .csi = NVME_CSI_NVM, + .lsi = NVME_LOG_LSI_NONE, + .lsp = rao, + .uuidx = NVME_LOG_LSP_NONE, + .rae = rae, + .ot = false, + }; + + return nvme_mi_admin_get_log_page(ctrl, NVME_LOG_PAGE_PDU_SIZE, &args); +} + +/** + * nvme_mi_admin_get_log_changed_alloc_ns_list() - Retrieve Changed Allocated Namespace List Log + * @ctrl: Controller to query + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_mi_admin_get_log_changed_alloc_ns_list(nvme_mi_ctrl_t ctrl, bool rae, + __u32 len, struct nvme_ns_list *log) +{ + return nvme_mi_admin_get_nsid_log(ctrl, rae, NVME_LOG_LID_CHANGED_ALLOC_NS_LIST, + NVME_NSID_ALL, len, log); +} + /** * nvme_mi_admin_get_log_discovery() - Retrieve Discovery log page * @ctrl: Controller to query @@ -2266,6 +2491,74 @@ static inline int nvme_mi_admin_get_log_discovery(nvme_mi_ctrl_t ctrl, bool rae, return nvme_mi_admin_get_log(ctrl, &args); } +/** + * nvme_mi_admin_get_log_host_discover() - Retrieve Host Discovery Log + * @ctrl: Controller to query + * @allhoste: All host entries + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_mi_admin_get_log_host_discover(nvme_mi_ctrl_t ctrl, bool allhoste, bool rae, + __u32 len, struct nvme_host_discover_log *log) +{ + struct nvme_get_log_args args = { + .lpo = 0, + .result = NULL, + .log = log, + .args_size = sizeof(args), + .timeout = NVME_DEFAULT_IOCTL_TIMEOUT, + .lid = NVME_LOG_LID_HOST_DISCOVER, + .len = len, + .nsid = NVME_NSID_ALL, + .csi = NVME_CSI_NVM, + .lsi = NVME_LOG_LSI_NONE, + .lsp = allhoste, + .uuidx = NVME_LOG_LSP_NONE, + .rae = rae, + .ot = false, + }; + + return nvme_mi_admin_get_log_page(ctrl, NVME_LOG_PAGE_PDU_SIZE, &args); +} + +/** + * nvme_mi_admin_get_log_ave_discover() - Retrieve AVE Discovery Log + * @ctrl: Controller to query + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_mi_admin_get_log_ave_discover(nvme_mi_ctrl_t ctrl, bool rae, __u32 len, + struct nvme_ave_discover_log *log) +{ + return nvme_mi_admin_get_nsid_log(ctrl, rae, NVME_LOG_LID_AVE_DISCOVER, NVME_NSID_ALL, len, + log); +} + +/** + * nvme_mi_admin_get_log_pull_model_ddc_req() - Retrieve Pull Model DDC Request Log + * @ctrl: Controller to query + * @rae: Retain asynchronous events + * @len: The allocated length of the log page + * @log: User address to store the log page + * + * Return: The nvme command status if a response was received (see + * &enum nvme_status_field) or -1 with errno set otherwise + */ +static inline int nvme_mi_admin_get_log_pull_model_ddc_req(nvme_mi_ctrl_t ctrl, bool rae, __u32 len, + struct nvme_pull_model_ddc_req_log *log) +{ + return nvme_mi_admin_get_nsid_log(ctrl, rae, NVME_LOG_LID_PULL_MODEL_DDC_REQ, NVME_NSID_ALL, + len, log); +} + /** * nvme_mi_admin_get_log_media_unit_stat() - Retrieve Media Unit Status * @ctrl: Controller to query diff --git a/src/nvme/types.h b/src/nvme/types.h index fdc4652..f3afd70 100644 --- a/src/nvme/types.h +++ b/src/nvme/types.h @@ -151,11 +151,15 @@ enum nvme_constants { * @NVME_CSI_NVM: NVM Command Set Indicator * @NVME_CSI_KV: Key Value Command Set * @NVME_CSI_ZNS: Zoned Namespace Command Set + * @NVME_CSI_SLM: Subsystem Local Memory Command Set + * @NVME_CSI_CP: Computational Programs Command Set */ enum nvme_csi { NVME_CSI_NVM = 0, NVME_CSI_KV = 1, NVME_CSI_ZNS = 2, + NVME_CSI_SLM = 3, + NVME_CSI_CP = 4, }; /** @@ -1050,8 +1054,8 @@ enum nvme_flbas { * does not process I/O commands in this power state. */ enum nvme_psd_flags { - NVME_PSD_FLAGS_MXPS = 1 << 0, - NVME_PSD_FLAGS_NOPS = 1 << 1, + NVME_PSD_FLAGS_MXPS = 1 << 0, + NVME_PSD_FLAGS_NOPS = 1 << 1, }; /** @@ -1063,9 +1067,9 @@ enum nvme_psd_flags { * @NVME_PSD_PS_10_MILLI_WATT: 0.01 watt scale */ enum nvme_psd_ps { - NVME_PSD_PS_NOT_REPORTED = 0, - NVME_PSD_PS_100_MICRO_WATT = 1, - NVME_PSD_PS_10_MILLI_WATT = 2, + NVME_PSD_PS_NOT_REPORTED = 0, + NVME_PSD_PS_100_MICRO_WATT = 1, + NVME_PSD_PS_10_MILLI_WATT = 2, }; /** @@ -1100,9 +1104,9 @@ static inline unsigned int nvme_psd_power_scale(__u8 ps) * times during the workload. */ enum nvme_psd_workload { - NVME_PSD_WORKLOAD_NP = 0, - NVME_PSD_WORKLOAD_1 = 1, - NVME_PSD_WORKLOAD_2 = 2, + NVME_PSD_WORKLOAD_NP = 0, + NVME_PSD_WORKLOAD_1 = 1, + NVME_PSD_WORKLOAD_2 = 2, }; /** @@ -1145,7 +1149,13 @@ enum nvme_psd_workload { * Bits 2-0: Active Power Workload(APW) indicates the workload * used to calculate maximum power for this power state. * See &enum nvme_psd_workload for decoding this field. - * @rsvd23: Reserved + * @epfrt: Emergency power fail recovery time + * @fqvt: Forced quiescence vault time + * @epfvt: Emergency power fail vault time + * @epfr_fqv_ts: Bits 7-4: Forced quiescence vault time scale + * Bits 3-0: Emergency power fail recovery time scale + * @epfvts: Bits 3-0: Emergency power fail vault time scale + * @rsvd28: Reserved */ struct nvme_id_psd { __le16 mp; @@ -1162,7 +1172,12 @@ struct nvme_id_psd { __u8 rsvd19; __le16 actp; __u8 apws; - __u8 rsvd23[9]; + __u8 epfrt; + __u8 fqvt; + __u8 epfvt; + __u8 epfr_fqv_ts; + __u8 epfvts; + __u8 rsvd28[4]; }; /** @@ -1196,7 +1211,13 @@ struct nvme_id_psd { * @rrls: Read Recovery Levels. If a bit is set, then the corresponding * Read Recovery Level is supported. If a bit is cleared, then the * corresponding Read Recovery Level is not supported. - * @rsvd102: Reserved + * @bpcap: Boot Partition Capabilities, see &enum nvme_id_ctrl_bpcap. + * @rsvd103: Reserved + * @nssl: NVM Subsystem Shutdown Latency (NSSL). This field indicates the + * typical latency in microseconds for an NVM Subsystem Shutdown to + * complete. + * @rsvd108: Reserved + * @plsi: Power Loss Signaling Information (PLSI), see &enum nvme_id_ctrl_plsi * @cntrltype: Controller Type, see &enum nvme_id_ctrl_cntrltype * @fguid: FRU GUID, a 128-bit value that is globally unique for a given * Field Replaceable Unit @@ -1206,7 +1227,9 @@ struct nvme_id_psd { * field is 2 * @crdt3: Controller Retry Delay time in 100 millisecond units if CQE CRD * field is 3 - * @rsvd134: Reserved + * @crcap: Controller Reachability Capabilities (CRCAP), see + * &enum nvme_id_ctrl_crcap + * @rsvd135: Reserved * @nvmsr: NVM Subsystem Report, see &enum nvme_id_ctrl_nvmsr * @vwci: VPD Write Cycle Information, see &enum nvme_id_ctrl_vwci * @mec: Management Endpoint Capabilities, see &enum nvme_id_ctrl_mec @@ -1308,11 +1331,23 @@ struct nvme_id_psd { * for the Persistent Event Log. * @domainid: Domain Identifier indicates the identifier of the domain * that contains this controller. - * @rsvd358: Reserved + * @kpioc: Key Per I/O Capabilities (KPIOC), see &enum nvme_id_ctrl_kpioc + * @rsvd359: Reserved + * @mptfawr: Maximum Processing Time for Firmware Activation Without Reset + * (MPTFAWR). This field shall indicate the estimated maximum time + * in 100 ms units required by the controller to process a Firmware + * Commit command that specifies a value of 011b in the Commit + * Action field + * @rsvd362: Reserved * @megcap: Max Endurance Group Capacity indicates the maximum capacity * of a single Endurance Group. * @tmpthha: Temperature Threshold Hysteresis Attributes * @rsvd385: Reserved + * @cqt: Command Quiesce Time (CQT). his field indicates the expected + * worst-case time in 1 millisecond units for the controller to + * quiesce all outstanding commands after a Keep Alive Timeout or + * other communication loss. + * @rsvd388: Reserved * @sqes: Submission Queue Entry Size, see &enum nvme_id_ctrl_sqes. * @cqes: Completion Queue Entry Size, see &enum nvme_id_ctrl_cqes. * @maxcmd: Maximum Outstanding Commands indicates the maximum number of @@ -1359,7 +1394,17 @@ struct nvme_id_psd { * @oaqd: Optimal Aggregated Queue Depth indicates the recommended maximum * total number of outstanding I/O commands across all I/O queues * on the controller for optimal operation. - * @rsvd568: Reserved + * @rhiri: Recommended Host-Initiated Refresh Interval (RHIRI). If the + * Host-Initiated Refresh capability is supported, then this field + * indicates the recommended time interval in days from last power + * down to the time at which the host should initiate the + * Host-Initiated Refresh operation. If this field is cleared to + * 0h, then this field is not reported. + * @hirt: Host-Initiated Refresh Time (HIRT). If the Host-Initiated + * Refresh capability is supported, then this field indicates the + * nominal amount of time in minutes that the controller takes to + * complete the Host-Initiated Refresh operation. If this field is + * cleared to 0h, then this field is not reported. * @cmmrtd: Controller Maximum Memory Range Tracking Descriptors indicates * the maximum number of Memory Range Tracking Descriptors the * controller supports. @@ -1374,8 +1419,8 @@ struct nvme_id_psd { * value supported in the Requested Memory Range Tracking * Granularity (RMRTG) field of the Track Memory Ranges data * structure. - * @trattr: Tracking Attributes indicates supported attributes for the - * Track Send command and Track Receive command. + * @trattr: Tracking Attributes indicates supported attributes for the Track Send + * command and Track Receive command. see &enum nvme_id_ctrl_trattr * @rsvd577: Reserved * @mcudmq: Maximum Controller User Data Migration Queues indicates the * maximum number of User Data Migration Queues supported by the @@ -1431,13 +1476,18 @@ struct nvme_id_ctrl { __le32 oaes; __le32 ctratt; __le16 rrls; - __u8 rsvd102[9]; + __u8 bpcap; + __u8 rsvd103; + __le32 nssl; + __u8 rsvd108[2]; + __u8 plsi; __u8 cntrltype; __u8 fguid[16]; __le16 crdt1; __le16 crdt2; __le16 crdt3; - __u8 rsvd134[119]; + __u8 crcap; + __u8 rsvd135[118]; __u8 nvmsr; __u8 vwci; __u8 mec; @@ -1476,10 +1526,15 @@ struct nvme_id_ctrl { __le32 nanagrpid; __le32 pels; __le16 domainid; - __u8 rsvd358[10]; + __u8 kpioc; + __u8 rsvd359; + __le16 mptfawr; + __u8 rsvd362[6]; __u8 megcap[16]; __u8 tmpthha; - __u8 rsvd385[127]; + __u8 rsvd385; + __le16 cqt; + __u8 rsvd388[124]; __u8 sqes; __u8 cqes; __le16 maxcmd; @@ -1499,18 +1554,19 @@ struct nvme_id_ctrl { __u8 maxdna[16]; __le32 maxcna; __le32 oaqd; - __u8 rsvd568[2]; - __u16 cmmrtd; - __u16 nmmrtd; + __u8 rhiri; + __u8 hirt; + __le16 cmmrtd; + __le16 nmmrtd; __u8 minmrtg; __u8 maxmrtg; __u8 trattr; __u8 rsvd577; - __u16 mcudmq; - __u16 mnsudmq; - __u16 mcmr; - __u16 nmcmr; - __u16 mcdqpc; + __le16 mcudmq; + __le16 mnsudmq; + __le16 mcmr; + __le16 nmcmr; + __le16 mcdqpc; __u8 rsvd588[180]; char subnqn[NVME_NQN_LENGTH]; __u8 rsvd1024[768]; @@ -1737,6 +1793,73 @@ enum nvme_id_ctrl_ctratt { NVME_CTRL_CTRATT_FDPS = 1 << 19, }; +/** + * enum nvme_id_ctrl_bpcap - Boot Partition Capabilities + * @NVME_CTRL_BACAP_RPMBBPWPS_SHIFT: Shift amount to get the RPMB Boot Partition Write + * Protection Support from the &struct + * nvme_id_ctrl.bpcap field. + * @NVME_CTRL_BACAP_SFBPWPS_SHIFT: Shift amount to get the Set Features Boot Partition + * Write Protection Support from the &struct + * nvme_id_ctrl.bpcap field. + * @NVME_CTRL_BACAP_RPMBBPWPS_MASK: Mask to get the RPMB Boot Partition Write + * Protection Support from the &struct + * nvme_id_ctrl.bpcap field. + * @NVME_CTRL_BACAP_SFBPWPS_MASK: Mask to get the Set Features Boot Partition Write + * Protection Support from the &struct + * nvme_id_ctrl.bpcap field. + * @NVME_CTRL_BACAP_RPMBBPWPS_NOT_SPECIFIED: Support for RPMB Boot Partition Write Protection + * is not specified. + * @NVME_CTRL_BACAP_RPMBBPWPS_NOT_SUPPORTED: RPMB Boot Partition Write Protection is not + * supported by this controller. + * @NVME_CTRL_BACAP_RPMBBPWPS_SUPPORTED: RPMB Boot Partition Write Protection is supported + * by this controller. + */ +enum nvme_id_ctrl_bpcap { + NVME_CTRL_BACAP_RPMBBPWPS_SHIFT = 0, + NVME_CTRL_BACAP_SFBPWPS_SHIFT = 2, + NVME_CTRL_BACAP_RPMBBPWPS_MASK = 0x3, + NVME_CTRL_BACAP_SFBPWPS_MASK = 0x1, + NVME_CTRL_BACAP_RPMBBPWPS_NOT_SPECIFIED = 0, + NVME_CTRL_BACAP_RPMBBPWPS_NOT_SUPPORTED = 1, + NVME_CTRL_BACAP_RPMBBPWPS_SUPPORTED = 2, +}; + +/** + * enum nvme_id_ctrl_plsi - Power Loss Signaling Information + * @NVME_CTRL_PLSI_PLSEPF_SHIFT: Shift amount to get the PLS Emergency Power Fail from the + * &struct nvme_id_ctrl.plsi field. + * @NVME_CTRL_PLSI_PLSFQ_SHIFT: Shift amount to get the PLS Forced Quiescence from the + * &struct nvme_id_ctrl.plsi field. + * @NVME_CTRL_PLSI_PLSEPF_MASK: Mask to get the PLS Emergency Power Fail from the + * &struct nvme_id_ctrl.plsi field. + * @NVME_CTRL_PLSI_PLSFQ_MASK: Mask to get the PLS Forced Quiescence from the + * &struct nvme_id_ctrl.plsi field. + */ +enum nvme_id_ctrl_plsi { + NVME_CTRL_PLSI_PLSEPF_SHIFT = 0, + NVME_CTRL_PLSI_PLSFQ_SHIFT = 1, + NVME_CTRL_PLSI_PLSEPF_MASK = 0x1, + NVME_CTRL_PLSI_PLSFQ_MASK = 0x1, +}; + +/** + * enum nvme_id_ctrl_crcap - Power Loss Signaling Information + * @NVME_CTRL_CRCAP_RRSUP_SHIFT: Shift amount to get the Reachability Reporting Supported + * from the &struct nvme_id_ctrl.crcap field. + * @NVME_CTRL_CRCAP_RGIDC_SHIFT: Shift amount to get the Reachability Group ID Changeable + * from the &struct nvme_id_ctrl.crcap field. + * @NVME_CTRL_CRCAP_RRSUP_MASK: Mask to get the Reachability Reporting Supported from the + * &struct nvme_id_ctrl.crcap field. + * @NVME_CTRL_CRCAP_RGIDC_MASK: Mask to get the Reachability Group ID Changeable from the + * &struct nvme_id_ctrl.crcap field. + */ +enum nvme_id_ctrl_crcap { + NVME_CTRL_CRCAP_RRSUP_SHIFT = 0, + NVME_CTRL_CRCAP_RGIDC_SHIFT = 1, + NVME_CTRL_CRCAP_RRSUP_MASK = 0x1, + NVME_CTRL_CRCAP_RGIDC_MASK = 0x1, +}; + /** * enum nvme_id_ctrl_cntrltype - Controller types * @NVME_CTRL_CNTRLTYPE_IO: NVM I/O controller @@ -1767,7 +1890,7 @@ enum nvme_id_ctrl_dctype { * @NVME_CTRL_NVMSR_NVMESD: If set, then the NVM Subsystem is part of an NVMe * Storage Device; if cleared, then the NVM Subsystem * is not part of an NVMe Storage Device. - * @NVME_CTRL_NVMSR_NVMEE: If set’, then the NVM Subsystem is part of an NVMe + * @NVME_CTRL_NVMSR_NVMEE: If set, then the NVM Subsystem is part of an NVMe * Enclosure; if cleared, then the NVM Subsystem is * not part of an NVMe Enclosure. */ @@ -1816,6 +1939,30 @@ enum nvme_id_ctrl_mec { * enum nvme_id_ctrl_oacs - Flags indicating the optional Admin commands and * features supported by the controller, see * &struct nvme_id_ctrl.oacs. + * @NVME_CTRL_OACS_SSRS_SHIFT: Shift amount to get the Security Send Receive supported + * @NVME_CTRL_OACS_FNVMS_SHIFT:Shift amount to get the Format NVM supported + * @NVME_CTRL_OACS_FWDS_SHIFT: Shift amount to get the Firmware Download supported + * @NVME_CTRL_OACS_NMS_SHIFT: Shift amount to get the Namespace Management supported + * @NVME_CTRL_OACS_DSTS_SHIFT: Shift amount to get the Device Self-test supported + * @NVME_CTRL_OACS_DIRS_SHIFT: Shift amount to get the Directives supported + * @NVME_CTRL_OACS_NSRS_SHIFT: Shift amount to get the NVMe-MI Send Receive supported + * @NVME_CTRL_OACS_VMS_SHIFT: Shift amount to get the Virtualization Management supported + * @NVME_CTRL_OACS_DBCS_SHIFT: Shift amount to get the Doorbell Buffer Config supported + * @NVME_CTRL_OACS_GLSS_SHIFT: Shift amount to get the Get LBA Status supported + * @NVME_CTRL_OACS_CFLS_SHIFT: Shift amount to get the Command and Feature Lockdown supported + * @NVME_CTRL_OACS_HMLMS_SHIFT:Shift amount to get the Host Managed Live Migration support + * @NVME_CTRL_OACS_SSRS_MASK: Mask to get the Security Send Receive supported + * @NVME_CTRL_OACS_FNVMS_MASK: Mask to get the Format NVM supported + * @NVME_CTRL_OACS_FWDS_MASK: Mask to get the Firmware Download supported + * @NVME_CTRL_OACS_NMS_MASK: Mask to get the Namespace Management supported + * @NVME_CTRL_OACS_DSTS_MASK: Mask to get the Device Self-test supported + * @NVME_CTRL_OACS_DIRS_MASK: Mask to get the Directives supported + * @NVME_CTRL_OACS_NSRS_MASK: Mask to get the NVMe-MI Send Receive supported + * @NVME_CTRL_OACS_VMS_MASK: Mask to get the Virtualization Management supported + * @NVME_CTRL_OACS_DBCS_MASK: Mask to get the Doorbell Buffer Config supported + * @NVME_CTRL_OACS_GLSS_MASK: Mask to get the Get LBA Status supported + * @NVME_CTRL_OACS_CFLS_MASK: Mask to get the Command and Feature Lockdown supported + * @NVME_CTRL_OACS_HMLMS_MASK: Mask to get the Host Managed Live Migration support * @NVME_CTRL_OACS_SECURITY: If set, then the controller supports the * Security Send and Security Receive commands. * @NVME_CTRL_OACS_FORMAT: If set then the controller supports the Format @@ -1837,23 +1984,63 @@ enum nvme_id_ctrl_mec { * Doorbell Buffer Config command. * @NVME_CTRL_OACS_LBA_STATUS: If set, then the controller supports the Get LBA * Status capability. - * @NVME_CTRL_OACS_CMD_FEAT_LD: If set, then the controller supports the command - * and feature lockdown capability. + * @NVME_CTRL_OACS_CMD_FEAT_LD:If set, then the controller supports the command + * and feature lockdown capability. + * @NVME_CTRL_OACS_HMLM: If set, then the controller supports the command + * and Host Managed Live Migration capability. */ enum nvme_id_ctrl_oacs { - NVME_CTRL_OACS_SECURITY = 1 << 0, - NVME_CTRL_OACS_FORMAT = 1 << 1, - NVME_CTRL_OACS_FW = 1 << 2, - NVME_CTRL_OACS_NS_MGMT = 1 << 3, - NVME_CTRL_OACS_SELF_TEST = 1 << 4, - NVME_CTRL_OACS_DIRECTIVES = 1 << 5, - NVME_CTRL_OACS_NVME_MI = 1 << 6, - NVME_CTRL_OACS_VIRT_MGMT = 1 << 7, - NVME_CTRL_OACS_DBBUF_CFG = 1 << 8, - NVME_CTRL_OACS_LBA_STATUS = 1 << 9, - NVME_CTRL_OACS_CMD_FEAT_LD = 1 << 10, + NVME_CTRL_OACS_SSRS_SHIFT = 0, + NVME_CTRL_OACS_FNVMS_SHIFT = 1, + NVME_CTRL_OACS_FWDS_SHIFT = 2, + NVME_CTRL_OACS_NMS_SHIFT = 3, + NVME_CTRL_OACS_DSTS_SHIFT = 4, + NVME_CTRL_OACS_DIRS_SHIFT = 5, + NVME_CTRL_OACS_NSRS_SHIFT = 6, + NVME_CTRL_OACS_VMS_SHIFT = 7, + NVME_CTRL_OACS_DBCS_SHIFT = 8, + NVME_CTRL_OACS_GLSS_SHIFT = 9, + NVME_CTRL_OACS_CFLS_SHIFT = 10, + NVME_CTRL_OACS_HMLMS_SHIFT = 11, + NVME_CTRL_OACS_SSRS_MASK = 1, + NVME_CTRL_OACS_FNVMS_MASK = 1, + NVME_CTRL_OACS_FWDS_MASK = 1, + NVME_CTRL_OACS_NMS_MASK = 1, + NVME_CTRL_OACS_DSTS_MASK = 1, + NVME_CTRL_OACS_DIRS_MASK = 1, + NVME_CTRL_OACS_NSRS_MASK = 1, + NVME_CTRL_OACS_VMS_MASK = 1, + NVME_CTRL_OACS_DBCS_MASK = 1, + NVME_CTRL_OACS_GLSS_MASK = 1, + NVME_CTRL_OACS_CFLS_MASK = 1, + NVME_CTRL_OACS_HMLMS_MASK = 1, + NVME_CTRL_OACS_SECURITY = NVME_VAL(CTRL_OACS_SSRS), + NVME_CTRL_OACS_FORMAT = NVME_VAL(CTRL_OACS_FNVMS), + NVME_CTRL_OACS_FW = NVME_VAL(CTRL_OACS_FWDS), + NVME_CTRL_OACS_NS_MGMT = NVME_VAL(CTRL_OACS_NMS), + NVME_CTRL_OACS_SELF_TEST = NVME_VAL(CTRL_OACS_DSTS), + NVME_CTRL_OACS_DIRECTIVES = NVME_VAL(CTRL_OACS_DIRS), + NVME_CTRL_OACS_NVME_MI = NVME_VAL(CTRL_OACS_NSRS), + NVME_CTRL_OACS_VIRT_MGMT = NVME_VAL(CTRL_OACS_VMS), + NVME_CTRL_OACS_DBBUF_CFG = NVME_VAL(CTRL_OACS_DBCS), + NVME_CTRL_OACS_LBA_STATUS = NVME_VAL(CTRL_OACS_GLSS), + NVME_CTRL_OACS_CMD_FEAT_LD = NVME_VAL(CTRL_OACS_CFLS), + NVME_CTRL_OACS_HMLM = NVME_VAL(CTRL_OACS_HMLMS), }; +#define NVME_CTRL_OACS_SSRS(oacs) NVME_GET(CTRL_OACS_SSRS) +#define NVME_CTRL_OACS_FNVMS(oacs) NVME_GET(CTRL_OACS_FNVMS) +#define NVME_CTRL_OACS_FWDS(oacs) NVME_GET(CTRL_OACS_FWDS) +#define NVME_CTRL_OACS_NMS_M(oacs) NVME_GET(CTRL_OACS_NMS) +#define NVME_CTRL_OACS_DSTS(oacs) NVME_GET(CTRL_OACS_DSTS) +#define NVME_CTRL_OACS_DIRS(oacs) NVME_GET(CTRL_OACS_DIRS) +#define NVME_CTRL_OACS_NSRS(oacs) NVME_GET(CTRL_OACS_NSRS) +#define NVME_CTRL_OACS_VMS_M(oacs) NVME_GET(CTRL_OACS_VMS) +#define NVME_CTRL_OACS_DBCS(oacs) NVME_GET(CTRL_OACS_DBCS) +#define NVME_CTRL_OACS_GLSS(oacs) NVME_GET(CTRL_OACS_GLSS) +#define NVME_CTRL_OACS_CFLS(oacs) NVME_GET(CTRL_OACS_CFLS) +#define NVME_CTRL_OACS_HMLMS(oacs) NVME_GET(CTRL_OACS_HMLMS) + /** * enum nvme_id_ctrl_frmw - Flags and values indicates capabilities regarding * firmware updates from &struct nvme_id_ctrl.frmw. @@ -1952,11 +2139,26 @@ enum nvme_id_ctrl_rpmbs { * enum nvme_id_ctrl_dsto - Flags indicating the optional Device Self-test * command or operation behaviors supported by the * controller or NVM subsystem. - * @NVME_CTRL_DSTO_ONE_DST: If set, then the NVM subsystem supports only one - * device self-test operation in progress at a time. + * @NVME_CTRL_DSTO_SDSO_SHIFT: Shift amount to get the value of Single Device Self-test + * Operation from Device Self-test Options field. + * @NVME_CTRL_DSTO_HIRS_SHIFT: Shift amount to get the value of Host-Initiated Refresh + * Support from Device Self-test Options field. + * @NVME_CTRL_DSTO_SDSO_MASK: Mask to get the value of Single Device Self-test Operation + * @NVME_CTRL_DSTO_HIRS_MASK: Mask to get the value of Host-Initiated Refresh Support + * @NVME_CTRL_DSTO_ONE_DST: If set, then the NVM subsystem supports only one device + * self-test operation in progress at a time. If cleared, + * then the NVM subsystem supports one device self-test + * operation per controller at a time. + * @NVME_CTRL_DSTO_HIRS: If set, then the controller supports the Host-Initiated + * Refresh capability. */ enum nvme_id_ctrl_dsto { - NVME_CTRL_DSTO_ONE_DST = 1 << 0, + NVME_CTRL_DSTO_SDSO_SHIFT = 0, + NVME_CTRL_DSTO_HIRS_SHIFT = 1, + NVME_CTRL_DSTO_SDSO_MASK = 0x1, + NVME_CTRL_DSTO_HIRS_MASK = 0x1, + NVME_CTRL_DSTO_ONE_DST = NVME_VAL(CTRL_DSTO_SDSO), + NVME_CTRL_DSTO_HIRS = NVME_VAL(CTRL_DSTO_HIRS), }; /** @@ -2027,6 +2229,25 @@ enum nvme_id_ctrl_anacap { NVME_CTRL_ANACAP_GRPID_MGMT = 1 << 7, }; + +/** + * enum nvme_id_ctrl_kpioc - Key Per I/O Capabilities + * @NVME_CTRL_KPIOC_KPIOS_SHIFT: Shift amount to get the Key Per I/O Supported from the + * &struct nvme_id_ctrl.kpioc field. + * @NVME_CTRL_KPIOC_KPIOSC_SHIFT: Shift amount to get the Key Per I/O Scope from the + * &struct nvme_id_ctrl.kpioc field. + * @NVME_CTRL_KPIOC_KPIOS_MASK: Mask to get the Key Per I/O Supported from the + * &struct nvme_id_ctrl.kpioc field. + * @NVME_CTRL_KPIOC_KPIOSC_MASK: Mask to get the Key Per I/O Scope from the + * &struct nvme_id_ctrl.kpioc field. + */ +enum nvme_id_ctrl_kpioc { + NVME_CTRL_KPIOC_KPIOS_SHIFT = 0, + NVME_CTRL_KPIOC_KPIOSC_SHIFT = 1, + NVME_CTRL_KPIOC_KPIOS_MASK = 0x1, + NVME_CTRL_KPIOC_KPIOSC_MASK = 0x1, +}; + /** * enum nvme_id_ctrl_sqes - Defines the required and maximum Submission Queue * entry size when using the NVM Command Set. @@ -2085,6 +2306,15 @@ enum nvme_id_ctrl_cqes { * @NVME_CTRL_ONCS_ALL_FAST_COPY: If set, then all copy operations for * the Copy command are fast copy * operations. + * @NVME_CTRL_ONCS_WRITE_ZEROES_DEALLOCATE: If MAXWZD bit set, then the maximum data + * size for Write Zeroes command depends on the + * value of the Deallocate bit in the Write Zeroes + * command and the value in the WZDSL field in the + * I/O Command Set specific Identify Controller + * data structure. + * @NVME_CTRL_ONCS_NAMESPACE_ZEROES: If NSZS bit set, then the controller supports + * the Namespace Zeroes (NSZ) bit in the NVM + * Command Set Write Zeroes command. */ enum nvme_id_ctrl_oncs { NVME_CTRL_ONCS_COMPARE = 1 << 0, @@ -2098,6 +2328,8 @@ enum nvme_id_ctrl_oncs { NVME_CTRL_ONCS_COPY = 1 << 8, NVME_CTRL_ONCS_COPY_SINGLE_ATOMICITY = 1 << 9, NVME_CTRL_ONCS_ALL_FAST_COPY = 1 << 10, + NVME_CTRL_ONCS_WRITE_ZEROES_DEALLOCATE = 1 << 11, + NVME_CTRL_ONCS_NAMESPACE_ZEROES = 1 << 12, }; /** @@ -2236,6 +2468,30 @@ enum nvme_id_ctrl_sgls { NVME_CTRL_SGLS_TPORT = 1 << 21, }; +/** + * enum nvme_id_ctrl_trattr - Tracking Attributes + * @NVME_CTRL_TRATTR_THMCS_SHIFT: Shift amount to get the Track Host Memory Changes Support + * from the &struct nvme_id_ctrl.trattr field. + * @NVME_CTRL_TRATTR_TUDCS_SHIFT: Shift amount to get the Track User Data Changes Support + * from the &struct nvme_id_ctrl.trattr field. + * @NVME_CTRL_TRATTR_MRTLL_SHIFT: Shift amount to get the Memory Range Tracking Length Limit + * from the &struct nvme_id_ctrl.trattr field. + * @NVME_CTRL_TRATTR_THMCS_MASK: Mask to get the Track Host Memory Changes Support + * from the &struct nvme_id_ctrl.trattr field. + * @NVME_CTRL_TRATTR_TUDCS_MASK: Mask to get the Track User Data Changes Support + * from the &struct nvme_id_ctrl.trattr field. + * @NVME_CTRL_TRATTR_MRTLL_MASK: Mask to get the Memory Range Tracking Length Limit + * from the &struct nvme_id_ctrl.trattr field. + */ +enum nvme_id_ctrl_trattr { + NVME_CTRL_TRATTR_THMCS_SHIFT = 0, + NVME_CTRL_TRATTR_TUDCS_SHIFT = 1, + NVME_CTRL_TRATTR_MRTLL_SHIFT = 2, + NVME_CTRL_TRATTR_THMCS_MASK = 0x1, + NVME_CTRL_TRATTR_TUDCS_MASK = 0x1, + NVME_CTRL_TRATTR_MRTLL_MASK = 0x1, +}; + /** * enum nvme_id_ctrl_fcatt - This field indicates attributes of the controller * that are specific to NVMe over Fabrics. @@ -2366,12 +2622,16 @@ enum nvme_lbaf_rp { * @msrc: Maximum Source Range Count indicates the maximum number of Source * Range entries that may be used to specify source data in a Copy * command. This is a 0’s based value. - * @rsvd81: Reserved + * @kpios: Key Per I/O Status indicates namespace Key Per I/O capability status. * @nulbaf: Number of Unique Capability LBA Formats defines the number of * supported user data size and metadata size combinations supported * by the namespace that may not share the same capabilities. LBA * formats shall be allocated in order and packed sequentially. * @rsvd83: Reserved + * @kpiodaag: Key Per I/O Data Access Alignment and Granularity indicates the + * alignment and granularity in logical blocks that is required + * for commands that support a KPIOTAG value in the CETYPE field. + * @rsvd88: Reserved * @anagrpid: ANA Group Identifier indicates the ANA Group Identifier of the * ANA group of which the namespace is a member. * @rsvd96: Reserved @@ -2423,9 +2683,11 @@ struct nvme_id_ns { __le16 mssrl; __le32 mcl; __u8 msrc; - __u8 rsvd81; + __u8 kpios; __u8 nulbaf; - __u8 rsvd83[9]; + __u8 rsvd83; + __le32 kpiodaag; + __u8 rsvd88[4]; __le32 anagrpid; __u8 rsvd96[3]; __u8 nsattr; @@ -2862,6 +3124,18 @@ struct nvme_ns_list { __le32 ns[NVME_ID_NS_LIST_MAX]; }; +/** + * enum nvme_id_ctrl_nvm_lbamqf - LBA Migration Queue Format + * @NVME_ID_CTRL_NVM_LBAMQF_TYPE_0: + * @NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MIN: + * @NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MAX: + */ +enum nvme_id_ctrl_nvm_lbamqf { + NVME_ID_CTRL_NVM_LBAMQF_TYPE_0 = 0x0, + NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MIN = 0xc0, + NVME_ID_CTRL_NVM_LBAMQF_VENDOR_MAX = 0xff, +}; + /** * struct nvme_id_ctrl_nvm - I/O Command Set Specific Identify Controller data structure * @vsl: Verify Size Limit @@ -2870,7 +3144,8 @@ struct nvme_ns_list { * @dmrl: Dataset Management Ranges Limit * @dmrsl: Dataset Management Range Size Limit * @dmsl: Dataset Management Size Limit - * @rsvd16: Reserved + * @kpiocap: Key Per I/O Capabilities + * @wzdsl: Write Zeroes With Deallocate Size Limit * @aocs: Admin Optional Command Support * @ver: Version * @lbamqf: LBA Migration Queue Format @@ -2883,7 +3158,8 @@ struct nvme_id_ctrl_nvm { __u8 dmrl; __le32 dmrsl; __le64 dmsl; - __u8 rsvd16[2]; + __u8 kpiocap; + __u8 wzdsl; __le16 aocs; __le32 ver; __u8 lbamqf; @@ -3072,6 +3348,36 @@ struct nvme_id_iocs { __le64 iocsc[512]; }; +/** + * enum nvme_id_iocs_iocsc - This field indicates the Identify I/O Command Set Data Structure + * @NVME_IOCS_IOCSC_NVMCS_SHIFT: Shift amount to get the value of NVM Command Set + * @NVME_IOCS_IOCSC_NVMCS_MASK: Mask to get the value of NVM Command Set + * @NVME_IOCS_IOCSC_KVCS_SHIFT: Shift amount to get the value of Key Value Command Set + * @NVME_IOCS_IOCSC_KVCS_MASK: Mask to get the value of Key Value Command Set + * @NVME_IOCS_IOCSC_ZNSCS_SHIFT: Shift amount to get the value of Zoned Namespace Command + * Set + * @NVME_IOCS_IOCSC_ZNSCS_MASK: Mask to get the value of Zoned Namespace Command Set + * @NVME_IOCS_IOCSC_SLMCS_SHIFT: Shift amount to get the value of Subsystem Local Memory + * Command Set + * @NVME_IOCS_IOCSC_SLMCS_MASK: Mask to get the value of Subsystem Local Memory Command Set + * @NVME_IOCS_IOCSC_CPNCS_SHIFT: Shift amount to get the value of Computational Programs + * Namespace Command Set + * @NVME_IOCS_IOCSC_CPNCS_MASK: Mask to get the value of Computational Programs Namespace + * Command Set + */ +enum nvme_id_iocs_iocsc { + NVME_IOCS_IOCSC_NVMCS_SHIFT = 0, + NVME_IOCS_IOCSC_NVMCS_MASK = 0x1, + NVME_IOCS_IOCSC_KVCS_SHIFT = 1, + NVME_IOCS_IOCSC_KVCS_MASK = 0x1, + NVME_IOCS_IOCSC_ZNSCS_SHIFT = 2, + NVME_IOCS_IOCSC_ZNSCS_MASK = 0x1, + NVME_IOCS_IOCSC_SLMCS_SHIFT = 3, + NVME_IOCS_IOCSC_SLMCS_MASK = 0x1, + NVME_IOCS_IOCSC_CPNCS_SHIFT = 4, + NVME_IOCS_IOCSC_CPNCS_MASK = 0x1, +}; + /** * struct nvme_id_domain_attr - Domain Attributes Entry * @dom_id: Domain Identifier @@ -3213,6 +3519,23 @@ enum nvme_err_pel { NVME_ERR_PEL_BIT_MASK = 0x70, }; +/** + * enum nvme_err_status_field - This field indicates the error information log entry status field + * @NVME_ERR_SF_PHASE_TAG_SHIFT: Shift amount to get the phase tag + * @NVME_ERR_SF_STATUS_FIELD_SHIFT: Shift amount to get the status field + * @NVME_ERR_SF_PHASE_TAG_MASK: Mask to get the phase tag + * @NVME_ERR_SF_STATUS_FIELD_MASK: Mask to get the status field + */ +enum nvme_err_status_field { + NVME_ERR_SF_PHASE_TAG_SHIFT = 0, + NVME_ERR_SF_STATUS_FIELD_SHIFT = 1, + NVME_ERR_SF_PHASE_TAG_MASK = 1, + NVME_ERR_SF_STATUS_FIELD_MASK = 0x7fff, +}; + +#define NVME_ERR_SF_PHASE_TAG(status_field) NVME_GET(status_field, ERR_SF_PHASE_TAG) +#define NVME_ERR_SF_STATUS_FIELD(status_field) NVME_GET(status_field, ERR_SF_STATUS_FIELD) + /** * struct nvme_smart_log - SMART / Health Information Log (Log Identifier 02h) * @critical_warning: This field indicates critical warnings for the state @@ -3586,6 +3909,7 @@ enum nvme_status_result { * @NVME_ST_CODE_RESERVED: Reserved. * @NVME_ST_CODE_SHORT: Short device self-test operation. * @NVME_ST_CODE_EXTENDED: Extended device self-test operation. + * @NVME_ST_CODE_HOST_INIT:Host-Initiated Refresh operation. * @NVME_ST_CODE_VS: Vendor specific. * @NVME_ST_CODE_ABORT: Abort device self-test operation. * @NVME_ST_CODE_SHIFT: Shift amount to get the code value from the @@ -3595,6 +3919,7 @@ enum nvme_st_code { NVME_ST_CODE_RESERVED = 0x0, NVME_ST_CODE_SHORT = 0x1, NVME_ST_CODE_EXTENDED = 0x2, + NVME_ST_CODE_HOST_INIT = 0x3, NVME_ST_CODE_VS = 0xe, NVME_ST_CODE_ABORT = 0xf, NVME_ST_CODE_SHIFT = 4, @@ -3680,6 +4005,22 @@ enum nvme_cmd_get_log_telemetry_host_lsp { NVME_LOG_TELEM_HOST_LSP_CREATE = 1, }; +/** + * enum nvme_telemetry_da - Telemetry Log Data Area + * @NVME_TELEMETRY_DA_CTRL_DETERMINE: The controller determines the data areas to be created + * @NVME_TELEMETRY_DA_1: Data Area 1 + * @NVME_TELEMETRY_DA_2: Data Area 2 + * @NVME_TELEMETRY_DA_3: Data Area 3 + * @NVME_TELEMETRY_DA_4: Data Area 4 + */ +enum nvme_telemetry_da { + NVME_TELEMETRY_DA_CTRL_DETERMINE = 0, + NVME_TELEMETRY_DA_1 = 1, + NVME_TELEMETRY_DA_2 = 2, + NVME_TELEMETRY_DA_3 = 3, + NVME_TELEMETRY_DA_4 = 4, +}; + /** * struct nvme_telemetry_log - Retrieve internal data specific to the * manufacturer. @@ -3688,19 +4029,21 @@ enum nvme_cmd_get_log_telemetry_host_lsp { * @rsvd1: Reserved * @ieee: IEEE OUI Identifier is the Organization Unique Identifier (OUI) * for the controller vendor that is able to interpret the data. - * @dalb1: Telemetry Controller-Initiated Data Area 1 Last Block is + * @dalb1: Telemetry Host/Controller Initiated Data Area 1 Last Block is * the value of the last block in this area. - * @dalb2: Telemetry Controller-Initiated Data Area 1 Last Block is + * @dalb2: Telemetry Host/Controller Initiated Data Area 1 Last Block is * the value of the last block in this area. - * @dalb3: Telemetry Controller-Initiated Data Area 1 Last Block is + * @dalb3: Telemetry Host/ControllerInitiated Data Area 1 Last Block is * the value of the last block in this area. * @rsvd14: Reserved - * @dalb4: Telemetry Controller-Initiated Data Area 4 Last Block is + * @dalb4: Telemetry Host/Controller Initiated Data Area 4 Last Block is * the value of the last block in this area. * @rsvd20: Reserved + * @ths: Telemetry Host-Initiated Scope * @hostdgn: Telemetry Host-Initiated Data Generation Number is a * value that is incremented each time the host initiates a - * capture of its internal controller state in the controller . + * capture of its internal controller state in the controller. + * @tcs: Telemetry Controller-Initiated Scope * @ctrlavail: Telemetry Controller-Initiated Data Available, if cleared, * then the controller telemetry log does not contain saved * internal controller state. If this field is set to 1h, the @@ -3728,8 +4071,12 @@ struct nvme_telemetry_log { __le16 dalb3; __u8 rsvd14[2]; __le32 dalb4; - __u8 rsvd20[361]; - __u8 hostdgn; + __u8 rsvd20[360]; + __u8 ths; + union { // [381] + __u8 hostdgn; + __u8 tcs; + }; __u8 ctrlavail; __u8 ctrldgn; __u8 rsnident[128]; @@ -4415,6 +4762,7 @@ struct nvme_eg_event_aggregate_log { * @NVME_FID_SUPPORTED_EFFECTS_SCOPE_ENDGRP: Endurance Group Scope * @NVME_FID_SUPPORTED_EFFECTS_SCOPE_DOMAIN: Domain Scope * @NVME_FID_SUPPORTED_EFFECTS_SCOPE_NSS: NVM Subsystem Scope + * @NVME_FID_SUPPORTED_EFFECTS_CDQSCP: Controller Data Queue */ enum nvme_fid_supported_effects { NVME_FID_SUPPORTED_EFFECTS_FSUPP = 1 << 0, @@ -4431,6 +4779,7 @@ enum nvme_fid_supported_effects { NVME_FID_SUPPORTED_EFFECTS_SCOPE_ENDGRP = 1 << 3, NVME_FID_SUPPORTED_EFFECTS_SCOPE_DOMAIN = 1 << 4, NVME_FID_SUPPORTED_EFFECTS_SCOPE_NSS = 1 << 5, + NVME_FID_SUPPORTED_EFFECTS_CDQSCP = 1 << 6, }; /** @@ -4522,6 +4871,65 @@ enum nvme_boot_partition_info { #define NVME_BOOT_PARTITION_INFO_BPSZ(bpinfo) NVME_GET(bpinfo, BOOT_PARTITION_INFO_BPSZ) #define NVME_BOOT_PARTITION_INFO_ABPID(bpinfo) NVME_GET(bpinfo, BOOT_PARTITION_INFO_ABPID) +/** + * struct nvme_rotational_media_info_log - Rotational Media Information Log + * @endgid: Endurance Group Identifier + * @numa: Number of Actuators + * @nrs: Nominal Rotational Speed + * @rsvd6: Reserved + * @spinc: Spinup Count + * @fspinc: Failed Spinup Count + * @ldc: Load Count + * @fldc: Failed Load Count + * @rsvd24: Reserved + */ +struct nvme_rotational_media_info_log { + __le16 endgid; + __le16 numa; + __le16 nrs; + __u8 rsvd6[2]; + __le32 spinc; + __le32 fspinc; + __le32 ldc; + __le32 fldc; + __u8 rsvd24[488]; +}; + +/** + * struct nvme_dispersed_ns_participating_nss_log - Dispersed Namespace Participating NVM Subsystems + * Log + * @genctr: Generation Counter + * @numpsub: Number of Participating NVM Subsystems + * @rsvd16: Reserved + * @participating_nss: Participating NVM Subsystem Entry + */ +struct nvme_dispersed_ns_participating_nss_log { + __le64 genctr; + __le64 numpsub; + __u8 rsvd16[240]; + __u8 participating_nss[]; +}; + +/** + * struct nvme_mgmt_addr_desc - Management Address Descriptor + * @mat: Management Address Type + * @rsvd1: Reserved + * @madrs: Management Address + */ +struct nvme_mgmt_addr_desc { + __u8 mat; + __u8 rsvd1[3]; + __u8 madrs[508]; +}; + +/** + * struct nvme_mgmt_addr_list_log - Management Address List Log + * @mad: Management Address Descriptor + */ +struct nvme_mgmt_addr_list_log { + struct nvme_mgmt_addr_desc mad[8]; +}; + /** * struct nvme_eom_lane_desc - EOM Lane Descriptor * @rsvd0: Reserved @@ -4654,6 +5062,68 @@ enum nvme_phy_rx_eom_progress { NVME_PHY_RX_EOM_COMPLETED = 2, }; +/** + * struct nvme_reachability_group_desc - Reachability Group Descriptor + * @rgid: Reachability Group ID + * @nnid: Number of NSID Values + * @chngc: Change Count + * @rsvd16: Reserved + * @nsid: Namespace Identifier List + */ +struct nvme_reachability_group_desc { + __le32 rgid; + __le32 nnid; + __le64 chngc; + __u8 rsvd16[16]; + __le32 nsid[]; +}; + +/** + * struct nvme_reachability_groups_log - Reachability Groups Log + * @chngc: Change Count + * @nrgd: Number of Reachability Group Descriptors + * @rsvd10: Reserved + * @rgd: Reachability Group Descriptor List + */ +struct nvme_reachability_groups_log { + __le64 chngc; + __le16 nrgd; + __u8 rsvd10[6]; + struct nvme_reachability_group_desc rgd[]; +}; + +/** + * struct nvme_reachability_association_desc - Reachability Association Descriptor + * @rasid: Reachability Association ID + * @nrid: Number of RGID Values + * @chngc: Change Count + * @rac: Reachability Association Characteristics + * @rsvd17: Reserved + * @rgid: Reachability Group Identifier List + */ +struct nvme_reachability_association_desc { + __le32 rasid; + __le32 nrid; + __le64 chngc; + __u8 rac; + __u8 rsvd17[15]; + __le32 rgid[]; +}; + +/** + * struct nvme_reachability_associations_log - Reachability Associations Log + * @chngc: Change Count + * @nrad: Number of Reachability Association Descriptors + * @rsvd10: Reserved + * @rad: Reachability Association Descriptor List + */ +struct nvme_reachability_associations_log { + __le64 chngc; + __le16 nrad; + __u8 rsvd10[6]; + struct nvme_reachability_association_desc rad[]; +}; + /** * struct nvme_media_unit_stat_desc - Media Unit Status Descriptor * @muid: Media Unit Identifier @@ -5399,6 +5869,8 @@ struct nvme_fdp_events_log { /** * struct nvme_feat_fdp_events_cdw11 - FDP Events Feature Command Dword 11 + * Deprecated: doesn't support this struct. + * Use NVME_FEAT_FDPE_*** definitions instead. * @phndl: Placement Handle * @noet: Number of FDP Event Types * @rsvd24: Reserved @@ -5407,7 +5879,7 @@ struct nvme_feat_fdp_events_cdw11 { __le16 phndl; __u8 noet; __u8 rsvd24; -}; +} __attribute__((deprecated)); /** * enum nvme_fdp_supported_event_attributes - Supported FDP Event Attributes @@ -5688,16 +6160,16 @@ struct nvme_plm_config { * @acre: Advanced Command Retry Enable * @etdas: Extended Telemetry Data Area 4 Supported * @lbafee: LBA Format Extension Enable - * @rsvd3: Reserved - * @cdfe: Copy Descriptor Formats Enable + * @hdisns: Host Dispersed Namespace Support + * @cdfe: Copy Descriptor Formats Enable * @rsvd6: Reserved */ struct nvme_feat_host_behavior { __u8 acre; __u8 etdas; __u8 lbafee; - __u8 rsvd3; - __u16 cdfe; + __u8 hdisns; + __le16 cdfe; __u8 rsvd6[506]; }; @@ -5967,6 +6439,8 @@ struct nvme_host_mem_buf_attrs { * @NVME_AER_ERROR: Error event * @NVME_AER_SMART: SMART / Health Status event * @NVME_AER_NOTICE: Notice event + * @NVME_AER_IMMEDIATE: Immediate + * @NVME_AER_ONESHOT: One-Shot * @NVME_AER_CSS: NVM Command Set Specific events * @NVME_AER_VS: Vendor Specific event */ @@ -5974,6 +6448,8 @@ enum nvme_ae_type { NVME_AER_ERROR = 0, NVME_AER_SMART = 1, NVME_AER_NOTICE = 2, + NVME_AER_IMMEDIATE = 3, + NVME_AER_ONESHOT = 4, NVME_AER_CSS = 6, NVME_AER_VS = 7, }; @@ -6537,6 +7013,122 @@ struct nvmf_connect_data { char rsvd5[256]; }; +/** + * struct nvme_host_ext_discover_log - Host Extended Discovery Log + * @trtype: Transport Type + * @adrfam: Address Family + * @rsvd2: Reserved + * @eflags: Entry Flags + * @rsvd12: Reserved + * @hostnqn: Host NVMe Qualified Name + * @traddr: Transport Address + * @tsas: Transport Specific Address Subtype + * @tel: Total Entry Length + * @numexat: Number of Extended Attributes + * @rsvd1030: Reserved + * @exat: Extended Attributes List + */ +struct nvme_host_ext_discover_log { + __u8 trtype; + __u8 adrfam; + __u8 rsvd2[8]; + __le16 eflags; + __u8 rsvd12[244]; + char hostnqn[NVME_NQN_LENGTH]; + char traddr[NVMF_TRADDR_SIZE]; + union nvmf_tsas tsas; + __le32 tel; + __le16 numexat; + __u8 rsvd1030[2]; + struct nvmf_ext_attr exat[]; +}; + +/** + * struct nvme_host_discover_log - Host Discovery Log + * @genctr: Generation Counter + * @numrec: Number of Records + * @recfmt: Record Format + * @hdlpf: Host Discovery Log Page Flags + * @rsvd19: Reserved + * @thdlpl: Total Host Discovery Log Page Length + * @rsvd24: Reserved + * @hedlpe: Host Extended Discovery Log Page Entry List + */ +struct nvme_host_discover_log { + __le64 genctr; + __le64 numrec; + __le16 recfmt; + __u8 hdlpf; + __u8 rsvd19; + __le32 thdlpl; + __u8 rsvd24[1000]; + struct nvme_host_ext_discover_log hedlpe[]; +}; + +/** + * struct nvme_ave_tr_record - AVE Transport Record + * @aveadrfam: AVE Address Family + * @rsvd1: Reserved + * @avetrsvcid: AVE Transport Service Identifier + * @avetraddr: AVE Transport Address + */ +struct nvme_ave_tr_record { + __u8 aveadrfam; + __u8 rsvd1; + __le16 avetrsvcid; + __u8 avetraddr[16]; +}; + +/** + * struct nvme_ave_discover_log_entry - AVE Discovery Log Entry + * @tel: Total Entry Length + * @avenqn: AVE NQN + * @numatr: Number of AVE Transport Records + * @rsvd229: Reserved + * @atr: AVE Transport Record List + */ +struct nvme_ave_discover_log_entry { + __le32 tel; + char avenqn[224]; + __u8 numatr; + __u8 rsvd229[3]; + struct nvme_ave_tr_record atr[]; +}; + +/** + * struct nvme_ave_discover_log - AVE Discovery Log + * @genctr: Generation Counter + * @numrec: Number of Records + * @recfmt: Record Format + * @rsvd18: Reserved + * @tadlpl: Total AVE Discovery Log Page Length + * @rsvd24: Reserved + * @adlpe: AVE Discovery Log Page Entry List + */ +struct nvme_ave_discover_log { + __le64 genctr; + __le64 numrec; + __le16 recfmt; + __u8 rsvd18[2]; + __le32 tadlpl; + __u8 rsvd24[1000]; + struct nvme_ave_discover_log_entry adlpe[]; +}; + +/** + * struct nvme_pull_model_ddc_req_log - Pull Model DDC Request Log + * @ori: Operation Request Identifier + * @rsvd1: Reserved + * @tpdrpl: Total Pull Model DDC Request Log Page Length + * @osp: Operation Specific Parameters + */ +struct nvme_pull_model_ddc_req_log { + __u8 ori; + __u8 rsvd1[3]; + __le32 tpdrpl; + __u8 osp[]; +}; + /** * struct nvme_mi_read_nvm_ss_info - NVM Subsystem Information Data Structure * @nump: Number of Ports @@ -7091,6 +7683,14 @@ struct nvme_mi_vpd_hdr { * @NVME_SC_ADMIN_CMD_MEDIA_NOT_READY: Admin Command Media Not Ready: The Admin * command requires access to media and * the media is not ready. + * @NVME_SC_INVALID_KEY_TAG: The command was aborted due to an invalid KEYTAG + * field value. + * @NVME_SC_HOST_DISPERSED_NS_NOT_ENABLED: The command is prohibited while the + * Host Disperesed Namespace Support (HDISNS) field is not + * set to 1h in the Host Behavior Support feature. + * @NVME_SC_HOST_ID_NOT_INITIALIZED: Host Identifier Not Initialized. + * @NVME_SC_INCORRECT_KEY: The command was aborted due to the key associated + * with the KEYTAG field being incorrect. * @NVME_SC_FDP_DISABLED: Command is not allowed when * Flexible Data Placement is disabled. * @NVME_SC_INVALID_PLACEMENT_HANDLE_LIST: The Placement Handle List is invalid @@ -7114,6 +7714,15 @@ struct nvme_mi_vpd_hdr { * namespace. * @NVME_SC_FORMAT_IN_PROGRESS: Format In Progress: A Format NVM command * is in progress on the namespace. + * @NVME_SC_INVALID_VALUE_SIZE: The value size is not valid. + * @NVME_SC_INVALID_KEY_SIZE: The KV key size is not valid. + * @NVME_SC_KV_KEY_NOT_EXISTS: The Store If Key Exists (SIKE) bit is set to + * '1' in the Store Option field and the KV key does not + * exists. + * @NVME_SC_UNRECOVERED_ERROR: There was an unrecovered error when reading + * from the meidum. + * @NVME_SC_KEY_EXISTS: The Store If No Key Exists (SINKE) bit is set to '1' + * in the Store Option field and the KV key exists. * @NVME_SC_CQ_INVALID: Completion Queue Invalid: The Completion * Queue identifier specified in the command * does not exist. @@ -7471,6 +8080,10 @@ enum nvme_status_field { NVME_SC_TRAN_TPORT_ERROR = 0x22, NVME_SC_PROHIBITED_BY_CMD_AND_FEAT = 0x23, NVME_SC_ADMIN_CMD_MEDIA_NOT_READY = 0x24, + NVME_SC_INVALID_KEY_TAG = 0x25, + NVME_SC_HOST_DISPERSED_NS_NOT_ENABLED = 0x26, + NVME_SC_HOST_ID_NOT_INITIALIZED = 0x27, + NVME_SC_INCORRECT_KEY = 0x28, NVME_SC_FDP_DISABLED = 0x29, NVME_SC_INVALID_PLACEMENT_HANDLE_LIST = 0x2A, NVME_SC_LBA_RANGE = 0x80, @@ -7478,6 +8091,11 @@ enum nvme_status_field { NVME_SC_NS_NOT_READY = 0x82, NVME_SC_RESERVATION_CONFLICT = 0x83, NVME_SC_FORMAT_IN_PROGRESS = 0x84, + NVME_SC_INVALID_VALUE_SIZE = 0x85, + NVME_SC_INVALID_KEY_SIZE = 0x86, + NVME_SC_KV_KEY_NOT_EXISTS = 0x87, + NVME_SC_UNRECOVERED_ERROR = 0x88, + NVME_SC_KEY_EXISTS = 0x89, /* * Command Specific Status Codes: @@ -7743,14 +8361,28 @@ static inline __u32 nvme_status_equals(int status, enum nvme_status_type type, * @nvme_admin_fabric_zoning_recv: Fabric Zoning Receive * @nvme_admin_lockdown: Lockdown * @nvme_admin_fabric_zoning_lookup: Fabric Zoning Lookup + * @nvme_admin_clear_export_nvm_res: Clear Exported NVM Resource Configuration * @nvme_admin_fabric_zoning_send: Fabric Zoning Send + * @nvme_admin_create_export_nvms: Create Exported NVM Subsystem + * @nvme_admin_manage_export_nvms: Manage Exported NVM Subsystem + * @nvme_admin_manage_export_ns: Manage Exported Namespace + * @nvme_admin_manage_export_port: Manage Exported Port + * @nvme_admin_send_disc_log_page: Send Discovery Log Page + * @nvme_admin_track_send: Track Send + * @nvme_admin_track_receive: Track Receive + * @nvme_admin_migration_send: Migration Send + * @nvme_admin_migration_receive: Migration Receive + * @nvme_admin_ctrl_data_queue: Controller Data Queue * @nvme_admin_dbbuf: Doorbell Buffer Config * @nvme_admin_fabrics: Fabrics Commands * @nvme_admin_format_nvm: Format NVM * @nvme_admin_security_send: Security Send * @nvme_admin_security_recv: Security Receive * @nvme_admin_sanitize_nvm: Sanitize + * @nvme_admin_load_program: Load Program * @nvme_admin_get_lba_status: Get LBA Status + * @nvme_admin_program_act_mgmt: Program Activation Management + * @nvme_admin_mem_range_set_mgmt: Memory Range Set Management */ enum nvme_admin_opcode { nvme_admin_delete_sq = 0x00, @@ -7780,14 +8412,28 @@ enum nvme_admin_opcode { nvme_admin_fabric_zoning_recv = 0x22, nvme_admin_lockdown = 0x24, nvme_admin_fabric_zoning_lookup = 0x25, + nvme_admin_clear_export_nvm_res = 0x28, nvme_admin_fabric_zoning_send = 0x29, + nvme_admin_create_export_nvms = 0x2a, + nvme_admin_manage_export_nvms = 0x2d, + nvme_admin_manage_export_ns = 0x31, + nvme_admin_manage_export_port = 0x35, + nvme_admin_send_disc_log_page = 0x39, + nvme_admin_track_send = 0x3d, + nvme_admin_track_receive = 0x3e, + nvme_admin_migration_send = 0x41, + nvme_admin_migration_receive = 0x42, + nvme_admin_ctrl_data_queue = 0x45, nvme_admin_dbbuf = 0x7c, nvme_admin_fabrics = 0x7f, nvme_admin_format_nvm = 0x80, nvme_admin_security_send = 0x81, nvme_admin_security_recv = 0x82, nvme_admin_sanitize_nvm = 0x84, + nvme_admin_load_program = 0x85, nvme_admin_get_lba_status = 0x86, + nvme_admin_program_act_mgmt = 0x88, + nvme_admin_mem_range_set_mgmt = 0x89, }; /** @@ -7828,7 +8474,11 @@ enum nvme_admin_opcode { * ID list * @NVME_IDENTIFY_CNS_CSI_ID_NS_DATA_STRUCTURE: I/O Command Set specific ID Namespace * Data Structure for Allocated Namespace ID - * @NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE: Base Specification 2.0a section 5.17.2.21 + * @NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE: I/O Command Set data structure + * @NVME_IDENTIFY_CNS_UNDERLYING_NS_LIST: Get Underlying Namespace List + * @NVME_IDENTIFY_CNS_PORTS_LIST: Get Ports List + * @NVME_IDENTIFY_CNS_IOCS_IND_ID_ALLOC_NS: I/O Command Set Independent Identify Namespace data + * structure for the specified allocated NSID * @NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS: Supported Controller State Formats * identifying the supported NVMe Controller * State data structures @@ -7858,6 +8508,9 @@ enum nvme_identify_cns { NVME_IDENTIFY_CNS_CSI_ALLOCATED_NS_LIST = 0x1A, NVME_IDENTIFY_CNS_CSI_ID_NS_DATA_STRUCTURE = 0x1B, NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE = 0x1C, + NVME_IDENTIFY_CNS_UNDERLYING_NS_LIST = 0x1D, + NVME_IDENTIFY_CNS_PORTS_LIST = 0x1E, + NVME_IDENTIFY_CNS_IOCS_IND_ID_ALLOC_NS = 0x1F, NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS = 0x20, }; @@ -7971,12 +8624,19 @@ enum nvme_cmd_get_log_lid { * @NVME_FEAT_FID_PLM_WINDOW: Predictable Latency Mode Window * @NVME_FEAT_FID_LBA_STS_INTERVAL: LBA Status Information Report Interval * @NVME_FEAT_FID_HOST_BEHAVIOR: Host Behavior Support - * @NVME_FEAT_FID_SANITIZE: Endurance Group Event Configuration + * @NVME_FEAT_FID_SANITIZE: Sanitize Config * @NVME_FEAT_FID_ENDURANCE_EVT_CFG: Endurance Group Event Configuration * @NVME_FEAT_FID_IOCS_PROFILE: I/O Command Set Profile * @NVME_FEAT_FID_SPINUP_CONTROL: Spinup Control + * @NVME_FEAT_FID_POWER_LOSS_SIGNAL: Power Loss Signaling Config + * @NVME_FEAT_FID_PERF_CHARACTERISTICS: Performance Characteristics * @NVME_FEAT_FID_FDP: Flexible Data Placement * @NVME_FEAT_FID_FDP_EVENTS: FDP Events + * @NVME_FEAT_FID_NS_ADMIN_LABEL: Namespace Admin Label + * @NVME_FEAT_FID_KEY_VALUE: Key Value Configuration + * @NVME_FEAT_FID_CTRL_DATA_QUEUE: Controller Data Queue + * @NVME_FEAT_FID_EMB_MGMT_CTRL_ADDR: Embedded Management Controller Address + * @NVME_FEAT_FID_HOST_MGMT_AGENT_ADDR: Host Management Agent Address * @NVME_FEAT_FID_ENH_CTRL_METADATA: Enhanced Controller Metadata * @NVME_FEAT_FID_CTRL_METADATA: Controller Metadata * @NVME_FEAT_FID_NS_METADATA: Namespace Metadata @@ -7985,6 +8645,7 @@ enum nvme_cmd_get_log_lid { * @NVME_FEAT_FID_RESV_MASK: Reservation Notification Mask * @NVME_FEAT_FID_RESV_PERSIST: Reservation Persistence * @NVME_FEAT_FID_WRITE_PROTECT: Namespace Write Protection Config + * @NVME_FEAT_FID_BP_WRITE_PROTECT: Boot Partition Write Protection Config */ enum nvme_features_id { NVME_FEAT_FID_ARBITRATION = 0x01, @@ -8011,10 +8672,17 @@ enum nvme_features_id { NVME_FEAT_FID_HOST_BEHAVIOR = 0x16, NVME_FEAT_FID_SANITIZE = 0x17, NVME_FEAT_FID_ENDURANCE_EVT_CFG = 0x18, - NVME_FEAT_FID_IOCS_PROFILE = 0x19, /* XXX: Placeholder until assigned */ + NVME_FEAT_FID_IOCS_PROFILE = 0x19, NVME_FEAT_FID_SPINUP_CONTROL = 0x1a, + NVME_FEAT_FID_POWER_LOSS_SIGNAL = 0x1b, + NVME_FEAT_FID_PERF_CHARACTERISTICS = 0x1c, NVME_FEAT_FID_FDP = 0x1d, NVME_FEAT_FID_FDP_EVENTS = 0x1e, + NVME_FEAT_FID_NS_ADMIN_LABEL = 0x1f, + NVME_FEAT_FID_KEY_VALUE = 0x20, + NVME_FEAT_FID_CTRL_DATA_QUEUE = 0x21, + NVME_FEAT_FID_EMB_MGMT_CTRL_ADDR = 0x78, + NVME_FEAT_FID_HOST_MGMT_AGENT_ADDR = 0x79, NVME_FEAT_FID_ENH_CTRL_METADATA = 0x7d, NVME_FEAT_FID_CTRL_METADATA = 0x7e, NVME_FEAT_FID_NS_METADATA = 0x7f, @@ -8023,6 +8691,7 @@ enum nvme_features_id { NVME_FEAT_FID_RESV_MASK = 0x82, NVME_FEAT_FID_RESV_PERSIST = 0x83, NVME_FEAT_FID_WRITE_PROTECT = 0x84, + NVME_FEAT_FID_BP_WRITE_PROTECT = 0x85, }; /** @@ -8083,6 +8752,26 @@ enum nvme_features_id { * @NVME_FEAT_AE_LBAS_MASK: * @NVME_FEAT_AE_EGA_SHIFT: * @NVME_FEAT_AE_EGA_MASK: + * @NVME_FEAT_AE_NNSSHDN_SHIFT: + * @NVME_FEAT_AE_NNSSHDN_MASK: + * @NVME_FEAT_AE_TTHRY_SHIFT: + * @NVME_FEAT_AE_TTHRY_MASK: + * @NVME_FEAT_AE_RASSN_SHIFT: + * @NVME_FEAT_AE_RASSN_MASK: + * @NVME_FEAT_AE_RGRP0_SHIFT: + * @NVME_FEAT_AE_RGRP0_MASK: + * @NVME_FEAT_AE_ANSAN_SHIFT: + * @NVME_FEAT_AE_ANSAN_MASK: + * @NVME_FEAT_AE_ZDCN_SHIFT: + * @NVME_FEAT_AE_ZDCN_MASK: + * @NVME_FEAT_AE_PMDRLPCN_SHIFT: + * @NVME_FEAT_AE_PMDRLPCN_MASK: + * @NVME_FEAT_AE_ADLPCN_SHIFT: + * @NVME_FEAT_AE_ADLPCN_MASK: + * @NVME_FEAT_AE_HDLPCN_SHIFT: + * @NVME_FEAT_AE_HDLPCN_MASK: + * @NVME_FEAT_AE_DLPCN_SHIFT: + * @NVME_FEAT_AE_DLPCN_MASK: * @NVME_FEAT_APST_APSTE_SHIFT: * @NVME_FEAT_APST_APSTE_MASK: * @NVME_FEAT_HMEM_EHM_SHIFT: @@ -8109,6 +8798,10 @@ enum nvme_features_id { * @NVME_FEAT_EG_ENDGID_MASK: * @NVME_FEAT_EG_EGCW_SHIFT: * @NVME_FEAT_EG_EGCW_MASK: + * @NVME_FEAT_FDPE_PHNDL_SHIFT: + * @NVME_FEAT_FDPE_PHNDL_MASK: + * @NVME_FEAT_FDPE_NOET_SHIFT: + * @NVME_FEAT_FDPE_NOET_MASK: * @NVME_FEAT_SPM_PBSLC_SHIFT: * @NVME_FEAT_SPM_PBSLC_MASK: * @NVME_FEAT_HOSTID_EXHID_SHIFT: @@ -8125,6 +8818,10 @@ enum nvme_features_id { * @NVME_FEAT_WP_WPS_MASK: * @NVME_FEAT_IOCSP_IOCSCI_SHIFT: * @NVME_FEAT_IOCSP_IOCSCI_MASK: + * @NVME_FEAT_SPINUP_CONTROL_SHIFT: + * @NVME_FEAT_SPINUP_CONTROL_MASK: + * @NVME_FEAT_PLS_MODE_SHIFT: + * @NVME_FEAT_PLS_MODE_MASK: * @NVME_FEAT_FDP_ENABLED_SHIFT: * @NVME_FEAT_FDP_ENABLED_MASK: * @NVME_FEAT_FDP_INDEX_SHIFT: @@ -8189,6 +8886,26 @@ enum nvme_feat { NVME_FEAT_AE_LBAS_MASK = 0x1, NVME_FEAT_AE_EGA_SHIFT = 14, NVME_FEAT_AE_EGA_MASK = 0x1, + NVME_FEAT_AE_NNSSHDN_SHIFT = 15, + NVME_FEAT_AE_NNSSHDN_MASK = 0x1, + NVME_FEAT_AE_TTHRY_SHIFT = 16, + NVME_FEAT_AE_TTHRY_MASK = 0x1, + NVME_FEAT_AE_RASSN_SHIFT = 17, + NVME_FEAT_AE_RASSN_MASK = 0x1, + NVME_FEAT_AE_RGRP0_SHIFT = 18, + NVME_FEAT_AE_RGRP0_MASK = 0x1, + NVME_FEAT_AE_ANSAN_SHIFT = 19, + NVME_FEAT_AE_ANSAN_MASK = 0x1, + NVME_FEAT_AE_ZDCN_SHIFT = 27, + NVME_FEAT_AE_ZDCN_MASK = 0x1, + NVME_FEAT_AE_PMDRLPCN_SHIFT = 28, + NVME_FEAT_AE_PMDRLPCN_MASK = 0x1, + NVME_FEAT_AE_ADLPCN_SHIFT = 29, + NVME_FEAT_AE_ADLPCN_MASK = 0x1, + NVME_FEAT_AE_HDLPCN_SHIFT = 30, + NVME_FEAT_AE_HDLPCN_MASK = 0x1, + NVME_FEAT_AE_DLPCN_SHIFT = 31, + NVME_FEAT_AE_DLPCN_MASK = 0x1, NVME_FEAT_APST_APSTE_SHIFT = 0, NVME_FEAT_APST_APSTE_MASK = 0x1, NVME_FEAT_HMEM_EHM_SHIFT = 0, @@ -8215,6 +8932,10 @@ enum nvme_feat { NVME_FEAT_EG_ENDGID_MASK = 0xffff, NVME_FEAT_EG_EGCW_SHIFT = 16, NVME_FEAT_EG_EGCW_MASK = 0xff, + NVME_FEAT_FDPE_PHNDL_SHIFT = 0, + NVME_FEAT_FDPE_PHNDL_MASK = 0xffff, + NVME_FEAT_FDPE_NOET_SHIFT = 16, + NVME_FEAT_FDPE_NOET_MASK = 0xff, NVME_FEAT_SPM_PBSLC_SHIFT = 0, NVME_FEAT_SPM_PBSLC_MASK = 0xff, NVME_FEAT_HOSTID_EXHID_SHIFT = 0, @@ -8231,6 +8952,10 @@ enum nvme_feat { NVME_FEAT_WP_WPS_MASK = 0x7, NVME_FEAT_IOCSP_IOCSCI_SHIFT = 0, NVME_FEAT_IOCSP_IOCSCI_MASK = 0x1ff, + NVME_FEAT_SPINUP_CONTROL_SHIFT = 0, + NVME_FEAT_SPINUP_CONTROL_MASK = 0x1, + NVME_FEAT_PLS_MODE_SHIFT = 0, + NVME_FEAT_PLS_MODE_MASK = 0x3, NVME_FEAT_FDP_ENABLED_SHIFT = 0, NVME_FEAT_FDP_ENABLED_MASK = 0x1, NVME_FEAT_FDP_INDEX_SHIFT = 8, @@ -8433,12 +9158,14 @@ enum nvme_sanitize_sanact { * enum nvme_dst_stc - Action taken by the Device Self-test command * @NVME_DST_STC_SHORT: Start a short device self-test operation * @NVME_DST_STC_LONG: Start an extended device self-test operation + * @NVME_DST_STC_HOST_INIT:Start a Host-Initiated Refresh operation * @NVME_DST_STC_VS: Start a vendor specific device self-test operation * @NVME_DST_STC_ABORT: Abort device self-test operation */ enum nvme_dst_stc { NVME_DST_STC_SHORT = 0x1, NVME_DST_STC_LONG = 0x2, + NVME_DST_STC_HOST_INIT = 0x3, NVME_DST_STC_VS = 0xe, NVME_DST_STC_ABORT = 0xf, }; @@ -8661,6 +9388,7 @@ enum nvme_data_tfr { * @nvme_zns_cmd_mgmt_send: Zone Management Send * @nvme_zns_cmd_mgmt_recv: Zone Management Receive * @nvme_zns_cmd_append: Zone Append + * @nvme_cmd_fabric: Fabric Commands */ enum nvme_io_opcode { nvme_cmd_flush = 0x00, @@ -8682,6 +9410,7 @@ enum nvme_io_opcode { nvme_zns_cmd_mgmt_send = 0x79, nvme_zns_cmd_mgmt_recv = 0x7a, nvme_zns_cmd_append = 0x7d, + nvme_cmd_fabric = 0x7f, }; /** @@ -8713,6 +9442,7 @@ enum nvme_kv_opcode { /** * enum nvme_io_control_flags - I/O control flags * @NVME_IO_DTYPE_STREAMS: Directive Type Streams + * @NVME_IO_NSZ: Namespace Zeroes * @NVME_IO_STC: Storage Tag Check * @NVME_IO_DEAC: Deallocate * @NVME_IO_ZNS_APPEND_PIREMAP: Protection Information Remap @@ -8725,6 +9455,7 @@ enum nvme_kv_opcode { */ enum nvme_io_control_flags { NVME_IO_DTYPE_STREAMS = 1 << 4, + NVME_IO_NSZ = 1 << 7, NVME_IO_STC = 1 << 8, NVME_IO_DEAC = 1 << 9, NVME_IO_ZNS_APPEND_PIREMAP = 1 << 9, @@ -9009,4 +9740,390 @@ struct nvme_ns_mgmt_host_sw_specified { }; #endif /* SWIG */ +/** + * enum nvme_lm_cdq_fields - Controller Data Queue command fields + * + * @NVME_LM_CDQ_MOS_SHIFT: Shift to set Management Operation Specific (MOS) field + * @NVME_LM_CDQ_MOS_MASK: Mask to set MOS field + * @NVME_LM_CDQ_SEL_SHIFT: Shift to set Select (SEL) field + * @NVME_LM_CDQ_SEL_MASK: Mask to set SEL field + * @NVME_LM_SEL_CREATE_CDQ: Create CDQ select option + * @NVME_LM_SEL_DELETE_CDQ: Delete CDQ select option + * @NVME_LM_QT_SHIFT: Shift amount to set Queue Type (QT) field relative to MOS + * @NVME_LM_QT_MASK: Mask to set QT field relative to MOS + * @NVME_LM_QT_USER_DATA_MIGRATION_QUEUE: User Data Migration Queue type + * @NVME_LM_CREATE_CDQ_PC: Physically Contiguous (PC) + * @NVME_LM_CREATE_CDQ_CNTLID_SHIFT: Shift amount to set CNTLID field relative to MOS + * @NVME_LM_CREATE_CDQ_CNTLID_MASK: Mask to set CNTLID field relative to MOS + * @NVME_LM_DELETE_CDQ_CDQID_SHIFT: Shift amount to set CDQID field for deletion + * @NVME_LM_DELETE_CDQ_CDQID_MASK: Mask to set CDQID field for deletion + * @NVME_LM_CREATE_CDQ_CDQID_SHIFT: Shift amount to get CDQID field from Create response in + * completion dword0 + * @NVME_LM_CREATE_CDQ_CDQID_MASK: Mask to get CNTLID field from Create response in + * completion dword0 + */ +enum nvme_lm_cdq_fields { + NVME_LM_CDQ_MOS_SHIFT = 16, + NVME_LM_CDQ_MOS_MASK = 0xffff, + NVME_LM_CDQ_SEL_SHIFT = 0, + NVME_LM_CDQ_SEL_MASK = 0xff, + NVME_LM_SEL_CREATE_CDQ = 0, + NVME_LM_SEL_DELETE_CDQ = 1, + + /* Controller Data Queue - Create CDQ */ + NVME_LM_QT_SHIFT = 0, + NVME_LM_QT_MASK = 0xff, + NVME_LM_QT_USER_DATA_MIGRATION_QUEUE = 0, + NVME_LM_CREATE_CDQ_PC = 1, + NVME_LM_CREATE_CDQ_CNTLID_SHIFT = 0, + NVME_LM_CREATE_CDQ_CNTLID_MASK = 0xffff, + + /* Controller Data Queue - Delete CDQ */ + NVME_LM_DELETE_CDQ_CDQID_SHIFT = 0, + NVME_LM_DELETE_CDQ_CDQID_MASK = 0xffff, + + /* Controller Data Queue - Create CDQ - Completion Queue Entry Dword 0 */ + NVME_LM_CREATE_CDQ_CDQID_SHIFT = 0, + NVME_LM_CREATE_CDQ_CDQID_MASK = 0xffff, +}; + +/** + * enum nvme_lm_track_send_fields - Track Send command fields + * + * @NVME_LM_TRACK_SEND_MOS_SHIFT: Shift to set Management Operation Specific (MOS) field + * @NVME_LM_TRACK_SEND_MOS_MASK: Mask to set MOS field + * @NVME_LM_TRACK_SEND_SEL_SHIFT: Shift to set Select (SEL) field + * @NVME_LM_TRACK_SEND_SEL_MASK: Mask to set SEL field + * @NVME_LM_SEL_LOG_USER_DATA_CHANGES: Log User Data Changes select option + * @NVME_LM_SEL_TRACK_MEMORY_CHANGES: Track Memory Changes select option + * @NVME_LM_LACT_SHIFT: Shift to set Logging Action (LACT) relative to MOS + * @NVME_LM_LACT_MASK: Mask to set LACT relative to MOS + * @NVME_LM_LACT_STOP_LOGGING: The controller shall stop logging user data changes to + * namespaces attached to the controller associated with the + * User Data Migration Queue specified in the CDQ ID. + * @NVME_LM_LACT_START_LOGGING: The controller shall start logging user data changes to + * namespaces attached to the controller associated with the + * User Data Migration Queue into that User Data Migration + * Queue where those user data changes are caused by the + * controller associated with that User Data Migration Queue + * processing commands. + */ +enum nvme_lm_track_send_fields { + NVME_LM_TRACK_SEND_MOS_SHIFT = 16, + NVME_LM_TRACK_SEND_MOS_MASK = 0xffff, + NVME_LM_TRACK_SEND_SEL_SHIFT = 0, + NVME_LM_TRACK_SEND_SEL_MASK = 0xff, + NVME_LM_SEL_LOG_USER_DATA_CHANGES = 0, + NVME_LM_SEL_TRACK_MEMORY_CHANGES = 1, + + /* Track Send - Log User Data Changes */ + NVME_LM_LACT_SHIFT = 0, + NVME_LM_LACT_MASK = 0xf, + NVME_LM_LACT_STOP_LOGGING = 0, + NVME_LM_LACT_START_LOGGING = 1, +}; + +/** + * enum nvme_lm_migration_send_fields - Migration Send command fields + * + * @NVME_LM_MIGRATION_SEND_MOS_SHIFT: Shift to set Management Operation Specific (MOS) + * field + * @NVME_LM_MIGRATION_SEND_MOS_MASK: Mask to set MOS field + * @NVME_LM_MIGRATION_SEND_SEL_SHIFT: Shift amount to set Select (SEL) field + * @NVME_LM_MIGRATION_SEND_SEL_MASK: Mask to set SEL field + * @NVME_LM_SEL_SUSPEND: Migration Send - Suspend + * @NVME_LM_SEL_RESUME: Migration Send - Resume + * @NVME_LM_SEL_SET_CONTROLLER_STATE: Migration Send - Set Controller State + * @NVME_LM_MIGRATION_SEND_UIDX_SHIFT: Shift to set UUID Index (UIDX) + * @NVME_LM_MIGRATION_SEND_UIDX_MASK: Mask to set UIDX + * @NVME_LM_DUDMQ: Delete User Data Migration Queue + * @NVME_LM_STYPE_SHIFT: Shift amount to set Suspend Type (STYPE) + * @NVME_LM_STYPE_MASK: Mask to set STYPE + * @NVME_LM_STYPE_SUSPEND_NOTIFICATION: Suspend Notification - The specified controller is + * going to be suspended in the future with a + * subsequent Migration Send command + * @NVME_LM_STYPE_SUSPEND: Suspend - Suspend the controller + * @NVME_LM_SUSPEND_CNTLID_SHIFT: Shift amount to set Controller ID (CNTLID) when SEL + * is Suspend + * @NVME_LM_SUSPEND_CNTLID_MASK: Mask to set CNTLID with SEL Suspend + * @NVME_LM_RESUME_CNTLID_SHIFT: Shift amount to set Controller ID (CNTLID) when SEL + * is Resume + * @NVME_LM_RESUME_CNTLID_MASK: Mask to set CNTLID when SEL is Resume + * @NVME_LM_SEQIND_SHIFT: Shift amount to set Sequence Indicator (SEQIND) + * field relative to MOS + * @NVME_LM_SEQIND_MASK: Mask to set SEQIND field relative to MOS + * @NVME_LM_SEQIND_NOT_FIRST_NOT_LAST: This command is not the first or last of a sequence + * of two or more Migration Send commands with this + * management operation used to transfer the controller + * state from host to controller + * @NVME_LM_SEQIND_FIRST: This command is the first of a sequence of two or + * more Migration Send commands + * @NVME_LM_SEQIND_LAST: This command is the last command of a sequence of + * two or more Migration Send commands + * @NVME_LM_SEQIND_ENTIRE: This Migration Send command is the only command and + * contains the entire controller state for this + * management operation + * @NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_SHIFT: Shift amount to set Controller State UUID Index + * (CSUUIDI) + * @NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_MASK: Mask to set CSUUIDI + * @NVME_LM_SET_CONTROLLER_STATE_CSVI_SHIFT: Shift amount to set Controller State Version Index + * (CSVI) + * @NVME_LM_SET_CONTROLLER_STATE_CSVI_MASK: Mask to set CSVI + * @NVME_LM_SET_CONTROLLER_STATE_CNTLID_SHIFT: Shift amount to set Controller ID (CNTLID) when SEL + * is Set Controller State + * @NVME_LM_SET_CONTROLLER_STATE_CNTLID_MASK: Mask to set CNTLID when SEL is Set Controller State + */ +enum nvme_lm_migration_send_fields { + NVME_LM_MIGRATION_SEND_MOS_SHIFT = 16, + NVME_LM_MIGRATION_SEND_MOS_MASK = 0xffff, + NVME_LM_MIGRATION_SEND_SEL_SHIFT = 0, + NVME_LM_MIGRATION_SEND_SEL_MASK = 0xff, + NVME_LM_SEL_SUSPEND = 0, + NVME_LM_SEL_RESUME = 1, + NVME_LM_SEL_SET_CONTROLLER_STATE = 2, + NVME_LM_MIGRATION_SEND_UIDX_SHIFT = 0, + NVME_LM_MIGRATION_SEND_UIDX_MASK = 0x7f, + + /* Migration Send - Suspend */ + NVME_LM_DUDMQ = 1 << 31, + NVME_LM_STYPE_SHIFT = 16, + NVME_LM_STYPE_MASK = 0xff, + NVME_LM_STYPE_SUSPEND_NOTIFICATION = 0, + NVME_LM_STYPE_SUSPEND = 1, + NVME_LM_SUSPEND_CNTLID_SHIFT = 0, + NVME_LM_SUSPEND_CNTLID_MASK = 0Xffff, + + /* Migration Send - Resume */ + NVME_LM_RESUME_CNTLID_SHIFT = 0, + NVME_LM_RESUME_CNTLID_MASK = 0xffff, + + /* Migration Send - Set Controller State */ + NVME_LM_SEQIND_SHIFT = 16, + NVME_LM_SEQIND_MASK = 0xf, + NVME_LM_SEQIND_NOT_FIRST_NOT_LAST = 0, + NVME_LM_SEQIND_FIRST = 1, + NVME_LM_SEQIND_LAST = 2, + NVME_LM_SEQIND_ENTIRE = 3, + NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_SHIFT = 24, + NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_MASK = 0xff, + NVME_LM_SET_CONTROLLER_STATE_CSVI_SHIFT = 16, + NVME_LM_SET_CONTROLLER_STATE_CSVI_MASK = 0xff, + NVME_LM_SET_CONTROLLER_STATE_CNTLID_SHIFT = 0, + NVME_LM_SET_CONTROLLER_STATE_CNTLID_MASK = 0xffff, +}; + +/** + * enum nvme_lm_migration_recv_fields - Migration Receive command fields + * + * @NVME_LM_MIGRATION_RECV_MOS_SHIFT: Shift amount to set Management Specific Operation + * (MOS) field + * @NVME_LM_MIGRATION_RECV_MOS_MASK: Mask to set MOS field + * @NVME_LM_MIGRATION_RECV_SEL_SHIFT: Shift amount to set Select (SEL) field + * @NVME_LM_MIGRATION_RECV_SEL_MASK: Mask to set SEL field + * @NVME_LM_SEL_GET_CONTROLLER_STATE: Get Controller State select option + * @NVME_LM_MIGRATION_RECV_UIDX_SHIFT: Shift to set UUID Index (UIDX) + * @NVME_LM_MIGRATION_RECV_UIDX_MASK: Mask to set UIDX + * @NVME_LM_GET_CONTROLLER_STATE_CSVI_SHIFT: Shift amount to set Controller State Version Index + * (CSVI) relative to MOS + * @NVME_LM_GET_CONTROLLER_STATE_CSVI_MASK: Mask to set CSVI relative to MOS + * @NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_SHIFT: Shift amount to set Controller State UUID Index + * Parameter (CSUIDXP) + * @NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_MASK: Mask to set CSUIDXP + * @NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_SHIFT: Shift amount to set Controller State UUID Index + * (CSUUIDI) + * @NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_MASK: Mask to set CSUUIDI + * @NVME_LM_GET_CONTROLLER_STATE_CNTLID_SHIFT: Shift amount to set Controller ID (CNTLID) + * @NVME_LM_GET_CONTROLLER_STATE_CNTLID_MASK: Mask to set CNTLID + * @NVME_LM_GET_CONTROLLER_STATE_CSUP: Controller Suspended + */ +enum nvme_lm_migration_recv_fields { + NVME_LM_MIGRATION_RECV_MOS_SHIFT = 16, + NVME_LM_MIGRATION_RECV_MOS_MASK = 0xffff, + NVME_LM_MIGRATION_RECV_SEL_SHIFT = 0, + NVME_LM_MIGRATION_RECV_SEL_MASK = 0xff, + NVME_LM_SEL_GET_CONTROLLER_STATE = 0, + NVME_LM_MIGRATION_RECV_UIDX_SHIFT = 0, + NVME_LM_MIGRATION_RECV_UIDX_MASK = 0x7f, + + /* Migration Receive - Get Controller State */ + NVME_LM_GET_CONTROLLER_STATE_CSVI_SHIFT = 0, + NVME_LM_GET_CONTROLLER_STATE_CSVI_MASK = 0xff, + NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_SHIFT = 24, + NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_MASK = 0xff, + NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_SHIFT = 16, + NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_MASK = 0xff, + NVME_LM_GET_CONTROLLER_STATE_CNTLID_SHIFT = 0, + NVME_LM_GET_CONTROLLER_STATE_CNTLID_MASK = 0xffff, + + /* Migration Receive - Get Controller State - Completion Queue Entry Dword 0 */ + NVME_LM_GET_CONTROLLER_STATE_CSUP = 1 << 0, +}; + +/** + * struct nvme_lm_io_submission_queue_data - I/O Submission Queue data structure. Fields related to + * the contents of Create I/O Submission Queue command that created an I/O Submission Queue. + * + * @iosqprp1: I/O Submission PRP Entry 1 (IOSQPRP1) + * @iosqqsize: I/O Submission Queue Size (IOSQQSIZE) + * @iosqqid: I/O Submission Queue Identifier (IOSQQID) + * @iosqcqid: I/O Completion Queue Identifier (IOSQCQID) + * @iosqa: I/O Submission Queue Attributes (IOSQA) + * @iosqhp: I/O Submission Queue Head Pointer (IOSQHP) + * @iosqtp: I/O Submission Queue Tail Pointer (IOSQTP) + * @rsvd20: Reserved + */ +struct nvme_lm_io_submission_queue_data { + __le64 iosqprp1; + __le16 iosqqsize; + __le16 iosqqid; + __le16 iosqcqid; + __le16 iosqa; + __le16 iosqhp; + __le16 iosqtp; + __u8 rsvd20[4]; +}; + +/** + * struct nvme_lm_io_completion_queue_data - I/O Completion Queue data structure. Fields related to + * the contents of Create I/O Completion Queue command that created an I/O Completion Queue. + * + * @iocqprp1: I/O Completion Queue PRP Entry 1 (IOCQPRP1) + * @iocqqsize: I/O Completion Queue Size (IOCQQSIZE) + * @iocqqid: I/O Completion Queue Identifier (IOCQQID) + * @iocqhp: I/O Completion Queue Head Pointer (IOCQHP) + * @iocqtp: I/O Completion Queue Tail Pointer (IOCQTP) + * @iocqa: I/O Completion Queue Attributes (IOCQA) + * @rsvd20: Reserved + */ +struct nvme_lm_io_completion_queue_data { + __le64 iocqprp1; + __le16 iocqqsize; + __le16 iocqqid; + __le16 iocqhp; + __le16 iocqtp; + __le32 iocqa; + __u8 rsvd20[4]; +}; + +/** + * struct nvme_lm_nvme_controller_state_data_header - Controller State data structure header + * + * @ver: The version of this data structure. + * @niosq: The number of I/O Submission Queues contained in this data structure. + * @niocq: The number of I/O Completion Queues contained in this data structure. + * @rsvd6: Reserved + */ +struct nvme_lm_nvme_controller_state_data_header { + __le16 ver; + __le16 niosq; + __le16 niocq; + __le16 rsvd6; +}; + +/** + * struct nvme_lm_nvme_controller_state_data - NVMe Controller State data structure describes the + * state of a NVMe Controller's I/O Submission and I/O Completion queues + * + * @hdr: Header + * @sqs: I/O Submission Queue list + * @cqs: I/O Completion Queue list + */ +struct nvme_lm_nvme_controller_state_data { + struct nvme_lm_nvme_controller_state_data_header hdr; + union { + struct nvme_lm_io_submission_queue_data sqs[0]; + struct nvme_lm_io_completion_queue_data cqs[0]; + }; +}; + +/** + * struct nvme_lm_controller_state_data_header - Controller State data header structure describes + * the contents of the Controller State data + * + * @ver: Version of this data structure + * @csattr: Controller state attributes + * @rsvd3: Reserved + * @nvmecss: NVMe Controller state size in dwords + * @vss: Vendor specific size in dowrds + */ +struct nvme_lm_controller_state_data_header { + __le16 ver; + __u8 csattr; + __u8 rsvd3[13]; + __u8 nvmecss[16]; + __u8 vss[16]; +}; + +/** + * struct nvme_lm_controller_state_data - Controller State data structure contains data on the + * controller's state. + * + * @hdr: Header + * @data: Data + */ +struct nvme_lm_controller_state_data { + struct nvme_lm_controller_state_data_header hdr; + struct nvme_lm_nvme_controller_state_data data; +}; + +/** + * enum nvme_lm_queue_attributes - I/O Submission and I/O Completion Queue Attributes + * + * @NVME_LM_IOSQPC_MASK: Mask to get the Physically Contiguous (PC) bit for this I/O + * submission queue. + * @NVME_LM_IOSQPC_SHIFT: Shift to get the PC bit for this I/O submission queue + * @NVME_LM_IOSQPRIO_MASK: Mask to get the Priority for this I/O submission queue. + * @NVME_LM_IOSQPRIO_SHIFT: Shift to get the Priority for this I/O submission queue. + * @NVME_LM_IOCQPC_MASK: Mask to get the Physicaly Contiguous (PC) bit for this I/O + * completion queue. + * @NVME_LM_IOCQPC_SHIFT: Shift to get the PC bit for this I/O completion queue. + * @NVME_LM_IOCQIEN_MASK: Mask to get the Interrupts Enabled bit for this I/O completion + * queue + * @NVME_LM_IOCQIEN_SHIFT: Shift to get the Interrupts Enabled bit for this I/O completion + * @NVME_LM_S0PT_MASK: Mask to get the value of the Phase Tag bit for Slot 0 of this I/O + * completion queue. + * @NVME_LM_S0PT_SHIFT: Shift to get the value of the Phase Tag bit for Slot 0 of this I/O + * completion queue. + * @NVME_LM_IOCQIV_MASK: Mask to get the Interrupt Vector (IV) for this I/O completion + * queue. + * @NVME_LM_IOCQIV_SHIFT: Shift to get the IV for this I/O completion queue. + */ +enum nvme_lm_queue_attributes { + /* I/O Submission Queue */ + NVME_LM_IOSQPC_MASK = 0x1, + NVME_LM_IOSQPC_SHIFT = 0, + NVME_LM_IOSQPRIO_MASK = 0x3, + NVME_LM_IOSQPRIO_SHIFT = 1, + /* I/O Completion Queue */ + NVME_LM_IOCQPC_MASK = 0x1, + NVME_LM_IOCQPC_SHIFT = 0, + NVME_LM_IOCQIEN_MASK = 0x1, + NVME_LM_IOCQIEN_SHIFT = 1, + NVME_LM_S0PT_MASK = 0x1, + NVME_LM_S0PT_SHIFT = 2, + NVME_LM_IOCQIV_MASK = 0xffff, + NVME_LM_IOCQIV_SHIFT = 16, +}; + +/** + * enum nvme_lm_ctrl_data_queue_fid - Controller Data Queue - Set Feature + * + * @NVME_LM_CTRL_DATA_QUEUE_ETPT_MASK: Mask to set Enable Tail Pointer Trigger (ETPT) + * @NVME_LM_CTRL_DATA_QUEUE_ETPT_SHIFT: Shift to set ETPT + */ +enum nvme_lm_ctrl_data_queue_fid { + NVME_LM_CTRL_DATA_QUEUE_ETPT_MASK = 0x1, + NVME_LM_CTRL_DATA_QUEUE_ETPT_SHIFT = 31, +}; + +/** + * struct nvme_lm_ctrl_data_queue_fid_data - Get Controller Data Queue feature data + * + * @hp: Head Pointer + * @tpt: Tail Pointer Trigger + */ +struct nvme_lm_ctrl_data_queue_fid_data { + __le32 hp; + __le32 tpt; +}; #endif /* _LIBNVME_TYPES_H */ diff --git a/src/nvme/util.c b/src/nvme/util.c index 1af358a..de80d7b 100644 --- a/src/nvme/util.c +++ b/src/nvme/util.c @@ -22,6 +22,7 @@ #include #include +#include #include #include "cleanup.h" @@ -52,6 +53,10 @@ static inline __u8 nvme_generic_status_to_errno(__u16 status) case NVME_SC_PRP_INVALID_OFFSET: case NVME_SC_CMB_INVALID_USE: case NVME_SC_KAT_INVALID: + case NVME_SC_INVALID_KEY_TAG: + case NVME_SC_INCORRECT_KEY: + case NVME_SC_INVALID_VALUE_SIZE: + case NVME_SC_INVALID_KEY_SIZE: return EINVAL; case NVME_SC_CMDID_CONFLICT: return EADDRINUSE; @@ -227,11 +232,20 @@ static const char * const generic_status[] = { [NVME_SC_TRAN_TPORT_ERROR] = "Transient Transport Error: A transient transport error was detected", [NVME_SC_PROHIBITED_BY_CMD_AND_FEAT] = "Command Prohibited by Command and Feature Lockdown: The command was aborted due to command execution being prohibited by the Command and Feature Lockdown", [NVME_SC_ADMIN_CMD_MEDIA_NOT_READY] = "Admin Command Media Not Ready: The Admin command requires access to media and the media is not ready", + [NVME_SC_INVALID_KEY_TAG] = "The command was aborted due to an invalid KEYTAG field value", + [NVME_SC_HOST_DISPERSED_NS_NOT_ENABLED] = "The command is prohibited while the Host Disperesed Namespace Support (HDISNS) field is not set to 1h in the Host Behavior Support feature", + [NVME_SC_HOST_ID_NOT_INITIALIZED] = "Host Identifier Not Initialized", + [NVME_SC_INCORRECT_KEY] = "The command was aborted due to the key associated with the KEYTAG field being incorrect", [NVME_SC_LBA_RANGE] = "LBA Out of Range: The command references an LBA that exceeds the size of the namespace", [NVME_SC_CAP_EXCEEDED] = "Capacity Exceeded: Execution of the command has caused the capacity of the namespace to be exceeded", [NVME_SC_NS_NOT_READY] = "Namespace Not Ready: The namespace is not ready to be accessed", [NVME_SC_RESERVATION_CONFLICT] = "Reservation Conflict: The command was aborted due to a conflict with a reservation held on the accessed namespace", [NVME_SC_FORMAT_IN_PROGRESS] = "Format In Progress: A Format NVM command is in progress on the namespace", + [NVME_SC_INVALID_VALUE_SIZE] = "The value size is not valid", + [NVME_SC_INVALID_KEY_SIZE] = "The KV key size is not valid", + [NVME_SC_KV_KEY_NOT_EXISTS] = "The Store If Key Exists (SIKE) bit is set to '1' in the Store Option field and the KV key does not exists", + [NVME_SC_UNRECOVERED_ERROR] = "There was an unrecovered error when reading from the medium", + [NVME_SC_KEY_EXISTS] = "The Store If No Key Exists (SINKE) bit is set to '1' in the Store Option field and the KV key exists", }; static const char * const cmd_spec_status[] = { diff --git a/src/nvme/util.h b/src/nvme/util.h index 364ca0f..409dd3f 100644 --- a/src/nvme/util.h +++ b/src/nvme/util.h @@ -337,6 +337,16 @@ static inline void nvme_feature_decode_write_atomicity(__u32 value, bool *dn) #define NVME_FEAT_AE_PLA(v) NVME_GET(v, FEAT_AE_PLA) #define NVME_FEAT_AE_LBAS(v) NVME_GET(v, FEAT_AE_LBAS) #define NVME_FEAT_AE_EGA(v) NVME_GET(v, FEAT_AE_EGA) +#define NVME_FEAT_AE_NNSSHDN(v) NVME_GET(v, FEAT_AE_NNSSHDN) +#define NVME_FEAT_AE_TTHRY(v) NVME_GET(v, FEAT_AE_TTHRY) +#define NVME_FEAT_AE_RASSN(v) NVME_GET(v, FEAT_AE_RASSN) +#define NVME_FEAT_AE_RGRP0(v) NVME_GET(v, FEAT_AE_RGRP0) +#define NVME_FEAT_AE_ANSAN(v) NVME_GET(v, FEAT_AE_ANSAN) +#define NVME_FEAT_AE_ZDCN(v) NVME_GET(v, FEAT_AE_ZDCN) +#define NVME_FEAT_AE_PMDRLPCN(v) NVME_GET(v, FEAT_AE_PMDRLPCN) +#define NVME_FEAT_AE_ADLPCN(v) NVME_GET(v, FEAT_AE_ADLPCN) +#define NVME_FEAT_AE_HDLPCN(v) NVME_GET(v, FEAT_AE_HDLPCN) +#define NVME_FEAT_AE_DLPCN(v) NVME_GET(v, FEAT_AE_DLPCN) static inline void nvme_feature_decode_async_event_config(__u32 value, __u8 *smart, bool *nan, bool *fw, bool *telem, @@ -560,8 +570,6 @@ char *kv_keymatch(const char *kv, const char *key); */ char *startswith(const char *s, const char *prefix); -#define min(x, y) ((x) > (y) ? (y) : (x)) - #define __round_mask(val, mult) ((__typeof__(val))((mult)-1)) /** diff --git a/subprojects/json-c.wrap b/subprojects/json-c.wrap index 569f78e..076739d 100644 --- a/subprojects/json-c.wrap +++ b/subprojects/json-c.wrap @@ -1,13 +1,13 @@ [wrap-file] -directory = json-c-0.17 -source_url = https://s3.amazonaws.com/json-c_releases/releases/json-c-0.17.tar.gz -source_filename = json-c-0.17.tar.gz -source_hash = 7550914d58fb63b2c3546f3ccfbe11f1c094147bd31a69dcd23714d7956159e6 -patch_filename = json-c_0.17-2_patch.zip -patch_url = https://wrapdb.mesonbuild.com/v2/json-c_0.17-2/get_patch -patch_hash = c1a9a7e2ea6bed89a59e13a5684be25899a5a510963154c4450c5a492b8f3984 -source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/json-c_0.17-2/json-c-0.17.tar.gz -wrapdb_version = 0.17-2 +directory = json-c-0.18 +source_url = https://s3.amazonaws.com/json-c_releases/releases/json-c-0.18.tar.gz +source_filename = json-c-0.18.tar.gz +source_hash = 876ab046479166b869afc6896d288183bbc0e5843f141200c677b3e8dfb11724 +patch_filename = json-c_0.18-1_patch.zip +patch_url = https://wrapdb.mesonbuild.com/v2/json-c_0.18-1/get_patch +patch_hash = c9d2c0449a9686755445cd18d7cff597f21e418e11a786441de7b8947ff43798 +source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/json-c_0.18-1/json-c-0.18.tar.gz +wrapdb_version = 0.18-1 [provide] json-c = json_c_dep diff --git a/subprojects/openssl.wrap b/subprojects/openssl.wrap index b69462f..873d551 100644 --- a/subprojects/openssl.wrap +++ b/subprojects/openssl.wrap @@ -3,11 +3,11 @@ directory = openssl-3.0.8 source_url = https://www.openssl.org/source/openssl-3.0.8.tar.gz source_filename = openssl-3.0.8.tar.gz source_hash = 6c13d2bf38fdf31eac3ce2a347073673f5d63263398f1f69d0df4a41253e4b3e -patch_filename = openssl_3.0.8-2_patch.zip -patch_url = https://wrapdb.mesonbuild.com/v2/openssl_3.0.8-2/get_patch -patch_hash = e84b5fe469e681e3318184157a0c7c43d4cbacd078bb88f506e31569f8f75072 -source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/openssl_3.0.8-2/openssl-3.0.8.tar.gz -wrapdb_version = 3.0.8-2 +patch_filename = openssl_3.0.8-3_patch.zip +patch_url = https://wrapdb.mesonbuild.com/v2/openssl_3.0.8-3/get_patch +patch_hash = 300da189e106942347d61a4a4295aa2edbcf06184f8d13b4cee0bed9fb936963 +source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/openssl_3.0.8-3/openssl-3.0.8.tar.gz +wrapdb_version = 3.0.8-3 [provide] libcrypto = libcrypto_dep diff --git a/test/ioctl/meson.build b/test/ioctl/meson.build index bbee047..e70f0dc 100644 --- a/test/ioctl/meson.build +++ b/test/ioctl/meson.build @@ -1,7 +1,21 @@ +mock_conf = configuration_data() + +mock_conf.set( + 'HAVE_GLIBC_IOCTL', + cc.compiles( + '''#include + int ioctl(int fd, unsigned long request, ...); + ''', + name: 'ioctl has glibc-style prototype' + ), + description: 'Is ioctl the glibc interface (rather than POSIX)' +) + mock_ioctl = library( 'mock-ioctl', ['mock.c', 'util.c'], -) + dependencies: [dl_dep], + c_args: ['-DHAVE_GLIBC_IOCTL=' + (mock_conf.get('HAVE_GLIBC_IOCTL') ? '1' : '0')]) # Add mock-ioctl to the LD_PRELOAD path so it overrides libc. # Append to LD_PRELOAD so existing libraries, e.g. libasan, are kept. diff --git a/test/ioctl/mock.c b/test/ioctl/mock.c index 1fb3ec1..90a244d 100644 --- a/test/ioctl/mock.c +++ b/test/ioctl/mock.c @@ -7,6 +7,7 @@ #include #include #include +#include #include "../../src/nvme/ioctl.h" #include "util.h" @@ -118,18 +119,20 @@ void end_mock_cmds(void) }) #ifdef HAVE_GLIBC_IOCTL +typedef int (*ioctl_func_t)(int, unsigned long, void *); int ioctl(int fd, unsigned long request, ...) #else +typedef int (*ioctl_func_t)(int, int, void *); int ioctl(int fd, int request, ...) #endif { + ioctl_func_t real_ioctl = NULL; struct mock_cmds *mock_cmds; bool result64; const struct mock_cmd *mock_cmd; va_list args; void *cmd; - check(fd == mock_fd, "got fd %d, expected %d", fd, mock_fd); switch (request) { case NVME_IOCTL_ADMIN_CMD: mock_cmds = &mock_admin_cmds; @@ -148,16 +151,28 @@ int ioctl(int fd, int request, ...) result64 = true; break; default: - fail("unexpected %s %lu", __func__, (unsigned long) request); +#if HAVE_LIBC_LDSYM + real_ioctl = dlsym(RTLD_NEXT, "ioctl"); + if (!real_ioctl) + fail("Error: dlsym failed to find original ioctl\n"); +#else + fail("Error: unhandled ioctl\n"); +#endif } + + va_start(args, request); + cmd = va_arg(args, void *); + va_end(args); + + if (real_ioctl) + return real_ioctl(fd, request, cmd); + + check(fd == mock_fd, "got fd %d, expected %d", fd, mock_fd); check(mock_cmds->remaining_cmds, "unexpected %s command", mock_cmds->name); mock_cmd = mock_cmds->cmds++; mock_cmds->remaining_cmds--; - va_start(args, request); - cmd = va_arg(args, void *); - va_end(args); if (result64) { execute_ioctl((struct nvme_passthru_cmd64 *)cmd, mock_cmd); } else { @@ -173,3 +188,9 @@ int ioctl(int fd, int request, ...) return mock_cmd->err; } + +/* mock io_uring_get_probe, just fail */ +struct io_uring_probe *io_uring_get_probe(void) +{ + return 0; +} diff --git a/test/meson.build b/test/meson.build index 2ab7e31..d3d6456 100644 --- a/test/meson.build +++ b/test/meson.build @@ -23,6 +23,17 @@ if cxx_available dependencies: libnvme_dep, include_directories: [incdir, internal_incdir] ) + + test('cpp-dump', cpp) + + misc = executable( + 'test-misc', + ['misc.cc'], + dependencies: libnvme_dep, + include_directories: [incdir, internal_incdir] + ) + test('cpp-misc', misc) + endif register = executable( diff --git a/test/mi.c b/test/mi.c index 05eee97..6126d87 100644 --- a/test/mi.c +++ b/test/mi.c @@ -566,8 +566,8 @@ static void test_admin_err_nvme_resp(nvme_mi_ep_t ep) | NVME_SC_DNR)); } -/* invalid Admin command transfers */ -static int test_admin_invalid_formats_cb(struct nvme_mi_ep *ep, +/* invalid command transfers */ +static int test_rejected_command_cb(struct nvme_mi_ep *ep, struct nvme_mi_req *req, struct nvme_mi_resp *resp, void *data) @@ -588,7 +588,7 @@ static void test_admin_invalid_formats(nvme_mi_ep_t ep) size_t len; int rc; - test_set_transport_callback(ep, test_admin_invalid_formats_cb, NULL); + test_set_transport_callback(ep, test_rejected_command_cb, NULL); ctrl = nvme_mi_init_ctrl(ep, 1); assert(ctrl); @@ -629,6 +629,44 @@ static void test_admin_invalid_formats(nvme_mi_ep_t ep) assert(rc != 0); } +static void test_mi_invalid_formats(nvme_mi_ep_t ep) +{ + struct { + struct nvme_mi_mi_req_hdr hdr; + uint8_t data[4]; + } req = { 0 }; + struct nvme_mi_mi_resp_hdr resp = { 0 }; + nvme_mi_ctrl_t ctrl; + size_t len; + int rc; + + test_set_transport_callback(ep, test_rejected_command_cb, NULL); + + ctrl = nvme_mi_init_ctrl(ep, 1); + assert(ctrl); + + /* unaligned req size */ + len = 0; + + rc = nvme_mi_mi_xfer(ep, &req.hdr, 1, &resp, &len); + assert(rc != 0); + + /* unaligned resp size */ + len = 1; + rc = nvme_mi_mi_xfer(ep, &req.hdr, 0, &resp, &len); + assert(rc != 0); + + /* resp too large */ + len = 4096 + 4; + rc = nvme_mi_mi_xfer(ep, &req.hdr, 0, &resp, &len); + assert(rc != 0); + + /* req and resp payloads */ + len = 4; + rc = nvme_mi_mi_xfer(ep, &req.hdr, 4, &resp, &len); + assert(rc != 0); +} + /* test: header length too small */ static int test_resp_hdr_small_cb(struct nvme_mi_ep *ep, struct nvme_mi_req *req, @@ -2049,6 +2087,7 @@ struct test { DEFINE_TEST(endpoint_quirk_probe), DEFINE_TEST(admin_dlen_doff_req), DEFINE_TEST(admin_dlen_doff_resp), + DEFINE_TEST(mi_invalid_formats), }; static void run_test(struct test *test, FILE *logfd, nvme_mi_ep_t ep) diff --git a/test/misc.cc b/test/misc.cc new file mode 100644 index 0000000..3613beb --- /dev/null +++ b/test/misc.cc @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: LGPL-2.1-or-later +/** + * This file is part of libnvme. + * Copyright (c) 2025 Daniel Wagner, SUSE LLC + */ + +#include +#include + +static int minmax_test() +{ + /* + * Ensure libnvme doesn't spoil the namespace, e.g. by exposing a + * min/max macro. + */ + return !(std::min(1, 2) == 1 && std::max(1, 2) == 2); +} + +int main(int argc, char *argv[]) +{ + return minmax_test(); +}