summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--doc/conf.py2
-rw-r--r--doc/man/nbft_control.22
-rw-r--r--doc/man/nbft_control_flags.22
-rw-r--r--doc/man/nbft_desc_type.22
-rw-r--r--doc/man/nbft_discovery.22
-rw-r--r--doc/man/nbft_discovery_flags.22
-rw-r--r--doc/man/nbft_header.22
-rw-r--r--doc/man/nbft_heap_obj.22
-rw-r--r--doc/man/nbft_hfi.22
-rw-r--r--doc/man/nbft_hfi_flags.22
-rw-r--r--doc/man/nbft_hfi_info_tcp.22
-rw-r--r--doc/man/nbft_hfi_info_tcp_flags.22
-rw-r--r--doc/man/nbft_host.22
-rw-r--r--doc/man/nbft_host_flags.22
-rw-r--r--doc/man/nbft_info.22
-rw-r--r--doc/man/nbft_info_discovery.22
-rw-r--r--doc/man/nbft_info_hfi.22
-rw-r--r--doc/man/nbft_info_hfi_info_tcp.22
-rw-r--r--doc/man/nbft_info_host.22
-rw-r--r--doc/man/nbft_info_nid_type.22
-rw-r--r--doc/man/nbft_info_primary_admin_host_flag.22
-rw-r--r--doc/man/nbft_info_security.22
-rw-r--r--doc/man/nbft_info_subsystem_ns.22
-rw-r--r--doc/man/nbft_security.22
-rw-r--r--doc/man/nbft_security_flags.22
-rw-r--r--doc/man/nbft_security_secret_type.22
-rw-r--r--doc/man/nbft_ssns.22
-rw-r--r--doc/man/nbft_ssns_ext_info.22
-rw-r--r--doc/man/nbft_ssns_ext_info_flags.22
-rw-r--r--doc/man/nbft_ssns_flags.22
-rw-r--r--doc/man/nbft_ssns_trflags.22
-rw-r--r--doc/man/nbft_trtype.22
-rw-r--r--doc/man/nvme_admin_opcode.22
-rw-r--r--doc/man/nvme_admin_passthru.22
-rw-r--r--doc/man/nvme_admin_passthru64.22
-rw-r--r--doc/man/nvme_ae_info_css_nvm.22
-rw-r--r--doc/man/nvme_ae_info_error.22
-rw-r--r--doc/man/nvme_ae_info_notice.22
-rw-r--r--doc/man/nvme_ae_info_smart.22
-rw-r--r--doc/man/nvme_ae_type.22
-rw-r--r--doc/man/nvme_aggregate_endurance_group_event.22
-rw-r--r--doc/man/nvme_aggregate_predictable_lat_event.22
-rw-r--r--doc/man/nvme_ana_group_desc.22
-rw-r--r--doc/man/nvme_ana_log.22
-rw-r--r--doc/man/nvme_ana_state.22
-rw-r--r--doc/man/nvme_apst_entry.22
-rw-r--r--doc/man/nvme_boot_partition.22
-rw-r--r--doc/man/nvme_capacity_config_desc.22
-rw-r--r--doc/man/nvme_capacity_mgmt.22
-rw-r--r--doc/man/nvme_change_ns_event.22
-rw-r--r--doc/man/nvme_channel_config_desc.22
-rw-r--r--doc/man/nvme_cmb_size.22
-rw-r--r--doc/man/nvme_cmd_effects.22
-rw-r--r--doc/man/nvme_cmd_effects_log.22
-rw-r--r--doc/man/nvme_cmd_format_mset.22
-rw-r--r--doc/man/nvme_cmd_format_pi.22
-rw-r--r--doc/man/nvme_cmd_format_pil.22
-rw-r--r--doc/man/nvme_cmd_format_ses.22
-rw-r--r--doc/man/nvme_cmd_get_log_lid.28
-rw-r--r--doc/man/nvme_cmd_get_log_telemetry_host_lsp.22
-rw-r--r--doc/man/nvme_compare.22
-rw-r--r--doc/man/nvme_connect_err.22
-rw-r--r--doc/man/nvme_constants.22
-rw-r--r--doc/man/nvme_copy.22
-rw-r--r--doc/man/nvme_copy_range.22
-rw-r--r--doc/man/nvme_copy_range_f1.22
-rw-r--r--doc/man/nvme_copy_range_f2.248
-rw-r--r--doc/man/nvme_copy_range_f3.252
-rw-r--r--doc/man/nvme_copy_range_sopt.212
-rw-r--r--doc/man/nvme_create_ctrl.22
-rw-r--r--doc/man/nvme_create_root.22
-rw-r--r--doc/man/nvme_csi.22
-rw-r--r--doc/man/nvme_ctrl_config_match.233
-rw-r--r--doc/man/nvme_ctrl_find.237
-rw-r--r--doc/man/nvme_ctrl_first_ns.22
-rw-r--r--doc/man/nvme_ctrl_first_path.22
-rw-r--r--doc/man/nvme_ctrl_for_each_ns.22
-rw-r--r--doc/man/nvme_ctrl_for_each_ns_safe.22
-rw-r--r--doc/man/nvme_ctrl_for_each_path.22
-rw-r--r--doc/man/nvme_ctrl_for_each_path_safe.22
-rw-r--r--doc/man/nvme_ctrl_get_address.22
-rw-r--r--doc/man/nvme_ctrl_get_config.22
-rw-r--r--doc/man/nvme_ctrl_get_dhchap_host_key.22
-rw-r--r--doc/man/nvme_ctrl_get_dhchap_key.22
-rw-r--r--doc/man/nvme_ctrl_get_fd.29
-rw-r--r--doc/man/nvme_ctrl_get_firmware.22
-rw-r--r--doc/man/nvme_ctrl_get_host_iface.22
-rw-r--r--doc/man/nvme_ctrl_get_host_traddr.22
-rw-r--r--doc/man/nvme_ctrl_get_model.22
-rw-r--r--doc/man/nvme_ctrl_get_name.22
-rw-r--r--doc/man/nvme_ctrl_get_numa_node.22
-rw-r--r--doc/man/nvme_ctrl_get_phy_slot.22
-rw-r--r--doc/man/nvme_ctrl_get_queue_count.22
-rw-r--r--doc/man/nvme_ctrl_get_serial.22
-rw-r--r--doc/man/nvme_ctrl_get_sqsize.22
-rw-r--r--doc/man/nvme_ctrl_get_src_addr.217
-rw-r--r--doc/man/nvme_ctrl_get_state.24
-rw-r--r--doc/man/nvme_ctrl_get_subsysnqn.22
-rw-r--r--doc/man/nvme_ctrl_get_subsystem.22
-rw-r--r--doc/man/nvme_ctrl_get_sysfs_dir.22
-rw-r--r--doc/man/nvme_ctrl_get_traddr.22
-rw-r--r--doc/man/nvme_ctrl_get_transport.22
-rw-r--r--doc/man/nvme_ctrl_get_trsvcid.22
-rw-r--r--doc/man/nvme_ctrl_identify.22
-rw-r--r--doc/man/nvme_ctrl_is_discovered.22
-rw-r--r--doc/man/nvme_ctrl_is_discovery_ctrl.22
-rw-r--r--doc/man/nvme_ctrl_is_persistent.22
-rw-r--r--doc/man/nvme_ctrl_is_unique_discovery_ctrl.22
-rw-r--r--doc/man/nvme_ctrl_list.22
-rw-r--r--doc/man/nvme_ctrl_metadata_type.22
-rw-r--r--doc/man/nvme_ctrl_next_ns.22
-rw-r--r--doc/man/nvme_ctrl_next_path.22
-rw-r--r--doc/man/nvme_ctrl_release_fd.29
-rw-r--r--doc/man/nvme_ctrl_reset.22
-rw-r--r--doc/man/nvme_ctrl_set_dhchap_host_key.22
-rw-r--r--doc/man/nvme_ctrl_set_dhchap_key.22
-rw-r--r--doc/man/nvme_ctrl_set_discovered.22
-rw-r--r--doc/man/nvme_ctrl_set_discovery_ctrl.22
-rw-r--r--doc/man/nvme_ctrl_set_persistent.22
-rw-r--r--doc/man/nvme_ctrl_set_unique_discovery_ctrl.22
-rw-r--r--doc/man/nvme_ctrls_filter.22
-rw-r--r--doc/man/nvme_data_tfr.22
-rw-r--r--doc/man/nvme_default_host.22
-rw-r--r--doc/man/nvme_describe_key_serial.22
-rw-r--r--doc/man/nvme_dev_self_test.22
-rw-r--r--doc/man/nvme_directive_dtype.22
-rw-r--r--doc/man/nvme_directive_receive_doper.22
-rw-r--r--doc/man/nvme_directive_recv.22
-rw-r--r--doc/man/nvme_directive_recv_identify_parameters.22
-rw-r--r--doc/man/nvme_directive_recv_stream_allocate.22
-rw-r--r--doc/man/nvme_directive_recv_stream_parameters.22
-rw-r--r--doc/man/nvme_directive_recv_stream_status.22
-rw-r--r--doc/man/nvme_directive_send.22
-rw-r--r--doc/man/nvme_directive_send_doper.22
-rw-r--r--doc/man/nvme_directive_send_id_endir.22
-rw-r--r--doc/man/nvme_directive_send_identify_endir.22
-rw-r--r--doc/man/nvme_directive_send_stream_release_identifier.22
-rw-r--r--doc/man/nvme_directive_send_stream_release_resource.22
-rw-r--r--doc/man/nvme_directive_types.22
-rw-r--r--doc/man/nvme_disconnect_ctrl.22
-rw-r--r--doc/man/nvme_dsm.22
-rw-r--r--doc/man/nvme_dsm_attributes.22
-rw-r--r--doc/man/nvme_dsm_range.22
-rw-r--r--doc/man/nvme_dst_stc.22
-rw-r--r--doc/man/nvme_dump_config.22
-rw-r--r--doc/man/nvme_dump_tree.22
-rw-r--r--doc/man/nvme_eg_critical_warning_flags.22
-rw-r--r--doc/man/nvme_eg_event_aggregate_log.22
-rw-r--r--doc/man/nvme_end_grp_chan_desc.22
-rw-r--r--doc/man/nvme_end_grp_config_desc.22
-rw-r--r--doc/man/nvme_endurance_group_log.230
-rw-r--r--doc/man/nvme_eom_lane_desc.263
-rw-r--r--doc/man/nvme_eom_optional_data.218
-rw-r--r--doc/man/nvme_errno_to_string.22
-rw-r--r--doc/man/nvme_error_log_page.22
-rw-r--r--doc/man/nvme_fabrics_config.22
-rw-r--r--doc/man/nvme_fctype.22
-rw-r--r--doc/man/nvme_fdp_config_desc.22
-rw-r--r--doc/man/nvme_fdp_config_fdpa.22
-rw-r--r--doc/man/nvme_fdp_config_log.22
-rw-r--r--doc/man/nvme_fdp_event.22
-rw-r--r--doc/man/nvme_fdp_event_flags.22
-rw-r--r--doc/man/nvme_fdp_event_realloc.22
-rw-r--r--doc/man/nvme_fdp_event_realloc_flags.22
-rw-r--r--doc/man/nvme_fdp_event_type.22
-rw-r--r--doc/man/nvme_fdp_events_log.22
-rw-r--r--doc/man/nvme_fdp_reclaim_unit_handle_status.22
-rw-r--r--doc/man/nvme_fdp_reclaim_unit_handle_update.22
-rw-r--r--doc/man/nvme_fdp_ruh_desc.22
-rw-r--r--doc/man/nvme_fdp_ruh_status.22
-rw-r--r--doc/man/nvme_fdp_ruh_status_desc.22
-rw-r--r--doc/man/nvme_fdp_ruh_type.22
-rw-r--r--doc/man/nvme_fdp_ruha.22
-rw-r--r--doc/man/nvme_fdp_ruhu_desc.22
-rw-r--r--doc/man/nvme_fdp_ruhu_log.22
-rw-r--r--doc/man/nvme_fdp_stats_log.22
-rw-r--r--doc/man/nvme_fdp_supported_event_attributes.22
-rw-r--r--doc/man/nvme_fdp_supported_event_desc.22
-rw-r--r--doc/man/nvme_feat.22
-rw-r--r--doc/man/nvme_feat_auto_pst.22
-rw-r--r--doc/man/nvme_feat_fdp_events_cdw11.22
-rw-r--r--doc/man/nvme_feat_host_behavior.222
-rw-r--r--doc/man/nvme_feat_nswpcfg_state.22
-rw-r--r--doc/man/nvme_feat_plm_window_select.22
-rw-r--r--doc/man/nvme_feat_resv_notify_flags.22
-rw-r--r--doc/man/nvme_feat_tmpthresh_thsel.22
-rw-r--r--doc/man/nvme_features_async_event_config_flags.22
-rw-r--r--doc/man/nvme_features_id.22
-rw-r--r--doc/man/nvme_fid_supported_effects.22
-rw-r--r--doc/man/nvme_fid_supported_effects_log.22
-rw-r--r--doc/man/nvme_firmware_slot.22
-rw-r--r--doc/man/nvme_first_host.22
-rw-r--r--doc/man/nvme_first_subsystem.22
-rw-r--r--doc/man/nvme_flush.22
-rw-r--r--doc/man/nvme_for_each_host.22
-rw-r--r--doc/man/nvme_for_each_host_safe.22
-rw-r--r--doc/man/nvme_for_each_subsystem.22
-rw-r--r--doc/man/nvme_for_each_subsystem_safe.22
-rw-r--r--doc/man/nvme_format_nvm.22
-rw-r--r--doc/man/nvme_format_nvm_compln_event.22
-rw-r--r--doc/man/nvme_format_nvm_start_event.22
-rw-r--r--doc/man/nvme_free_ctrl.22
-rw-r--r--doc/man/nvme_free_host.22
-rw-r--r--doc/man/nvme_free_ns.22
-rw-r--r--doc/man/nvme_free_subsystem.22
-rw-r--r--doc/man/nvme_free_tree.22
-rw-r--r--doc/man/nvme_fw_commit.22
-rw-r--r--doc/man/nvme_fw_commit_ca.22
-rw-r--r--doc/man/nvme_fw_commit_event.22
-rw-r--r--doc/man/nvme_fw_download.22
-rw-r--r--doc/man/nvme_fw_download_seq.22
-rw-r--r--doc/man/nvme_gen_dhchap_key.22
-rw-r--r--doc/man/nvme_generate_tls_key_identity.230
-rw-r--r--doc/man/nvme_get_ana_log_len.22
-rw-r--r--doc/man/nvme_get_attr.22
-rw-r--r--doc/man/nvme_get_ctrl_attr.22
-rw-r--r--doc/man/nvme_get_ctrl_telemetry.22
-rw-r--r--doc/man/nvme_get_directive_receive_length.22
-rw-r--r--doc/man/nvme_get_discovery_args.22
-rw-r--r--doc/man/nvme_get_feature_length.22
-rw-r--r--doc/man/nvme_get_feature_length2.22
-rw-r--r--doc/man/nvme_get_features.22
-rw-r--r--doc/man/nvme_get_features_arbitration.22
-rw-r--r--doc/man/nvme_get_features_async_event.22
-rw-r--r--doc/man/nvme_get_features_auto_pst.22
-rw-r--r--doc/man/nvme_get_features_data.22
-rw-r--r--doc/man/nvme_get_features_endurance_event_cfg.22
-rw-r--r--doc/man/nvme_get_features_err_recovery.26
-rw-r--r--doc/man/nvme_get_features_err_recovery2.221
-rw-r--r--doc/man/nvme_get_features_hctm.22
-rw-r--r--doc/man/nvme_get_features_host_behavior.22
-rw-r--r--doc/man/nvme_get_features_host_id.22
-rw-r--r--doc/man/nvme_get_features_host_mem_buf.26
-rw-r--r--doc/man/nvme_get_features_host_mem_buf2.221
-rw-r--r--doc/man/nvme_get_features_iocs_profile.22
-rw-r--r--doc/man/nvme_get_features_irq_coalesce.22
-rw-r--r--doc/man/nvme_get_features_irq_config.22
-rw-r--r--doc/man/nvme_get_features_kato.22
-rw-r--r--doc/man/nvme_get_features_lba_range.26
-rw-r--r--doc/man/nvme_get_features_lba_range2.224
-rw-r--r--doc/man/nvme_get_features_lba_sts_interval.22
-rw-r--r--doc/man/nvme_get_features_nopsc.22
-rw-r--r--doc/man/nvme_get_features_num_queues.22
-rw-r--r--doc/man/nvme_get_features_plm_config.22
-rw-r--r--doc/man/nvme_get_features_plm_window.22
-rw-r--r--doc/man/nvme_get_features_power_mgmt.22
-rw-r--r--doc/man/nvme_get_features_resv_mask.26
-rw-r--r--doc/man/nvme_get_features_resv_mask2.221
-rw-r--r--doc/man/nvme_get_features_resv_persist.26
-rw-r--r--doc/man/nvme_get_features_resv_persist2.221
-rw-r--r--doc/man/nvme_get_features_rrl.22
-rw-r--r--doc/man/nvme_get_features_sanitize.22
-rw-r--r--doc/man/nvme_get_features_sel.22
-rw-r--r--doc/man/nvme_get_features_simple.22
-rw-r--r--doc/man/nvme_get_features_sw_progress.22
-rw-r--r--doc/man/nvme_get_features_temp_thresh.22
-rw-r--r--doc/man/nvme_get_features_timestamp.22
-rw-r--r--doc/man/nvme_get_features_volatile_wc.22
-rw-r--r--doc/man/nvme_get_features_write_atomic.22
-rw-r--r--doc/man/nvme_get_features_write_protect.22
-rw-r--r--doc/man/nvme_get_host_telemetry.22
-rw-r--r--doc/man/nvme_get_lba_status.22
-rw-r--r--doc/man/nvme_get_lba_status_log.22
-rw-r--r--doc/man/nvme_get_log.22
-rw-r--r--doc/man/nvme_get_log_ana.22
-rw-r--r--doc/man/nvme_get_log_ana_groups.22
-rw-r--r--doc/man/nvme_get_log_boot_partition.22
-rw-r--r--doc/man/nvme_get_log_changed_ns_list.22
-rw-r--r--doc/man/nvme_get_log_cmd_effects.22
-rw-r--r--doc/man/nvme_get_log_create_telemetry_host.22
-rw-r--r--doc/man/nvme_get_log_device_self_test.22
-rw-r--r--doc/man/nvme_get_log_discovery.22
-rw-r--r--doc/man/nvme_get_log_endurance_group.22
-rw-r--r--doc/man/nvme_get_log_endurance_grp_evt.22
-rw-r--r--doc/man/nvme_get_log_error.22
-rw-r--r--doc/man/nvme_get_log_fdp_configurations.22
-rw-r--r--doc/man/nvme_get_log_fdp_events.22
-rw-r--r--doc/man/nvme_get_log_fdp_stats.22
-rw-r--r--doc/man/nvme_get_log_fid_supported_effects.22
-rw-r--r--doc/man/nvme_get_log_fw_slot.22
-rw-r--r--doc/man/nvme_get_log_lba_status.22
-rw-r--r--doc/man/nvme_get_log_media_unit_stat.22
-rw-r--r--doc/man/nvme_get_log_mi_cmd_supported_effects.22
-rw-r--r--doc/man/nvme_get_log_page.22
-rw-r--r--doc/man/nvme_get_log_persistent_event.22
-rw-r--r--doc/man/nvme_get_log_phy_rx_eom.225
-rw-r--r--doc/man/nvme_get_log_predictable_lat_event.22
-rw-r--r--doc/man/nvme_get_log_predictable_lat_nvmset.22
-rw-r--r--doc/man/nvme_get_log_reclaim_unit_handle_usage.22
-rw-r--r--doc/man/nvme_get_log_reservation.22
-rw-r--r--doc/man/nvme_get_log_sanitize.22
-rw-r--r--doc/man/nvme_get_log_smart.22
-rw-r--r--doc/man/nvme_get_log_support_cap_config_list.22
-rw-r--r--doc/man/nvme_get_log_supported_log_pages.22
-rw-r--r--doc/man/nvme_get_log_telemetry_ctrl.22
-rw-r--r--doc/man/nvme_get_log_telemetry_host.22
-rw-r--r--doc/man/nvme_get_log_zns_changed_zones.22
-rw-r--r--doc/man/nvme_get_logical_block_size.22
-rw-r--r--doc/man/nvme_get_new_host_telemetry.22
-rw-r--r--doc/man/nvme_get_ns_attr.22
-rw-r--r--doc/man/nvme_get_nsid.22
-rw-r--r--doc/man/nvme_get_path_attr.22
-rw-r--r--doc/man/nvme_get_property.22
-rw-r--r--doc/man/nvme_get_subsys_attr.22
-rw-r--r--doc/man/nvme_get_telemetry_log.236
-rw-r--r--doc/man/nvme_get_telemetry_max.218
-rw-r--r--doc/man/nvme_hmac_alg.22
-rw-r--r--doc/man/nvme_host_behavior_support.22
-rw-r--r--doc/man/nvme_host_get_dhchap_key.22
-rw-r--r--doc/man/nvme_host_get_hostid.22
-rw-r--r--doc/man/nvme_host_get_hostnqn.22
-rw-r--r--doc/man/nvme_host_get_hostsymname.22
-rw-r--r--doc/man/nvme_host_get_root.22
-rw-r--r--doc/man/nvme_host_is_pdc_enabled.22
-rw-r--r--doc/man/nvme_host_mem_buf_attrs.22
-rw-r--r--doc/man/nvme_host_metadata.22
-rw-r--r--doc/man/nvme_host_release_fds.213
-rw-r--r--doc/man/nvme_host_set_dhchap_key.22
-rw-r--r--doc/man/nvme_host_set_hostsymname.22
-rw-r--r--doc/man/nvme_host_set_pdc_enabled.22
-rw-r--r--doc/man/nvme_id_ctrl.212
-rw-r--r--doc/man/nvme_id_ctrl_anacap.22
-rw-r--r--doc/man/nvme_id_ctrl_apsta.22
-rw-r--r--doc/man/nvme_id_ctrl_avscc.22
-rw-r--r--doc/man/nvme_id_ctrl_cmic.22
-rw-r--r--doc/man/nvme_id_ctrl_cntrltype.22
-rw-r--r--doc/man/nvme_id_ctrl_cqes.22
-rw-r--r--doc/man/nvme_id_ctrl_ctratt.22
-rw-r--r--doc/man/nvme_id_ctrl_dctype.22
-rw-r--r--doc/man/nvme_id_ctrl_dsto.22
-rw-r--r--doc/man/nvme_id_ctrl_fcatt.22
-rw-r--r--doc/man/nvme_id_ctrl_fna.22
-rw-r--r--doc/man/nvme_id_ctrl_frmw.22
-rw-r--r--doc/man/nvme_id_ctrl_fuses.22
-rw-r--r--doc/man/nvme_id_ctrl_hctm.22
-rw-r--r--doc/man/nvme_id_ctrl_lpa.22
-rw-r--r--doc/man/nvme_id_ctrl_mec.22
-rw-r--r--doc/man/nvme_id_ctrl_nvm.22
-rw-r--r--doc/man/nvme_id_ctrl_nvmsr.22
-rw-r--r--doc/man/nvme_id_ctrl_nvscc.22
-rw-r--r--doc/man/nvme_id_ctrl_nwpc.22
-rw-r--r--doc/man/nvme_id_ctrl_oacs.22
-rw-r--r--doc/man/nvme_id_ctrl_oaes.22
-rw-r--r--doc/man/nvme_id_ctrl_ofcs.22
-rw-r--r--doc/man/nvme_id_ctrl_oncs.220
-rw-r--r--doc/man/nvme_id_ctrl_rpmbs.22
-rw-r--r--doc/man/nvme_id_ctrl_sanicap.22
-rw-r--r--doc/man/nvme_id_ctrl_sgls.22
-rw-r--r--doc/man/nvme_id_ctrl_sqes.22
-rw-r--r--doc/man/nvme_id_ctrl_vwc.22
-rw-r--r--doc/man/nvme_id_ctrl_vwci.22
-rw-r--r--doc/man/nvme_id_directives.22
-rw-r--r--doc/man/nvme_id_domain_attr.22
-rw-r--r--doc/man/nvme_id_domain_list.22
-rw-r--r--doc/man/nvme_id_endurance_group_list.22
-rw-r--r--doc/man/nvme_id_independent_id_ns.22
-rw-r--r--doc/man/nvme_id_iocs.22
-rw-r--r--doc/man/nvme_id_ns.28
-rw-r--r--doc/man/nvme_id_ns_attr.22
-rw-r--r--doc/man/nvme_id_ns_dlfeat.22
-rw-r--r--doc/man/nvme_id_ns_dpc.22
-rw-r--r--doc/man/nvme_id_ns_dps.22
-rw-r--r--doc/man/nvme_id_ns_flbas.22
-rw-r--r--doc/man/nvme_id_ns_granularity_desc.22
-rw-r--r--doc/man/nvme_id_ns_granularity_list.22
-rw-r--r--doc/man/nvme_id_ns_mc.22
-rw-r--r--doc/man/nvme_id_ns_nmic.22
-rw-r--r--doc/man/nvme_id_ns_rescap.22
-rw-r--r--doc/man/nvme_id_nsfeat.22
-rw-r--r--doc/man/nvme_id_nvmset_list.22
-rw-r--r--doc/man/nvme_id_psd.22
-rw-r--r--doc/man/nvme_id_uuid.22
-rw-r--r--doc/man/nvme_id_uuid_list.22
-rw-r--r--doc/man/nvme_id_uuid_list_entry.22
-rw-r--r--doc/man/nvme_identify.22
-rw-r--r--doc/man/nvme_identify_active_ns_list.22
-rw-r--r--doc/man/nvme_identify_active_ns_list_csi.22
-rw-r--r--doc/man/nvme_identify_allocated_ns.22
-rw-r--r--doc/man/nvme_identify_allocated_ns_list.22
-rw-r--r--doc/man/nvme_identify_allocated_ns_list_csi.22
-rw-r--r--doc/man/nvme_identify_cns.22
-rw-r--r--doc/man/nvme_identify_ctrl.22
-rw-r--r--doc/man/nvme_identify_ctrl_csi.22
-rw-r--r--doc/man/nvme_identify_ctrl_list.22
-rw-r--r--doc/man/nvme_identify_domain_list.22
-rw-r--r--doc/man/nvme_identify_endurance_group_list.22
-rw-r--r--doc/man/nvme_identify_independent_identify_ns.22
-rw-r--r--doc/man/nvme_identify_iocs.22
-rw-r--r--doc/man/nvme_identify_iocs_ns_csi_user_data_format.22
-rw-r--r--doc/man/nvme_identify_ns.22
-rw-r--r--doc/man/nvme_identify_ns_csi.22
-rw-r--r--doc/man/nvme_identify_ns_csi_user_data_format.22
-rw-r--r--doc/man/nvme_identify_ns_descs.22
-rw-r--r--doc/man/nvme_identify_ns_granularity.22
-rw-r--r--doc/man/nvme_identify_nsid_ctrl_list.22
-rw-r--r--doc/man/nvme_identify_nvmset_list.22
-rw-r--r--doc/man/nvme_identify_primary_ctrl.22
-rw-r--r--doc/man/nvme_identify_secondary_ctrl_list.25
-rw-r--r--doc/man/nvme_identify_uuid.22
-rw-r--r--doc/man/nvme_init_copy_range.22
-rw-r--r--doc/man/nvme_init_copy_range_f1.22
-rw-r--r--doc/man/nvme_init_copy_range_f2.233
-rw-r--r--doc/man/nvme_init_copy_range_f3.233
-rw-r--r--doc/man/nvme_init_ctrl.22
-rw-r--r--doc/man/nvme_init_ctrl_list.22
-rw-r--r--doc/man/nvme_init_dsm_range.22
-rw-r--r--doc/man/nvme_init_logging.22
-rw-r--r--doc/man/nvme_insert_tls_key.22
-rw-r--r--doc/man/nvme_insert_tls_key_versioned.237
-rw-r--r--doc/man/nvme_io.22
-rw-r--r--doc/man/nvme_io_control_flags.22
-rw-r--r--doc/man/nvme_io_dsm_flags.22
-rw-r--r--doc/man/nvme_io_mgmt_recv.22
-rw-r--r--doc/man/nvme_io_mgmt_recv_mo.22
-rw-r--r--doc/man/nvme_io_mgmt_send.22
-rw-r--r--doc/man/nvme_io_mgmt_send_mo.22
-rw-r--r--doc/man/nvme_io_opcode.22
-rw-r--r--doc/man/nvme_io_passthru.22
-rw-r--r--doc/man/nvme_io_passthru64.22
-rw-r--r--doc/man/nvme_is_64bit_reg.22
-rw-r--r--doc/man/nvme_lba_range_type.22
-rw-r--r--doc/man/nvme_lba_range_type_entry.22
-rw-r--r--doc/man/nvme_lba_rd.22
-rw-r--r--doc/man/nvme_lba_status.22
-rw-r--r--doc/man/nvme_lba_status_atype.22
-rw-r--r--doc/man/nvme_lba_status_desc.22
-rw-r--r--doc/man/nvme_lba_status_log.22
-rw-r--r--doc/man/nvme_lbaf.22
-rw-r--r--doc/man/nvme_lbaf_rp.22
-rw-r--r--doc/man/nvme_lbart.22
-rw-r--r--doc/man/nvme_lbas_ns_element.22
-rw-r--r--doc/man/nvme_lockdown.22
-rw-r--r--doc/man/nvme_log_ana_lsp.22
-rw-r--r--doc/man/nvme_log_phy_rx_eom_action.224
-rw-r--r--doc/man/nvme_log_phy_rx_eom_quality.224
-rw-r--r--doc/man/nvme_lookup_ctrl.22
-rw-r--r--doc/man/nvme_lookup_host.22
-rw-r--r--doc/man/nvme_lookup_key.22
-rw-r--r--doc/man/nvme_lookup_keyring.22
-rw-r--r--doc/man/nvme_lookup_subsystem.22
-rw-r--r--doc/man/nvme_media_unit_config_desc.22
-rw-r--r--doc/man/nvme_media_unit_stat_desc.22
-rw-r--r--doc/man/nvme_media_unit_stat_log.22
-rw-r--r--doc/man/nvme_metadata_element_desc.22
-rw-r--r--doc/man/nvme_mi_admin_admin_passthru.22
-rw-r--r--doc/man/nvme_mi_admin_format_nvm.22
-rw-r--r--doc/man/nvme_mi_admin_fw_commit.22
-rw-r--r--doc/man/nvme_mi_admin_fw_download.22
-rw-r--r--doc/man/nvme_mi_admin_get_features_data.22
-rw-r--r--doc/man/nvme_mi_admin_get_log.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_ana.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_ana_groups.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_boot_partition.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_changed_ns_list.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_cmd_effects.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_create_telemetry_host.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_device_self_test.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_discovery.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_endurance_group.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_endurance_grp_evt.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_error.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_fid_supported_effects.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_fw_slot.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_lba_status.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_media_unit_stat.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_mi_cmd_supported_effects.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_page.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_persistent_event.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_phy_rx_eom.225
-rw-r--r--doc/man/nvme_mi_admin_get_log_predictable_lat_event.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_predictable_lat_nvmset.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_reservation.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_sanitize.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_simple.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_smart.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_support_cap_config_list.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_supported_log_pages.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_telemetry_ctrl.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_telemetry_host.22
-rw-r--r--doc/man/nvme_mi_admin_get_log_zns_changed_zones.22
-rw-r--r--doc/man/nvme_mi_admin_get_nsid_log.22
-rw-r--r--doc/man/nvme_mi_admin_identify.22
-rw-r--r--doc/man/nvme_mi_admin_identify_active_ns_list.22
-rw-r--r--doc/man/nvme_mi_admin_identify_allocated_ns.22
-rw-r--r--doc/man/nvme_mi_admin_identify_allocated_ns_list.22
-rw-r--r--doc/man/nvme_mi_admin_identify_cns_nsid.22
-rw-r--r--doc/man/nvme_mi_admin_identify_ctrl.22
-rw-r--r--doc/man/nvme_mi_admin_identify_ctrl_list.22
-rw-r--r--doc/man/nvme_mi_admin_identify_ns.22
-rw-r--r--doc/man/nvme_mi_admin_identify_ns_descs.22
-rw-r--r--doc/man/nvme_mi_admin_identify_nsid_ctrl_list.22
-rw-r--r--doc/man/nvme_mi_admin_identify_partial.22
-rw-r--r--doc/man/nvme_mi_admin_identify_primary_ctrl.22
-rw-r--r--doc/man/nvme_mi_admin_identify_secondary_ctrl_list.25
-rw-r--r--doc/man/nvme_mi_admin_ns_attach.22
-rw-r--r--doc/man/nvme_mi_admin_ns_attach_ctrls.22
-rw-r--r--doc/man/nvme_mi_admin_ns_detach_ctrls.22
-rw-r--r--doc/man/nvme_mi_admin_req_hdr.22
-rw-r--r--doc/man/nvme_mi_admin_resp_hdr.22
-rw-r--r--doc/man/nvme_mi_admin_sanitize_nvm.22
-rw-r--r--doc/man/nvme_mi_admin_security_recv.22
-rw-r--r--doc/man/nvme_mi_admin_security_send.22
-rw-r--r--doc/man/nvme_mi_admin_xfer.22
-rw-r--r--doc/man/nvme_mi_ccs.22
-rw-r--r--doc/man/nvme_mi_close.22
-rw-r--r--doc/man/nvme_mi_close_ctrl.22
-rw-r--r--doc/man/nvme_mi_cmd_supported_effects.22
-rw-r--r--doc/man/nvme_mi_cmd_supported_effects_log.22
-rw-r--r--doc/man/nvme_mi_config_id.22
-rw-r--r--doc/man/nvme_mi_config_smbus_freq.22
-rw-r--r--doc/man/nvme_mi_create_root.22
-rw-r--r--doc/man/nvme_mi_csts.22
-rw-r--r--doc/man/nvme_mi_ctrl_health_status.22
-rw-r--r--doc/man/nvme_mi_ctrl_id.22
-rw-r--r--doc/man/nvme_mi_cwarn.22
-rw-r--r--doc/man/nvme_mi_dtyp.22
-rw-r--r--doc/man/nvme_mi_elem.22
-rw-r--r--doc/man/nvme_mi_free_root.22
-rw-r--r--doc/man/nvme_mi_init_ctrl.22
-rw-r--r--doc/man/nvme_mi_message_type.22
-rw-r--r--doc/man/nvme_mi_mi_opcode.22
-rw-r--r--doc/man/nvme_mi_mi_read_mi_data_ctrl.22
-rw-r--r--doc/man/nvme_mi_mi_read_mi_data_ctrl_list.22
-rw-r--r--doc/man/nvme_mi_mi_read_mi_data_port.22
-rw-r--r--doc/man/nvme_mi_mi_read_mi_data_subsys.22
-rw-r--r--doc/man/nvme_mi_mi_req_hdr.22
-rw-r--r--doc/man/nvme_mi_mi_resp_hdr.22
-rw-r--r--doc/man/nvme_mi_mi_subsystem_health_status_poll.22
-rw-r--r--doc/man/nvme_mi_msg_hdr.22
-rw-r--r--doc/man/nvme_mi_msg_resp.22
-rw-r--r--doc/man/nvme_mi_nvm_ss_health_status.22
-rw-r--r--doc/man/nvme_mi_open_mctp.22
-rw-r--r--doc/man/nvme_mi_osc.22
-rw-r--r--doc/man/nvme_mi_port_pcie.22
-rw-r--r--doc/man/nvme_mi_port_smb.22
-rw-r--r--doc/man/nvme_mi_read_ctrl_info.22
-rw-r--r--doc/man/nvme_mi_read_nvm_ss_info.22
-rw-r--r--doc/man/nvme_mi_read_port_info.22
-rw-r--r--doc/man/nvme_mi_read_sc_list.22
-rw-r--r--doc/man/nvme_mi_resp_status.22
-rw-r--r--doc/man/nvme_mi_set_probe_enabled.22
-rw-r--r--doc/man/nvme_mi_status_to_string.22
-rw-r--r--doc/man/nvme_mi_vpd_hdr.22
-rw-r--r--doc/man/nvme_mi_vpd_mr_common.22
-rw-r--r--doc/man/nvme_mi_vpd_mra.22
-rw-r--r--doc/man/nvme_mi_vpd_ppmra.22
-rw-r--r--doc/man/nvme_mi_vpd_telem.22
-rw-r--r--doc/man/nvme_mi_vpd_tra.22
-rw-r--r--doc/man/nvme_namespace_attach_ctrls.22
-rw-r--r--doc/man/nvme_namespace_detach_ctrls.22
-rw-r--r--doc/man/nvme_namespace_filter.22
-rw-r--r--doc/man/nvme_namespace_first_path.22
-rw-r--r--doc/man/nvme_namespace_for_each_path.22
-rw-r--r--doc/man/nvme_namespace_for_each_path_safe.22
-rw-r--r--doc/man/nvme_namespace_next_path.22
-rw-r--r--doc/man/nvme_nbft_free.22
-rw-r--r--doc/man/nvme_nbft_read.22
-rw-r--r--doc/man/nvme_nd_ns_fpi.22
-rw-r--r--doc/man/nvme_next_host.22
-rw-r--r--doc/man/nvme_next_subsystem.22
-rw-r--r--doc/man/nvme_ns_attach.22
-rw-r--r--doc/man/nvme_ns_attach_ctrls.22
-rw-r--r--doc/man/nvme_ns_attach_sel.22
-rw-r--r--doc/man/nvme_ns_compare.22
-rw-r--r--doc/man/nvme_ns_detach_ctrls.22
-rw-r--r--doc/man/nvme_ns_flush.22
-rw-r--r--doc/man/nvme_ns_get_csi.22
-rw-r--r--doc/man/nvme_ns_get_ctrl.22
-rw-r--r--doc/man/nvme_ns_get_eui64.22
-rw-r--r--doc/man/nvme_ns_get_fd.29
-rw-r--r--doc/man/nvme_ns_get_firmware.22
-rw-r--r--doc/man/nvme_ns_get_generic_name.22
-rw-r--r--doc/man/nvme_ns_get_lba_count.22
-rw-r--r--doc/man/nvme_ns_get_lba_size.22
-rw-r--r--doc/man/nvme_ns_get_lba_util.22
-rw-r--r--doc/man/nvme_ns_get_meta_size.22
-rw-r--r--doc/man/nvme_ns_get_model.22
-rw-r--r--doc/man/nvme_ns_get_name.22
-rw-r--r--doc/man/nvme_ns_get_nguid.22
-rw-r--r--doc/man/nvme_ns_get_nsid.22
-rw-r--r--doc/man/nvme_ns_get_serial.22
-rw-r--r--doc/man/nvme_ns_get_subsystem.22
-rw-r--r--doc/man/nvme_ns_get_sysfs_dir.22
-rw-r--r--doc/man/nvme_ns_get_uuid.22
-rw-r--r--doc/man/nvme_ns_id_desc.22
-rw-r--r--doc/man/nvme_ns_id_desc_nidt.22
-rw-r--r--doc/man/nvme_ns_identify.22
-rw-r--r--doc/man/nvme_ns_identify_descs.22
-rw-r--r--doc/man/nvme_ns_list.22
-rw-r--r--doc/man/nvme_ns_metadata_type.22
-rw-r--r--doc/man/nvme_ns_mgmt.22
-rw-r--r--doc/man/nvme_ns_mgmt_create.22
-rw-r--r--doc/man/nvme_ns_mgmt_delete.22
-rw-r--r--doc/man/nvme_ns_mgmt_host_sw_specified.22
-rw-r--r--doc/man/nvme_ns_mgmt_sel.22
-rw-r--r--doc/man/nvme_ns_read.22
-rw-r--r--doc/man/nvme_ns_release_fd.29
-rw-r--r--doc/man/nvme_ns_rescan.22
-rw-r--r--doc/man/nvme_ns_verify.22
-rw-r--r--doc/man/nvme_ns_write.22
-rw-r--r--doc/man/nvme_ns_write_protect_cfg.22
-rw-r--r--doc/man/nvme_ns_write_uncorrectable.22
-rw-r--r--doc/man/nvme_ns_write_zeros.22
-rw-r--r--doc/man/nvme_nss_hw_err_event.22
-rw-r--r--doc/man/nvme_nvm_id_ns.22
-rw-r--r--doc/man/nvme_nvm_id_ns_elbaf.22
-rw-r--r--doc/man/nvme_nvm_identify_ctrl.22
-rw-r--r--doc/man/nvme_nvmeset_pl_status.22
-rw-r--r--doc/man/nvme_nvmset_attr.22
-rw-r--r--doc/man/nvme_nvmset_pl_events.22
-rw-r--r--doc/man/nvme_nvmset_predictable_lat_log.22
-rw-r--r--doc/man/nvme_open.22
-rw-r--r--doc/man/nvme_passthru_cmd.22
-rw-r--r--doc/man/nvme_passthru_cmd64.22
-rw-r--r--doc/man/nvme_path_get_ana_state.22
-rw-r--r--doc/man/nvme_path_get_ctrl.22
-rw-r--r--doc/man/nvme_path_get_name.22
-rw-r--r--doc/man/nvme_path_get_ns.22
-rw-r--r--doc/man/nvme_path_get_sysfs_dir.22
-rw-r--r--doc/man/nvme_paths_filter.22
-rw-r--r--doc/man/nvme_persistent_event_entry.22
-rw-r--r--doc/man/nvme_persistent_event_log.22
-rw-r--r--doc/man/nvme_persistent_event_types.22
-rw-r--r--doc/man/nvme_pevent_log_action.22
-rw-r--r--doc/man/nvme_phy_rx_eom_log.299
-rw-r--r--doc/man/nvme_phy_rx_eom_progress.224
-rw-r--r--doc/man/nvme_plm_config.22
-rw-r--r--doc/man/nvme_pmr_size.22
-rw-r--r--doc/man/nvme_pmr_throughput.22
-rw-r--r--doc/man/nvme_power_on_reset_info_list.22
-rw-r--r--doc/man/nvme_primary_ctrl_cap.22
-rw-r--r--doc/man/nvme_psd_flags.22
-rw-r--r--doc/man/nvme_psd_power_scale.22
-rw-r--r--doc/man/nvme_psd_ps.22
-rw-r--r--doc/man/nvme_psd_workload.22
-rw-r--r--doc/man/nvme_read.22
-rw-r--r--doc/man/nvme_read_config.22
-rw-r--r--doc/man/nvme_refresh_topology.22
-rw-r--r--doc/man/nvme_register_offsets.22
-rw-r--r--doc/man/nvme_registered_ctrl.22
-rw-r--r--doc/man/nvme_registered_ctrl_ext.22
-rw-r--r--doc/man/nvme_rescan_ctrl.22
-rw-r--r--doc/man/nvme_resv_acquire.22
-rw-r--r--doc/man/nvme_resv_cptpl.22
-rw-r--r--doc/man/nvme_resv_notification_log.22
-rw-r--r--doc/man/nvme_resv_notify_rnlpt.22
-rw-r--r--doc/man/nvme_resv_racqa.22
-rw-r--r--doc/man/nvme_resv_register.22
-rw-r--r--doc/man/nvme_resv_release.22
-rw-r--r--doc/man/nvme_resv_report.22
-rw-r--r--doc/man/nvme_resv_rrega.22
-rw-r--r--doc/man/nvme_resv_rrela.22
-rw-r--r--doc/man/nvme_resv_rtype.22
-rw-r--r--doc/man/nvme_resv_status.22
-rw-r--r--doc/man/nvme_sanitize_compln_event.22
-rw-r--r--doc/man/nvme_sanitize_log_page.22
-rw-r--r--doc/man/nvme_sanitize_nvm.22
-rw-r--r--doc/man/nvme_sanitize_sanact.22
-rw-r--r--doc/man/nvme_sanitize_sstat.22
-rw-r--r--doc/man/nvme_sanitize_start_event.22
-rw-r--r--doc/man/nvme_scan.22
-rw-r--r--doc/man/nvme_scan_ctrl.22
-rw-r--r--doc/man/nvme_scan_ctrl_namespace_paths.22
-rw-r--r--doc/man/nvme_scan_ctrl_namespaces.22
-rw-r--r--doc/man/nvme_scan_ctrls.22
-rw-r--r--doc/man/nvme_scan_namespace.22
-rw-r--r--doc/man/nvme_scan_subsystem_namespaces.22
-rw-r--r--doc/man/nvme_scan_subsystems.22
-rw-r--r--doc/man/nvme_scan_topology.22
-rw-r--r--doc/man/nvme_secondary_ctrl.22
-rw-r--r--doc/man/nvme_secondary_ctrl_list.22
-rw-r--r--doc/man/nvme_security_receive.22
-rw-r--r--doc/man/nvme_security_send.22
-rw-r--r--doc/man/nvme_self_test_log.22
-rw-r--r--doc/man/nvme_set_feature_event.22
-rw-r--r--doc/man/nvme_set_features.22
-rw-r--r--doc/man/nvme_set_features_arbitration.22
-rw-r--r--doc/man/nvme_set_features_async_event.22
-rw-r--r--doc/man/nvme_set_features_auto_pst.22
-rw-r--r--doc/man/nvme_set_features_data.22
-rw-r--r--doc/man/nvme_set_features_endurance_evt_cfg.22
-rw-r--r--doc/man/nvme_set_features_err_recovery.22
-rw-r--r--doc/man/nvme_set_features_hctm.22
-rw-r--r--doc/man/nvme_set_features_host_behavior.22
-rw-r--r--doc/man/nvme_set_features_host_id.22
-rw-r--r--doc/man/nvme_set_features_iocs_profile.218
-rw-r--r--doc/man/nvme_set_features_irq_coalesce.22
-rw-r--r--doc/man/nvme_set_features_irq_config.22
-rw-r--r--doc/man/nvme_set_features_lba_range.24
-rw-r--r--doc/man/nvme_set_features_lba_sts_interval.22
-rw-r--r--doc/man/nvme_set_features_nopsc.22
-rw-r--r--doc/man/nvme_set_features_plm_config.22
-rw-r--r--doc/man/nvme_set_features_plm_window.22
-rw-r--r--doc/man/nvme_set_features_power_mgmt.22
-rw-r--r--doc/man/nvme_set_features_resv_mask.26
-rw-r--r--doc/man/nvme_set_features_resv_mask2.224
-rw-r--r--doc/man/nvme_set_features_resv_persist.26
-rw-r--r--doc/man/nvme_set_features_resv_persist2.224
-rw-r--r--doc/man/nvme_set_features_rrl.22
-rw-r--r--doc/man/nvme_set_features_sanitize.22
-rw-r--r--doc/man/nvme_set_features_simple.22
-rw-r--r--doc/man/nvme_set_features_sw_progress.22
-rw-r--r--doc/man/nvme_set_features_temp_thresh.22
-rw-r--r--doc/man/nvme_set_features_timestamp.22
-rw-r--r--doc/man/nvme_set_features_volatile_wc.22
-rw-r--r--doc/man/nvme_set_features_write_atomic.22
-rw-r--r--doc/man/nvme_set_features_write_protect.26
-rw-r--r--doc/man/nvme_set_features_write_protect2.224
-rw-r--r--doc/man/nvme_set_keyring.22
-rw-r--r--doc/man/nvme_set_property.22
-rw-r--r--doc/man/nvme_set_root.216
-rw-r--r--doc/man/nvme_smart_crit.22
-rw-r--r--doc/man/nvme_smart_egcw.22
-rw-r--r--doc/man/nvme_smart_log.22
-rw-r--r--doc/man/nvme_st_code.22
-rw-r--r--doc/man/nvme_st_curr_op.22
-rw-r--r--doc/man/nvme_st_result.22
-rw-r--r--doc/man/nvme_st_valid_diag_info.22
-rw-r--r--doc/man/nvme_status_code.22
-rw-r--r--doc/man/nvme_status_code_type.22
-rw-r--r--doc/man/nvme_status_equals.22
-rw-r--r--doc/man/nvme_status_field.237
-rw-r--r--doc/man/nvme_status_get_type.22
-rw-r--r--doc/man/nvme_status_get_value.22
-rw-r--r--doc/man/nvme_status_result.22
-rw-r--r--doc/man/nvme_status_to_errno.22
-rw-r--r--doc/man/nvme_status_to_string.22
-rw-r--r--doc/man/nvme_status_type.22
-rw-r--r--doc/man/nvme_streams_directive_params.22
-rw-r--r--doc/man/nvme_streams_directive_status.22
-rw-r--r--doc/man/nvme_submit_admin_passthru.22
-rw-r--r--doc/man/nvme_submit_admin_passthru64.22
-rw-r--r--doc/man/nvme_submit_io_passthru.22
-rw-r--r--doc/man/nvme_submit_io_passthru64.22
-rw-r--r--doc/man/nvme_subsys_filter.22
-rw-r--r--doc/man/nvme_subsys_type.22
-rw-r--r--doc/man/nvme_subsystem_first_ctrl.22
-rw-r--r--doc/man/nvme_subsystem_first_ns.22
-rw-r--r--doc/man/nvme_subsystem_for_each_ctrl.22
-rw-r--r--doc/man/nvme_subsystem_for_each_ctrl_safe.22
-rw-r--r--doc/man/nvme_subsystem_for_each_ns.22
-rw-r--r--doc/man/nvme_subsystem_for_each_ns_safe.22
-rw-r--r--doc/man/nvme_subsystem_get_application.22
-rw-r--r--doc/man/nvme_subsystem_get_host.22
-rw-r--r--doc/man/nvme_subsystem_get_iopolicy.211
-rw-r--r--doc/man/nvme_subsystem_get_name.22
-rw-r--r--doc/man/nvme_subsystem_get_nqn.22
-rw-r--r--doc/man/nvme_subsystem_get_sysfs_dir.22
-rw-r--r--doc/man/nvme_subsystem_get_type.22
-rw-r--r--doc/man/nvme_subsystem_lookup_namespace.22
-rw-r--r--doc/man/nvme_subsystem_next_ctrl.22
-rw-r--r--doc/man/nvme_subsystem_next_ns.22
-rw-r--r--doc/man/nvme_subsystem_release_fds.213
-rw-r--r--doc/man/nvme_subsystem_reset.22
-rw-r--r--doc/man/nvme_subsystem_set_application.22
-rw-r--r--doc/man/nvme_supported_cap_config_list_log.22
-rw-r--r--doc/man/nvme_supported_log_pages.22
-rw-r--r--doc/man/nvme_telemetry_da.22
-rw-r--r--doc/man/nvme_telemetry_log.22
-rw-r--r--doc/man/nvme_thermal_exc_event.22
-rw-r--r--doc/man/nvme_time_stamp_change_event.22
-rw-r--r--doc/man/nvme_timestamp.22
-rw-r--r--doc/man/nvme_unlink_ctrl.22
-rw-r--r--doc/man/nvme_update_config.22
-rw-r--r--doc/man/nvme_uring_cmd.22
-rw-r--r--doc/man/nvme_verify.22
-rw-r--r--doc/man/nvme_version.22
-rw-r--r--doc/man/nvme_virt_mgmt_act.22
-rw-r--r--doc/man/nvme_virt_mgmt_rt.22
-rw-r--r--doc/man/nvme_virtual_mgmt.22
-rw-r--r--doc/man/nvme_write.22
-rw-r--r--doc/man/nvme_write_uncorrectable.22
-rw-r--r--doc/man/nvme_write_zeros.22
-rw-r--r--doc/man/nvme_zns_append.22
-rw-r--r--doc/man/nvme_zns_changed_zone_log.22
-rw-r--r--doc/man/nvme_zns_desc.22
-rw-r--r--doc/man/nvme_zns_id_ctrl.22
-rw-r--r--doc/man/nvme_zns_id_ns.22
-rw-r--r--doc/man/nvme_zns_identify_ctrl.22
-rw-r--r--doc/man/nvme_zns_identify_ns.22
-rw-r--r--doc/man/nvme_zns_lbafe.22
-rw-r--r--doc/man/nvme_zns_mgmt_recv.22
-rw-r--r--doc/man/nvme_zns_mgmt_send.22
-rw-r--r--doc/man/nvme_zns_recv_action.22
-rw-r--r--doc/man/nvme_zns_report_options.22
-rw-r--r--doc/man/nvme_zns_report_zones.22
-rw-r--r--doc/man/nvme_zns_send_action.22
-rw-r--r--doc/man/nvme_zns_za.22
-rw-r--r--doc/man/nvme_zns_zs.22
-rw-r--r--doc/man/nvme_zns_zt.22
-rw-r--r--doc/man/nvme_zone_report.22
-rw-r--r--doc/man/nvmf_add_ctrl.22
-rw-r--r--doc/man/nvmf_addr_family.22
-rw-r--r--doc/man/nvmf_adrfam_str.22
-rw-r--r--doc/man/nvmf_cms_str.22
-rw-r--r--doc/man/nvmf_connect_data.22
-rw-r--r--doc/man/nvmf_connect_disc_entry.22
-rw-r--r--doc/man/nvmf_default_config.22
-rw-r--r--doc/man/nvmf_dim_data.22
-rw-r--r--doc/man/nvmf_dim_entfmt.22
-rw-r--r--doc/man/nvmf_dim_etype.22
-rw-r--r--doc/man/nvmf_dim_tas.22
-rw-r--r--doc/man/nvmf_disc_eflags.22
-rw-r--r--doc/man/nvmf_disc_log_entry.22
-rw-r--r--doc/man/nvmf_discovery_log.22
-rw-r--r--doc/man/nvmf_eflags_str.22
-rw-r--r--doc/man/nvmf_exat_len.22
-rw-r--r--doc/man/nvmf_exattype.22
-rw-r--r--doc/man/nvmf_ext_attr.22
-rw-r--r--doc/man/nvmf_ext_die.22
-rw-r--r--doc/man/nvmf_get_discovery_log.22
-rw-r--r--doc/man/nvmf_get_discovery_wargs.22
-rw-r--r--doc/man/nvmf_hostid_from_file.22
-rw-r--r--doc/man/nvmf_hostnqn_from_file.22
-rw-r--r--doc/man/nvmf_hostnqn_generate.22
-rw-r--r--doc/man/nvmf_log_discovery_lid_support.22
-rw-r--r--doc/man/nvmf_log_discovery_lsp.22
-rw-r--r--doc/man/nvmf_prtype_str.22
-rw-r--r--doc/man/nvmf_qptype_str.22
-rw-r--r--doc/man/nvmf_rdma_cms.22
-rw-r--r--doc/man/nvmf_rdma_prtype.22
-rw-r--r--doc/man/nvmf_rdma_qptype.22
-rw-r--r--doc/man/nvmf_register_ctrl.22
-rw-r--r--doc/man/nvmf_sectype_str.22
-rw-r--r--doc/man/nvmf_subtype_str.22
-rw-r--r--doc/man/nvmf_tcp_sectype.22
-rw-r--r--doc/man/nvmf_treq.22
-rw-r--r--doc/man/nvmf_treq_str.22
-rw-r--r--doc/man/nvmf_trtype.22
-rw-r--r--doc/man/nvmf_trtype_str.22
-rw-r--r--doc/man/nvmf_update_config.22
-rw-r--r--doc/rst/ioctl.rst334
-rw-r--r--doc/rst/linux.rst139
-rw-r--r--doc/rst/log.rst19
-rw-r--r--doc/rst/mi.rst33
-rw-r--r--doc/rst/tree.rst202
-rw-r--r--doc/rst/types.rst469
-rw-r--r--doc/rst/util.rst117
838 files changed, 3196 insertions, 845 deletions
diff --git a/doc/conf.py b/doc/conf.py
index fe594e8..bec47b2 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -12,7 +12,7 @@ copyright = '2020, Keith Busch'
author = 'Keith Busch <kbusch@kernel.org>'
master_doc = 'index'
-release = '1.5'
+release = '1.7.1'
# -- General configuration ---------------------------------------------------
diff --git a/doc/man/nbft_control.2 b/doc/man/nbft_control.2
index 7da4f26..d498210 100644
--- a/doc/man/nbft_control.2
+++ b/doc/man/nbft_control.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "struct nbft_control" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nbft_control" "December 2023" "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 e2f6e0f..47d3f30 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nbft_control_flags" "December 2023" "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 40d00f6..886e314 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nbft_desc_type" "December 2023" "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 61614ff..c08fae6 100644
--- a/doc/man/nbft_discovery.2
+++ b/doc/man/nbft_discovery.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "struct nbft_discovery" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nbft_discovery" "December 2023" "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 9d0685c..fb6f42b 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nbft_discovery_flags" "December 2023" "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 2990736..fea70df 100644
--- a/doc/man/nbft_header.2
+++ b/doc/man/nbft_header.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "struct nbft_header" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nbft_header" "December 2023" "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 81d6425..426dcaf 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nbft_heap_obj" "December 2023" "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 7679e0f..ae47656 100644
--- a/doc/man/nbft_hfi.2
+++ b/doc/man/nbft_hfi.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "struct nbft_hfi" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nbft_hfi" "December 2023" "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 74ba678..63df9db 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nbft_hfi_flags" "December 2023" "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 5419330..2dba60d 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nbft_hfi_info_tcp" "December 2023" "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 f3d8173..830b035 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nbft_hfi_info_tcp_flags" "December 2023" "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 a747255..f057936 100644
--- a/doc/man/nbft_host.2
+++ b/doc/man/nbft_host.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "struct nbft_host" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nbft_host" "December 2023" "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 f5ef688..f16d62b 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nbft_host_flags" "December 2023" "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 38b2ffd..27a985a 100644
--- a/doc/man/nbft_info.2
+++ b/doc/man/nbft_info.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "struct nbft_info" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nbft_info" "December 2023" "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 03e5245..81a997e 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nbft_info_discovery" "December 2023" "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 438e76a..321c37a 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nbft_info_hfi" "December 2023" "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 23a35a2..295841b 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nbft_info_hfi_info_tcp" "December 2023" "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 f664b6d..60c67c6 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nbft_info_host" "December 2023" "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 e4bae03..5b5b479 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nbft_info_nid_type" "December 2023" "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 ccfcf22..823449d 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nbft_info_primary_admin_host_flag" "December 2023" "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 ab46e20..872464a 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nbft_info_security" "December 2023" "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 fc5a441..3dfaa14 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nbft_info_subsystem_ns" "December 2023" "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 df97f10..bb90560 100644
--- a/doc/man/nbft_security.2
+++ b/doc/man/nbft_security.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "struct nbft_security" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nbft_security" "December 2023" "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 10185ce..5c3392d 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nbft_security_flags" "December 2023" "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 76cc048..aa47e90 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nbft_security_secret_type" "December 2023" "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 91eb2c5..6588f43 100644
--- a/doc/man/nbft_ssns.2
+++ b/doc/man/nbft_ssns.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "struct nbft_ssns" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nbft_ssns" "December 2023" "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 63cd106..1062ecf 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nbft_ssns_ext_info" "December 2023" "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 2723c61..5753db5 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nbft_ssns_ext_info_flags" "December 2023" "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 10237e6..90a4595 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nbft_ssns_flags" "December 2023" "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 0a52871..a58f0e5 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nbft_ssns_trflags" "December 2023" "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 2af7850..ff40743 100644
--- a/doc/man/nbft_trtype.2
+++ b/doc/man/nbft_trtype.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "enum nbft_trtype" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nbft_trtype" "December 2023" "API Manual" LINUX
.SH NAME
enum nbft_trtype \- NBFT Interface Transport Types (Figure 7)
.SH SYNOPSIS
diff --git a/doc/man/nvme_admin_opcode.2 b/doc/man/nvme_admin_opcode.2
index fc95c2f..6e02bd9 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_admin_opcode" "December 2023" "API Manual" LINUX
.SH NAME
enum nvme_admin_opcode \- Known NVMe admin opcodes
.SH SYNOPSIS
diff --git a/doc/man/nvme_admin_passthru.2 b/doc/man/nvme_admin_passthru.2
index 3a382eb..7a05f98 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_admin_passthru" 9 "nvme_admin_passthru" "December 2023" "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 c770c60..62cda8f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_admin_passthru64" 9 "nvme_admin_passthru64" "December 2023" "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 ea0128d..b22cb29 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ae_info_css_nvm" "December 2023" "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 85de328..7bb2831 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ae_info_error" "December 2023" "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 b5257d8..4860dc9 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ae_info_notice" "December 2023" "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 2b290b6..17e8f78 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ae_info_smart" "December 2023" "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 2ab217d..69bdd57 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ae_type" "December 2023" "API Manual" LINUX
.SH NAME
enum nvme_ae_type \- Asynchronous Event Type
.SH SYNOPSIS
diff --git a/doc/man/nvme_aggregate_endurance_group_event.2 b/doc/man/nvme_aggregate_endurance_group_event.2
index 1f9dc9c..e696a57 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_aggregate_endurance_group_event" "December 2023" "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 c860a99..5673701 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_aggregate_predictable_lat_event" "December 2023" "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 941ff9b..c1b159f 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_ana_group_desc" "December 2023" "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 66cada5..812d580 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_ana_log" "December 2023" "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 18b0070..cd405a4 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ana_state" "December 2023" "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 db6419f..4d18d5d 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_apst_entry" "December 2023" "API Manual" LINUX
.SH NAME
enum nvme_apst_entry \- Autonomous Power State Transition
.SH SYNOPSIS
diff --git a/doc/man/nvme_boot_partition.2 b/doc/man/nvme_boot_partition.2
index 2bb6065..d0a6f07 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_boot_partition" "December 2023" "API Manual" LINUX
.SH NAME
struct nvme_boot_partition \- Boot Partition Log
.SH SYNOPSIS
diff --git a/doc/man/nvme_capacity_config_desc.2 b/doc/man/nvme_capacity_config_desc.2
index 298ac63..f0db6f2 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_capacity_config_desc" "December 2023" "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 d75a6fb..4de5cfc 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_capacity_mgmt" 9 "nvme_capacity_mgmt" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_capacity_mgmt \- Capacity management command
.SH SYNOPSIS
diff --git a/doc/man/nvme_change_ns_event.2 b/doc/man/nvme_change_ns_event.2
index b1dd10f..674c941 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_change_ns_event" "December 2023" "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 1860f91..7ddc180 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_channel_config_desc" "December 2023" "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 8e369d8..3c3e9ab 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_cmb_size" 9 "nvme_cmb_size" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_cmb_size \- Calculate size of the controller memory buffer
.SH SYNOPSIS
diff --git a/doc/man/nvme_cmd_effects.2 b/doc/man/nvme_cmd_effects.2
index 6559bd8..30528fa 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_cmd_effects" "December 2023" "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 90cba63..616807e 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_cmd_effects_log" "December 2023" "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 c827719..353c038 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_cmd_format_mset" "December 2023" "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 29d6609..54ad461 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_cmd_format_pi" "December 2023" "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 f8d5110..c203f6d 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_cmd_format_pil" "December 2023" "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 028c59f..58701e3 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_cmd_format_ses" "December 2023" "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 755e38b..a0b43f3 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_cmd_get_log_lid" "December 2023" "API Manual" LINUX
.SH NAME
enum nvme_cmd_get_log_lid \- Get Log Page -Log Page Identifiers
.SH SYNOPSIS
@@ -88,6 +88,10 @@ enum nvme_cmd_get_log_lid {
,
.br
.br
+.BI " NVME_LOG_LID_PHY_RX_EOM"
+,
+.br
+.br
.BI " NVME_LOG_LID_FDP_CONFIGS"
,
.br
@@ -162,6 +166,8 @@ Feature Identifiers Supported and Effects
NVMe-MI Commands Supported and Effects
.IP "NVME_LOG_LID_BOOT_PARTITION" 12
Boot Partition
+.IP "NVME_LOG_LID_PHY_RX_EOM" 12
+Physical Interface Receiver Eye Opening Measurement
.IP "NVME_LOG_LID_FDP_CONFIGS" 12
FDP Configurations
.IP "NVME_LOG_LID_FDP_RUH_USAGE" 12
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 486c355..6eda5bc 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_cmd_get_log_telemetry_host_lsp" "December 2023" "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_compare.2 b/doc/man/nvme_compare.2
index ef2c020..48448b1 100644
--- a/doc/man/nvme_compare.2
+++ b/doc/man/nvme_compare.2
@@ -1,4 +1,4 @@
-.TH "nvme_compare" 9 "nvme_compare" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_compare" 9 "nvme_compare" "December 2023" "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 0cd9568..e08a15d 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_connect_err" "December 2023" "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 b83d506..bf716cb 100644
--- a/doc/man/nvme_constants.2
+++ b/doc/man/nvme_constants.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "enum nvme_constants" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_constants" "December 2023" "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 4cc230d..72ac033 100644
--- a/doc/man/nvme_copy.2
+++ b/doc/man/nvme_copy.2
@@ -1,4 +1,4 @@
-.TH "nvme_copy" 9 "nvme_copy" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_copy" 9 "nvme_copy" "December 2023" "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 f470dcf..0c3f31d 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_copy_range" "December 2023" "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 069bff6..8757368 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_copy_range_f1" "December 2023" "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
new file mode 100644
index 0000000..d02fa7e
--- /dev/null
+++ b/doc/man/nvme_copy_range_f2.2
@@ -0,0 +1,48 @@
+.TH "libnvme" 9 "struct nvme_copy_range_f2" "December 2023" "API Manual" LINUX
+.SH NAME
+struct nvme_copy_range_f2 \- Copy - Source Range Entries Descriptor Format 2h
+.SH SYNOPSIS
+struct nvme_copy_range_f2 {
+.br
+.BI " __le32 snsid;"
+.br
+.BI " __u8 rsvd4[4];"
+.br
+.BI " __le64 slba;"
+.br
+.BI " __le16 nlb;"
+.br
+.BI " __u8 rsvd18[4];"
+.br
+.BI " __le16 sopt;"
+.br
+.BI " __le32 eilbrt;"
+.br
+.BI " __le16 elbat;"
+.br
+.BI " __le16 elbatm;"
+.br
+.BI "
+};
+.br
+
+.SH Members
+.IP "snsid" 12
+Source Namespace Identifier
+.IP "rsvd4" 12
+Reserved
+.IP "slba" 12
+Starting LBA
+.IP "nlb" 12
+Number of Logical Blocks
+.IP "rsvd18" 12
+Reserved
+.IP "sopt" 12
+Source Options
+.IP "eilbrt" 12
+Expected Initial Logical Block Reference Tag /
+Expected Logical Block Storage Tag
+.IP "elbat" 12
+Expected Logical Block Application Tag
+.IP "elbatm" 12
+Expected Logical Block Application Tag Mask
diff --git a/doc/man/nvme_copy_range_f3.2 b/doc/man/nvme_copy_range_f3.2
new file mode 100644
index 0000000..b88d93d
--- /dev/null
+++ b/doc/man/nvme_copy_range_f3.2
@@ -0,0 +1,52 @@
+.TH "libnvme" 9 "struct nvme_copy_range_f3" "December 2023" "API Manual" LINUX
+.SH NAME
+struct nvme_copy_range_f3 \- Copy - Source Range Entries Descriptor Format 3h
+.SH SYNOPSIS
+struct nvme_copy_range_f3 {
+.br
+.BI " __le32 snsid;"
+.br
+.BI " __u8 rsvd4[4];"
+.br
+.BI " __le64 slba;"
+.br
+.BI " __le16 nlb;"
+.br
+.BI " __u8 rsvd18[4];"
+.br
+.BI " __le16 sopt;"
+.br
+.BI " __u8 rsvd24[2];"
+.br
+.BI " __u8 elbt[10];"
+.br
+.BI " __le16 elbat;"
+.br
+.BI " __le16 elbatm;"
+.br
+.BI "
+};
+.br
+
+.SH Members
+.IP "snsid" 12
+Source Namespace Identifier
+.IP "rsvd4" 12
+Reserved
+.IP "slba" 12
+Starting LBA
+.IP "nlb" 12
+Number of Logical Blocks
+.IP "rsvd18" 12
+Reserved
+.IP "sopt" 12
+Source Options
+.IP "rsvd24" 12
+Reserved
+.IP "elbt" 12
+Expected Initial Logical Block Reference Tag /
+Expected Logical Block Storage Tag
+.IP "elbat" 12
+Expected Logical Block Application Tag
+.IP "elbatm" 12
+Expected Logical Block Application Tag Mask
diff --git a/doc/man/nvme_copy_range_sopt.2 b/doc/man/nvme_copy_range_sopt.2
new file mode 100644
index 0000000..cf9620a
--- /dev/null
+++ b/doc/man/nvme_copy_range_sopt.2
@@ -0,0 +1,12 @@
+.TH "libnvme" 9 "enum nvme_copy_range_sopt" "December 2023" "API Manual" LINUX
+.SH NAME
+enum nvme_copy_range_sopt \- NVMe Copy Range Source Options
+.SH SYNOPSIS
+enum nvme_copy_range_sopt {
+.br
+.BI " NVME_COPY_SOPT_FCO"
+
+};
+.SH Constants
+.IP "NVME_COPY_SOPT_FCO" 12
+NVMe Copy Source Option Fast Copy Only
diff --git a/doc/man/nvme_create_ctrl.2 b/doc/man/nvme_create_ctrl.2
index 217235c..4b2b410 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_create_ctrl" 9 "nvme_create_ctrl" "December 2023" "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 b41325d..0b16ba2 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_create_root" 9 "nvme_create_root" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_create_root \- Initialize root object
.SH SYNOPSIS
diff --git a/doc/man/nvme_csi.2 b/doc/man/nvme_csi.2
index 7a0a7f1..64e6c24 100644
--- a/doc/man/nvme_csi.2
+++ b/doc/man/nvme_csi.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "enum nvme_csi" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_csi" "December 2023" "API Manual" LINUX
.SH NAME
enum nvme_csi \- Defined command set indicators
.SH SYNOPSIS
diff --git a/doc/man/nvme_ctrl_config_match.2 b/doc/man/nvme_ctrl_config_match.2
new file mode 100644
index 0000000..906654f
--- /dev/null
+++ b/doc/man/nvme_ctrl_config_match.2
@@ -0,0 +1,33 @@
+.TH "nvme_ctrl_config_match" 9 "nvme_ctrl_config_match" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_ctrl_config_match \- Check if ctrl @c matches config params
+.SH SYNOPSIS
+.B "bool" nvme_ctrl_config_match
+.BI "(struct nvme_ctrl *c " ","
+.BI "const char *transport " ","
+.BI "const char *traddr " ","
+.BI "const char *trsvcid " ","
+.BI "const char *subsysnqn " ","
+.BI "const char *host_traddr " ","
+.BI "const char *host_iface " ");"
+.SH ARGUMENTS
+.IP "c" 12
+An existing controller instance
+.IP "transport" 12
+Transport name
+.IP "traddr" 12
+Transport address
+.IP "trsvcid" 12
+Transport service identifier
+.IP "subsysnqn" 12
+Subsystem NQN
+.IP "host_traddr" 12
+Host transport address
+.IP "host_iface" 12
+Host interface name
+.SH "DESCRIPTION"
+Check that controller \fIc\fP matches parameters: \fItransport\fP, \fItraddr\fP,
+\fItrsvcid\fP, \fIsubsysnqn\fP, \fIhost_traddr\fP, and \fIhost_iface\fP. Parameters set
+to NULL will be ignored.
+.SH "RETURN"
+true if there's a match, false otherwise.
diff --git a/doc/man/nvme_ctrl_find.2 b/doc/man/nvme_ctrl_find.2
new file mode 100644
index 0000000..f95640b
--- /dev/null
+++ b/doc/man/nvme_ctrl_find.2
@@ -0,0 +1,37 @@
+.TH "nvme_ctrl_find" 9 "nvme_ctrl_find" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_ctrl_find \- Locate an existing controller
+.SH SYNOPSIS
+.B "nvme_ctrl_t" nvme_ctrl_find
+.BI "(nvme_subsystem_t s " ","
+.BI "const char *transport " ","
+.BI "const char *traddr " ","
+.BI "const char *trsvcid " ","
+.BI "const char *subsysnqn " ","
+.BI "const char *host_traddr " ","
+.BI "const char *host_iface " ");"
+.SH ARGUMENTS
+.IP "s" 12
+\fInvme_subsystem_t\fP object
+.IP "transport" 12
+Transport name
+.IP "traddr" 12
+Transport address
+.IP "trsvcid" 12
+Transport service identifier
+.IP "subsysnqn" 12
+Subsystem NQN
+.IP "host_traddr" 12
+Host transport address
+.IP "host_iface" 12
+Host interface name
+.SH "DESCRIPTION"
+Lookup a controller in \fIs\fP based on \fItransport\fP, \fItraddr\fP, \fItrsvcid\fP,
+\fIsubsysnqn\fP, \fIhost_traddr\fP, and \fIhost_iface\fP. \fItransport\fP must be specified,
+other fields may be required depending on the transport. Parameters set
+to NULL will be ignored.
+
+Unlike \fBnvme_lookup_ctrl\fP, this function does not create a new object if
+an existing controller cannot be found.
+.SH "RETURN"
+Controller instance on success, NULL otherwise.
diff --git a/doc/man/nvme_ctrl_first_ns.2 b/doc/man/nvme_ctrl_first_ns.2
index ed38019..c0f0c49 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_first_ns" 9 "nvme_ctrl_first_ns" "December 2023" "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 29f7436..aee3c90 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_first_path" 9 "nvme_ctrl_first_path" "December 2023" "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 139126d..04db2b0 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_for_each_ns" 9 "nvme_ctrl_for_each_ns" "December 2023" "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 3420e49..84b4d24 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_for_each_ns_safe" 9 "nvme_ctrl_for_each_ns_safe" "December 2023" "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 c98f33b..93bf81f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_for_each_path" 9 "nvme_ctrl_for_each_path" "December 2023" "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 b7da27f..955836a 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_for_each_path_safe" 9 "nvme_ctrl_for_each_path_safe" "December 2023" "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 44de2a2..98ccc8a 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_address" 9 "nvme_ctrl_get_address" "December 2023" "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 8fbc976..8543a45 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_config" 9 "nvme_ctrl_get_config" "December 2023" "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 48526e5..a417495 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_dhchap_host_key" 9 "nvme_ctrl_get_dhchap_host_key" "December 2023" "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 f190577..0dc9b2b 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_dhchap_key" 9 "nvme_ctrl_get_dhchap_key" "December 2023" "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 f8a92a4..491c194 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_fd" 9 "nvme_ctrl_get_fd" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_get_fd \- Get associated file descriptor
.SH SYNOPSIS
@@ -7,5 +7,12 @@ nvme_ctrl_get_fd \- Get associated file descriptor
.SH ARGUMENTS
.IP "c" 12
Controller instance
+.SH "DESCRIPTION"
+libnvme will \fBopen\fP the file (if not already opened) and keep
+an internal copy of the file descriptor. Following calls to
+this API retrieve the internal cached copy of the file
+descriptor. The file will remain opened and the fd will
+remain cached until the controller object is deleted or
+\fBnvme_ctrl_release_fd\fP is called.
.SH "RETURN"
File descriptor associated with \fIc\fP or -1
diff --git a/doc/man/nvme_ctrl_get_firmware.2 b/doc/man/nvme_ctrl_get_firmware.2
index 45d2c1a..b6a08ee 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_firmware" 9 "nvme_ctrl_get_firmware" "December 2023" "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 1130ad0..50f64a7 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_host_iface" 9 "nvme_ctrl_get_host_iface" "December 2023" "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 bc3d2e0..7463337 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_host_traddr" 9 "nvme_ctrl_get_host_traddr" "December 2023" "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_model.2 b/doc/man/nvme_ctrl_get_model.2
index d2f2e26..470bc4e 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_model" 9 "nvme_ctrl_get_model" "December 2023" "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 bdcbc7c..5fc7351 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_name" 9 "nvme_ctrl_get_name" "December 2023" "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 b0625cd..aea22c2 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_numa_node" 9 "nvme_ctrl_get_numa_node" "December 2023" "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 3427078..74fe3d8 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_phy_slot" 9 "nvme_ctrl_get_phy_slot" "December 2023" "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 6d5753f..50da6a8 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_queue_count" 9 "nvme_ctrl_get_queue_count" "December 2023" "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 7ca8800..20de29c 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_serial" 9 "nvme_ctrl_get_serial" "December 2023" "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 46d91ce..bdd03b0 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_sqsize" 9 "nvme_ctrl_get_sqsize" "December 2023" "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
new file mode 100644
index 0000000..82573e7
--- /dev/null
+++ b/doc/man/nvme_ctrl_get_src_addr.2
@@ -0,0 +1,17 @@
+.TH "nvme_ctrl_get_src_addr" 9 "nvme_ctrl_get_src_addr" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_ctrl_get_src_addr \- Extract src_addr from the c->address string
+.SH SYNOPSIS
+.B "char *" nvme_ctrl_get_src_addr
+.BI "(nvme_ctrl_t c " ","
+.BI "char *src_addr " ","
+.BI "size_t src_addr_len " ");"
+.SH ARGUMENTS
+.IP "c" 12
+Controller instance
+.IP "src_addr" 12
+Where to copy the src_addr. Size must be at least INET6_ADDRSTRLEN.
+.IP "src_addr_len" 12
+Length of the buffer \fIsrc_addr\fP.
+.SH "RETURN"
+Pointer to \fIsrc_addr\fP on success. NULL on failure to extract the src_addr.
diff --git a/doc/man/nvme_ctrl_get_state.2 b/doc/man/nvme_ctrl_get_state.2
index 5336673..7d4b6e8 100644
--- a/doc/man/nvme_ctrl_get_state.2
+++ b/doc/man/nvme_ctrl_get_state.2
@@ -1,6 +1,6 @@
-.TH "nvme_ctrl_get_state" 9 "nvme_ctrl_get_state" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_state" 9 "nvme_ctrl_get_state" "December 2023" "libnvme API manual" LINUX
.SH NAME
-nvme_ctrl_get_state \- Running state of an controller
+nvme_ctrl_get_state \- Running state of a controller
.SH SYNOPSIS
.B "const char *" nvme_ctrl_get_state
.BI "(nvme_ctrl_t c " ");"
diff --git a/doc/man/nvme_ctrl_get_subsysnqn.2 b/doc/man/nvme_ctrl_get_subsysnqn.2
index 7bb8c7e..858ff4d 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_subsysnqn" 9 "nvme_ctrl_get_subsysnqn" "December 2023" "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 83380fe..2fd4bc2 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_subsystem" 9 "nvme_ctrl_get_subsystem" "December 2023" "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 a2115b9..6eac969 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_sysfs_dir" 9 "nvme_ctrl_get_sysfs_dir" "December 2023" "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_traddr.2 b/doc/man/nvme_ctrl_get_traddr.2
index e1ec4a9..49e2fc7 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_traddr" 9 "nvme_ctrl_get_traddr" "December 2023" "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 b69b72b..a74468f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_transport" 9 "nvme_ctrl_get_transport" "December 2023" "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 8d17c64..58b6aba 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_get_trsvcid" 9 "nvme_ctrl_get_trsvcid" "December 2023" "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 32e2d34..b0bafbc 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_identify" 9 "nvme_ctrl_identify" "December 2023" "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 27c3c4b..a5984bb 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_is_discovered" 9 "nvme_ctrl_is_discovered" "December 2023" "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 fc105d6..b9a59e7 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_is_discovery_ctrl" 9 "nvme_ctrl_is_discovery_ctrl" "December 2023" "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 e6abc2b..2f1a28f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_is_persistent" 9 "nvme_ctrl_is_persistent" "December 2023" "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 c3e6fc4..57cd5cf 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_is_unique_discovery_ctrl" 9 "nvme_ctrl_is_unique_discovery_ctrl" "December 2023" "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 6e2ae8d..01ce6be 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_ctrl_list" "December 2023" "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 61e1785..3fc97dc 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ctrl_metadata_type" "December 2023" "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 0dcedec..a0f8456 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_next_ns" 9 "nvme_ctrl_next_ns" "December 2023" "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 1d16b54..1e1bc6a 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_next_path" 9 "nvme_ctrl_next_path" "December 2023" "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
new file mode 100644
index 0000000..d75683d
--- /dev/null
+++ b/doc/man/nvme_ctrl_release_fd.2
@@ -0,0 +1,9 @@
+.TH "nvme_ctrl_release_fd" 9 "nvme_ctrl_release_fd" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_ctrl_release_fd \- Close fd and clear fd from controller object
+.SH SYNOPSIS
+.B "void" nvme_ctrl_release_fd
+.BI "(nvme_ctrl_t c " ");"
+.SH ARGUMENTS
+.IP "c" 12
+Controller instance
diff --git a/doc/man/nvme_ctrl_reset.2 b/doc/man/nvme_ctrl_reset.2
index 07e09c0..ffbcba8 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_reset" 9 "nvme_ctrl_reset" "December 2023" "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 29f3ada..2d00a73 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_set_dhchap_host_key" 9 "nvme_ctrl_set_dhchap_host_key" "December 2023" "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 a2fed0e..285c3a5 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_set_dhchap_key" 9 "nvme_ctrl_set_dhchap_key" "December 2023" "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 bc7ae03..02250bf 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_set_discovered" 9 "nvme_ctrl_set_discovered" "December 2023" "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 c018fff..48bbadb 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_set_discovery_ctrl" 9 "nvme_ctrl_set_discovery_ctrl" "December 2023" "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_persistent.2 b/doc/man/nvme_ctrl_set_persistent.2
index 11cfc17..ecbf070 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_set_persistent" 9 "nvme_ctrl_set_persistent" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ctrl_set_persistent \- Set the 'persistent' flag
.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 ae9963f..ca85fa5 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrl_set_unique_discovery_ctrl" 9 "nvme_ctrl_set_unique_discovery_ctrl" "December 2023" "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 a3f99d2..0b2d808 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ctrls_filter" 9 "nvme_ctrls_filter" "December 2023" "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 53dced7..efe6929 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_data_tfr" "December 2023" "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 ae32203..2d4949d 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_default_host" 9 "nvme_default_host" "December 2023" "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 96dc547..205fcd7 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_describe_key_serial" 9 "nvme_describe_key_serial" "December 2023" "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 7e26efc..9d963f7 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_dev_self_test" 9 "nvme_dev_self_test" "December 2023" "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 8a19713..3e72770 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_directive_dtype" "December 2023" "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 ed2acc7..8d5514b 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_directive_receive_doper" "December 2023" "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 2ca72f3..7289060 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_directive_recv" 9 "nvme_directive_recv" "December 2023" "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 5272e40..8789028 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_directive_recv_identify_parameters" 9 "nvme_directive_recv_identify_parameters" "December 2023" "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 a818f9d..e78dc97 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_directive_recv_stream_allocate" 9 "nvme_directive_recv_stream_allocate" "December 2023" "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 af7c367..c6dd32e 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_directive_recv_stream_parameters" 9 "nvme_directive_recv_stream_parameters" "December 2023" "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 13a69ca..601b858 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_directive_recv_stream_status" 9 "nvme_directive_recv_stream_status" "December 2023" "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 7c50c76..3623448 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_directive_send" 9 "nvme_directive_send" "December 2023" "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 da6d395..2dd1175 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_directive_send_doper" "December 2023" "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 14affd7..ddf4078 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_directive_send_id_endir" 9 "nvme_directive_send_id_endir" "December 2023" "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 9e31733..fd7aa25 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_directive_send_identify_endir" "December 2023" "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 9529463..f572152 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_directive_send_stream_release_identifier" 9 "nvme_directive_send_stream_release_identifier" "December 2023" "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 0a75237..e139db6 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_directive_send_stream_release_resource" 9 "nvme_directive_send_stream_release_resource" "December 2023" "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 fa74691..c877df9 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_directive_types" "December 2023" "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 dad0253..83406bd 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_disconnect_ctrl" 9 "nvme_disconnect_ctrl" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_disconnect_ctrl \- Disconnect a controller
.SH SYNOPSIS
diff --git a/doc/man/nvme_dsm.2 b/doc/man/nvme_dsm.2
index 1b7cac0..02363a9 100644
--- a/doc/man/nvme_dsm.2
+++ b/doc/man/nvme_dsm.2
@@ -1,4 +1,4 @@
-.TH "nvme_dsm" 9 "nvme_dsm" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_dsm" 9 "nvme_dsm" "December 2023" "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 7bf524c..596cc4d 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_dsm_attributes" "December 2023" "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 d251d23..0fe1724 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_dsm_range" "December 2023" "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 e6eeb5e..67d38ee 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_dst_stc" "December 2023" "API Manual" LINUX
.SH NAME
enum nvme_dst_stc \- Action taken by the Device Self-test command
.SH SYNOPSIS
diff --git a/doc/man/nvme_dump_config.2 b/doc/man/nvme_dump_config.2
index 583c6c2..9d9db10 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_dump_config" 9 "nvme_dump_config" "December 2023" "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 e096496..94c2359 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_dump_tree" 9 "nvme_dump_tree" "December 2023" "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 3c95a7d..e0fd244 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_eg_critical_warning_flags" "December 2023" "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 443257d..912c8b1 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_eg_event_aggregate_log" "December 2023" "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 169cb24..086c6c5 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_end_grp_chan_desc" "December 2023" "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 25bf2cd..6ff63fc 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_end_grp_config_desc" "December 2023" "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 ccf7ecc..4944260 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_endurance_group_log" "December 2023" "API Manual" LINUX
.SH NAME
struct nvme_endurance_group_log \- Endurance Group Information Log
.SH SYNOPSIS
@@ -6,7 +6,9 @@ struct nvme_endurance_group_log {
.br
.BI " __u8 critical_warning;"
.br
-.BI " __u8 rsvd1[2];"
+.BI " __u8 endurance_group_features;"
+.br
+.BI " __u8 rsvd2;"
.br
.BI " __u8 avl_spare;"
.br
@@ -14,7 +16,9 @@ struct nvme_endurance_group_log {
.br
.BI " __u8 percent_used;"
.br
-.BI " __u8 rsvd6[26];"
+.BI " __le16 domain_identifier;"
+.br
+.BI " __u8 rsvd8[24];"
.br
.BI " __u8 endurance_estimate[16];"
.br
@@ -32,7 +36,11 @@ struct nvme_endurance_group_log {
.br
.BI " __u8 num_err_info_log_entries[16];"
.br
-.BI " __u8 rsvd160[352];"
+.BI " __u8 total_end_grp_cap[16];"
+.br
+.BI " __u8 unalloc_end_grp_cap[16];"
+.br
+.BI " __u8 rsvd192[320];"
.br
.BI "
};
@@ -41,7 +49,9 @@ struct nvme_endurance_group_log {
.SH Members
.IP "critical_warning" 12
Critical Warning
-.IP "rsvd1" 12
+.IP "endurance_group_features" 12
+Endurance Group Features
+.IP "rsvd2" 12
Reserved
.IP "avl_spare" 12
Available Spare
@@ -49,7 +59,9 @@ Available Spare
Available Spare Threshold
.IP "percent_used" 12
Percentage Used
-.IP "rsvd6" 12
+.IP "domain_identifier" 12
+Domain Identifier
+.IP "rsvd8" 12
Reserved
.IP "endurance_estimate" 12
Endurance Estimate
@@ -67,5 +79,9 @@ Host Write Commands
Media and Data Integrity Errors
.IP "num_err_info_log_entries" 12
Number of Error Information Log Entries
-.IP "rsvd160" 12
+.IP "total_end_grp_cap" 12
+Total Endurance Group Capacity
+.IP "unalloc_end_grp_cap" 12
+Unallocated Endurance Group Capacity
+.IP "rsvd192" 12
Reserved
diff --git a/doc/man/nvme_eom_lane_desc.2 b/doc/man/nvme_eom_lane_desc.2
new file mode 100644
index 0000000..687bd6d
--- /dev/null
+++ b/doc/man/nvme_eom_lane_desc.2
@@ -0,0 +1,63 @@
+.TH "libnvme" 9 "struct nvme_eom_lane_desc" "December 2023" "API Manual" LINUX
+.SH NAME
+struct nvme_eom_lane_desc \- EOM Lane Descriptor
+.SH SYNOPSIS
+struct nvme_eom_lane_desc {
+.br
+.BI " __u8 rsvd0;"
+.br
+.BI " __u8 mstatus;"
+.br
+.BI " __u8 lane;"
+.br
+.BI " __u8 eye;"
+.br
+.BI " __le16 top;"
+.br
+.BI " __le16 bottom;"
+.br
+.BI " __le16 left;"
+.br
+.BI " __le16 right;"
+.br
+.BI " __le16 nrows;"
+.br
+.BI " __le16 ncols;"
+.br
+.BI " __le16 edlen;"
+.br
+.BI " __u8 rsvd18[14];"
+.br
+.BI " __u8 eye_desc[];"
+.br
+.BI "
+};
+.br
+
+.SH Members
+.IP "rsvd0" 12
+Reserved
+.IP "mstatus" 12
+Measurement Status
+.IP "lane" 12
+Lane number
+.IP "eye" 12
+Eye number
+.IP "top" 12
+Absolute number of rows from center to top edge of eye
+.IP "bottom" 12
+Absolute number of rows from center to bottom edge of eye
+.IP "left" 12
+Absolute number of rows from center to left edge of eye
+.IP "right" 12
+Absolute number of rows from center to right edge of eye
+.IP "nrows" 12
+Number of Rows
+.IP "ncols" 12
+Number of Columns
+.IP "edlen" 12
+Eye Data Length
+.IP "rsvd18" 12
+Reserved
+.IP "eye_desc" 12
+Printable Eye, Eye Data, and any Padding
diff --git a/doc/man/nvme_eom_optional_data.2 b/doc/man/nvme_eom_optional_data.2
new file mode 100644
index 0000000..99123af
--- /dev/null
+++ b/doc/man/nvme_eom_optional_data.2
@@ -0,0 +1,18 @@
+.TH "libnvme" 9 "enum nvme_eom_optional_data" "December 2023" "API Manual" LINUX
+.SH NAME
+enum nvme_eom_optional_data \- EOM Optional Data Present Fields
+.SH SYNOPSIS
+enum nvme_eom_optional_data {
+.br
+.BI " NVME_EOM_EYE_DATA_PRESENT"
+,
+.br
+.br
+.BI " NVME_EOM_PRINTABLE_EYE_PRESENT"
+
+};
+.SH Constants
+.IP "NVME_EOM_EYE_DATA_PRESENT" 12
+Eye Data Present
+.IP "NVME_EOM_PRINTABLE_EYE_PRESENT" 12
+Printable Eye Present
diff --git a/doc/man/nvme_errno_to_string.2 b/doc/man/nvme_errno_to_string.2
index f0b2839..c0b5755 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_errno_to_string" 9 "nvme_errno_to_string" "December 2023" "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 d11eff3..b06b493 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_error_log_page" "December 2023" "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_fabrics_config.2 b/doc/man/nvme_fabrics_config.2
index 6a80747..1deab12 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_fabrics_config" "December 2023" "API Manual" LINUX
.SH NAME
struct nvme_fabrics_config \- Defines all linux nvme fabrics initiator options
.SH SYNOPSIS
diff --git a/doc/man/nvme_fctype.2 b/doc/man/nvme_fctype.2
index 3e8fc4f..7b058f5 100644
--- a/doc/man/nvme_fctype.2
+++ b/doc/man/nvme_fctype.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "enum nvme_fctype" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_fctype" "December 2023" "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 a00ac72..ffbb582 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_fdp_config_desc" "December 2023" "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 4a2796a..12965d7 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_fdp_config_fdpa" "December 2023" "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 d839eb1..02c9e8c 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_fdp_config_log" "December 2023" "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 f310d53..6cfe6c5 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_fdp_event" "December 2023" "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 f7e7387..f545776 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_fdp_event_flags" "December 2023" "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 e32e2aa..5ca2f1e 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_fdp_event_realloc" "December 2023" "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 3072bc3..fdff873 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_fdp_event_realloc_flags" "December 2023" "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 8ddbcbd..f115e34 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_fdp_event_type" "December 2023" "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 cbc6021..7d6c1b7 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_fdp_events_log" "December 2023" "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 5b25da2..c70cb03 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_fdp_reclaim_unit_handle_status" 9 "nvme_fdp_reclaim_unit_handle_status" "December 2023" "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 8459a3c..5e42aa5 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_fdp_reclaim_unit_handle_update" 9 "nvme_fdp_reclaim_unit_handle_update" "December 2023" "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 9072eea..57979ec 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_fdp_ruh_desc" "December 2023" "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 7378076..31cd820 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_fdp_ruh_status" "December 2023" "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 17adbbd..da40653 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_fdp_ruh_status_desc" "December 2023" "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 7fb5c73..a8bfbff 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_fdp_ruh_type" "December 2023" "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 509f0b7..b0d5705 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_fdp_ruha" "December 2023" "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 53ed484..3f7cb3d 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_fdp_ruhu_desc" "December 2023" "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 25c1813..8fdb728 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_fdp_ruhu_log" "December 2023" "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 11f3dd6..b9efdff 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_fdp_stats_log" "December 2023" "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 83e350f..ae79de3 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_fdp_supported_event_attributes" "December 2023" "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 d18673f..5eaa6d1 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_fdp_supported_event_desc" "December 2023" "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 b758af5..b820817 100644
--- a/doc/man/nvme_feat.2
+++ b/doc/man/nvme_feat.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "enum nvme_feat" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_feat" "December 2023" "API Manual" LINUX
.SH NAME
enum nvme_feat \- Features Access Shifts/Masks values
.SH SYNOPSIS
diff --git a/doc/man/nvme_feat_auto_pst.2 b/doc/man/nvme_feat_auto_pst.2
index 90c8a9b..841691b 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_feat_auto_pst" "December 2023" "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 b1ef1ab..baabac0 100644
--- a/doc/man/nvme_feat_fdp_events_cdw11.2
+++ b/doc/man/nvme_feat_fdp_events_cdw11.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "struct nvme_feat_fdp_events_cdw11" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_feat_fdp_events_cdw11" "December 2023" "API Manual" LINUX
.SH NAME
struct nvme_feat_fdp_events_cdw11 \- FDP Events Feature Command Dword 11
.SH SYNOPSIS
diff --git a/doc/man/nvme_feat_host_behavior.2 b/doc/man/nvme_feat_host_behavior.2
index 4c4afd7..c0cf6d7 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_feat_host_behavior" "December 2023" "API Manual" LINUX
.SH NAME
struct nvme_feat_host_behavior \- Host Behavior Support - Data Structure
.SH SYNOPSIS
@@ -6,7 +6,15 @@ struct nvme_feat_host_behavior {
.br
.BI " __u8 acre;"
.br
-.BI " __u8 rsvd1[511];"
+.BI " __u8 etdas;"
+.br
+.BI " __u8 lbafee;"
+.br
+.BI " __u8 rsvd3;"
+.br
+.BI " __u16 cdfe;"
+.br
+.BI " __u8 rsvd6[506];"
.br
.BI "
};
@@ -15,5 +23,13 @@ struct nvme_feat_host_behavior {
.SH Members
.IP "acre" 12
Advanced Command Retry Enable
-.IP "rsvd1" 12
+.IP "etdas" 12
+Extended Telemetry Data Area 4 Supported
+.IP "lbafee" 12
+LBA Format Extension Enable
+.IP "rsvd3" 12
+Reserved
+.IP "cdfe" 12
+Copy Descriptor Formats Enable
+.IP "rsvd6" 12
Reserved
diff --git a/doc/man/nvme_feat_nswpcfg_state.2 b/doc/man/nvme_feat_nswpcfg_state.2
index 102043b..d7d3cc8 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_feat_nswpcfg_state" "December 2023" "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 ff3d979..ab12316 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_feat_plm_window_select" "December 2023" "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 341331e..bf6174a 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_feat_resv_notify_flags" "December 2023" "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 de1bc85..5281f99 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_feat_tmpthresh_thsel" "December 2023" "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 0e3be08..ea8e8bd 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_features_async_event_config_flags" "December 2023" "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 dbbb7ef..12d6dae 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_features_id" "December 2023" "API Manual" LINUX
.SH NAME
enum nvme_features_id \- Features - Feature Identifiers
.SH SYNOPSIS
diff --git a/doc/man/nvme_fid_supported_effects.2 b/doc/man/nvme_fid_supported_effects.2
index 43b31f8..3e8f229 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_fid_supported_effects" "December 2023" "API Manual" LINUX
.SH NAME
enum nvme_fid_supported_effects \- FID Supported and Effects Data Structure definitions
.SH SYNOPSIS
diff --git a/doc/man/nvme_fid_supported_effects_log.2 b/doc/man/nvme_fid_supported_effects_log.2
index b1a6fba..7aea249 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_fid_supported_effects_log" "December 2023" "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 259fcf9..4069b70 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_firmware_slot" "December 2023" "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 41e8582..d9b4d97 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_first_host" 9 "nvme_first_host" "December 2023" "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 292d6d0..99c7aa5 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_first_subsystem" 9 "nvme_first_subsystem" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_first_subsystem \- Start subsystem iterator
.SH SYNOPSIS
diff --git a/doc/man/nvme_flush.2 b/doc/man/nvme_flush.2
index e10af5b..21b9867 100644
--- a/doc/man/nvme_flush.2
+++ b/doc/man/nvme_flush.2
@@ -1,4 +1,4 @@
-.TH "nvme_flush" 9 "nvme_flush" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_flush" 9 "nvme_flush" "December 2023" "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 bec20b3..6aa0219 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_for_each_host" 9 "nvme_for_each_host" "December 2023" "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 2b5764c..ea05e30 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_for_each_host_safe" 9 "nvme_for_each_host_safe" "December 2023" "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 c85cbbe..afe926f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_for_each_subsystem" 9 "nvme_for_each_subsystem" "December 2023" "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 e05ea41..ef1dbbf 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_for_each_subsystem_safe" 9 "nvme_for_each_subsystem_safe" "December 2023" "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 144ba44..960f2cb 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_format_nvm" 9 "nvme_format_nvm" "December 2023" "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 82fd397..d2289cc 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_format_nvm_compln_event" "December 2023" "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 2d3607b..d18d6e7 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_format_nvm_start_event" "December 2023" "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 2f4a593..b34bfa2 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_free_ctrl" 9 "nvme_free_ctrl" "December 2023" "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 75ce5c4..da4ea5a 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_free_host" 9 "nvme_free_host" "December 2023" "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 9844898..83fa1de 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_free_ns" 9 "nvme_free_ns" "December 2023" "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 2f8cf6c..6425669 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_free_subsystem" 9 "nvme_free_subsystem" "December 2023" "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 a493818..bd6fce9 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_free_tree" 9 "nvme_free_tree" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_free_tree \- Free root object
.SH SYNOPSIS
diff --git a/doc/man/nvme_fw_commit.2 b/doc/man/nvme_fw_commit.2
index 66c1ab3..4bcfe12 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_fw_commit" 9 "nvme_fw_commit" "December 2023" "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 b3c4acb..bafeb6f 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_fw_commit_ca" "December 2023" "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 f1fa3b0..bcb6910 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_fw_commit_event" "December 2023" "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 319370e..03bb8a2 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_fw_download" 9 "nvme_fw_download" "December 2023" "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 614e51b..6c95302 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_fw_download_seq" 9 "nvme_fw_download_seq" "December 2023" "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 93980cc..294af0c 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_gen_dhchap_key" 9 "nvme_gen_dhchap_key" "December 2023" "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
new file mode 100644
index 0000000..f903c6e
--- /dev/null
+++ b/doc/man/nvme_generate_tls_key_identity.2
@@ -0,0 +1,30 @@
+.TH "nvme_generate_tls_key_identity" 9 "nvme_generate_tls_key_identity" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_generate_tls_key_identity \- Generate the TLS key identity
+.SH SYNOPSIS
+.B "char *" nvme_generate_tls_key_identity
+.BI "(const char *hostnqn " ","
+.BI "const char *subsysnqn " ","
+.BI "int version " ","
+.BI "int hmac " ","
+.BI "unsigned char *configured_key " ","
+.BI "int key_len " ");"
+.SH ARGUMENTS
+.IP "hostnqn" 12
+Host NVMe Qualified Name
+.IP "subsysnqn" 12
+Subsystem NVMe Qualified Name
+.IP "version" 12
+Key version to use
+.IP "hmac" 12
+HMAC algorithm
+.IP "configured_key" 12
+Configured key data to derive the key from
+.IP "key_len" 12
+Length of \fIconfigured_key\fP
+.SH "DESCRIPTION"
+Derives a 'retained' TLS key as specified in NVMe TCP and
+generate the corresponding TLs identity.
+.SH "RETURN"
+The string containing the TLS identity. It is the responsibility
+of the caller to free the returned string.
diff --git a/doc/man/nvme_get_ana_log_len.2 b/doc/man/nvme_get_ana_log_len.2
index d9076c3..a96dd28 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_ana_log_len" 9 "nvme_get_ana_log_len" "December 2023" "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_attr.2 b/doc/man/nvme_get_attr.2
index 0250c1e..dddd5c4 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_attr" 9 "nvme_get_attr" "December 2023" "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 dc6ddc2..82567c9 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_ctrl_attr" 9 "nvme_get_ctrl_attr" "December 2023" "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 ba520be..292f6b1 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_ctrl_telemetry" 9 "nvme_get_ctrl_telemetry" "December 2023" "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 e7d00a3..b0ce709 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_directive_receive_length" 9 "nvme_get_directive_receive_length" "December 2023" "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 ca7a25b..84588da 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_get_discovery_args" "December 2023" "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 ffe518e..f9cd48c 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_feature_length" 9 "nvme_get_feature_length" "December 2023" "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 eb1d7f4..b9cf1ba 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_feature_length2" 9 "nvme_get_feature_length2" "December 2023" "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 4e336d1..c5e0219 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features" 9 "nvme_get_features" "December 2023" "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 627e7f5..fca8a81 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_arbitration" 9 "nvme_get_features_arbitration" "December 2023" "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 01f9b78..5f78508 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_async_event" 9 "nvme_get_features_async_event" "December 2023" "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 38d2115..04152dd 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_auto_pst" 9 "nvme_get_features_auto_pst" "December 2023" "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 7c69998..6487176 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_data" 9 "nvme_get_features_data" "December 2023" "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 765dfb4..d2a5345 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_endurance_event_cfg" 9 "nvme_get_features_endurance_event_cfg" "December 2023" "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 8bf2508..abbb181 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_err_recovery" 9 "nvme_get_features_err_recovery" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_get_features_err_recovery \- Get error recovery feature
.SH SYNOPSIS
@@ -13,6 +13,10 @@ File descriptor of nvme device
Select which type of attribute to return, see \fIenum nvme_get_features_sel\fP
.IP "result" 12
The command completion result from CQE dword0
+.SH "DESCRIPTION"
+
+Deprecated: doesn't support specifying a NSID.
+Use \fBnvme_get_features_err_recovery2\fP instead.
.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_features_err_recovery2.2 b/doc/man/nvme_get_features_err_recovery2.2
new file mode 100644
index 0000000..8544d3a
--- /dev/null
+++ b/doc/man/nvme_get_features_err_recovery2.2
@@ -0,0 +1,21 @@
+.TH "nvme_get_features_err_recovery2" 9 "nvme_get_features_err_recovery2" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_get_features_err_recovery2 \- Get error recovery feature
+.SH SYNOPSIS
+.B "int" nvme_get_features_err_recovery2
+.BI "(int fd " ","
+.BI "enum nvme_get_features_sel sel " ","
+.BI "__u32 nsid " ","
+.BI "__u32 *result " ");"
+.SH ARGUMENTS
+.IP "fd" 12
+File descriptor of nvme device
+.IP "sel" 12
+Select which type of attribute to return, see \fIenum nvme_get_features_sel\fP
+.IP "nsid" 12
+Namespace ID
+.IP "result" 12
+The command completion result from CQE dword0
+.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_features_hctm.2 b/doc/man/nvme_get_features_hctm.2
index 0b8a66f..13f01a2 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_hctm" 9 "nvme_get_features_hctm" "December 2023" "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 1268f24..c4b7b89 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_host_behavior" 9 "nvme_get_features_host_behavior" "December 2023" "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 98b1e53..2f43786 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_host_id" 9 "nvme_get_features_host_id" "December 2023" "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 0c07f14..bfba5e7 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_host_mem_buf" 9 "nvme_get_features_host_mem_buf" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_get_features_host_mem_buf \- Get host memory buffer feature
.SH SYNOPSIS
@@ -13,6 +13,10 @@ File descriptor of nvme device
Select which type of attribute to return, see \fIenum nvme_get_features_sel\fP
.IP "result" 12
The command completion result from CQE dword0
+.SH "DESCRIPTION"
+
+Deprecated: doesn't fetch the Host Memory Buffer Attributes data structure.
+Use \fBnvme_get_features_host_mem_buf2\fP instead.
.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_features_host_mem_buf2.2 b/doc/man/nvme_get_features_host_mem_buf2.2
new file mode 100644
index 0000000..cb7fd45
--- /dev/null
+++ b/doc/man/nvme_get_features_host_mem_buf2.2
@@ -0,0 +1,21 @@
+.TH "nvme_get_features_host_mem_buf2" 9 "nvme_get_features_host_mem_buf2" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_get_features_host_mem_buf2 \- Get host memory buffer feature
+.SH SYNOPSIS
+.B "int" nvme_get_features_host_mem_buf2
+.BI "(int fd " ","
+.BI "enum nvme_get_features_sel sel " ","
+.BI "struct nvme_host_mem_buf_attrs *attrs " ","
+.BI "__u32 *result " ");"
+.SH ARGUMENTS
+.IP "fd" 12
+File descriptor of nvme device
+.IP "sel" 12
+Select which type of attribute to return, see \fIenum nvme_get_features_sel\fP
+.IP "attrs" 12
+Buffer for returned Host Memory Buffer Attributes
+.IP "result" 12
+The command completion result from CQE dword0
+.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_features_iocs_profile.2 b/doc/man/nvme_get_features_iocs_profile.2
index 525be94..8d2afed 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_iocs_profile" 9 "nvme_get_features_iocs_profile" "December 2023" "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 c5e9ba6..f9635a8 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_irq_coalesce" 9 "nvme_get_features_irq_coalesce" "December 2023" "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 dd10ae8..e80f777 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_irq_config" 9 "nvme_get_features_irq_config" "December 2023" "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 63c7552..a85a95a 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_kato" 9 "nvme_get_features_kato" "December 2023" "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 3ef9561..037b441 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_lba_range" 9 "nvme_get_features_lba_range" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_get_features_lba_range \- Get LBA range feature
.SH SYNOPSIS
@@ -16,6 +16,10 @@ Select which type of attribute to return, see \fIenum nvme_get_features_sel\fP
User address of feature data, if applicable
.IP "result" 12
The command completion result from CQE dword0
+.SH "DESCRIPTION"
+
+Deprecated: doesn't support specifying a NSID.
+Use \fBnvme_get_features_lba_range2\fP instead.
.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_features_lba_range2.2 b/doc/man/nvme_get_features_lba_range2.2
new file mode 100644
index 0000000..dc1edd9
--- /dev/null
+++ b/doc/man/nvme_get_features_lba_range2.2
@@ -0,0 +1,24 @@
+.TH "nvme_get_features_lba_range2" 9 "nvme_get_features_lba_range2" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_get_features_lba_range2 \- Get LBA range feature
+.SH SYNOPSIS
+.B "int" nvme_get_features_lba_range2
+.BI "(int fd " ","
+.BI "enum nvme_get_features_sel sel " ","
+.BI "__u32 nsid " ","
+.BI "struct nvme_lba_range_type *data " ","
+.BI "__u32 *result " ");"
+.SH ARGUMENTS
+.IP "fd" 12
+File descriptor of nvme device
+.IP "sel" 12
+Select which type of attribute to return, see \fIenum nvme_get_features_sel\fP
+.IP "nsid" 12
+Namespace ID
+.IP "data" 12
+Buffer to receive LBA Range Type data structure
+.IP "result" 12
+The command completion result from CQE dword0
+.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_features_lba_sts_interval.2 b/doc/man/nvme_get_features_lba_sts_interval.2
index 5bd6cc0..6984f82 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_lba_sts_interval" 9 "nvme_get_features_lba_sts_interval" "December 2023" "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 59bcbba..2638628 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_nopsc" 9 "nvme_get_features_nopsc" "December 2023" "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 b5775b7..e566396 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_num_queues" 9 "nvme_get_features_num_queues" "December 2023" "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 ccb53d2..3c18cd9 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_plm_config" 9 "nvme_get_features_plm_config" "December 2023" "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 5a15532..9031d0c 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_plm_window" 9 "nvme_get_features_plm_window" "December 2023" "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 cbd1434..c707c50 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_power_mgmt" 9 "nvme_get_features_power_mgmt" "December 2023" "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 f9d4d5d..607c574 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_resv_mask" 9 "nvme_get_features_resv_mask" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_get_features_resv_mask \- Get reservation mask feature
.SH SYNOPSIS
@@ -13,6 +13,10 @@ File descriptor of nvme device
Select which type of attribute to return, see \fIenum nvme_get_features_sel\fP
.IP "result" 12
The command completion result from CQE dword0
+.SH "DESCRIPTION"
+
+Deprecated: doesn't support specifying a NSID.
+Use \fBnvme_get_features_resv_mask2\fP instead.
.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_features_resv_mask2.2 b/doc/man/nvme_get_features_resv_mask2.2
new file mode 100644
index 0000000..0f1f4bc
--- /dev/null
+++ b/doc/man/nvme_get_features_resv_mask2.2
@@ -0,0 +1,21 @@
+.TH "nvme_get_features_resv_mask2" 9 "nvme_get_features_resv_mask2" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_get_features_resv_mask2 \- Get reservation mask feature
+.SH SYNOPSIS
+.B "int" nvme_get_features_resv_mask2
+.BI "(int fd " ","
+.BI "enum nvme_get_features_sel sel " ","
+.BI "__u32 nsid " ","
+.BI "__u32 *result " ");"
+.SH ARGUMENTS
+.IP "fd" 12
+File descriptor of nvme device
+.IP "sel" 12
+Select which type of attribute to return, see \fIenum nvme_get_features_sel\fP
+.IP "nsid" 12
+Namespace ID
+.IP "result" 12
+The command completion result from CQE dword0
+.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_features_resv_persist.2 b/doc/man/nvme_get_features_resv_persist.2
index 3fb53ff..a75d329 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_resv_persist" 9 "nvme_get_features_resv_persist" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_get_features_resv_persist \- Get reservation persist feature
.SH SYNOPSIS
@@ -13,6 +13,10 @@ File descriptor of nvme device
Select which type of attribute to return, see \fIenum nvme_get_features_sel\fP
.IP "result" 12
The command completion result from CQE dword0
+.SH "DESCRIPTION"
+
+Deprecated: doesn't support specifying a NSID.
+Use \fBnvme_get_features_resv_persist2\fP instead.
.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_features_resv_persist2.2 b/doc/man/nvme_get_features_resv_persist2.2
new file mode 100644
index 0000000..cb5ff9d
--- /dev/null
+++ b/doc/man/nvme_get_features_resv_persist2.2
@@ -0,0 +1,21 @@
+.TH "nvme_get_features_resv_persist2" 9 "nvme_get_features_resv_persist2" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_get_features_resv_persist2 \- Get reservation persist feature
+.SH SYNOPSIS
+.B "int" nvme_get_features_resv_persist2
+.BI "(int fd " ","
+.BI "enum nvme_get_features_sel sel " ","
+.BI "__u32 nsid " ","
+.BI "__u32 *result " ");"
+.SH ARGUMENTS
+.IP "fd" 12
+File descriptor of nvme device
+.IP "sel" 12
+Select which type of attribute to return, see \fIenum nvme_get_features_sel\fP
+.IP "nsid" 12
+Namespace ID
+.IP "result" 12
+The command completion result from CQE dword0
+.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_features_rrl.2 b/doc/man/nvme_get_features_rrl.2
index 2241ce6..9755ce8 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_rrl" 9 "nvme_get_features_rrl" "December 2023" "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 ded28cc..1215192 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_sanitize" 9 "nvme_get_features_sanitize" "December 2023" "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 10ffefb..bcd1e13 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_get_features_sel" "December 2023" "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 fab3cf6..6f18234 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_simple" 9 "nvme_get_features_simple" "December 2023" "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 c33482a..584f66c 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_sw_progress" 9 "nvme_get_features_sw_progress" "December 2023" "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 2d6ca44..93aab80 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_temp_thresh" 9 "nvme_get_features_temp_thresh" "December 2023" "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 fc8ef10..6871b4b 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_timestamp" 9 "nvme_get_features_timestamp" "December 2023" "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 f951648..de1dc75 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_volatile_wc" 9 "nvme_get_features_volatile_wc" "December 2023" "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 d540755..6bc983c 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_write_atomic" 9 "nvme_get_features_write_atomic" "December 2023" "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 f1a2d4e..446d23f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_features_write_protect" 9 "nvme_get_features_write_protect" "December 2023" "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 b2f90b0..4c2d85f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_host_telemetry" 9 "nvme_get_host_telemetry" "December 2023" "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 7a929d1..335fe45 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_lba_status" 9 "nvme_get_lba_status" "December 2023" "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 8bc8071..c1836d2 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_lba_status_log" 9 "nvme_get_lba_status_log" "December 2023" "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 5803bc5..aa8be70 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log" 9 "nvme_get_log" "December 2023" "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 54ee397..2ab1e0f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_ana" 9 "nvme_get_log_ana" "December 2023" "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 a7c805d..e2b98f0 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_ana_groups" 9 "nvme_get_log_ana_groups" "December 2023" "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_boot_partition.2 b/doc/man/nvme_get_log_boot_partition.2
index 94f2b4c..cfd2bd2 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_boot_partition" 9 "nvme_get_log_boot_partition" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_get_log_boot_partition \- Retrieve Boot Partition
.SH SYNOPSIS
diff --git a/doc/man/nvme_get_log_changed_ns_list.2 b/doc/man/nvme_get_log_changed_ns_list.2
index 0605818..72e99e3 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_changed_ns_list" 9 "nvme_get_log_changed_ns_list" "December 2023" "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 d826f3e..6ac23e2 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_cmd_effects" 9 "nvme_get_log_cmd_effects" "December 2023" "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 ca23c83..5041e5b 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_create_telemetry_host" 9 "nvme_get_log_create_telemetry_host" "December 2023" "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_device_self_test.2 b/doc/man/nvme_get_log_device_self_test.2
index 84a1625..ccc33d3 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_device_self_test" 9 "nvme_get_log_device_self_test" "December 2023" "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 e490786..84c61c7 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_discovery" 9 "nvme_get_log_discovery" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_get_log_discovery \- Retrieve Discovery log page
.SH SYNOPSIS
diff --git a/doc/man/nvme_get_log_endurance_group.2 b/doc/man/nvme_get_log_endurance_group.2
index 9f1abe0..6339993 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_endurance_group" 9 "nvme_get_log_endurance_group" "December 2023" "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 241cc0d..f9d2a0f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_endurance_grp_evt" 9 "nvme_get_log_endurance_grp_evt" "December 2023" "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 5943dfc..0e9d783 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_error" 9 "nvme_get_log_error" "December 2023" "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 9468abb..f19c170 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_fdp_configurations" 9 "nvme_get_log_fdp_configurations" "December 2023" "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 8936ed6..7c9e9e9 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_fdp_events" 9 "nvme_get_log_fdp_events" "December 2023" "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 24c4cab..db2b4ff 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_fdp_stats" 9 "nvme_get_log_fdp_stats" "December 2023" "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 45e3ac5..7093d3b 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_fid_supported_effects" 9 "nvme_get_log_fid_supported_effects" "December 2023" "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 8271510..3edf687 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_fw_slot" 9 "nvme_get_log_fw_slot" "December 2023" "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_lba_status.2 b/doc/man/nvme_get_log_lba_status.2
index 2b64d70..08a49da 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_lba_status" 9 "nvme_get_log_lba_status" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_get_log_lba_status \- Retrieve LBA Status
.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 8fec753..e7bb2ef 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_media_unit_stat" 9 "nvme_get_log_media_unit_stat" "December 2023" "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_mi_cmd_supported_effects.2 b/doc/man/nvme_get_log_mi_cmd_supported_effects.2
index f5d8f55..360f2ae 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_mi_cmd_supported_effects" 9 "nvme_get_log_mi_cmd_supported_effects" "December 2023" "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 4a8b85d..434b6e7 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_page" 9 "nvme_get_log_page" "December 2023" "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 2ad5e5e..8b6d707 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_persistent_event" 9 "nvme_get_log_persistent_event" "December 2023" "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
new file mode 100644
index 0000000..dd96626
--- /dev/null
+++ b/doc/man/nvme_get_log_phy_rx_eom.2
@@ -0,0 +1,25 @@
+.TH "nvme_get_log_phy_rx_eom" 9 "nvme_get_log_phy_rx_eom" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_get_log_phy_rx_eom \- Retrieve Physical Interface Receiver Eye Opening Measurement Log
+.SH SYNOPSIS
+.B "int" nvme_get_log_phy_rx_eom
+.BI "(int fd " ","
+.BI "__u8 lsp " ","
+.BI "__u16 controller " ","
+.BI "__u32 len " ","
+.BI "struct nvme_phy_rx_eom_log *log " ");"
+.SH ARGUMENTS
+.IP "fd" 12
+File descriptor of nvme device
+.IP "lsp" 12
+Log specific, controls action and measurement quality
+.IP "controller" 12
+Target controller ID
+.IP "len" 12
+The allocated size, minimum
+struct nvme_phy_rx_eom_log
+.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_predictable_lat_event.2 b/doc/man/nvme_get_log_predictable_lat_event.2
index edfeaf1..1305266 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_predictable_lat_event" 9 "nvme_get_log_predictable_lat_event" "December 2023" "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 4a6763d..09142c4 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_predictable_lat_nvmset" 9 "nvme_get_log_predictable_lat_nvmset" "December 2023" "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_reclaim_unit_handle_usage.2 b/doc/man/nvme_get_log_reclaim_unit_handle_usage.2
index 008085b..6b4f51a 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_reclaim_unit_handle_usage" 9 "nvme_get_log_reclaim_unit_handle_usage" "December 2023" "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 abd304e..484e916 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_reservation" 9 "nvme_get_log_reservation" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_get_log_reservation \- Retrieve Reservation Notification
.SH SYNOPSIS
diff --git a/doc/man/nvme_get_log_sanitize.2 b/doc/man/nvme_get_log_sanitize.2
index b498f14..25ce042 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_sanitize" 9 "nvme_get_log_sanitize" "December 2023" "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 1476351..74758dc 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_smart" 9 "nvme_get_log_smart" "December 2023" "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 a8aeb41..7a127c3 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_support_cap_config_list" 9 "nvme_get_log_support_cap_config_list" "December 2023" "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 8ee0e81..1bdd4bb 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_supported_log_pages" 9 "nvme_get_log_supported_log_pages" "December 2023" "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 abb8c2f..3eab558 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_telemetry_ctrl" 9 "nvme_get_log_telemetry_ctrl" "December 2023" "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 4857624..d8c7970 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_telemetry_host" 9 "nvme_get_log_telemetry_host" "December 2023" "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 46fb4f4..fb7f7dc 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_log_zns_changed_zones" 9 "nvme_get_log_zns_changed_zones" "December 2023" "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_logical_block_size.2 b/doc/man/nvme_get_logical_block_size.2
index 0fe0984..e0e34d6 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_logical_block_size" 9 "nvme_get_logical_block_size" "December 2023" "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 e6f0954..3b0a1f0 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_new_host_telemetry" 9 "nvme_get_new_host_telemetry" "December 2023" "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 62898ff..d1dc447 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_ns_attr" 9 "nvme_get_ns_attr" "December 2023" "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 d1656f5..79ce3d7 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_nsid" 9 "nvme_get_nsid" "December 2023" "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 921b339..577847e 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_path_attr" 9 "nvme_get_path_attr" "December 2023" "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 d88155c..b0f77e0 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_property" 9 "nvme_get_property" "December 2023" "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 5b8db80..04791b6 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_get_subsys_attr" 9 "nvme_get_subsys_attr" "December 2023" "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
new file mode 100644
index 0000000..c7f2840
--- /dev/null
+++ b/doc/man/nvme_get_telemetry_log.2
@@ -0,0 +1,36 @@
+.TH "nvme_get_telemetry_log" 9 "nvme_get_telemetry_log" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_get_telemetry_log \- Get specified telemetry log
+.SH SYNOPSIS
+.B "int" nvme_get_telemetry_log
+.BI "(int fd " ","
+.BI "bool create " ","
+.BI "bool ctrl " ","
+.BI "bool rae " ","
+.BI "size_t max_data_tx " ","
+.BI "enum nvme_telemetry_da da " ","
+.BI "struct nvme_telemetry_log **log " ","
+.BI "size_t *size " ");"
+.SH ARGUMENTS
+.IP "fd" 12
+File descriptor of nvme device
+.IP "create" 12
+Generate new host initated telemetry capture
+.IP "ctrl" 12
+Get controller Initiated log
+.IP "rae" 12
+Retain asynchronous events
+.IP "max_data_tx" 12
+Set the max data transfer size to be used retrieving telemetry.
+.IP "da" 12
+Log page data area, valid values: \fIenum nvme_telemetry_da\fP.
+.IP "log" 12
+On success, set to the value of the allocated and retrieved log.
+.IP "size" 12
+Ptr to the telemetry log size, so it can be returned
+.SH "DESCRIPTION"
+The total size allocated can be calculated as:
+(nvme_telemetry_log da size + 1) * NVME_LOG_TELEM_BLOCK_SIZE.
+.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_telemetry_max.2 b/doc/man/nvme_get_telemetry_max.2
new file mode 100644
index 0000000..a350c1b
--- /dev/null
+++ b/doc/man/nvme_get_telemetry_max.2
@@ -0,0 +1,18 @@
+.TH "nvme_get_telemetry_max" 9 "nvme_get_telemetry_max" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_get_telemetry_max \- Get telemetry limits
+.SH SYNOPSIS
+.B "int" nvme_get_telemetry_max
+.BI "(int fd " ","
+.BI "enum nvme_telemetry_da *da " ","
+.BI "size_t *max_data_tx " ");"
+.SH ARGUMENTS
+.IP "fd" 12
+File descriptor of nvme device
+.IP "da" 12
+On success return max supported data area
+.IP "max_data_tx" 12
+On success set to max transfer chunk supported by the controller
+.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_hmac_alg.2 b/doc/man/nvme_hmac_alg.2
index 19d4a6d..82424bb 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_hmac_alg" "December 2023" "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 a883d01..c84c49d 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_host_behavior_support" "December 2023" "API Manual" LINUX
.SH NAME
enum nvme_host_behavior_support \- Enable Advanced Command
.SH SYNOPSIS
diff --git a/doc/man/nvme_host_get_dhchap_key.2 b/doc/man/nvme_host_get_dhchap_key.2
index 8b428bc..d862d5b 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_host_get_dhchap_key" 9 "nvme_host_get_dhchap_key" "December 2023" "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 0c6f6dd..7ae8708 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_host_get_hostid" 9 "nvme_host_get_hostid" "December 2023" "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 93b6a91..968e468 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_host_get_hostnqn" 9 "nvme_host_get_hostnqn" "December 2023" "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 399eca9..b76703e 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_host_get_hostsymname" 9 "nvme_host_get_hostsymname" "December 2023" "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 35102a7..0997c5d 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_host_get_root" 9 "nvme_host_get_root" "December 2023" "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 f76f290..714d891 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_host_is_pdc_enabled" 9 "nvme_host_is_pdc_enabled" "December 2023" "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 624d189..78d0a67 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_host_mem_buf_attrs" "December 2023" "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 f7b7d9e..39713b0 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_host_metadata" "December 2023" "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
new file mode 100644
index 0000000..0d09ba1
--- /dev/null
+++ b/doc/man/nvme_host_release_fds.2
@@ -0,0 +1,13 @@
+.TH "nvme_host_release_fds" 9 "nvme_host_release_fds" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_host_release_fds \- Close all opened file descriptors under host
+.SH SYNOPSIS
+.B "void" nvme_host_release_fds
+.BI "(struct nvme_host *h " ");"
+.SH ARGUMENTS
+.IP "h" 12
+nvme_host_t object
+.SH "DESCRIPTION"
+Controller and Namespace objects cache the file descriptors
+of opened nvme devices. This API can be used to close and
+clear all cached fds under this host.
diff --git a/doc/man/nvme_host_set_dhchap_key.2 b/doc/man/nvme_host_set_dhchap_key.2
index c453841..804f33c 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_host_set_dhchap_key" 9 "nvme_host_set_dhchap_key" "December 2023" "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 01bdd94..7166bc3 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_host_set_hostsymname" 9 "nvme_host_set_hostsymname" "December 2023" "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 ed512be..fa17d27 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_host_set_pdc_enabled" 9 "nvme_host_set_pdc_enabled" "December 2023" "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 664ebd3..4ce391c 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_ctrl" "December 2023" "API Manual" LINUX
.SH NAME
struct nvme_id_ctrl \- Identify Controller data structure
.SH SYNOPSIS
@@ -168,7 +168,9 @@ struct nvme_id_ctrl {
.br
.BI " __le32 maxcna;"
.br
-.BI " __u8 rsvd564[204];"
+.BI " __le32 oaqd;"
+.br
+.BI " __u8 rsvd568[200];"
.br
.BI " char subnqn[NVME_NQN_LENGTH];"
.br
@@ -469,7 +471,11 @@ controller in the Domain.
Maximum I/O Controller Namespace Attachments indicates the
maximum number of namespaces that are allowed to be attached to
this I/O controller.
-.IP "rsvd564" 12
+.IP "oaqd" 12
+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 "subnqn" 12
NVM Subsystem NVMe Qualified Name, UTF-8 null terminated string
diff --git a/doc/man/nvme_id_ctrl_anacap.2 b/doc/man/nvme_id_ctrl_anacap.2
index abe0dc8..1eb5829 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_anacap" "December 2023" "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 342e66a..819241c 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_apsta" "December 2023" "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 b5995fc..d7cbf09 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_avscc" "December 2023" "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_cmic.2 b/doc/man/nvme_id_ctrl_cmic.2
index 6ec3467..bcece00 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_cmic" "December 2023" "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 8f3898c..c5e6312 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_cntrltype" "December 2023" "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 af5ec84..2c2ddf8 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_cqes" "December 2023" "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_ctratt.2 b/doc/man/nvme_id_ctrl_ctratt.2
index 92590f9..311e9ab 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_ctratt" "December 2023" "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 edd5eb4..a2fa3d8 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_dctype" "December 2023" "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 d179317..d91576d 100644
--- a/doc/man/nvme_id_ctrl_dsto.2
+++ b/doc/man/nvme_id_ctrl_dsto.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "enum nvme_id_ctrl_dsto" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_dsto" "December 2023" "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
diff --git a/doc/man/nvme_id_ctrl_fcatt.2 b/doc/man/nvme_id_ctrl_fcatt.2
index 9a610e5..6e7bc2a 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_fcatt" "December 2023" "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 4dab325..c34374c 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_fna" "December 2023" "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 f4dad4d..bc4f7a8 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_frmw" "December 2023" "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 e34fa04..f83cf32 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_fuses" "December 2023" "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 c4e549f..be8de7c 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_hctm" "December 2023" "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_lpa.2 b/doc/man/nvme_id_ctrl_lpa.2
index 5c6cc4b..1b37e37 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_lpa" "December 2023" "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 68875bb..e197ab5 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_mec" "December 2023" "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 2611957..5103aa6 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_ctrl_nvm" "December 2023" "API Manual" LINUX
.SH NAME
struct nvme_id_ctrl_nvm \- I/O Command Set Specific Identify Controller data structure
.SH SYNOPSIS
diff --git a/doc/man/nvme_id_ctrl_nvmsr.2 b/doc/man/nvme_id_ctrl_nvmsr.2
index 2effe80..1b4fb50 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_nvmsr" "December 2023" "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
diff --git a/doc/man/nvme_id_ctrl_nvscc.2 b/doc/man/nvme_id_ctrl_nvscc.2
index 0b3a3f6..1ce71df 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_nvscc" "December 2023" "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 012f34b..b9742b5 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_nwpc" "December 2023" "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 a151fb2..224c1be 100644
--- a/doc/man/nvme_id_ctrl_oacs.2
+++ b/doc/man/nvme_id_ctrl_oacs.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "enum nvme_id_ctrl_oacs" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_oacs" "December 2023" "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
diff --git a/doc/man/nvme_id_ctrl_oaes.2 b/doc/man/nvme_id_ctrl_oaes.2
index dff5e29..8ce148b 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_oaes" "December 2023" "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 b83606e..abf5f0a 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_ofcs" "December 2023" "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 d51e63f..3e4c59f 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_oncs" "December 2023" "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
@@ -37,6 +37,14 @@ enum nvme_id_ctrl_oncs {
.br
.br
.BI " NVME_CTRL_ONCS_COPY"
+,
+.br
+.br
+.BI " NVME_CTRL_ONCS_COPY_SINGLE_ATOMICITY"
+,
+.br
+.br
+.BI " NVME_CTRL_ONCS_ALL_FAST_COPY"
};
.SH Constants
@@ -70,3 +78,13 @@ the Verify command.
.IP "NVME_CTRL_ONCS_COPY" 12
If set, then the controller supports
the copy command.
+.IP "NVME_CTRL_ONCS_COPY_SINGLE_ATOMICITY" 12
+If set, then the write portion of a
+Copy command is performed as a single
+write command to which the same
+atomicity requirements that apply to
+a write command apply.
+.IP "NVME_CTRL_ONCS_ALL_FAST_COPY" 12
+If set, then all copy operations for
+the Copy command are fast copy
+operations.
diff --git a/doc/man/nvme_id_ctrl_rpmbs.2 b/doc/man/nvme_id_ctrl_rpmbs.2
index 169c457..067c218 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_rpmbs" "December 2023" "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 7f09750..06a89e5 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_sanicap" "December 2023" "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 444234a..5445491 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_sgls" "December 2023" "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 1fae8db..9f18a54 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_sqes" "December 2023" "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_vwc.2 b/doc/man/nvme_id_ctrl_vwc.2
index caf1f64..607a6d9 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_vwc" "December 2023" "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 0e9d8b1..a6aa26b 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ctrl_vwci" "December 2023" "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 ccbd468..2260c5b 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_directives" "December 2023" "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 a3b55c0..27d6962 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_domain_attr" "December 2023" "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 cb9c2f9..6dbb934 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_domain_list" "December 2023" "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 2285100..07aa1ca 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_endurance_group_list" "December 2023" "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 cc01f38..54e0d77 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_independent_id_ns" "December 2023" "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 68d056a..a74ab3c 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_iocs" "December 2023" "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_ns.2 b/doc/man/nvme_id_ns.2
index 82d68d5..27aebbc 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_ns" "December 2023" "API Manual" LINUX
.SH NAME
struct nvme_id_ns \- Identify Namespace data structure
.SH SYNOPSIS
@@ -84,9 +84,7 @@ struct nvme_id_ns {
.br
.BI " struct nvme_lbaf lbaf[64];"
.br
-.BI " __le64 lbstm;"
-.br
-.BI " __u8 vs[3704];"
+.BI " __u8 vs[3712];"
.br
.BI "
};
@@ -231,7 +229,5 @@ remains fixed throughout the life of the namespace and is
preserved across namespace and controller operations
.IP "lbaf" 12
LBA Format, see \fIstruct nvme_lbaf\fP.
-.IP "lbstm" 12
-Logical Block Storage Tag Mask for end-to-end protection
.IP "vs" 12
Vendor Specific
diff --git a/doc/man/nvme_id_ns_attr.2 b/doc/man/nvme_id_ns_attr.2
index 6401c8e..0236021 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ns_attr" "December 2023" "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 93ff84c..86bfb1c 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ns_dlfeat" "December 2023" "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 f9ec8f9..fc523e8 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ns_dpc" "December 2023" "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 11c20ac..97309c5 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ns_dps" "December 2023" "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 cc40af0..5dbe573 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ns_flbas" "December 2023" "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 7e94e5d..5f361b8 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_ns_granularity_desc" "December 2023" "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 7dfe503..dc2ae16 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_ns_granularity_list" "December 2023" "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 859d8d6..6658a2d 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ns_mc" "December 2023" "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 1ef4a83..5517caa 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ns_nmic" "December 2023" "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 77f5ee8..333c9e9 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_ns_rescap" "December 2023" "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 7d8a3a2..671d54b 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_nsfeat" "December 2023" "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 6a9f281..32a9810 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_nvmset_list" "December 2023" "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 7b23b4b..3585515 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_psd" "December 2023" "API Manual" LINUX
.SH NAME
struct nvme_id_psd \- Power Management data structure
.SH SYNOPSIS
diff --git a/doc/man/nvme_id_uuid.2 b/doc/man/nvme_id_uuid.2
index 80ffdf6..8653334 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_id_uuid" "December 2023" "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 0983c18..916a4f9 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_uuid_list" "December 2023" "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 5debce4..498b445 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_id_uuid_list_entry" "December 2023" "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 c3a4645..0d81fe9 100644
--- a/doc/man/nvme_identify.2
+++ b/doc/man/nvme_identify.2
@@ -1,4 +1,4 @@
-.TH "nvme_identify" 9 "nvme_identify" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify" 9 "nvme_identify" "December 2023" "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 d04827d..06ab259 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_active_ns_list" 9 "nvme_identify_active_ns_list" "December 2023" "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 39c859d..2bff937 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_active_ns_list_csi" 9 "nvme_identify_active_ns_list_csi" "December 2023" "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 7fe2ce7..c18ea48 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_allocated_ns" 9 "nvme_identify_allocated_ns" "December 2023" "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 7540578..80770f2 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_allocated_ns_list" 9 "nvme_identify_allocated_ns_list" "December 2023" "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 3f936f6..963d165 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_allocated_ns_list_csi" 9 "nvme_identify_allocated_ns_list_csi" "December 2023" "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 7f2b02c..570b9b0 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_identify_cns" "December 2023" "API Manual" LINUX
.SH NAME
enum nvme_identify_cns \- Identify - CNS Values
.SH SYNOPSIS
diff --git a/doc/man/nvme_identify_ctrl.2 b/doc/man/nvme_identify_ctrl.2
index f1541f0..33d5a35 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_ctrl" 9 "nvme_identify_ctrl" "December 2023" "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 c501497..3bc4e76 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_ctrl_csi" 9 "nvme_identify_ctrl_csi" "December 2023" "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 16907a6..9c8e3cc 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_ctrl_list" 9 "nvme_identify_ctrl_list" "December 2023" "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 c6eaa03..bb5983c 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_domain_list" 9 "nvme_identify_domain_list" "December 2023" "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 575b477..6437daa 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_endurance_group_list" 9 "nvme_identify_endurance_group_list" "December 2023" "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 0863437..06966b4 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_independent_identify_ns" 9 "nvme_identify_independent_identify_ns" "December 2023" "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 57db606..ac871a5 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_iocs" 9 "nvme_identify_iocs" "December 2023" "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 b1a4caa..5ad6251 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_iocs_ns_csi_user_data_format" 9 "nvme_identify_iocs_ns_csi_user_data_format" "December 2023" "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 c1c12de..84a8e3a 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_ns" 9 "nvme_identify_ns" "December 2023" "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 ad4e743..2135a21 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_ns_csi" 9 "nvme_identify_ns_csi" "December 2023" "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 2368d39..6c6d482 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_ns_csi_user_data_format" 9 "nvme_identify_ns_csi_user_data_format" "December 2023" "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 7c68564..5962561 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_ns_descs" 9 "nvme_identify_ns_descs" "December 2023" "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 eecd5ac..58eeb73 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_ns_granularity" 9 "nvme_identify_ns_granularity" "December 2023" "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 eb6492b..e474882 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_nsid_ctrl_list" 9 "nvme_identify_nsid_ctrl_list" "December 2023" "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 f8e90c5..a5f66ad 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_nvmset_list" 9 "nvme_identify_nvmset_list" "December 2023" "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 7be8839..dd63a5f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_primary_ctrl" 9 "nvme_identify_primary_ctrl" "December 2023" "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 2778705..3223e8e 100644
--- a/doc/man/nvme_identify_secondary_ctrl_list.2
+++ b/doc/man/nvme_identify_secondary_ctrl_list.2
@@ -1,17 +1,14 @@
-.TH "nvme_identify_secondary_ctrl_list" 9 "nvme_identify_secondary_ctrl_list" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_secondary_ctrl_list" 9 "nvme_identify_secondary_ctrl_list" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_identify_secondary_ctrl_list \- Retrieves secondary controller list
.SH SYNOPSIS
.B "int" nvme_identify_secondary_ctrl_list
.BI "(int fd " ","
-.BI "__u32 nsid " ","
.BI "__u16 cntid " ","
.BI "struct nvme_secondary_ctrl_list *sc_list " ");"
.SH ARGUMENTS
.IP "fd" 12
File descriptor of nvme device
-.IP "nsid" 12
-Namespace identifier
.IP "cntid" 12
Return controllers starting at this identifier
.IP "sc_list" 12
diff --git a/doc/man/nvme_identify_uuid.2 b/doc/man/nvme_identify_uuid.2
index e150845..9c52a71 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_identify_uuid" 9 "nvme_identify_uuid" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_identify_uuid \- Retrieves device's UUIDs
.SH SYNOPSIS
diff --git a/doc/man/nvme_init_copy_range.2 b/doc/man/nvme_init_copy_range.2
index f47e1f5..4c81523 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_init_copy_range" 9 "nvme_init_copy_range" "December 2023" "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 5a981ce..36fd44e 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_init_copy_range_f1" 9 "nvme_init_copy_range_f1" "December 2023" "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
new file mode 100644
index 0000000..15ee6d5
--- /dev/null
+++ b/doc/man/nvme_init_copy_range_f2.2
@@ -0,0 +1,33 @@
+.TH "nvme_init_copy_range_f2" 9 "nvme_init_copy_range_f2" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_init_copy_range_f2 \- Constructs a copy range f2 structure
+.SH SYNOPSIS
+.B "void" nvme_init_copy_range_f2
+.BI "(struct nvme_copy_range_f2 *copy " ","
+.BI "__u32 *snsids " ","
+.BI "__u16 *nlbs " ","
+.BI "__u64 *slbas " ","
+.BI "__u16 *sopts " ","
+.BI "__u32 *eilbrts " ","
+.BI "__u32 *elbatms " ","
+.BI "__u32 *elbats " ","
+.BI "__u16 nr " ");"
+.SH ARGUMENTS
+.IP "copy" 12
+Copy range array
+.IP "snsids" 12
+Source namespace identifier
+.IP "nlbs" 12
+Number of logical blocks
+.IP "slbas" 12
+Starting LBA
+.IP "sopts" 12
+Source options
+.IP "eilbrts" 12
+Expected initial logical block reference tag
+.IP "elbatms" 12
+Expected logical block application tag mask
+.IP "elbats" 12
+Expected logical block application tag
+.IP "nr" 12
+Number of descriptors to construct
diff --git a/doc/man/nvme_init_copy_range_f3.2 b/doc/man/nvme_init_copy_range_f3.2
new file mode 100644
index 0000000..9acdb15
--- /dev/null
+++ b/doc/man/nvme_init_copy_range_f3.2
@@ -0,0 +1,33 @@
+.TH "nvme_init_copy_range_f3" 9 "nvme_init_copy_range_f3" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_init_copy_range_f3 \- Constructs a copy range f3 structure
+.SH SYNOPSIS
+.B "void" nvme_init_copy_range_f3
+.BI "(struct nvme_copy_range_f3 *copy " ","
+.BI "__u32 *snsids " ","
+.BI "__u16 *nlbs " ","
+.BI "__u64 *slbas " ","
+.BI "__u16 *sopts " ","
+.BI "__u64 *eilbrts " ","
+.BI "__u32 *elbatms " ","
+.BI "__u32 *elbats " ","
+.BI "__u16 nr " ");"
+.SH ARGUMENTS
+.IP "copy" 12
+Copy range array
+.IP "snsids" 12
+Source namespace identifier
+.IP "nlbs" 12
+Number of logical blocks
+.IP "slbas" 12
+Starting LBA
+.IP "sopts" 12
+Source options
+.IP "eilbrts" 12
+Expected initial logical block reference tag
+.IP "elbatms" 12
+Expected logical block application tag mask
+.IP "elbats" 12
+Expected logical block application tag
+.IP "nr" 12
+Number of descriptors to construct
diff --git a/doc/man/nvme_init_ctrl.2 b/doc/man/nvme_init_ctrl.2
index 44739a9..1bf35b9 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_init_ctrl" 9 "nvme_init_ctrl" "December 2023" "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 5ba6df6..48877e1 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_init_ctrl_list" 9 "nvme_init_ctrl_list" "December 2023" "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_dsm_range.2 b/doc/man/nvme_init_dsm_range.2
index b6cf225..5831d57 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_init_dsm_range" 9 "nvme_init_dsm_range" "December 2023" "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 d47c379..997a226 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_init_logging" 9 "nvme_init_logging" "December 2023" "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 f0614bf..e7073e7 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_insert_tls_key" 9 "nvme_insert_tls_key" "December 2023" "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
new file mode 100644
index 0000000..31ef626
--- /dev/null
+++ b/doc/man/nvme_insert_tls_key_versioned.2
@@ -0,0 +1,37 @@
+.TH "nvme_insert_tls_key_versioned" 9 "nvme_insert_tls_key_versioned" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_insert_tls_key_versioned \- Derive and insert TLS key
+.SH SYNOPSIS
+.B "long" nvme_insert_tls_key_versioned
+.BI "(const char *keyring " ","
+.BI "const char *key_type " ","
+.BI "const char *hostnqn " ","
+.BI "const char *subsysnqn " ","
+.BI "int version " ","
+.BI "int hmac " ","
+.BI "unsigned char *configured_key " ","
+.BI "int key_len " ");"
+.SH ARGUMENTS
+.IP "keyring" 12
+Keyring to use
+.IP "key_type" 12
+Type of the resulting key
+.IP "hostnqn" 12
+Host NVMe Qualified Name
+.IP "subsysnqn" 12
+Subsystem NVMe Qualified Name
+.IP "version" 12
+Key version to use
+.IP "hmac" 12
+HMAC algorithm
+.IP "configured_key" 12
+Configured key data to derive the key from
+.IP "key_len" 12
+Length of \fIconfigured_key\fP
+.SH "DESCRIPTION"
+Derives a 'retained' TLS key as specified in NVMe TCP 1.0a (if
+\fIversion\fP s set to '0') or NVMe TP8028 (if \fIversion\fP is set to '1) and
+stores it as type \fIkey_type\fP in the keyring specified by \fIkeyring\fP.
+.SH "RETURN"
+The key serial number if the key could be inserted into
+the keyring or 0 with errno otherwise.
diff --git a/doc/man/nvme_io.2 b/doc/man/nvme_io.2
index b4f2ca6..2bb1bc0 100644
--- a/doc/man/nvme_io.2
+++ b/doc/man/nvme_io.2
@@ -1,4 +1,4 @@
-.TH "nvme_io" 9 "nvme_io" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_io" 9 "nvme_io" "December 2023" "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 04beddc..ff7b3f2 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_io_control_flags" "December 2023" "API Manual" LINUX
.SH NAME
enum nvme_io_control_flags \- I/O control flags
.SH SYNOPSIS
diff --git a/doc/man/nvme_io_dsm_flags.2 b/doc/man/nvme_io_dsm_flags.2
index 575faa4..e3d6fac 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_io_dsm_flags" "December 2023" "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 00ab695..7405eb3 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_io_mgmt_recv" 9 "nvme_io_mgmt_recv" "December 2023" "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 07bb97b..3cad109 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_io_mgmt_recv_mo" "December 2023" "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 a1e1727..5c31891 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_io_mgmt_send" 9 "nvme_io_mgmt_send" "December 2023" "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 df588ca..329cede 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_io_mgmt_send_mo" "December 2023" "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 3c4a995..bb91743 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_io_opcode" "December 2023" "API Manual" LINUX
.SH NAME
enum nvme_io_opcode \- Opcodes for I/O Commands
.SH SYNOPSIS
diff --git a/doc/man/nvme_io_passthru.2 b/doc/man/nvme_io_passthru.2
index 7f9ab81..738cec5 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_io_passthru" 9 "nvme_io_passthru" "December 2023" "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 970c238..655463f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_io_passthru64" 9 "nvme_io_passthru64" "December 2023" "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 426274d..0e5d965 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_is_64bit_reg" 9 "nvme_is_64bit_reg" "December 2023" "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_lba_range_type.2 b/doc/man/nvme_lba_range_type.2
index 7a00145..0353406 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_lba_range_type" "December 2023" "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 6c8c883..9c094af 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_lba_range_type_entry" "December 2023" "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 3d75ee6..62e383e 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_lba_rd" "December 2023" "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 ca60c7b..5c5972d 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_lba_status" "December 2023" "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 7d55382..41fd749 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_lba_status_atype" "December 2023" "API Manual" LINUX
.SH NAME
enum nvme_lba_status_atype \- Potentially Unrecoverable LBAs
.SH SYNOPSIS
diff --git a/doc/man/nvme_lba_status_desc.2 b/doc/man/nvme_lba_status_desc.2
index 2457296..c186767 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_lba_status_desc" "December 2023" "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 7c3339f..aec23b0 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_lba_status_log" "December 2023" "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 620df2e..bb7166f 100644
--- a/doc/man/nvme_lbaf.2
+++ b/doc/man/nvme_lbaf.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "struct nvme_lbaf" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_lbaf" "December 2023" "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 942c269..15ab339 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_lbaf_rp" "December 2023" "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 1c6f66f..17b46d6 100644
--- a/doc/man/nvme_lbart.2
+++ b/doc/man/nvme_lbart.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "enum nvme_lbart" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_lbart" "December 2023" "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 6efab64..d4590ed 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_lbas_ns_element" "December 2023" "API Manual" LINUX
.SH NAME
struct nvme_lbas_ns_element \- LBA Status Log Namespace Element
.SH SYNOPSIS
diff --git a/doc/man/nvme_lockdown.2 b/doc/man/nvme_lockdown.2
index 6a101a5..6ca9d94 100644
--- a/doc/man/nvme_lockdown.2
+++ b/doc/man/nvme_lockdown.2
@@ -1,4 +1,4 @@
-.TH "nvme_lockdown" 9 "nvme_lockdown" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_lockdown" 9 "nvme_lockdown" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_lockdown \- Issue lockdown command
.SH SYNOPSIS
diff --git a/doc/man/nvme_log_ana_lsp.2 b/doc/man/nvme_log_ana_lsp.2
index 9ccb3ef..ce59f3b 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_log_ana_lsp" "December 2023" "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
new file mode 100644
index 0000000..e350b53
--- /dev/null
+++ b/doc/man/nvme_log_phy_rx_eom_action.2
@@ -0,0 +1,24 @@
+.TH "libnvme" 9 "enum nvme_log_phy_rx_eom_action" "December 2023" "API Manual" LINUX
+.SH NAME
+enum nvme_log_phy_rx_eom_action \- Physical Interface Receiver Eye Opening Measurement Action
+.SH SYNOPSIS
+enum nvme_log_phy_rx_eom_action {
+.br
+.BI " NVME_LOG_PHY_RX_EOM_READ"
+,
+.br
+.br
+.BI " NVME_LOG_PHY_RX_EOM_START_READ"
+,
+.br
+.br
+.BI " NVME_LOG_PHY_RX_EOM_ABORT_CLEAR"
+
+};
+.SH Constants
+.IP "NVME_LOG_PHY_RX_EOM_READ" 12
+Read Log Data
+.IP "NVME_LOG_PHY_RX_EOM_START_READ" 12
+Start Measurement and Read Log Data
+.IP "NVME_LOG_PHY_RX_EOM_ABORT_CLEAR" 12
+Abort Measurement and Clear Log Data
diff --git a/doc/man/nvme_log_phy_rx_eom_quality.2 b/doc/man/nvme_log_phy_rx_eom_quality.2
new file mode 100644
index 0000000..7582334
--- /dev/null
+++ b/doc/man/nvme_log_phy_rx_eom_quality.2
@@ -0,0 +1,24 @@
+.TH "libnvme" 9 "enum nvme_log_phy_rx_eom_quality" "December 2023" "API Manual" LINUX
+.SH NAME
+enum nvme_log_phy_rx_eom_quality \- Physical Interface Receiver Eye Opening Measurement Quality
+.SH SYNOPSIS
+enum nvme_log_phy_rx_eom_quality {
+.br
+.BI " NVME_LOG_PHY_RX_EOM_GOOD"
+,
+.br
+.br
+.BI " NVME_LOG_PHY_RX_EOM_BETTER"
+,
+.br
+.br
+.BI " NVME_LOG_PHY_RX_EOM_BEST"
+
+};
+.SH Constants
+.IP "NVME_LOG_PHY_RX_EOM_GOOD" 12
+<= Better Quality
+.IP "NVME_LOG_PHY_RX_EOM_BETTER" 12
+<= Best Quality, >= Good Quality
+.IP "NVME_LOG_PHY_RX_EOM_BEST" 12
+>= Better Quality
diff --git a/doc/man/nvme_lookup_ctrl.2 b/doc/man/nvme_lookup_ctrl.2
index 410cf85..d086873 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_lookup_ctrl" 9 "nvme_lookup_ctrl" "December 2023" "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 ca85e6d..42f7949 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_lookup_host" 9 "nvme_lookup_host" "December 2023" "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 e6d3665..1718bb3 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_lookup_key" 9 "nvme_lookup_key" "December 2023" "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 e2be918..643ddd8 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_lookup_keyring" 9 "nvme_lookup_keyring" "December 2023" "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 a782a1e..ce039fc 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_lookup_subsystem" 9 "nvme_lookup_subsystem" "December 2023" "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 79b0a6d..28546a4 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_media_unit_config_desc" "December 2023" "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 d95df72..25ea8eb 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_media_unit_stat_desc" "December 2023" "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 8493bff..41a122f 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_media_unit_stat_log" "December 2023" "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 098b235..1a27a6f 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_metadata_element_desc" "December 2023" "API Manual" LINUX
.SH NAME
struct nvme_metadata_element_desc \- Metadata Element Descriptor
.SH SYNOPSIS
diff --git a/doc/man/nvme_mi_admin_admin_passthru.2 b/doc/man/nvme_mi_admin_admin_passthru.2
index e72e6f7..2a31d18 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_admin_passthru" 9 "nvme_mi_admin_admin_passthru" "December 2023" "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 b3862b1..7b4b0b2 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_format_nvm" 9 "nvme_mi_admin_format_nvm" "December 2023" "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 30b536d..98e37ab 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_fw_commit" 9 "nvme_mi_admin_fw_commit" "December 2023" "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 2a87321..1572cd4 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_fw_download" 9 "nvme_mi_admin_fw_download" "December 2023" "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_features_data.2 b/doc/man/nvme_mi_admin_get_features_data.2
index 7edf756..d257c7b 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_features_data" 9 "nvme_mi_admin_get_features_data" "December 2023" "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 4b28da3..e349d09 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log" 9 "nvme_mi_admin_get_log" "December 2023" "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 9f8739a..55e8521 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_ana" 9 "nvme_mi_admin_get_log_ana" "December 2023" "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 820794b..5f49ad0 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_ana_groups" 9 "nvme_mi_admin_get_log_ana_groups" "December 2023" "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_boot_partition.2 b/doc/man/nvme_mi_admin_get_log_boot_partition.2
index 4fa7cf0..7fa1e93 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_boot_partition" 9 "nvme_mi_admin_get_log_boot_partition" "December 2023" "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_ns_list.2 b/doc/man/nvme_mi_admin_get_log_changed_ns_list.2
index c4b9073..4860128 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_changed_ns_list" 9 "nvme_mi_admin_get_log_changed_ns_list" "December 2023" "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 dd575e4..0ba8386 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_cmd_effects" 9 "nvme_mi_admin_get_log_cmd_effects" "December 2023" "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 12cc91e..bb95935 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_create_telemetry_host" 9 "nvme_mi_admin_get_log_create_telemetry_host" "December 2023" "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_device_self_test.2 b/doc/man/nvme_mi_admin_get_log_device_self_test.2
index 794bd6b..3f3748d 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_device_self_test" 9 "nvme_mi_admin_get_log_device_self_test" "December 2023" "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 c8033e3..cac9b51 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_discovery" 9 "nvme_mi_admin_get_log_discovery" "December 2023" "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_endurance_group.2 b/doc/man/nvme_mi_admin_get_log_endurance_group.2
index d3355d3..cec3a1a 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_endurance_group" 9 "nvme_mi_admin_get_log_endurance_group" "December 2023" "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 ea1bacc..2e284ab 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_endurance_grp_evt" 9 "nvme_mi_admin_get_log_endurance_grp_evt" "December 2023" "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 427e836..bb57780 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_error" 9 "nvme_mi_admin_get_log_error" "December 2023" "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 d6a85b2..dd56304 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_fid_supported_effects" 9 "nvme_mi_admin_get_log_fid_supported_effects" "December 2023" "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 87b3b9d..ada0494 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_fw_slot" 9 "nvme_mi_admin_get_log_fw_slot" "December 2023" "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_lba_status.2 b/doc/man/nvme_mi_admin_get_log_lba_status.2
index 3849dee..c908dca 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_lba_status" 9 "nvme_mi_admin_get_log_lba_status" "December 2023" "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_media_unit_stat.2 b/doc/man/nvme_mi_admin_get_log_media_unit_stat.2
index c01e486..ba8e1c5 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_media_unit_stat" 9 "nvme_mi_admin_get_log_media_unit_stat" "December 2023" "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_mi_cmd_supported_effects.2 b/doc/man/nvme_mi_admin_get_log_mi_cmd_supported_effects.2
index b9b5123..14339fb 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_mi_cmd_supported_effects" 9 "nvme_mi_admin_get_log_mi_cmd_supported_effects" "December 2023" "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 5388830..cc18080 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_page" 9 "nvme_mi_admin_get_log_page" "December 2023" "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 00b4cb4..b3784a1 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_persistent_event" 9 "nvme_mi_admin_get_log_persistent_event" "December 2023" "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
new file mode 100644
index 0000000..adc8576
--- /dev/null
+++ b/doc/man/nvme_mi_admin_get_log_phy_rx_eom.2
@@ -0,0 +1,25 @@
+.TH "nvme_mi_admin_get_log_phy_rx_eom" 9 "nvme_mi_admin_get_log_phy_rx_eom" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_mi_admin_get_log_phy_rx_eom \- Retrieve Physical Interface Receiver Eye Opening Measurement Log
+.SH SYNOPSIS
+.B "int" nvme_mi_admin_get_log_phy_rx_eom
+.BI "(nvme_mi_ctrl_t ctrl " ","
+.BI "__u8 lsp " ","
+.BI "__u16 controller " ","
+.BI "__u32 len " ","
+.BI "struct nvme_phy_rx_eom_log *log " ");"
+.SH ARGUMENTS
+.IP "ctrl" 12
+Controller to query
+.IP "lsp" 12
+Log specific, controls action and measurement quality
+.IP "controller" 12
+Target controller ID
+.IP "len" 12
+The allocated size, minimum
+struct nvme_phy_rx_eom_log
+.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_predictable_lat_event.2 b/doc/man/nvme_mi_admin_get_log_predictable_lat_event.2
index 303d65e..ef424a1 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_predictable_lat_event" 9 "nvme_mi_admin_get_log_predictable_lat_event" "December 2023" "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 2b44bef..e9bbf27 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_predictable_lat_nvmset" 9 "nvme_mi_admin_get_log_predictable_lat_nvmset" "December 2023" "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_reservation.2 b/doc/man/nvme_mi_admin_get_log_reservation.2
index 9b95c32..a1bcd0d 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_reservation" 9 "nvme_mi_admin_get_log_reservation" "December 2023" "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_sanitize.2 b/doc/man/nvme_mi_admin_get_log_sanitize.2
index 92d0d39..d4bb654 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_sanitize" 9 "nvme_mi_admin_get_log_sanitize" "December 2023" "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 edfbdd3..aebb307 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_simple" 9 "nvme_mi_admin_get_log_simple" "December 2023" "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 02505d2..9f5cd92 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_smart" 9 "nvme_mi_admin_get_log_smart" "December 2023" "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 35b94ae..5d90369 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_support_cap_config_list" 9 "nvme_mi_admin_get_log_support_cap_config_list" "December 2023" "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 4a22e29..a6d6c4a 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_supported_log_pages" 9 "nvme_mi_admin_get_log_supported_log_pages" "December 2023" "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 1482e97..a95010f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_telemetry_ctrl" 9 "nvme_mi_admin_get_log_telemetry_ctrl" "December 2023" "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 3fc91ca..2dbfd0c 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_telemetry_host" 9 "nvme_mi_admin_get_log_telemetry_host" "December 2023" "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 73bc6fa..1a78124 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_log_zns_changed_zones" 9 "nvme_mi_admin_get_log_zns_changed_zones" "December 2023" "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 cd2f29d..afaafb1 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_get_nsid_log" 9 "nvme_mi_admin_get_nsid_log" "December 2023" "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 cde41dc..c81459b 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_identify" 9 "nvme_mi_admin_identify" "December 2023" "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 64f034d..4ec04e2 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_identify_active_ns_list" 9 "nvme_mi_admin_identify_active_ns_list" "December 2023" "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 e76c411..7934df7 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_identify_allocated_ns" 9 "nvme_mi_admin_identify_allocated_ns" "December 2023" "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 2089b6a..c173ff6 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_identify_allocated_ns_list" 9 "nvme_mi_admin_identify_allocated_ns_list" "December 2023" "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 26dc3f2..9fa997d 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_identify_cns_nsid" 9 "nvme_mi_admin_identify_cns_nsid" "December 2023" "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 57f935a..0f422ed 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_identify_ctrl" 9 "nvme_mi_admin_identify_ctrl" "December 2023" "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 2eccfa3..ad4f894 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_identify_ctrl_list" 9 "nvme_mi_admin_identify_ctrl_list" "December 2023" "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 1b9bc17..e097cc3 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_identify_ns" 9 "nvme_mi_admin_identify_ns" "December 2023" "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 63928af..7cc93c2 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_identify_ns_descs" 9 "nvme_mi_admin_identify_ns_descs" "December 2023" "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 dca8c61..a8ef8f2 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_identify_nsid_ctrl_list" 9 "nvme_mi_admin_identify_nsid_ctrl_list" "December 2023" "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 fa640bb..928daa4 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_identify_partial" 9 "nvme_mi_admin_identify_partial" "December 2023" "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 a44437b..b98c488 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_identify_primary_ctrl" 9 "nvme_mi_admin_identify_primary_ctrl" "December 2023" "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 1ae7f4f..233d43a 100644
--- a/doc/man/nvme_mi_admin_identify_secondary_ctrl_list.2
+++ b/doc/man/nvme_mi_admin_identify_secondary_ctrl_list.2
@@ -1,17 +1,14 @@
-.TH "nvme_mi_admin_identify_secondary_ctrl_list" 9 "nvme_mi_admin_identify_secondary_ctrl_list" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_identify_secondary_ctrl_list" 9 "nvme_mi_admin_identify_secondary_ctrl_list" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_mi_admin_identify_secondary_ctrl_list \- Perform an Admin identify for a secondary controller list.
.SH SYNOPSIS
.B "int" nvme_mi_admin_identify_secondary_ctrl_list
.BI "(nvme_mi_ctrl_t ctrl " ","
-.BI "__u32 nsid " ","
.BI "__u16 cntid " ","
.BI "struct nvme_secondary_ctrl_list *list " ");"
.SH ARGUMENTS
.IP "ctrl" 12
Controller to process identify command
-.IP "nsid" 12
-Namespace ID to specify list start
.IP "cntid" 12
Controller ID to specify list start
.IP "list" 12
diff --git a/doc/man/nvme_mi_admin_ns_attach.2 b/doc/man/nvme_mi_admin_ns_attach.2
index a522d86..43fcc5f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_ns_attach" 9 "nvme_mi_admin_ns_attach" "December 2023" "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 1a16039..478cecf 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_ns_attach_ctrls" 9 "nvme_mi_admin_ns_attach_ctrls" "December 2023" "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 9d84979..ad31755 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_ns_detach_ctrls" 9 "nvme_mi_admin_ns_detach_ctrls" "December 2023" "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 ccc482b..38b53b3 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_admin_req_hdr" "December 2023" "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 4309c4a..f31c5f8 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_admin_resp_hdr" "December 2023" "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 c213d19..6ec8cf9 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_sanitize_nvm" 9 "nvme_mi_admin_sanitize_nvm" "December 2023" "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 89431f1..08aab1d 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_security_recv" 9 "nvme_mi_admin_security_recv" "December 2023" "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 aa3a34e..d74bcac 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_security_send" 9 "nvme_mi_admin_security_send" "December 2023" "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 6574c1b..f596e45 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_admin_xfer" 9 "nvme_mi_admin_xfer" "December 2023" "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 5fbd342..829984c 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_mi_ccs" "December 2023" "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 a30ff6e..e4e5bdd 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_close" 9 "nvme_mi_close" "December 2023" "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 296b158..39bef17 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_close_ctrl" 9 "nvme_mi_close_ctrl" "December 2023" "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 c94c326..56d51c8 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_mi_cmd_supported_effects" "December 2023" "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 e6cd59e..0e2e7b9 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_cmd_supported_effects_log" "December 2023" "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 a0c1494..12ce20e 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_mi_config_id" "December 2023" "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 159674e..6d4e769 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_mi_config_smbus_freq" "December 2023" "API Manual" LINUX
.SH NAME
enum nvme_mi_config_smbus_freq \- SMBus/I2C frequency values
.SH SYNOPSIS
diff --git a/doc/man/nvme_mi_create_root.2 b/doc/man/nvme_mi_create_root.2
index f534272..6c6eeb0 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_create_root" 9 "nvme_mi_create_root" "December 2023" "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 491531b..7e75028 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_mi_csts" "December 2023" "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 1876dcc..5b25af6 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_ctrl_health_status" "December 2023" "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 2207e92..378624f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_ctrl_id" 9 "nvme_mi_ctrl_id" "December 2023" "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 5bbf73e..af6b721 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_mi_cwarn" "December 2023" "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 3e70e9a..773fc24 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_mi_dtyp" "December 2023" "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 533ffb3..c93ece0 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_mi_elem" "December 2023" "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 742278d..1692c82 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_free_root" 9 "nvme_mi_free_root" "December 2023" "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 bacee80..96762dd 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_init_ctrl" 9 "nvme_mi_init_ctrl" "December 2023" "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 a7294af..49f424e 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_mi_message_type" "December 2023" "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 3565a55..4784744 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_mi_mi_opcode" "December 2023" "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 f528989..aff9442 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_mi_read_mi_data_ctrl" 9 "nvme_mi_mi_read_mi_data_ctrl" "December 2023" "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 0953b33..0477f96 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_mi_read_mi_data_ctrl_list" 9 "nvme_mi_mi_read_mi_data_ctrl_list" "December 2023" "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 8a04102..ae6e440 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_mi_read_mi_data_port" 9 "nvme_mi_mi_read_mi_data_port" "December 2023" "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 00578e9..99b7b98 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_mi_read_mi_data_subsys" 9 "nvme_mi_mi_read_mi_data_subsys" "December 2023" "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 9475c41..fc0f54e 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_mi_req_hdr" "December 2023" "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 47ac73b..11aa0cb 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_mi_resp_hdr" "December 2023" "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 b601a97..e69ff02 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_mi_subsystem_health_status_poll" 9 "nvme_mi_mi_subsystem_health_status_poll" "December 2023" "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_msg_hdr.2 b/doc/man/nvme_mi_msg_hdr.2
index bad5afe..42440b2 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_msg_hdr" "December 2023" "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 c51ea53..b5e9bab 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_msg_resp" "December 2023" "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 f66e82e..7898d7c 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_nvm_ss_health_status" "December 2023" "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 ceff350..52c4f4f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_open_mctp" 9 "nvme_mi_open_mctp" "December 2023" "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 3217aa1..61d0b1e 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_osc" "December 2023" "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 76e4463..dcb4636 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_port_pcie" "December 2023" "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 ef7c6c9..1199aa7 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_port_smb" "December 2023" "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 2b8d5e4..9f40eba 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_read_ctrl_info" "December 2023" "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 2fcd925..3fbdeac 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_read_nvm_ss_info" "December 2023" "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 b14e8ac..6f59922 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_read_port_info" "December 2023" "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 5f3f6b2..e9621a6 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_read_sc_list" "December 2023" "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 253d114..643bb03 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_mi_resp_status" "December 2023" "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 05ce08a..6520c35 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_set_probe_enabled" 9 "nvme_mi_set_probe_enabled" "December 2023" "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 cb494ce..53ad200 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_mi_status_to_string" 9 "nvme_mi_status_to_string" "December 2023" "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 d0ba148..a39416f 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_vpd_hdr" "December 2023" "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 2d8ab54..6fba15d 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_vpd_mr_common" "December 2023" "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 1533262..ecee45e 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_vpd_mra" "December 2023" "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 37e0966..24cc34f 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_vpd_ppmra" "December 2023" "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 b73e9f3..9b9aace 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_vpd_telem" "December 2023" "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 c7fbff2..9d52315 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_mi_vpd_tra" "December 2023" "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 40be8fc..d19e0e1 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_namespace_attach_ctrls" 9 "nvme_namespace_attach_ctrls" "December 2023" "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 fdaf0d7..5fe8831 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_namespace_detach_ctrls" 9 "nvme_namespace_detach_ctrls" "December 2023" "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 41dbc2b..aca48cf 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_namespace_filter" 9 "nvme_namespace_filter" "December 2023" "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 b3fbd61..335cf37 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_namespace_first_path" 9 "nvme_namespace_first_path" "December 2023" "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 6094a21..7c94511 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_namespace_for_each_path" 9 "nvme_namespace_for_each_path" "December 2023" "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 f75bea9..b853dce 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_namespace_for_each_path_safe" 9 "nvme_namespace_for_each_path_safe" "December 2023" "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 7e5f843..dc76cb2 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_namespace_next_path" 9 "nvme_namespace_next_path" "December 2023" "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 53c921e..9498474 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_nbft_free" 9 "nvme_nbft_free" "December 2023" "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 0c8534a..ea42445 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_nbft_read" 9 "nvme_nbft_read" "December 2023" "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 eaafcfa..7699436 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_nd_ns_fpi" "December 2023" "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 4964e70..f499f64 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_next_host" 9 "nvme_next_host" "December 2023" "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 08fa802..66c4694 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_next_subsystem" 9 "nvme_next_subsystem" "December 2023" "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 d435197..a52a779 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_attach" 9 "nvme_ns_attach" "December 2023" "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 98f6c55..8815dc8 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_attach_ctrls" 9 "nvme_ns_attach_ctrls" "December 2023" "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 6ed3541..7a69771 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ns_attach_sel" "December 2023" "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 89ffdc8..482e544 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_compare" 9 "nvme_ns_compare" "December 2023" "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 b1d5313..606f65b 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_detach_ctrls" 9 "nvme_ns_detach_ctrls" "December 2023" "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 c19f1ee..5140159 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_flush" 9 "nvme_ns_flush" "December 2023" "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 5a8e279..0e69fd8 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_get_csi" 9 "nvme_ns_get_csi" "December 2023" "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 af12b9c..c231066 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_get_ctrl" 9 "nvme_ns_get_ctrl" "December 2023" "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 29129f7..8ee77d5 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_get_eui64" 9 "nvme_ns_get_eui64" "December 2023" "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 c58e71e..aac4306 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_get_fd" 9 "nvme_ns_get_fd" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_ns_get_fd \- Get associated file descriptor
.SH SYNOPSIS
@@ -7,5 +7,12 @@ nvme_ns_get_fd \- Get associated file descriptor
.SH ARGUMENTS
.IP "n" 12
Namespace instance
+.SH "DESCRIPTION"
+libnvme will \fBopen\fP the file (if not already opened) and keep
+an internal copy of the file descriptor. Following calls to
+this API retrieve the internal cached copy of the file
+descriptor. The file will remain opened and the fd will
+remain cached until the ns object is deleted or
+\fBnvme_ns_release_fd\fP is called.
.SH "RETURN"
File descriptor associated with \fIn\fP or -1
diff --git a/doc/man/nvme_ns_get_firmware.2 b/doc/man/nvme_ns_get_firmware.2
index 82cd548..fefa576 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_get_firmware" 9 "nvme_ns_get_firmware" "December 2023" "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 3bfc4f7..f5b9ba4 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_get_generic_name" 9 "nvme_ns_get_generic_name" "December 2023" "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 41394b5..8d80552 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_get_lba_count" 9 "nvme_ns_get_lba_count" "December 2023" "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 3c97f48..3d1a591 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_get_lba_size" 9 "nvme_ns_get_lba_size" "December 2023" "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 01199ac..0cc6866 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_get_lba_util" 9 "nvme_ns_get_lba_util" "December 2023" "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 c348c7e..8a42e75 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_get_meta_size" 9 "nvme_ns_get_meta_size" "December 2023" "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 67ac637..13e35fc 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_get_model" 9 "nvme_ns_get_model" "December 2023" "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 31662ad..510b736 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_get_name" 9 "nvme_ns_get_name" "December 2023" "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 adef802..81b8965 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_get_nguid" 9 "nvme_ns_get_nguid" "December 2023" "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 e5312c9..516647f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_get_nsid" 9 "nvme_ns_get_nsid" "December 2023" "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 3c081ff..219531b 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_get_serial" 9 "nvme_ns_get_serial" "December 2023" "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 05b5afb..3dad500 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_get_subsystem" 9 "nvme_ns_get_subsystem" "December 2023" "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 a04f4c9..d1cdd7c 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_get_sysfs_dir" 9 "nvme_ns_get_sysfs_dir" "December 2023" "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 d268c54..ba8b207 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_get_uuid" 9 "nvme_ns_get_uuid" "December 2023" "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 80415ab..c005f91 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_ns_id_desc" "December 2023" "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 1ae314d..004bf1d 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ns_id_desc_nidt" "December 2023" "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 ca44156..8171518 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_identify" 9 "nvme_ns_identify" "December 2023" "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 64ee0da..b7400a4 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_identify_descs" 9 "nvme_ns_identify_descs" "December 2023" "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 6bffd4b..bd3b280 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_ns_list" "December 2023" "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 ef90a67..4aaed69 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ns_metadata_type" "December 2023" "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 e7bdfd9..549acd0 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_mgmt" 9 "nvme_ns_mgmt" "December 2023" "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 057f60b..b2dccac 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_mgmt_create" 9 "nvme_ns_mgmt_create" "December 2023" "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 83970ae..a8eddce 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_mgmt_delete" 9 "nvme_ns_mgmt_delete" "December 2023" "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_host_sw_specified.2 b/doc/man/nvme_ns_mgmt_host_sw_specified.2
index 46c9f9c..455a235 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_ns_mgmt_host_sw_specified" "December 2023" "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 68eb862..5d9ee16 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ns_mgmt_sel" "December 2023" "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 c2697d7..c426c41 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_read" 9 "nvme_ns_read" "December 2023" "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
new file mode 100644
index 0000000..b1c1b68
--- /dev/null
+++ b/doc/man/nvme_ns_release_fd.2
@@ -0,0 +1,9 @@
+.TH "nvme_ns_release_fd" 9 "nvme_ns_release_fd" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_ns_release_fd \- Close fd and clear fd from ns object
+.SH SYNOPSIS
+.B "void" nvme_ns_release_fd
+.BI "(nvme_ns_t n " ");"
+.SH ARGUMENTS
+.IP "n" 12
+Namespace instance
diff --git a/doc/man/nvme_ns_rescan.2 b/doc/man/nvme_ns_rescan.2
index 3f88875..458d111 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_rescan" 9 "nvme_ns_rescan" "December 2023" "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 0b3ff46..4d9cda3 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_verify" 9 "nvme_ns_verify" "December 2023" "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 290c0c6..e864cdf 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_write" 9 "nvme_ns_write" "December 2023" "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 96f0fa9..3a645aa 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_ns_write_protect_cfg" "December 2023" "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 ff3cedf..5de6f4e 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_write_uncorrectable" 9 "nvme_ns_write_uncorrectable" "December 2023" "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 4469c6c..d14921f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_ns_write_zeros" 9 "nvme_ns_write_zeros" "December 2023" "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 b34dff9..92d44fd 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_nss_hw_err_event" "December 2023" "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 5ee4066..3dbb175 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_nvm_id_ns" "December 2023" "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 56bc5ea..a9808f3 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_nvm_id_ns_elbaf" "December 2023" "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_identify_ctrl.2 b/doc/man/nvme_nvm_identify_ctrl.2
index b6aa4d4..6e49693 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_nvm_identify_ctrl" 9 "nvme_nvm_identify_ctrl" "December 2023" "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 ffe0737..9c166cb 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_nvmeset_pl_status" "December 2023" "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 be4b38d..844ada9 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_nvmset_attr" "December 2023" "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 5099602..a26b38d 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_nvmset_pl_events" "December 2023" "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 582999d..5b5a2e3 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_nvmset_predictable_lat_log" "December 2023" "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 628afa4..c87dfa5 100644
--- a/doc/man/nvme_open.2
+++ b/doc/man/nvme_open.2
@@ -1,4 +1,4 @@
-.TH "nvme_open" 9 "nvme_open" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_open" 9 "nvme_open" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_open \- Open an nvme controller or namespace device
.SH SYNOPSIS
diff --git a/doc/man/nvme_passthru_cmd.2 b/doc/man/nvme_passthru_cmd.2
index 81ccb2b..aeb0285 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_passthru_cmd" "December 2023" "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 d34cb92..f6699b4 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_passthru_cmd64" "December 2023" "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 d00d4b4..2fb15c6 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_path_get_ana_state" 9 "nvme_path_get_ana_state" "December 2023" "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 da682c7..70d16d3 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_path_get_ctrl" 9 "nvme_path_get_ctrl" "December 2023" "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 b99892c..41a1cb0 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_path_get_name" 9 "nvme_path_get_name" "December 2023" "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 9680b6c..de038b1 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_path_get_ns" 9 "nvme_path_get_ns" "December 2023" "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 ae262b9..8d9f898 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_path_get_sysfs_dir" 9 "nvme_path_get_sysfs_dir" "December 2023" "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 69f25bc..1050912 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_paths_filter" 9 "nvme_paths_filter" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_paths_filter \- Filter for paths
.SH SYNOPSIS
diff --git a/doc/man/nvme_persistent_event_entry.2 b/doc/man/nvme_persistent_event_entry.2
index 1fb0bd1..f39fd93 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_persistent_event_entry" "December 2023" "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 e5c042b..2aa724e 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_persistent_event_log" "December 2023" "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 67be426..31cd645 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_persistent_event_types" "December 2023" "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 c84d51c..41506b8 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_pevent_log_action" "December 2023" "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
new file mode 100644
index 0000000..b66f68c
--- /dev/null
+++ b/doc/man/nvme_phy_rx_eom_log.2
@@ -0,0 +1,99 @@
+.TH "libnvme" 9 "struct nvme_phy_rx_eom_log" "December 2023" "API Manual" LINUX
+.SH NAME
+struct nvme_phy_rx_eom_log \- Physical Interface Receiver Eye Opening Measurement Log
+.SH SYNOPSIS
+struct nvme_phy_rx_eom_log {
+.br
+.BI " __u8 lid;"
+.br
+.BI " __u8 eomip;"
+.br
+.BI " __le16 hsize;"
+.br
+.BI " __le32 rsize;"
+.br
+.BI " __u8 eomdgn;"
+.br
+.BI " __u8 lr;"
+.br
+.BI " __u8 odp;"
+.br
+.BI " __u8 lanes;"
+.br
+.BI " __u8 epl;"
+.br
+.BI " __u8 lspfc;"
+.br
+.BI " __u8 li;"
+.br
+.BI " __u8 rsvd15[3];"
+.br
+.BI " __le16 lsic;"
+.br
+.BI " __le32 dsize;"
+.br
+.BI " __le16 nd;"
+.br
+.BI " __le16 maxtb;"
+.br
+.BI " __le16 maxlr;"
+.br
+.BI " __le16 etgood;"
+.br
+.BI " __le16 etbetter;"
+.br
+.BI " __le16 etbest;"
+.br
+.BI " __u8 rsvd36[28];"
+.br
+.BI " struct nvme_eom_lane_desc descs[];"
+.br
+.BI "
+};
+.br
+
+.SH Members
+.IP "lid" 12
+Log Identifier
+.IP "eomip" 12
+EOM In Progress
+.IP "hsize" 12
+Header Size
+.IP "rsize" 12
+Result Size
+.IP "eomdgn" 12
+EOM Data Generation Number
+.IP "lr" 12
+Log Revision
+.IP "odp" 12
+Optional Data Present
+.IP "lanes" 12
+Number of lanes configured for this port
+.IP "epl" 12
+Eyes Per Lane
+.IP "lspfc" 12
+Log Specific Parameter Field Copy
+.IP "li" 12
+Link Information
+.IP "rsvd15" 12
+Reserved
+.IP "lsic" 12
+Log Specific Identifier Copy
+.IP "dsize" 12
+Descriptor Size
+.IP "nd" 12
+Number of Descriptors
+.IP "maxtb" 12
+Maximum Top Bottom
+.IP "maxlr" 12
+Maximum Left Right
+.IP "etgood" 12
+Estimated Time for Good Quality
+.IP "etbetter" 12
+Estimated Time for Better Quality
+.IP "etbest" 12
+Estimated Time for Best Quality
+.IP "rsvd36" 12
+Reserved
+.IP "descs" 12
+EOM Lane Descriptors
diff --git a/doc/man/nvme_phy_rx_eom_progress.2 b/doc/man/nvme_phy_rx_eom_progress.2
new file mode 100644
index 0000000..79f46db
--- /dev/null
+++ b/doc/man/nvme_phy_rx_eom_progress.2
@@ -0,0 +1,24 @@
+.TH "libnvme" 9 "enum nvme_phy_rx_eom_progress" "December 2023" "API Manual" LINUX
+.SH NAME
+enum nvme_phy_rx_eom_progress \- EOM In Progress Values
+.SH SYNOPSIS
+enum nvme_phy_rx_eom_progress {
+.br
+.BI " NVME_PHY_RX_EOM_NOT_STARTED"
+,
+.br
+.br
+.BI " NVME_PHY_RX_EOM_IN_PROGRESS"
+,
+.br
+.br
+.BI " NVME_PHY_RX_EOM_COMPLETED"
+
+};
+.SH Constants
+.IP "NVME_PHY_RX_EOM_NOT_STARTED" 12
+EOM Not Started
+.IP "NVME_PHY_RX_EOM_IN_PROGRESS" 12
+EOM In Progress
+.IP "NVME_PHY_RX_EOM_COMPLETED" 12
+EOM Completed
diff --git a/doc/man/nvme_plm_config.2 b/doc/man/nvme_plm_config.2
index c0886fd..7e80c10 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_plm_config" "December 2023" "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 bf6aad9..0935cd6 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_pmr_size" 9 "nvme_pmr_size" "December 2023" "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 d0df4d6..1c187dd 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_pmr_throughput" 9 "nvme_pmr_throughput" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_pmr_throughput \- Calculate throughput of persistent memory buffer
.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 834b032..42349a2 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_power_on_reset_info_list" "December 2023" "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 9ab721b..051b4af 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_primary_ctrl_cap" "December 2023" "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 b7d24c4..3a362cc 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_psd_flags" "December 2023" "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 27d28aa..2af4b51 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_psd_power_scale" 9 "nvme_psd_power_scale" "December 2023" "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 2f9d3f3..b10232c 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_psd_ps" "December 2023" "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 dddb9d3..b7ff7fa 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_psd_workload" "December 2023" "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_read.2 b/doc/man/nvme_read.2
index ec2f3ec..56e87a0 100644
--- a/doc/man/nvme_read.2
+++ b/doc/man/nvme_read.2
@@ -1,4 +1,4 @@
-.TH "nvme_read" 9 "nvme_read" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_read" 9 "nvme_read" "December 2023" "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 75200ef..9353b63 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_read_config" 9 "nvme_read_config" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_read_config \- Read NVMe JSON configuration file
.SH SYNOPSIS
diff --git a/doc/man/nvme_refresh_topology.2 b/doc/man/nvme_refresh_topology.2
index d14cf6a..d4c6b64 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_refresh_topology" 9 "nvme_refresh_topology" "December 2023" "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 605d67d..c0f7ef3 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_register_offsets" "December 2023" "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 bf10ec0..5728eff 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_registered_ctrl" "December 2023" "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 351d011..c9795de 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_registered_ctrl_ext" "December 2023" "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 e634ed5..ff27f48 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_rescan_ctrl" 9 "nvme_rescan_ctrl" "December 2023" "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 7453c59..0323e69 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_resv_acquire" 9 "nvme_resv_acquire" "December 2023" "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 09da5c7..e1f7da8 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_resv_cptpl" "December 2023" "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 78d7770..6799fbc 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_resv_notification_log" "December 2023" "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 218f7fd..29914e4 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_resv_notify_rnlpt" "December 2023" "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 462849d..5dd5dec 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_resv_racqa" "December 2023" "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 b9a9c62..0ae94e6 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_resv_register" 9 "nvme_resv_register" "December 2023" "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 6c5a711..5b17049 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_resv_release" 9 "nvme_resv_release" "December 2023" "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 9053502..8a16bc9 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_resv_report" 9 "nvme_resv_report" "December 2023" "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 0d994c7..16a40a8 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_resv_rrega" "December 2023" "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 1163c2b..277d255 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_resv_rrela" "December 2023" "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 53d1bd7..83d6bb2 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_resv_rtype" "December 2023" "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 e61190a..35c08b1 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_resv_status" "December 2023" "API Manual" LINUX
.SH NAME
struct nvme_resv_status \- Reservation Status Data Structure
.SH SYNOPSIS
diff --git a/doc/man/nvme_sanitize_compln_event.2 b/doc/man/nvme_sanitize_compln_event.2
index cee384b..2ea1361 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_sanitize_compln_event" "December 2023" "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 1f5bf66..dc4730a 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_sanitize_log_page" "December 2023" "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 359856a..3dfed95 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_sanitize_nvm" 9 "nvme_sanitize_nvm" "December 2023" "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 9a37206..959c06b 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_sanitize_sanact" "December 2023" "API Manual" LINUX
.SH NAME
enum nvme_sanitize_sanact \- Sanitize Action
.SH SYNOPSIS
diff --git a/doc/man/nvme_sanitize_sstat.2 b/doc/man/nvme_sanitize_sstat.2
index 15eb25e..3cbafb9 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_sanitize_sstat" "December 2023" "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 e80dbcf..1ddcba9 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_sanitize_start_event" "December 2023" "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 0d51726..6aeaa99 100644
--- a/doc/man/nvme_scan.2
+++ b/doc/man/nvme_scan.2
@@ -1,4 +1,4 @@
-.TH "nvme_scan" 9 "nvme_scan" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_scan" 9 "nvme_scan" "December 2023" "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 b3c4363..598618f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_scan_ctrl" 9 "nvme_scan_ctrl" "December 2023" "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 950c429..b1cf3e9 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_scan_ctrl_namespace_paths" 9 "nvme_scan_ctrl_namespace_paths" "December 2023" "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 ea73d72..d3d2fa8 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_scan_ctrl_namespaces" 9 "nvme_scan_ctrl_namespaces" "December 2023" "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 43bc789..6da462e 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_scan_ctrls" 9 "nvme_scan_ctrls" "December 2023" "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 b5ca690..7933bf9 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_scan_namespace" 9 "nvme_scan_namespace" "December 2023" "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 ad74f8a..66d1ae3 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_scan_subsystem_namespaces" 9 "nvme_scan_subsystem_namespaces" "December 2023" "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 794caf8..10f04e4 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_scan_subsystems" 9 "nvme_scan_subsystems" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_scan_subsystems \- Scan for subsystems
.SH SYNOPSIS
diff --git a/doc/man/nvme_scan_topology.2 b/doc/man/nvme_scan_topology.2
index 4cd6bf7..965c9f4 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_scan_topology" 9 "nvme_scan_topology" "December 2023" "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 91516a4..b77bbce 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_secondary_ctrl" "December 2023" "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 1a67f7a..28fb948 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_secondary_ctrl_list" "December 2023" "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 cbbb0af..2e4a53f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_security_receive" 9 "nvme_security_receive" "December 2023" "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 dc889d6..4507c27 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_security_send" 9 "nvme_security_send" "December 2023" "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 2117bb5..75466bf 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_self_test_log" "December 2023" "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_feature_event.2 b/doc/man/nvme_set_feature_event.2
index 56e950f..3416e73 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_set_feature_event" "December 2023" "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 f7d4afc..76ab6f9 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features" 9 "nvme_set_features" "December 2023" "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 6b0d504..4146f7e 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_arbitration" 9 "nvme_set_features_arbitration" "December 2023" "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 b9e365b..4e43de4 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_async_event" 9 "nvme_set_features_async_event" "December 2023" "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 d983f6b..a533cad 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_auto_pst" 9 "nvme_set_features_auto_pst" "December 2023" "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 6723d92..ac662b6 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_data" 9 "nvme_set_features_data" "December 2023" "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 d2e319a..4a998c3 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_endurance_evt_cfg" 9 "nvme_set_features_endurance_evt_cfg" "December 2023" "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 2cac43a..3bc82e9 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_err_recovery" 9 "nvme_set_features_err_recovery" "December 2023" "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 310a987..b8e539d 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_hctm" 9 "nvme_set_features_hctm" "December 2023" "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 995905b..dae2c71 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_host_behavior" 9 "nvme_set_features_host_behavior" "December 2023" "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 f548497..d829ab8 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_host_id" 9 "nvme_set_features_host_id" "December 2023" "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
new file mode 100644
index 0000000..d550bb3
--- /dev/null
+++ b/doc/man/nvme_set_features_iocs_profile.2
@@ -0,0 +1,18 @@
+.TH "nvme_set_features_iocs_profile" 9 "nvme_set_features_iocs_profile" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_set_features_iocs_profile \- Set I/O command set profile feature
+.SH SYNOPSIS
+.B "int" nvme_set_features_iocs_profile
+.BI "(int fd " ","
+.BI "__u16 iocsi " ","
+.BI "bool save " ");"
+.SH ARGUMENTS
+.IP "fd" 12
+File descriptor of nvme device
+.IP "iocsi" 12
+I/O Command Set Combination Index
+.IP "save" 12
+Save value across power states
+.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_set_features_irq_coalesce.2 b/doc/man/nvme_set_features_irq_coalesce.2
index 89a57dc..d1fbfe6 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_irq_coalesce" 9 "nvme_set_features_irq_coalesce" "December 2023" "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 80c2e17..8a12acd 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_irq_config" 9 "nvme_set_features_irq_config" "December 2023" "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 133afe2..ea4b77a 100644
--- a/doc/man/nvme_set_features_lba_range.2
+++ b/doc/man/nvme_set_features_lba_range.2
@@ -1,11 +1,11 @@
-.TH "nvme_set_features_lba_range" 9 "nvme_set_features_lba_range" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_lba_range" 9 "nvme_set_features_lba_range" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_set_features_lba_range \- Set LBA range feature
.SH SYNOPSIS
.B "int" nvme_set_features_lba_range
.BI "(int fd " ","
.BI "__u32 nsid " ","
-.BI "__u32 nr_ranges " ","
+.BI "__u8 nr_ranges " ","
.BI "bool save " ","
.BI "struct nvme_lba_range_type *data " ","
.BI "__u32 *result " ");"
diff --git a/doc/man/nvme_set_features_lba_sts_interval.2 b/doc/man/nvme_set_features_lba_sts_interval.2
index 4f1d1d6..48daa5e 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_lba_sts_interval" 9 "nvme_set_features_lba_sts_interval" "December 2023" "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 58d642c..735f45b 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_nopsc" 9 "nvme_set_features_nopsc" "December 2023" "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 637c071..df6361d 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_plm_config" 9 "nvme_set_features_plm_config" "December 2023" "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 64cc02c..9a3c278 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_plm_window" 9 "nvme_set_features_plm_window" "December 2023" "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 51d6671..928bf13 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_power_mgmt" 9 "nvme_set_features_power_mgmt" "December 2023" "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 395a42e..38c2d8f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_resv_mask" 9 "nvme_set_features_resv_mask" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_set_features_resv_mask \- Set reservation notification mask feature
.SH SYNOPSIS
@@ -16,6 +16,10 @@ Reservation Notification Mask Field
Save value across power states
.IP "result" 12
The command completion result from CQE dword0
+.SH "DESCRIPTION"
+
+Deprecated: doesn't support specifying a NSID.
+Use \fBnvme_set_features_resv_mask2\fP instead.
.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_set_features_resv_mask2.2 b/doc/man/nvme_set_features_resv_mask2.2
new file mode 100644
index 0000000..ea42407
--- /dev/null
+++ b/doc/man/nvme_set_features_resv_mask2.2
@@ -0,0 +1,24 @@
+.TH "nvme_set_features_resv_mask2" 9 "nvme_set_features_resv_mask2" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_set_features_resv_mask2 \- Set reservation notification mask feature
+.SH SYNOPSIS
+.B "int" nvme_set_features_resv_mask2
+.BI "(int fd " ","
+.BI "__u32 nsid " ","
+.BI "__u32 mask " ","
+.BI "bool save " ","
+.BI "__u32 *result " ");"
+.SH ARGUMENTS
+.IP "fd" 12
+File descriptor of nvme device
+.IP "nsid" 12
+Namespace ID
+.IP "mask" 12
+Reservation Notification Mask Field
+.IP "save" 12
+Save value across power states
+.IP "result" 12
+The command completion result from CQE dword0
+.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_set_features_resv_persist.2 b/doc/man/nvme_set_features_resv_persist.2
index d83f670..19a3b9f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_resv_persist" 9 "nvme_set_features_resv_persist" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_set_features_resv_persist \- Set persist through power loss feature
.SH SYNOPSIS
@@ -16,6 +16,10 @@ Persist Through Power Loss
Save value across power states
.IP "result" 12
The command completion result from CQE dword0
+.SH "DESCRIPTION"
+
+Deprecated: doesn't support specifying a NSID.
+Use \fBnvme_set_features_resv_persist2\fP instead.
.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_set_features_resv_persist2.2 b/doc/man/nvme_set_features_resv_persist2.2
new file mode 100644
index 0000000..d781a1e
--- /dev/null
+++ b/doc/man/nvme_set_features_resv_persist2.2
@@ -0,0 +1,24 @@
+.TH "nvme_set_features_resv_persist2" 9 "nvme_set_features_resv_persist2" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_set_features_resv_persist2 \- Set persist through power loss feature
+.SH SYNOPSIS
+.B "int" nvme_set_features_resv_persist2
+.BI "(int fd " ","
+.BI "__u32 nsid " ","
+.BI "bool ptpl " ","
+.BI "bool save " ","
+.BI "__u32 *result " ");"
+.SH ARGUMENTS
+.IP "fd" 12
+File descriptor of nvme device
+.IP "nsid" 12
+Namespace ID
+.IP "ptpl" 12
+Persist Through Power Loss
+.IP "save" 12
+Save value across power states
+.IP "result" 12
+The command completion result from CQE dword0
+.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_set_features_rrl.2 b/doc/man/nvme_set_features_rrl.2
index 736e272..f159bc4 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_rrl" 9 "nvme_set_features_rrl" "December 2023" "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 7904355..5beb10c 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_sanitize" 9 "nvme_set_features_sanitize" "December 2023" "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 288272c..902fa6e 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_simple" 9 "nvme_set_features_simple" "December 2023" "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 8ce8ece..4190650 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_sw_progress" 9 "nvme_set_features_sw_progress" "December 2023" "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 c91b1af..28555da 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_temp_thresh" 9 "nvme_set_features_temp_thresh" "December 2023" "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 33b06bc..6f3608e 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_timestamp" 9 "nvme_set_features_timestamp" "December 2023" "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 415f3f1..d100d8b 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_volatile_wc" 9 "nvme_set_features_volatile_wc" "December 2023" "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 4f9f691..a773bc1 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_write_atomic" 9 "nvme_set_features_write_atomic" "December 2023" "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 aff3417..fbb0709 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_features_write_protect" 9 "nvme_set_features_write_protect" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_set_features_write_protect \- Set write protect feature
.SH SYNOPSIS
@@ -16,6 +16,10 @@ Write Protection State
Save value across power states
.IP "result" 12
The command completion result from CQE dword0
+.SH "DESCRIPTION"
+
+Deprecated: doesn't support specifying a NSID.
+Use \fBnvme_set_features_write_protect2\fP instead.
.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_set_features_write_protect2.2 b/doc/man/nvme_set_features_write_protect2.2
new file mode 100644
index 0000000..178afdd
--- /dev/null
+++ b/doc/man/nvme_set_features_write_protect2.2
@@ -0,0 +1,24 @@
+.TH "nvme_set_features_write_protect2" 9 "nvme_set_features_write_protect2" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_set_features_write_protect2 \- Set write protect feature
+.SH SYNOPSIS
+.B "int" nvme_set_features_write_protect2
+.BI "(int fd " ","
+.BI "__u32 nsid " ","
+.BI "enum nvme_feat_nswpcfg_state state " ","
+.BI "bool save " ","
+.BI "__u32 *result " ");"
+.SH ARGUMENTS
+.IP "fd" 12
+File descriptor of nvme device
+.IP "nsid" 12
+Namespace ID
+.IP "state" 12
+Write Protection State
+.IP "save" 12
+Save value across power states
+.IP "result" 12
+The command completion result from CQE dword0
+.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_set_keyring.2 b/doc/man/nvme_set_keyring.2
index a2f0ca7..1d890e3 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_keyring" 9 "nvme_set_keyring" "December 2023" "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 febbbed..d1ed6c8 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_set_property" 9 "nvme_set_property" "December 2023" "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
new file mode 100644
index 0000000..78ca543
--- /dev/null
+++ b/doc/man/nvme_set_root.2
@@ -0,0 +1,16 @@
+.TH "nvme_set_root" 9 "nvme_set_root" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_set_root \- Set nvme_root_t context
+.SH SYNOPSIS
+.B "void" nvme_set_root
+.BI "(nvme_root_t r " ");"
+.SH ARGUMENTS
+.IP "r" 12
+nvme_root_t context
+.SH "DESCRIPTION"
+In order to be able to log from code paths where no root object is passed in
+via the arguments use the the default one which can be set via this call.
+When creating a new root object with \fInvme_create_root\fP the global root object
+will be set as well. This means the global root object is always pointing to
+the latest created root object. Note the first \fInvme_free_tree\fP call will reset
+the global root object.
diff --git a/doc/man/nvme_smart_crit.2 b/doc/man/nvme_smart_crit.2
index f4a034f..745bb0b 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_smart_crit" "December 2023" "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 f3399c1..f5fb16c 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_smart_egcw" "December 2023" "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 b2a80ee..ed19172 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_smart_log" "December 2023" "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 bac55dc..227ffb8 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_st_code" "December 2023" "API Manual" LINUX
.SH NAME
enum nvme_st_code \- Self-test Code value
.SH SYNOPSIS
diff --git a/doc/man/nvme_st_curr_op.2 b/doc/man/nvme_st_curr_op.2
index 3c10880..f1782cf 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_st_curr_op" "December 2023" "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 e787d09..db515dd 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_st_result" "December 2023" "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 174aaa3..5c8227e 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_st_valid_diag_info" "December 2023" "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 08d3ada..8d12ed7 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_status_code" 9 "nvme_status_code" "December 2023" "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 29a3631..cecfdc1 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_status_code_type" 9 "nvme_status_code_type" "December 2023" "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 e46df00..468c602 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_status_equals" 9 "nvme_status_equals" "December 2023" "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 4f6d3ae..55a6c63 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_status_field" "December 2023" "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
@@ -432,6 +432,22 @@ enum nvme_status_field {
,
.br
.br
+.BI " NVME_SC_INCOMPATIBLE_NS"
+,
+.br
+.br
+.BI " NVME_SC_FAST_COPY_NOT_POSSIBLE"
+,
+.br
+.br
+.BI " NVME_SC_OVERLAPPING_IO_RANGE"
+,
+.br
+.br
+.BI " NVME_SC_INSUFFICIENT_RESOURCES"
+,
+.br
+.br
.BI " NVME_SC_CONNECT_FORMAT"
,
.br
@@ -1027,6 +1043,25 @@ Invalid Protection Information
Attempted Write to Read Only Range
.IP "NVME_SC_CMD_SIZE_LIMIT_EXCEEDED" 12
Command Size Limit Exceeded
+.IP "NVME_SC_INCOMPATIBLE_NS" 12
+Incompatible Namespace or Format: At
+least one source namespace and the
+destination namespace have incompatible
+formats.
+.IP "NVME_SC_FAST_COPY_NOT_POSSIBLE" 12
+Fast Copy Not Possible: The Fast Copy
+Only (FCO) bit was set to ‘1’ in a Source
+Range entry and the controller was not
+able to use fast copy operations to copy
+the specified data.
+.IP "NVME_SC_OVERLAPPING_IO_RANGE" 12
+Overlapping I/O Range: A source logical
+block range overlaps the destination
+logical block range.
+.IP "NVME_SC_INSUFFICIENT_RESOURCES" 12
+Insufficient Resources: A resource
+shortage prevented the controller from
+performing the requested copy.
.IP "NVME_SC_CONNECT_FORMAT" 12
Incompatible Format: The NVM subsystem
does not support the record format
diff --git a/doc/man/nvme_status_get_type.2 b/doc/man/nvme_status_get_type.2
index ded575d..6f575b4 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_status_get_type" 9 "nvme_status_get_type" "December 2023" "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 db09890..dd61f63 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_status_get_value" 9 "nvme_status_get_value" "December 2023" "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 55170ba..4758fe9 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_status_result" "December 2023" "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 e1f4c7c..5d418ff 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_status_to_errno" 9 "nvme_status_to_errno" "December 2023" "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 f6d33da..b16f533 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_status_to_string" 9 "nvme_status_to_string" "December 2023" "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 fa128ab..86e5bfe 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_status_type" "December 2023" "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 624ed47..57c0d20 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_streams_directive_params" "December 2023" "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 4a4bbe0..f62e35b 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_streams_directive_status" "December 2023" "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 b726665..63a8d6f 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_submit_admin_passthru" 9 "nvme_submit_admin_passthru" "December 2023" "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 531e1a4..e6e46ba 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_submit_admin_passthru64" 9 "nvme_submit_admin_passthru64" "December 2023" "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 4e00f8d..6a1382d 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_submit_io_passthru" 9 "nvme_submit_io_passthru" "December 2023" "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 bc0bebf..2087713 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_submit_io_passthru64" 9 "nvme_submit_io_passthru64" "December 2023" "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 98cde4f..1777d99 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_subsys_filter" 9 "nvme_subsys_filter" "December 2023" "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 1b149c7..9d39430 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_subsys_type" "December 2023" "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 0e026fc..06cf810 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_subsystem_first_ctrl" 9 "nvme_subsystem_first_ctrl" "December 2023" "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 06b2005..86273ac 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_subsystem_first_ns" 9 "nvme_subsystem_first_ns" "December 2023" "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 0747ce4..f3461a8 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_subsystem_for_each_ctrl" 9 "nvme_subsystem_for_each_ctrl" "December 2023" "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 d8babcf..bac192c 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_subsystem_for_each_ctrl_safe" 9 "nvme_subsystem_for_each_ctrl_safe" "December 2023" "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 3f40473..2382674 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_subsystem_for_each_ns" 9 "nvme_subsystem_for_each_ns" "December 2023" "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 9892225..c1bd4b0 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_subsystem_for_each_ns_safe" 9 "nvme_subsystem_for_each_ns_safe" "December 2023" "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 e94ccf7..45f1397 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_subsystem_get_application" 9 "nvme_subsystem_get_application" "December 2023" "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 e52a4ab..494bb79 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_subsystem_get_host" 9 "nvme_subsystem_get_host" "December 2023" "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
new file mode 100644
index 0000000..cef6918
--- /dev/null
+++ b/doc/man/nvme_subsystem_get_iopolicy.2
@@ -0,0 +1,11 @@
+.TH "nvme_subsystem_get_iopolicy" 9 "nvme_subsystem_get_iopolicy" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_subsystem_get_iopolicy \- Return the IO policy of subsytem
+.SH SYNOPSIS
+.B "const char *" nvme_subsystem_get_iopolicy
+.BI "(nvme_subsystem_t s " ");"
+.SH ARGUMENTS
+.IP "s" 12
+nvme_subsystem_t object
+.SH "RETURN"
+IO policy used by current subsystem
diff --git a/doc/man/nvme_subsystem_get_name.2 b/doc/man/nvme_subsystem_get_name.2
index 4430362..3e0d0a6 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_subsystem_get_name" 9 "nvme_subsystem_get_name" "December 2023" "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 7d64aa3..238b060 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_subsystem_get_nqn" 9 "nvme_subsystem_get_nqn" "December 2023" "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 b780f37..ce8c6b1 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_subsystem_get_sysfs_dir" 9 "nvme_subsystem_get_sysfs_dir" "December 2023" "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 ef2e4e2..866d194 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_subsystem_get_type" 9 "nvme_subsystem_get_type" "December 2023" "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 ca88701..a402c74 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_subsystem_lookup_namespace" 9 "nvme_subsystem_lookup_namespace" "December 2023" "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 3df44c6..cb72890 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_subsystem_next_ctrl" 9 "nvme_subsystem_next_ctrl" "December 2023" "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 e14c98c..36b902b 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_subsystem_next_ns" 9 "nvme_subsystem_next_ns" "December 2023" "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
new file mode 100644
index 0000000..fc1eebc
--- /dev/null
+++ b/doc/man/nvme_subsystem_release_fds.2
@@ -0,0 +1,13 @@
+.TH "nvme_subsystem_release_fds" 9 "nvme_subsystem_release_fds" "December 2023" "libnvme API manual" LINUX
+.SH NAME
+nvme_subsystem_release_fds \- Close all opened fds under subsystem
+.SH SYNOPSIS
+.B "void" nvme_subsystem_release_fds
+.BI "(struct nvme_subsystem *s " ");"
+.SH ARGUMENTS
+.IP "s" 12
+nvme_subsystem_t object
+.SH "DESCRIPTION"
+Controller and Namespace objects cache the file descriptors
+of opened nvme devices. This API can be used to close and
+clear all cached fds under this subsystem.
diff --git a/doc/man/nvme_subsystem_reset.2 b/doc/man/nvme_subsystem_reset.2
index e2d1a5c..ee5ab97 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_subsystem_reset" 9 "nvme_subsystem_reset" "December 2023" "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 ab3ad8f..9109009 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_subsystem_set_application" 9 "nvme_subsystem_set_application" "December 2023" "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 60d2ac4..031bda0 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_supported_cap_config_list_log" "December 2023" "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 57e0cbd..c4b3d08 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_supported_log_pages" "December 2023" "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 4096fa7..746733b 100644
--- a/doc/man/nvme_telemetry_da.2
+++ b/doc/man/nvme_telemetry_da.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "enum nvme_telemetry_da" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_telemetry_da" "December 2023" "API Manual" LINUX
.SH NAME
enum nvme_telemetry_da \- Telemetry Log Data Area
.SH SYNOPSIS
diff --git a/doc/man/nvme_telemetry_log.2 b/doc/man/nvme_telemetry_log.2
index d2885fb..1cc55a4 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_telemetry_log" "December 2023" "API Manual" LINUX
.SH NAME
struct nvme_telemetry_log \- Retrieve internal data specific to the manufacturer.
.SH SYNOPSIS
diff --git a/doc/man/nvme_thermal_exc_event.2 b/doc/man/nvme_thermal_exc_event.2
index 62f431e..f368e0b 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_thermal_exc_event" "December 2023" "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 66c1847..d4d6af4 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_time_stamp_change_event" "December 2023" "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 0e828bb..9e6abc3 100644
--- a/doc/man/nvme_timestamp.2
+++ b/doc/man/nvme_timestamp.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "struct nvme_timestamp" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_timestamp" "December 2023" "API Manual" LINUX
.SH NAME
struct nvme_timestamp \- Timestamp - Data Structure for Get Features
.SH SYNOPSIS
diff --git a/doc/man/nvme_unlink_ctrl.2 b/doc/man/nvme_unlink_ctrl.2
index c778c9c..7f14a15 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_unlink_ctrl" 9 "nvme_unlink_ctrl" "December 2023" "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 b99ef98..0fa3767 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_update_config" 9 "nvme_update_config" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_update_config \- Update JSON configuration
.SH SYNOPSIS
diff --git a/doc/man/nvme_uring_cmd.2 b/doc/man/nvme_uring_cmd.2
index 1d205a3..3050dd5 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_uring_cmd" "December 2023" "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 d4f7cf7..6b7b645 100644
--- a/doc/man/nvme_verify.2
+++ b/doc/man/nvme_verify.2
@@ -1,4 +1,4 @@
-.TH "nvme_verify" 9 "nvme_verify" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_verify" 9 "nvme_verify" "December 2023" "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 d9fc700..df5cb05 100644
--- a/doc/man/nvme_version.2
+++ b/doc/man/nvme_version.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "enum nvme_version" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_version" "December 2023" "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 efa1bfa..38bc617 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_virt_mgmt_act" "December 2023" "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 43e3f89..6bdfa70 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_virt_mgmt_rt" "December 2023" "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 1431851..d6725af 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_virtual_mgmt" 9 "nvme_virtual_mgmt" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvme_virtual_mgmt \- Virtualization resource management
.SH SYNOPSIS
diff --git a/doc/man/nvme_write.2 b/doc/man/nvme_write.2
index 37edcbf..050f2d6 100644
--- a/doc/man/nvme_write.2
+++ b/doc/man/nvme_write.2
@@ -1,4 +1,4 @@
-.TH "nvme_write" 9 "nvme_write" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_write" 9 "nvme_write" "December 2023" "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 b0d838c..d58a73a 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_write_uncorrectable" 9 "nvme_write_uncorrectable" "December 2023" "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 db35d2f..c555aba 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_write_zeros" 9 "nvme_write_zeros" "December 2023" "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 a818143..e2f1395 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_zns_append" 9 "nvme_zns_append" "December 2023" "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 bd490e0..7dd3a40 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_zns_changed_zone_log" "December 2023" "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 d67c4ce..730436f 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_zns_desc" "December 2023" "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 29c920f..ff20322 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_zns_id_ctrl" "December 2023" "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 4629af3..e11b6ef 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_zns_id_ns" "December 2023" "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 81107ce..5c7286a 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_zns_identify_ctrl" 9 "nvme_zns_identify_ctrl" "December 2023" "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 21207f5..d74bc1c 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_zns_identify_ns" 9 "nvme_zns_identify_ns" "December 2023" "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 42fb999..8c9a0cb 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_zns_lbafe" "December 2023" "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 2b3c995..321ad3d 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_zns_mgmt_recv" 9 "nvme_zns_mgmt_recv" "December 2023" "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 01fe8d7..5d80f84 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_zns_mgmt_send" 9 "nvme_zns_mgmt_send" "December 2023" "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 383b391..fa6d43f 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_zns_recv_action" "December 2023" "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 1ba5c4c..2d4f5b4 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_zns_report_options" "December 2023" "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 07386af..4fbfdf5 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvme_zns_report_zones" 9 "nvme_zns_report_zones" "December 2023" "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 3163fb2..64ff551 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_zns_send_action" "December 2023" "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 3f30ab6..20dd628 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_zns_za" "December 2023" "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 ef586ba..85ba655 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_zns_zs" "December 2023" "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 36bfa1d..90220a3 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvme_zns_zt" "December 2023" "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 461f0fe..11dc84e 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvme_zone_report" "December 2023" "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 2f138b0..f4abff2 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_add_ctrl" 9 "nvmf_add_ctrl" "December 2023" "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 af220fa..07b954d 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_addr_family" "December 2023" "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 654e71e..85d94ed 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_adrfam_str" 9 "nvmf_adrfam_str" "December 2023" "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 a7ceccd..16b6933 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_cms_str" 9 "nvmf_cms_str" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvmf_cms_str \- Decode RDMA connection management service field
.SH SYNOPSIS
diff --git a/doc/man/nvmf_connect_data.2 b/doc/man/nvmf_connect_data.2
index eebaf3f..7092e67 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvmf_connect_data" "December 2023" "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 ea6d1e4..f2e325a 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_connect_disc_entry" 9 "nvmf_connect_disc_entry" "December 2023" "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 17d8853..85af740 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_default_config" 9 "nvmf_default_config" "December 2023" "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 ec2a122..eb1fb31 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvmf_dim_data" "December 2023" "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 0b1638b..f8ec14f 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_dim_entfmt" "December 2023" "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 76f4f15..af0b066 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_dim_etype" "December 2023" "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 153a65c..8f269e1 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_dim_tas" "December 2023" "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 282d6f7..f34deb0 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_disc_eflags" "December 2023" "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 f1a0616..c5e0735 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvmf_disc_log_entry" "December 2023" "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 353c831..61ac93c 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvmf_discovery_log" "December 2023" "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 348b206..4cc5c0c 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_eflags_str" 9 "nvmf_eflags_str" "December 2023" "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 3ab5f4a..cbf4b9e 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_exat_len" 9 "nvmf_exat_len" "December 2023" "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 55c7c5c..16e356d 100644
--- a/doc/man/nvmf_exattype.2
+++ b/doc/man/nvmf_exattype.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "enum nvmf_exattype" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_exattype" "December 2023" "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 7281c7b..d5d37f1 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvmf_ext_attr" "December 2023" "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 be641af..0bdcbbc 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "struct nvmf_ext_die" "December 2023" "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 77adfb0..b14c487 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_get_discovery_log" 9 "nvmf_get_discovery_log" "December 2023" "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 ac0cdfb..e4b5960 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_get_discovery_wargs" 9 "nvmf_get_discovery_wargs" "December 2023" "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 33eae9e..682a7da 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_hostid_from_file" 9 "nvmf_hostid_from_file" "December 2023" "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_hostnqn_from_file.2 b/doc/man/nvmf_hostnqn_from_file.2
index 98e0c40..2c93aaf 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_hostnqn_from_file" 9 "nvmf_hostnqn_from_file" "December 2023" "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 4b147a0..f3a23f5 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_hostnqn_generate" 9 "nvmf_hostnqn_generate" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvmf_hostnqn_generate \- Generate a machine specific host nqn
.SH SYNOPSIS
diff --git a/doc/man/nvmf_log_discovery_lid_support.2 b/doc/man/nvmf_log_discovery_lid_support.2
index 241b93c..32eb30a 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_log_discovery_lid_support" "December 2023" "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 1d41732..9dff492 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_log_discovery_lsp" "December 2023" "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 6b0b758..1573057 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_prtype_str" 9 "nvmf_prtype_str" "December 2023" "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 7435ddd..d1c0e88 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_qptype_str" 9 "nvmf_qptype_str" "December 2023" "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 a2fb1d4..8775bea 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_rdma_cms" "December 2023" "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 f7a600d..22791c9 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_rdma_prtype" "December 2023" "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 6ee0c27..bbdd1b3 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_rdma_qptype" "December 2023" "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 66a4da7..eb101cc 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_register_ctrl" 9 "nvmf_register_ctrl" "December 2023" "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 c5f1bba..232f04c 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_sectype_str" 9 "nvmf_sectype_str" "December 2023" "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 fb874b8..b7cf8a4 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_subtype_str" 9 "nvmf_subtype_str" "December 2023" "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 89a98eb..dbdcdc4 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" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_tcp_sectype" "December 2023" "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 f91e7db..69a9952 100644
--- a/doc/man/nvmf_treq.2
+++ b/doc/man/nvmf_treq.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "enum nvmf_treq" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_treq" "December 2023" "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 85f01bc..568c9e3 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_treq_str" 9 "nvmf_treq_str" "December 2023" "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 ebdd63a..faa9f67 100644
--- a/doc/man/nvmf_trtype.2
+++ b/doc/man/nvmf_trtype.2
@@ -1,4 +1,4 @@
-.TH "libnvme" 9 "enum nvmf_trtype" "June 2023" "API Manual" LINUX
+.TH "libnvme" 9 "enum nvmf_trtype" "December 2023" "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 2149982..afdf133 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_trtype_str" 9 "nvmf_trtype_str" "December 2023" "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 c57f505..da0d3e9 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" "June 2023" "libnvme API manual" LINUX
+.TH "nvmf_update_config" 9 "nvmf_update_config" "December 2023" "libnvme API manual" LINUX
.SH NAME
nvmf_update_config \- Update fabrics configuration values
.SH SYNOPSIS
diff --git a/doc/rst/ioctl.rst b/doc/rst/ioctl.rst
index a2f3b86..4d8af34 100644
--- a/doc/rst/ioctl.rst
+++ b/doc/rst/ioctl.rst
@@ -1081,7 +1081,7 @@ The nvme command status if a response was received (see
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-.. c:function:: int nvme_identify_secondary_ctrl_list (int fd, __u32 nsid, __u16 cntid, struct nvme_secondary_ctrl_list *sc_list)
+.. c:function:: int nvme_identify_secondary_ctrl_list (int fd, __u16 cntid, struct nvme_secondary_ctrl_list *sc_list)
Retrieves secondary controller list
@@ -1090,9 +1090,6 @@ The nvme command status if a response was received (see
``int fd``
File descriptor of nvme device
-``__u32 nsid``
- Namespace identifier
-
``__u16 cntid``
Return controllers starting at this identifier
@@ -2185,6 +2182,34 @@ The nvme command status if a response was received (see
:c:type:`enum nvme_status_field <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
+
+**Parameters**
+
+``int fd``
+ File descriptor of nvme device
+
+``__u8 lsp``
+ Log specific, controls action and measurement quality
+
+``__u16 controller``
+ Target controller ID
+
+``__u32 len``
+ The allocated size, minimum
+ struct nvme_phy_rx_eom_log
+
+``struct nvme_phy_rx_eom_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 <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
@@ -2499,7 +2524,7 @@ The nvme command status if a response was received (see
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
-.. c:function:: int nvme_set_features_lba_range (int fd, __u32 nsid, __u32 nr_ranges, bool save, struct nvme_lba_range_type *data, __u32 *result)
+.. c:function:: int nvme_set_features_lba_range (int fd, __u32 nsid, __u8 nr_ranges, bool save, struct nvme_lba_range_type *data, __u32 *result)
Set LBA range feature
@@ -2511,7 +2536,7 @@ The nvme command status if a response was received (see
``__u32 nsid``
Namespace ID
-``__u32 nr_ranges``
+``__u8 nr_ranges``
Number of ranges in **data**
``bool save``
@@ -3063,6 +3088,39 @@ The nvme command status if a response was received (see
``__u32 *result``
The command completion result from CQE dword0
+**Description**
+
+
+Deprecated: doesn't support specifying a NSID.
+Use nvme_set_features_resv_mask2() instead.
+
+**Return**
+
+The nvme command status if a response was received (see
+:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
+
+
+.. c:function:: int nvme_set_features_resv_mask2 (int fd, __u32 nsid, __u32 mask, bool save, __u32 *result)
+
+ Set reservation notification mask feature
+
+**Parameters**
+
+``int fd``
+ File descriptor of nvme device
+
+``__u32 nsid``
+ Namespace ID
+
+``__u32 mask``
+ Reservation Notification Mask Field
+
+``bool save``
+ Save value across power states
+
+``__u32 *result``
+ The command completion result from CQE dword0
+
**Return**
The nvme command status if a response was received (see
@@ -3087,6 +3145,39 @@ The nvme command status if a response was received (see
``__u32 *result``
The command completion result from CQE dword0
+**Description**
+
+
+Deprecated: doesn't support specifying a NSID.
+Use nvme_set_features_resv_persist2() instead.
+
+**Return**
+
+The nvme command status if a response was received (see
+:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
+
+
+.. c:function:: int nvme_set_features_resv_persist2 (int fd, __u32 nsid, bool ptpl, bool save, __u32 *result)
+
+ Set persist through power loss feature
+
+**Parameters**
+
+``int fd``
+ File descriptor of nvme device
+
+``__u32 nsid``
+ Namespace ID
+
+``bool ptpl``
+ Persist Through Power Loss
+
+``bool save``
+ Save value across power states
+
+``__u32 *result``
+ The command completion result from CQE dword0
+
**Return**
The nvme command status if a response was received (see
@@ -3111,6 +3202,60 @@ The nvme command status if a response was received (see
``__u32 *result``
The command completion result from CQE dword0
+**Description**
+
+
+Deprecated: doesn't support specifying a NSID.
+Use nvme_set_features_write_protect2() instead.
+
+**Return**
+
+The nvme command status if a response was received (see
+:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
+
+
+.. c:function:: int nvme_set_features_write_protect2 (int fd, __u32 nsid, enum nvme_feat_nswpcfg_state state, bool save, __u32 *result)
+
+ Set write protect feature
+
+**Parameters**
+
+``int fd``
+ File descriptor of nvme device
+
+``__u32 nsid``
+ Namespace ID
+
+``enum nvme_feat_nswpcfg_state state``
+ Write Protection State
+
+``bool save``
+ Save value across power states
+
+``__u32 *result``
+ The command completion result from CQE dword0
+
+**Return**
+
+The nvme command status if a response was received (see
+:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
+
+
+.. c:function:: int nvme_set_features_iocs_profile (int fd, __u16 iocsi, bool save)
+
+ Set I/O command set profile feature
+
+**Parameters**
+
+``int fd``
+ File descriptor of nvme device
+
+``__u16 iocsi``
+ I/O Command Set Combination Index
+
+``bool save``
+ Save value across power states
+
**Return**
The nvme command status if a response was received (see
@@ -3246,6 +3391,39 @@ The nvme command status if a response was received (see
``__u32 *result``
The command completion result from CQE dword0
+**Description**
+
+
+Deprecated: doesn't support specifying a NSID.
+Use nvme_get_features_lba_range2() instead.
+
+**Return**
+
+The nvme command status if a response was received (see
+:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
+
+
+.. c:function:: int nvme_get_features_lba_range2 (int fd, enum nvme_get_features_sel sel, __u32 nsid, struct nvme_lba_range_type *data, __u32 *result)
+
+ Get LBA range feature
+
+**Parameters**
+
+``int fd``
+ File descriptor of nvme device
+
+``enum nvme_get_features_sel sel``
+ Select which type of attribute to return, see :c:type:`enum nvme_get_features_sel <nvme_get_features_sel>`
+
+``__u32 nsid``
+ Namespace ID
+
+``struct nvme_lba_range_type *data``
+ Buffer to receive LBA Range Type data structure
+
+``__u32 *result``
+ The command completion result from CQE dword0
+
**Return**
The nvme command status if a response was received (see
@@ -3288,6 +3466,36 @@ The nvme command status if a response was received (see
``__u32 *result``
The command completion result from CQE dword0
+**Description**
+
+
+Deprecated: doesn't support specifying a NSID.
+Use nvme_get_features_err_recovery2() instead.
+
+**Return**
+
+The nvme command status if a response was received (see
+:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
+
+
+.. c:function:: int nvme_get_features_err_recovery2 (int fd, enum nvme_get_features_sel sel, __u32 nsid, __u32 *result)
+
+ Get error recovery feature
+
+**Parameters**
+
+``int fd``
+ File descriptor of nvme device
+
+``enum nvme_get_features_sel sel``
+ Select which type of attribute to return, see :c:type:`enum nvme_get_features_sel <nvme_get_features_sel>`
+
+``__u32 nsid``
+ Namespace ID
+
+``__u32 *result``
+ The command completion result from CQE dword0
+
**Return**
The nvme command status if a response was received (see
@@ -3460,6 +3668,36 @@ The nvme command status if a response was received (see
``__u32 *result``
The command completion result from CQE dword0
+**Description**
+
+
+Deprecated: doesn't fetch the Host Memory Buffer Attributes data structure.
+Use nvme_get_features_host_mem_buf2() instead.
+
+**Return**
+
+The nvme command status if a response was received (see
+:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
+
+
+.. c:function:: int nvme_get_features_host_mem_buf2 (int fd, enum nvme_get_features_sel sel, struct nvme_host_mem_buf_attrs *attrs, __u32 *result)
+
+ Get host memory buffer feature
+
+**Parameters**
+
+``int fd``
+ File descriptor of nvme device
+
+``enum nvme_get_features_sel sel``
+ Select which type of attribute to return, see :c:type:`enum nvme_get_features_sel <nvme_get_features_sel>`
+
+``struct nvme_host_mem_buf_attrs *attrs``
+ Buffer for returned Host Memory Buffer Attributes
+
+``__u32 *result``
+ The command completion result from CQE dword0
+
**Return**
The nvme command status if a response was received (see
@@ -3774,6 +4012,36 @@ The nvme command status if a response was received (see
``__u32 *result``
The command completion result from CQE dword0
+**Description**
+
+
+Deprecated: doesn't support specifying a NSID.
+Use nvme_get_features_resv_mask2() instead.
+
+**Return**
+
+The nvme command status if a response was received (see
+:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
+
+
+.. c:function:: int nvme_get_features_resv_mask2 (int fd, enum nvme_get_features_sel sel, __u32 nsid, __u32 *result)
+
+ Get reservation mask feature
+
+**Parameters**
+
+``int fd``
+ File descriptor of nvme device
+
+``enum nvme_get_features_sel sel``
+ Select which type of attribute to return, see :c:type:`enum nvme_get_features_sel <nvme_get_features_sel>`
+
+``__u32 nsid``
+ Namespace ID
+
+``__u32 *result``
+ The command completion result from CQE dword0
+
**Return**
The nvme command status if a response was received (see
@@ -3795,6 +4063,36 @@ The nvme command status if a response was received (see
``__u32 *result``
The command completion result from CQE dword0
+**Description**
+
+
+Deprecated: doesn't support specifying a NSID.
+Use nvme_get_features_resv_persist2() instead.
+
+**Return**
+
+The nvme command status if a response was received (see
+:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
+
+
+.. c:function:: int nvme_get_features_resv_persist2 (int fd, enum nvme_get_features_sel sel, __u32 nsid, __u32 *result)
+
+ Get reservation persist feature
+
+**Parameters**
+
+``int fd``
+ File descriptor of nvme device
+
+``enum nvme_get_features_sel sel``
+ Select which type of attribute to return, see :c:type:`enum nvme_get_features_sel <nvme_get_features_sel>`
+
+``__u32 nsid``
+ Namespace ID
+
+``__u32 *result``
+ The command completion result from CQE dword0
+
**Return**
The nvme command status if a response was received (see
@@ -4903,3 +5201,27 @@ The nvme command status if a response was received (see
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
+.. c:function:: void nvme_set_debug (bool debug)
+
+ Set NVMe command debugging output
+
+**Parameters**
+
+``bool debug``
+ true to enable or false to disable
+
+
+.. c:function:: bool nvme_get_debug (void)
+
+ Get NVMe command debugging output
+
+**Parameters**
+
+``void``
+ no arguments
+
+**Return**
+
+false if disabled or true if enabled.
+
+
diff --git a/doc/rst/linux.rst b/doc/rst/linux.rst
index b437499..819ee68 100644
--- a/doc/rst/linux.rst
+++ b/doc/rst/linux.rst
@@ -53,6 +53,68 @@ The nvme command status if a response was received (see
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
+
+**Parameters**
+
+``int fd``
+ File descriptor of nvme device
+
+``enum nvme_telemetry_da *da``
+ On success return max supported data area
+
+``size_t *max_data_tx``
+ On success set to max transfer chunk supported by the controller
+
+**Return**
+
+The nvme command status if a response was received (see
+:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
+
+
+.. c:function:: int nvme_get_telemetry_log (int fd, bool create, bool ctrl, bool rae, size_t max_data_tx, enum nvme_telemetry_da da, struct nvme_telemetry_log **log, size_t *size)
+
+ Get specified telemetry log
+
+**Parameters**
+
+``int fd``
+ File descriptor of nvme device
+
+``bool create``
+ Generate new host initated telemetry capture
+
+``bool ctrl``
+ Get controller Initiated log
+
+``bool rae``
+ Retain asynchronous events
+
+``size_t max_data_tx``
+ Set the max data transfer size to be used retrieving telemetry.
+
+``enum nvme_telemetry_da da``
+ Log page data area, valid values: :c:type:`enum nvme_telemetry_da <nvme_telemetry_da>`.
+
+``struct nvme_telemetry_log **log``
+ On success, set to the value of the allocated and retrieved log.
+
+``size_t *size``
+ Ptr to the telemetry log size, so it can be returned
+
+**Description**
+
+The total size allocated can be calculated as:
+ (nvme_telemetry_log da size + 1) * NVME_LOG_TELEM_BLOCK_SIZE.
+
+**Return**
+
+The nvme command status if a response was received (see
+:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
+
+
.. c:function:: int nvme_get_ctrl_telemetry (int fd, bool rae, struct nvme_telemetry_log **log, enum nvme_telemetry_da da, size_t *size)
Get controller telemetry log
@@ -439,3 +501,80 @@ The key serial number if the key could be inserted into
the keyring or 0 with errno otherwise.
+.. c:function:: long nvme_insert_tls_key_versioned (const char *keyring, const char *key_type, const char *hostnqn, const char *subsysnqn, int version, int hmac, unsigned char *configured_key, int key_len)
+
+ Derive and insert TLS key
+
+**Parameters**
+
+``const char *keyring``
+ Keyring to use
+
+``const char *key_type``
+ Type of the resulting key
+
+``const char *hostnqn``
+ Host NVMe Qualified Name
+
+``const char *subsysnqn``
+ Subsystem NVMe Qualified Name
+
+``int version``
+ Key version to use
+
+``int hmac``
+ HMAC algorithm
+
+``unsigned char *configured_key``
+ Configured key data to derive the key from
+
+``int key_len``
+ Length of **configured_key**
+
+**Description**
+
+Derives a 'retained' TLS key as specified in NVMe TCP 1.0a (if
+**version** s set to '0') or NVMe TP8028 (if **version** is set to '1) and
+stores it as type **key_type** in the keyring specified by **keyring**.
+
+**Return**
+
+The key serial number if the key could be inserted into
+the keyring or 0 with errno otherwise.
+
+
+.. c:function:: char * nvme_generate_tls_key_identity (const char *hostnqn, const char *subsysnqn, int version, int hmac, unsigned char *configured_key, int key_len)
+
+ Generate the TLS key identity
+
+**Parameters**
+
+``const char *hostnqn``
+ Host NVMe Qualified Name
+
+``const char *subsysnqn``
+ Subsystem NVMe Qualified Name
+
+``int version``
+ Key version to use
+
+``int hmac``
+ HMAC algorithm
+
+``unsigned char *configured_key``
+ Configured key data to derive the key from
+
+``int key_len``
+ Length of **configured_key**
+
+**Description**
+
+Derives a 'retained' TLS key as specified in NVMe TCP and
+generate the corresponding TLs identity.
+
+**Return**
+
+The string containing the TLS identity. It is the responsibility
+of the caller to free the returned string.
+
+
diff --git a/doc/rst/log.rst b/doc/rst/log.rst
index 45b4689..67911a5 100644
--- a/doc/rst/log.rst
+++ b/doc/rst/log.rst
@@ -28,3 +28,22 @@ logging functions
Sets the default logging variables for the library.
+.. c:function:: void nvme_set_root (nvme_root_t r)
+
+ Set nvme_root_t context
+
+**Parameters**
+
+``nvme_root_t r``
+ nvme_root_t context
+
+**Description**
+
+In order to be able to log from code paths where no root object is passed in
+via the arguments use the the default one which can be set via this call.
+When creating a new root object with **nvme_create_root** the global root object
+will be set as well. This means the global root object is always pointing to
+the latest created root object. Note the first **nvme_free_tree** call will reset
+the global root object.
+
+
diff --git a/doc/rst/mi.rst b/doc/rst/mi.rst
index ba0f29a..2aa7438 100644
--- a/doc/rst/mi.rst
+++ b/doc/rst/mi.rst
@@ -1923,7 +1923,7 @@ See: :c:type:`struct nvme_primary_ctrl_cap <nvme_primary_ctrl_cap>`
0 on success, non-zero on failure
-.. c:function:: int nvme_mi_admin_identify_secondary_ctrl_list (nvme_mi_ctrl_t ctrl, __u32 nsid, __u16 cntid, struct nvme_secondary_ctrl_list *list)
+.. c:function:: int nvme_mi_admin_identify_secondary_ctrl_list (nvme_mi_ctrl_t ctrl, __u16 cntid, struct nvme_secondary_ctrl_list *list)
Perform an Admin identify for a secondary controller list.
@@ -1932,9 +1932,6 @@ See: :c:type:`struct nvme_primary_ctrl_cap <nvme_primary_ctrl_cap>`
``nvme_mi_ctrl_t ctrl``
Controller to process identify command
-``__u32 nsid``
- Namespace ID to specify list start
-
``__u16 cntid``
Controller ID to specify list start
@@ -2622,6 +2619,34 @@ The nvme command status if a response was received (see
:c:type:`enum nvme_status_field <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
+
+**Parameters**
+
+``nvme_mi_ctrl_t ctrl``
+ Controller to query
+
+``__u8 lsp``
+ Log specific, controls action and measurement quality
+
+``__u16 controller``
+ Target controller ID
+
+``__u32 len``
+ The allocated size, minimum
+ struct nvme_phy_rx_eom_log
+
+``struct nvme_phy_rx_eom_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 <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
diff --git a/doc/rst/tree.rst b/doc/rst/tree.rst
index f964ec6..b73ffae 100644
--- a/doc/rst/tree.rst
+++ b/doc/rst/tree.rst
@@ -53,6 +53,22 @@ Sets the managing application string for **r**.
Returns the managing application string for **r** or NULL if not set.
+.. c:function:: void nvme_root_release_fds (nvme_root_t r)
+
+ Close all opened file descriptors in the tree
+
+**Parameters**
+
+``nvme_root_t r``
+ :c:type:`nvme_root_t` object
+
+**Description**
+
+Controller and Namespace objects cache the file descriptors
+of opened nvme devices. This API can be used to close and
+clear all cached fds in the tree.
+
+
.. c:function:: void nvme_free_tree (nvme_root_t r)
Free root object
@@ -469,6 +485,86 @@ will start at **p** instead of the first controller.
Controller instance
+.. c:function:: nvme_ctrl_t nvme_ctrl_find (nvme_subsystem_t s, const char *transport, const char *traddr, const char *trsvcid, const char *subsysnqn, const char *host_traddr, const char *host_iface)
+
+ Locate an existing controller
+
+**Parameters**
+
+``nvme_subsystem_t s``
+ :c:type:`nvme_subsystem_t` object
+
+``const char *transport``
+ Transport name
+
+``const char *traddr``
+ Transport address
+
+``const char *trsvcid``
+ Transport service identifier
+
+``const char *subsysnqn``
+ Subsystem NQN
+
+``const char *host_traddr``
+ Host transport address
+
+``const char *host_iface``
+ Host interface name
+
+**Description**
+
+Lookup a controller in **s** based on **transport**, **traddr**, **trsvcid**,
+**subsysnqn**, **host_traddr**, and **host_iface**. **transport** must be specified,
+other fields may be required depending on the transport. Parameters set
+to NULL will be ignored.
+
+Unlike nvme_lookup_ctrl(), this function does not create a new object if
+an existing controller cannot be found.
+
+**Return**
+
+Controller instance on success, NULL otherwise.
+
+
+.. c:function:: bool nvme_ctrl_config_match (struct nvme_ctrl *c, const char *transport, const char *traddr, const char *trsvcid, const char *subsysnqn, const char *host_traddr, const char *host_iface)
+
+ Check if ctrl **c** matches config params
+
+**Parameters**
+
+``struct nvme_ctrl *c``
+ An existing controller instance
+
+``const char *transport``
+ Transport name
+
+``const char *traddr``
+ Transport address
+
+``const char *trsvcid``
+ Transport service identifier
+
+``const char *subsysnqn``
+ Subsystem NQN
+
+``const char *host_traddr``
+ Host transport address
+
+``const char *host_iface``
+ Host interface name
+
+**Description**
+
+Check that controller **c** matches parameters: **transport**, **traddr**,
+**trsvcid**, **subsysnqn**, **host_traddr**, and **host_iface**. Parameters set
+to NULL will be ignored.
+
+**Return**
+
+true if there's a match, false otherwise.
+
+
.. c:function:: nvme_ctrl_t nvme_create_ctrl (nvme_root_t r, const char *subsysnqn, const char *transport, const char *traddr, const char *host_traddr, const char *host_iface, const char *trsvcid)
Allocate an unconnected NVMe controller
@@ -776,11 +872,30 @@ Next :c:type:`nvme_ns_t` object of an **s** iterator
``nvme_ns_t n``
Namespace instance
+**Description**
+
+libnvme will open() the file (if not already opened) and keep
+an internal copy of the file descriptor. Following calls to
+this API retrieve the internal cached copy of the file
+descriptor. The file will remain opened and the fd will
+remain cached until the ns object is deleted or
+nvme_ns_release_fd() is called.
+
**Return**
File descriptor associated with **n** or -1
+.. c:function:: void nvme_ns_release_fd (nvme_ns_t n)
+
+ Close fd and clear fd from ns object
+
+**Parameters**
+
+``nvme_ns_t n``
+ Namespace instance
+
+
.. c:function:: int nvme_ns_get_nsid (nvme_ns_t n)
NSID of a namespace
@@ -1302,11 +1417,30 @@ Parent namespace if present
``nvme_ctrl_t c``
Controller instance
+**Description**
+
+libnvme will open() the file (if not already opened) and keep
+an internal copy of the file descriptor. Following calls to
+this API retrieve the internal cached copy of the file
+descriptor. The file will remain opened and the fd will
+remain cached until the controller object is deleted or
+nvme_ctrl_release_fd() is called.
+
**Return**
File descriptor associated with **c** or -1
+.. c:function:: void nvme_ctrl_release_fd (nvme_ctrl_t c)
+
+ Close fd and clear fd from controller object
+
+**Parameters**
+
+``nvme_ctrl_t c``
+ Controller instance
+
+
.. c:function:: const char * nvme_ctrl_get_name (nvme_ctrl_t c)
sysfs name of a controller
@@ -1350,6 +1484,26 @@ NVMe-over-Fabrics address string of **c** or empty string
of no address is present.
+.. c:function:: char * nvme_ctrl_get_src_addr (nvme_ctrl_t c, char *src_addr, size_t src_addr_len)
+
+ Extract src_addr from the c->address string
+
+**Parameters**
+
+``nvme_ctrl_t c``
+ Controller instance
+
+``char *src_addr``
+ Where to copy the src_addr. Size must be at least INET6_ADDRSTRLEN.
+
+``size_t src_addr_len``
+ Length of the buffer **src_addr**.
+
+**Return**
+
+Pointer to **src_addr** on success. NULL on failure to extract the src_addr.
+
+
.. c:function:: const char * nvme_ctrl_get_phy_slot (nvme_ctrl_t c)
PCI physical slot number of a controller
@@ -1395,7 +1549,7 @@ Model string of **c**
.. c:function:: const char * nvme_ctrl_get_state (nvme_ctrl_t c)
- Running state of an controller
+ Running state of a controller
**Parameters**
@@ -1962,6 +2116,20 @@ Managing application string or NULL if not set.
Sets the managing application string for **s**.
+.. c:function:: const char * nvme_subsystem_get_iopolicy (nvme_subsystem_t s)
+
+ Return the IO policy of subsytem
+
+**Parameters**
+
+``nvme_subsystem_t s``
+ nvme_subsystem_t object
+
+**Return**
+
+IO policy used by current subsystem
+
+
.. c:function:: int nvme_scan_topology (nvme_root_t r, nvme_scan_filter_t f, void *f_args)
Scan NVMe topology and apply filter
@@ -2015,6 +2183,22 @@ Host NQN of **h**
Host ID of **h**
+.. c:function:: void nvme_host_release_fds (struct nvme_host *h)
+
+ Close all opened file descriptors under host
+
+**Parameters**
+
+``struct nvme_host *h``
+ nvme_host_t object
+
+**Description**
+
+Controller and Namespace objects cache the file descriptors
+of opened nvme devices. This API can be used to close and
+clear all cached fds under this host.
+
+
.. c:function:: void nvme_free_host (nvme_host_t h)
Free nvme_host_t object
@@ -2220,6 +2404,22 @@ String with the contents of **attr** or ``NULL`` in case of an empty value
nvme_ns_t of the namespace with id **nsid** in subsystem **s**
+.. c:function:: void nvme_subsystem_release_fds (struct nvme_subsystem *s)
+
+ Close all opened fds under subsystem
+
+**Parameters**
+
+``struct nvme_subsystem *s``
+ nvme_subsystem_t object
+
+**Description**
+
+Controller and Namespace objects cache the file descriptors
+of opened nvme devices. This API can be used to close and
+clear all cached fds under this subsystem.
+
+
.. c:function:: char * nvme_get_path_attr (nvme_path_t p, const char *attr)
Read path sysfs attribute
diff --git a/doc/rst/types.rst b/doc/rst/types.rst
index 3c9725a..0ed38cf 100644
--- a/doc/rst/types.rst
+++ b/doc/rst/types.rst
@@ -607,7 +607,8 @@ power scale value
__le32 mnan;
__u8 maxdna[16];
__le32 maxcna;
- __u8 rsvd564[204];
+ __le32 oaqd;
+ __u8 rsvd568[200];
char subnqn[NVME_NQN_LENGTH];
__u8 rsvd1024[768];
__le32 ioccsz;
@@ -976,7 +977,12 @@ power scale value
maximum number of namespaces that are allowed to be attached to
this I/O controller.
-``rsvd564``
+``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
``subnqn``
@@ -1612,6 +1618,18 @@ power scale value
If set, then the controller supports
the copy command.
+``NVME_CTRL_ONCS_COPY_SINGLE_ATOMICITY``
+ If set, then the write portion of a
+ Copy command is performed as a single
+ write command to which the same
+ atomicity requirements that apply to
+ a write command apply.
+
+``NVME_CTRL_ONCS_ALL_FAST_COPY``
+ If set, then all copy operations for
+ the Copy command are fast copy
+ operations.
+
@@ -1886,8 +1904,7 @@ power scale value
__u8 nguid[16];
__u8 eui64[8];
struct nvme_lbaf lbaf[64];
- __le64 lbstm;
- __u8 vs[3704];
+ __u8 vs[3712];
};
**Members**
@@ -2070,9 +2087,6 @@ power scale value
``lbaf``
LBA Format, see :c:type:`struct nvme_lbaf <nvme_lbaf>`.
-``lbstm``
- Logical Block Storage Tag Mask for end-to-end protection
-
``vs``
Vendor Specific
@@ -4196,11 +4210,13 @@ bytes, in size. This log captures the controller’s internal state.
struct nvme_endurance_group_log {
__u8 critical_warning;
- __u8 rsvd1[2];
+ __u8 endurance_group_features;
+ __u8 rsvd2;
__u8 avl_spare;
__u8 avl_spare_threshold;
__u8 percent_used;
- __u8 rsvd6[26];
+ __le16 domain_identifier;
+ __u8 rsvd8[24];
__u8 endurance_estimate[16];
__u8 data_units_read[16];
__u8 data_units_written[16];
@@ -4209,7 +4225,9 @@ bytes, in size. This log captures the controller’s internal state.
__u8 host_write_cmds[16];
__u8 media_data_integrity_err[16];
__u8 num_err_info_log_entries[16];
- __u8 rsvd160[352];
+ __u8 total_end_grp_cap[16];
+ __u8 unalloc_end_grp_cap[16];
+ __u8 rsvd192[320];
};
**Members**
@@ -4217,7 +4235,10 @@ bytes, in size. This log captures the controller’s internal state.
``critical_warning``
Critical Warning
-``rsvd1``
+``endurance_group_features``
+ Endurance Group Features
+
+``rsvd2``
Reserved
``avl_spare``
@@ -4229,7 +4250,10 @@ bytes, in size. This log captures the controller’s internal state.
``percent_used``
Percentage Used
-``rsvd6``
+``domain_identifier``
+ Domain Identifier
+
+``rsvd8``
Reserved
``endurance_estimate``
@@ -4256,7 +4280,13 @@ bytes, in size. This log captures the controller’s internal state.
``num_err_info_log_entries``
Number of Error Information Log Entries
-``rsvd160``
+``total_end_grp_cap``
+ Total Endurance Group Capacity
+
+``unalloc_end_grp_cap``
+ Unallocated Endurance Group Capacity
+
+``rsvd192``
Reserved
@@ -5503,6 +5533,213 @@ bytes, in size. This log captures the controller’s internal state.
+.. c:struct:: nvme_eom_lane_desc
+
+ EOM Lane Descriptor
+
+**Definition**
+
+::
+
+ struct nvme_eom_lane_desc {
+ __u8 rsvd0;
+ __u8 mstatus;
+ __u8 lane;
+ __u8 eye;
+ __le16 top;
+ __le16 bottom;
+ __le16 left;
+ __le16 right;
+ __le16 nrows;
+ __le16 ncols;
+ __le16 edlen;
+ __u8 rsvd18[14];
+ __u8 eye_desc[];
+ };
+
+**Members**
+
+``rsvd0``
+ Reserved
+
+``mstatus``
+ Measurement Status
+
+``lane``
+ Lane number
+
+``eye``
+ Eye number
+
+``top``
+ Absolute number of rows from center to top edge of eye
+
+``bottom``
+ Absolute number of rows from center to bottom edge of eye
+
+``left``
+ Absolute number of rows from center to left edge of eye
+
+``right``
+ Absolute number of rows from center to right edge of eye
+
+``nrows``
+ Number of Rows
+
+``ncols``
+ Number of Columns
+
+``edlen``
+ Eye Data Length
+
+``rsvd18``
+ Reserved
+
+``eye_desc``
+ Printable Eye, Eye Data, and any Padding
+
+
+
+
+
+.. c:struct:: nvme_phy_rx_eom_log
+
+ Physical Interface Receiver Eye Opening Measurement Log
+
+**Definition**
+
+::
+
+ struct nvme_phy_rx_eom_log {
+ __u8 lid;
+ __u8 eomip;
+ __le16 hsize;
+ __le32 rsize;
+ __u8 eomdgn;
+ __u8 lr;
+ __u8 odp;
+ __u8 lanes;
+ __u8 epl;
+ __u8 lspfc;
+ __u8 li;
+ __u8 rsvd15[3];
+ __le16 lsic;
+ __le32 dsize;
+ __le16 nd;
+ __le16 maxtb;
+ __le16 maxlr;
+ __le16 etgood;
+ __le16 etbetter;
+ __le16 etbest;
+ __u8 rsvd36[28];
+ struct nvme_eom_lane_desc descs[];
+ };
+
+**Members**
+
+``lid``
+ Log Identifier
+
+``eomip``
+ EOM In Progress
+
+``hsize``
+ Header Size
+
+``rsize``
+ Result Size
+
+``eomdgn``
+ EOM Data Generation Number
+
+``lr``
+ Log Revision
+
+``odp``
+ Optional Data Present
+
+``lanes``
+ Number of lanes configured for this port
+
+``epl``
+ Eyes Per Lane
+
+``lspfc``
+ Log Specific Parameter Field Copy
+
+``li``
+ Link Information
+
+``rsvd15``
+ Reserved
+
+``lsic``
+ Log Specific Identifier Copy
+
+``dsize``
+ Descriptor Size
+
+``nd``
+ Number of Descriptors
+
+``maxtb``
+ Maximum Top Bottom
+
+``maxlr``
+ Maximum Left Right
+
+``etgood``
+ Estimated Time for Good Quality
+
+``etbetter``
+ Estimated Time for Better Quality
+
+``etbest``
+ Estimated Time for Best Quality
+
+``rsvd36``
+ Reserved
+
+``descs``
+ EOM Lane Descriptors
+
+
+
+
+
+.. c:enum:: nvme_eom_optional_data
+
+ EOM Optional Data Present Fields
+
+**Constants**
+
+``NVME_EOM_EYE_DATA_PRESENT``
+ Eye Data Present
+
+``NVME_EOM_PRINTABLE_EYE_PRESENT``
+ Printable Eye Present
+
+
+
+
+.. c:enum:: nvme_phy_rx_eom_progress
+
+ EOM In Progress Values
+
+**Constants**
+
+``NVME_PHY_RX_EOM_NOT_STARTED``
+ EOM Not Started
+
+``NVME_PHY_RX_EOM_IN_PROGRESS``
+ EOM In Progress
+
+``NVME_PHY_RX_EOM_COMPLETED``
+ EOM Completed
+
+
+
+
.. c:struct:: nvme_media_unit_stat_desc
Media Unit Status Descriptor
@@ -7232,7 +7469,11 @@ bytes, in size. This log captures the controller’s internal state.
struct nvme_feat_host_behavior {
__u8 acre;
- __u8 rsvd1[511];
+ __u8 etdas;
+ __u8 lbafee;
+ __u8 rsvd3;
+ __u16 cdfe;
+ __u8 rsvd6[506];
};
**Members**
@@ -7240,7 +7481,19 @@ bytes, in size. This log captures the controller’s internal state.
``acre``
Advanced Command Retry Enable
-``rsvd1``
+``etdas``
+ Extended Telemetry Data Area 4 Supported
+
+``lbafee``
+ LBA Format Extension Enable
+
+``rsvd3``
+ Reserved
+
+``cdfe``
+ Copy Descriptor Formats Enable
+
+``rsvd6``
Reserved
@@ -7380,6 +7633,130 @@ bytes, in size. This log captures the controller’s internal state.
+.. c:enum:: nvme_copy_range_sopt
+
+ NVMe Copy Range Source Options
+
+**Constants**
+
+``NVME_COPY_SOPT_FCO``
+ NVMe Copy Source Option Fast Copy Only
+
+
+
+
+.. c:struct:: nvme_copy_range_f2
+
+ Copy - Source Range Entries Descriptor Format 2h
+
+**Definition**
+
+::
+
+ struct nvme_copy_range_f2 {
+ __le32 snsid;
+ __u8 rsvd4[4];
+ __le64 slba;
+ __le16 nlb;
+ __u8 rsvd18[4];
+ __le16 sopt;
+ __le32 eilbrt;
+ __le16 elbat;
+ __le16 elbatm;
+ };
+
+**Members**
+
+``snsid``
+ Source Namespace Identifier
+
+``rsvd4``
+ Reserved
+
+``slba``
+ Starting LBA
+
+``nlb``
+ Number of Logical Blocks
+
+``rsvd18``
+ Reserved
+
+``sopt``
+ Source Options
+
+``eilbrt``
+ Expected Initial Logical Block Reference Tag /
+ Expected Logical Block Storage Tag
+
+``elbat``
+ Expected Logical Block Application Tag
+
+``elbatm``
+ Expected Logical Block Application Tag Mask
+
+
+
+
+
+.. c:struct:: nvme_copy_range_f3
+
+ Copy - Source Range Entries Descriptor Format 3h
+
+**Definition**
+
+::
+
+ struct nvme_copy_range_f3 {
+ __le32 snsid;
+ __u8 rsvd4[4];
+ __le64 slba;
+ __le16 nlb;
+ __u8 rsvd18[4];
+ __le16 sopt;
+ __u8 rsvd24[2];
+ __u8 elbt[10];
+ __le16 elbat;
+ __le16 elbatm;
+ };
+
+**Members**
+
+``snsid``
+ Source Namespace Identifier
+
+``rsvd4``
+ Reserved
+
+``slba``
+ Starting LBA
+
+``nlb``
+ Number of Logical Blocks
+
+``rsvd18``
+ Reserved
+
+``sopt``
+ Source Options
+
+``rsvd24``
+ Reserved
+
+``elbt``
+ Expected Initial Logical Block Reference Tag /
+ Expected Logical Block Storage Tag
+
+``elbat``
+ Expected Logical Block Application Tag
+
+``elbatm``
+ Expected Logical Block Application Tag Mask
+
+
+
+
+
.. c:struct:: nvme_registered_ctrl
Registered Controller Data Structure
@@ -9933,6 +10310,29 @@ entries are of a variable lengths (TEL), TEL is always a multiple of
``NVME_SC_CMD_SIZE_LIMIT_EXCEEDED``
Command Size Limit Exceeded
+``NVME_SC_INCOMPATIBLE_NS``
+ Incompatible Namespace or Format: At
+ least one source namespace and the
+ destination namespace have incompatible
+ formats.
+
+``NVME_SC_FAST_COPY_NOT_POSSIBLE``
+ Fast Copy Not Possible: The Fast Copy
+ Only (FCO) bit was set to ‘1’ in a Source
+ Range entry and the controller was not
+ able to use fast copy operations to copy
+ the specified data.
+
+``NVME_SC_OVERLAPPING_IO_RANGE``
+ Overlapping I/O Range: A source logical
+ block range overlaps the destination
+ logical block range.
+
+``NVME_SC_INSUFFICIENT_RESOURCES``
+ Insufficient Resources: A resource
+ shortage prevented the controller from
+ performing the requested copy.
+
``NVME_SC_CONNECT_FORMAT``
Incompatible Format: The NVM subsystem
does not support the record format
@@ -10508,6 +10908,9 @@ true if **status** is of the specified type and value
``NVME_LOG_LID_BOOT_PARTITION``
Boot Partition
+``NVME_LOG_LID_PHY_RX_EOM``
+ Physical Interface Receiver Eye Opening Measurement
+
``NVME_LOG_LID_FDP_CONFIGS``
FDP Configurations
@@ -11219,6 +11622,42 @@ true if **status** is of the specified type and value
+.. c:enum:: nvme_log_phy_rx_eom_action
+
+ Physical Interface Receiver Eye Opening Measurement Action
+
+**Constants**
+
+``NVME_LOG_PHY_RX_EOM_READ``
+ Read Log Data
+
+``NVME_LOG_PHY_RX_EOM_START_READ``
+ Start Measurement and Read Log Data
+
+``NVME_LOG_PHY_RX_EOM_ABORT_CLEAR``
+ Abort Measurement and Clear Log Data
+
+
+
+
+.. c:enum:: nvme_log_phy_rx_eom_quality
+
+ Physical Interface Receiver Eye Opening Measurement Quality
+
+**Constants**
+
+``NVME_LOG_PHY_RX_EOM_GOOD``
+ <= Better Quality
+
+``NVME_LOG_PHY_RX_EOM_BETTER``
+ <= Best Quality, >= Good Quality
+
+``NVME_LOG_PHY_RX_EOM_BEST``
+ >= Better Quality
+
+
+
+
.. c:enum:: nvme_pevent_log_action
Persistent Event Log - Action
diff --git a/doc/rst/util.rst b/doc/rst/util.rst
index 6f7974e..f45452e 100644
--- a/doc/rst/util.rst
+++ b/doc/rst/util.rst
@@ -233,6 +233,74 @@ otherwise.
Number of descriptors to construct
+.. c:function:: void nvme_init_copy_range_f2 (struct nvme_copy_range_f2 *copy, __u32 *snsids, __u16 *nlbs, __u64 *slbas, __u16 *sopts, __u32 *eilbrts, __u32 *elbatms, __u32 *elbats, __u16 nr)
+
+ Constructs a copy range f2 structure
+
+**Parameters**
+
+``struct nvme_copy_range_f2 *copy``
+ Copy range array
+
+``__u32 *snsids``
+ Source namespace identifier
+
+``__u16 *nlbs``
+ Number of logical blocks
+
+``__u64 *slbas``
+ Starting LBA
+
+``__u16 *sopts``
+ Source options
+
+``__u32 *eilbrts``
+ Expected initial logical block reference tag
+
+``__u32 *elbatms``
+ Expected logical block application tag mask
+
+``__u32 *elbats``
+ Expected logical block application tag
+
+``__u16 nr``
+ Number of descriptors to construct
+
+
+.. c:function:: void nvme_init_copy_range_f3 (struct nvme_copy_range_f3 *copy, __u32 *snsids, __u16 *nlbs, __u64 *slbas, __u16 *sopts, __u64 *eilbrts, __u32 *elbatms, __u32 *elbats, __u16 nr)
+
+ Constructs a copy range f3 structure
+
+**Parameters**
+
+``struct nvme_copy_range_f3 *copy``
+ Copy range array
+
+``__u32 *snsids``
+ Source namespace identifier
+
+``__u16 *nlbs``
+ Number of logical blocks
+
+``__u64 *slbas``
+ Starting LBA
+
+``__u16 *sopts``
+ Source options
+
+``__u64 *eilbrts``
+ Expected initial logical block reference tag
+
+``__u32 *elbatms``
+ Expected logical block application tag mask
+
+``__u32 *elbats``
+ Expected logical block application tag
+
+``__u16 nr``
+ Number of descriptors to construct
+
+
.. c:function:: int nvme_get_feature_length (int fid, __u32 cdw11, __u32 *len)
Retreive the command payload length for a specific feature identifier
@@ -598,3 +666,52 @@ Returns error code if generating of random number fails.
true if addr1 == addr2. false otherwise.
+.. c:function:: const char * nvme_iface_matching_addr (const struct ifaddrs *iface_list, const char *addr)
+
+ Get interface matching **addr**
+
+**Parameters**
+
+``const struct ifaddrs *iface_list``
+ Interface list returned by getifaddrs()
+
+``const char *addr``
+ Address to match
+
+**Description**
+
+Parse the interface list pointed to by **iface_list** looking
+for the interface that has **addr** as one of its assigned
+addresses.
+
+**Return**
+
+The name of the interface that owns **addr** or NULL.
+
+
+.. c:function:: bool nvme_iface_primary_addr_matches (const struct ifaddrs *iface_list, const char *iface, const char *addr)
+
+ Check that interface's primary address matches
+
+**Parameters**
+
+``const struct ifaddrs *iface_list``
+ Interface list returned by getifaddrs()
+
+``const char *iface``
+ Interface to match
+
+``const char *addr``
+ Address to match
+
+**Description**
+
+Parse the interface list pointed to by **iface_list** and looking for
+interface **iface**. The get its primary address and check if it matches
+**addr**.
+
+**Return**
+
+true if a match is found, false otherwise.
+
+