├── .checkpatch.conf ├── .github ├── cross │ ├── ubuntu-cross-armhf.txt │ ├── ubuntu-cross-ppc64le.txt │ └── ubuntu-cross-s390x.txt ├── dependabot.yml └── workflows │ ├── build.yml │ ├── checkpatch.yml │ ├── cleanup-python.yml │ ├── coverage.yml │ ├── docs.yaml │ ├── release-python.yml │ └── release.yml ├── .gitignore ├── .readthedocs.yaml ├── COPYING ├── Makefile ├── README.md ├── ccan ├── ccan │ ├── array_size │ │ ├── LICENSE │ │ ├── _info │ │ └── array_size.h │ ├── build_assert │ │ ├── LICENSE │ │ ├── _info │ │ └── build_assert.h │ ├── check_type │ │ ├── LICENSE │ │ ├── _info │ │ └── check_type.h │ ├── container_of │ │ ├── LICENSE │ │ ├── _info │ │ └── container_of.h │ ├── endian │ │ ├── LICENSE │ │ ├── _info │ │ └── endian.h │ ├── list │ │ ├── LICENSE │ │ ├── _info │ │ ├── list.c │ │ └── list.h │ ├── minmax │ │ ├── LICENSE │ │ ├── _info │ │ └── minmax.h │ ├── short_types │ │ ├── LICENSE │ │ └── short_types.h │ └── str │ │ ├── LICENSE │ │ ├── _info │ │ ├── debug.c │ │ ├── str.c │ │ ├── str.h │ │ └── str_debug.h ├── licenses │ ├── BSD-MIT │ └── CC0 └── meson.build ├── codecov.yml ├── doc ├── api.rst.in ├── conf.py ├── conf.py.in ├── config-schema.json ├── config-schema.json.in ├── index.rst ├── index.rst.in ├── installation.rst.in ├── man │ ├── nbft_control.2 │ ├── nbft_control_flags.2 │ ├── nbft_desc_type.2 │ ├── nbft_discovery.2 │ ├── nbft_discovery_flags.2 │ ├── nbft_header.2 │ ├── nbft_heap_obj.2 │ ├── nbft_hfi.2 │ ├── nbft_hfi_flags.2 │ ├── nbft_hfi_info_tcp.2 │ ├── nbft_hfi_info_tcp_flags.2 │ ├── nbft_host.2 │ ├── nbft_host_flags.2 │ ├── nbft_info.2 │ ├── nbft_info_discovery.2 │ ├── nbft_info_hfi.2 │ ├── nbft_info_hfi_info_tcp.2 │ ├── nbft_info_host.2 │ ├── nbft_info_nid_type.2 │ ├── nbft_info_primary_admin_host_flag.2 │ ├── nbft_info_security.2 │ ├── nbft_info_subsystem_ns.2 │ ├── nbft_security.2 │ ├── nbft_security_flags.2 │ ├── nbft_security_secret_type.2 │ ├── nbft_ssns.2 │ ├── nbft_ssns_ext_info.2 │ ├── nbft_ssns_ext_info_flags.2 │ ├── nbft_ssns_flags.2 │ ├── nbft_ssns_trflags.2 │ ├── nbft_trtype.2 │ ├── nvme_acq.2 │ ├── nvme_admin_opcode.2 │ ├── nvme_admin_passthru.2 │ ├── nvme_admin_passthru64.2 │ ├── nvme_ae_info_css_nvm.2 │ ├── nvme_ae_info_error.2 │ ├── nvme_ae_info_notice.2 │ ├── nvme_ae_info_smart.2 │ ├── nvme_ae_type.2 │ ├── nvme_aggregate_endurance_group_event.2 │ ├── nvme_aggregate_predictable_lat_event.2 │ ├── nvme_ana_group_desc.2 │ ├── nvme_ana_log.2 │ ├── nvme_ana_state.2 │ ├── nvme_apst_entry.2 │ ├── nvme_aqa.2 │ ├── nvme_asq.2 │ ├── nvme_ave_discover_log.2 │ ├── nvme_ave_discover_log_entry.2 │ ├── nvme_ave_tr_record.2 │ ├── nvme_boot_partition.2 │ ├── nvme_boot_partition_info.2 │ ├── nvme_bpinfo.2 │ ├── nvme_bpmbl.2 │ ├── nvme_bprsel.2 │ ├── nvme_cap.2 │ ├── nvme_capacity_config_desc.2 │ ├── nvme_capacity_mgmt.2 │ ├── nvme_cc.2 │ ├── nvme_change_ns_event.2 │ ├── nvme_channel_config_desc.2 │ ├── nvme_cmb_size.2 │ ├── nvme_cmbebs.2 │ ├── nvme_cmbloc.2 │ ├── nvme_cmbmsc.2 │ ├── nvme_cmbsts.2 │ ├── nvme_cmbswtp.2 │ ├── nvme_cmbsz.2 │ ├── nvme_cmd_effects.2 │ ├── nvme_cmd_effects_log.2 │ ├── nvme_cmd_format_mset.2 │ ├── nvme_cmd_format_pi.2 │ ├── nvme_cmd_format_pil.2 │ ├── nvme_cmd_format_ses.2 │ ├── nvme_cmd_get_log_lid.2 │ ├── nvme_cmd_get_log_telemetry_host_lsp.2 │ ├── nvme_cmic.2 │ ├── nvme_compare.2 │ ├── nvme_connect_err.2 │ ├── nvme_constants.2 │ ├── nvme_copy.2 │ ├── nvme_copy_range.2 │ ├── nvme_copy_range_f1.2 │ ├── nvme_copy_range_f2.2 │ ├── nvme_copy_range_f3.2 │ ├── nvme_copy_range_sopt.2 │ ├── nvme_create_ctrl.2 │ ├── nvme_create_root.2 │ ├── nvme_crto.2 │ ├── nvme_csi.2 │ ├── nvme_csts.2 │ ├── nvme_ctrl_config_match.2 │ ├── nvme_ctrl_find.2 │ ├── nvme_ctrl_first_ns.2 │ ├── nvme_ctrl_first_path.2 │ ├── nvme_ctrl_for_each_ns.2 │ ├── nvme_ctrl_for_each_ns_safe.2 │ ├── nvme_ctrl_for_each_path.2 │ ├── nvme_ctrl_for_each_path_safe.2 │ ├── nvme_ctrl_get_address.2 │ ├── nvme_ctrl_get_config.2 │ ├── nvme_ctrl_get_dhchap_host_key.2 │ ├── nvme_ctrl_get_dhchap_key.2 │ ├── nvme_ctrl_get_fd.2 │ ├── nvme_ctrl_get_firmware.2 │ ├── nvme_ctrl_get_host_iface.2 │ ├── nvme_ctrl_get_host_traddr.2 │ ├── nvme_ctrl_get_keyring.2 │ ├── nvme_ctrl_get_model.2 │ ├── nvme_ctrl_get_name.2 │ ├── nvme_ctrl_get_numa_node.2 │ ├── nvme_ctrl_get_phy_slot.2 │ ├── nvme_ctrl_get_queue_count.2 │ ├── nvme_ctrl_get_serial.2 │ ├── nvme_ctrl_get_sqsize.2 │ ├── nvme_ctrl_get_src_addr.2 │ ├── nvme_ctrl_get_state.2 │ ├── nvme_ctrl_get_subsysnqn.2 │ ├── nvme_ctrl_get_subsystem.2 │ ├── nvme_ctrl_get_sysfs_dir.2 │ ├── nvme_ctrl_get_tls_key.2 │ ├── nvme_ctrl_get_tls_key_identity.2 │ ├── nvme_ctrl_get_traddr.2 │ ├── nvme_ctrl_get_transport.2 │ ├── nvme_ctrl_get_trsvcid.2 │ ├── nvme_ctrl_identify.2 │ ├── nvme_ctrl_is_discovered.2 │ ├── nvme_ctrl_is_discovery_ctrl.2 │ ├── nvme_ctrl_is_persistent.2 │ ├── nvme_ctrl_is_unique_discovery_ctrl.2 │ ├── nvme_ctrl_list.2 │ ├── nvme_ctrl_metadata_type.2 │ ├── nvme_ctrl_next_ns.2 │ ├── nvme_ctrl_next_path.2 │ ├── nvme_ctrl_release_fd.2 │ ├── nvme_ctrl_reset.2 │ ├── nvme_ctrl_set_dhchap_host_key.2 │ ├── nvme_ctrl_set_dhchap_key.2 │ ├── nvme_ctrl_set_discovered.2 │ ├── nvme_ctrl_set_discovery_ctrl.2 │ ├── nvme_ctrl_set_keyring.2 │ ├── nvme_ctrl_set_persistent.2 │ ├── nvme_ctrl_set_tls_key.2 │ ├── nvme_ctrl_set_tls_key_identity.2 │ ├── nvme_ctrl_set_unique_discovery_ctrl.2 │ ├── nvme_ctrls_filter.2 │ ├── nvme_data_tfr.2 │ ├── nvme_default_host.2 │ ├── nvme_describe_key_serial.2 │ ├── nvme_dev_self_test.2 │ ├── nvme_directive_dtype.2 │ ├── nvme_directive_receive_doper.2 │ ├── nvme_directive_recv.2 │ ├── nvme_directive_recv_identify_parameters.2 │ ├── nvme_directive_recv_stream_allocate.2 │ ├── nvme_directive_recv_stream_parameters.2 │ ├── nvme_directive_recv_stream_status.2 │ ├── nvme_directive_send.2 │ ├── nvme_directive_send_doper.2 │ ├── nvme_directive_send_id_endir.2 │ ├── nvme_directive_send_identify_endir.2 │ ├── nvme_directive_send_stream_release_identifier.2 │ ├── nvme_directive_send_stream_release_resource.2 │ ├── nvme_directive_types.2 │ ├── nvme_disconnect_ctrl.2 │ ├── nvme_dispersed_ns_participating_nss_log.2 │ ├── nvme_dsm.2 │ ├── nvme_dsm_attributes.2 │ ├── nvme_dsm_range.2 │ ├── nvme_dst_stc.2 │ ├── nvme_dump_config.2 │ ├── nvme_dump_tree.2 │ ├── nvme_eg_critical_warning_flags.2 │ ├── nvme_eg_event_aggregate_log.2 │ ├── nvme_end_grp_chan_desc.2 │ ├── nvme_end_grp_config_desc.2 │ ├── nvme_endurance_group_log.2 │ ├── nvme_eom_lane_desc.2 │ ├── nvme_eom_optional_data.2 │ ├── nvme_eom_optional_data_present.2 │ ├── nvme_err_status_field.2 │ ├── nvme_errno_to_string.2 │ ├── nvme_error_log_page.2 │ ├── nvme_export_tls_key.2 │ ├── nvme_export_tls_key_versioned.2 │ ├── nvme_fabrics_config.2 │ ├── nvme_fabrics_uri.2 │ ├── nvme_fctype.2 │ ├── nvme_fdp_config_desc.2 │ ├── nvme_fdp_config_fdpa.2 │ ├── nvme_fdp_config_log.2 │ ├── nvme_fdp_event.2 │ ├── nvme_fdp_event_flags.2 │ ├── nvme_fdp_event_realloc.2 │ ├── nvme_fdp_event_realloc_flags.2 │ ├── nvme_fdp_event_type.2 │ ├── nvme_fdp_events_log.2 │ ├── nvme_fdp_reclaim_unit_handle_status.2 │ ├── nvme_fdp_reclaim_unit_handle_update.2 │ ├── nvme_fdp_ruh_desc.2 │ ├── nvme_fdp_ruh_status.2 │ ├── nvme_fdp_ruh_status_desc.2 │ ├── nvme_fdp_ruh_type.2 │ ├── nvme_fdp_ruha.2 │ ├── nvme_fdp_ruhu_desc.2 │ ├── nvme_fdp_ruhu_log.2 │ ├── nvme_fdp_stats_log.2 │ ├── nvme_fdp_supported_event_attributes.2 │ ├── nvme_fdp_supported_event_desc.2 │ ├── nvme_feat.2 │ ├── nvme_feat_auto_pst.2 │ ├── nvme_feat_bpwp_state.2 │ ├── nvme_feat_fdp_events_cdw11.2 │ ├── nvme_feat_host_behavior.2 │ ├── nvme_feat_nswpcfg_state.2 │ ├── nvme_feat_perfc_attri.2 │ ├── nvme_feat_perfc_r4karl.2 │ ├── nvme_feat_plm_window_select.2 │ ├── nvme_feat_resv_notify_flags.2 │ ├── nvme_feat_tmpthresh_thsel.2 │ ├── nvme_features_async_event_config_flags.2 │ ├── nvme_features_id.2 │ ├── nvme_fid_supported_effects.2 │ ├── nvme_fid_supported_effects_log.2 │ ├── nvme_firmware_slot.2 │ ├── nvme_first_host.2 │ ├── nvme_first_subsystem.2 │ ├── nvme_flbas.2 │ ├── nvme_flush.2 │ ├── nvme_for_each_host.2 │ ├── nvme_for_each_host_safe.2 │ ├── nvme_for_each_subsystem.2 │ ├── nvme_for_each_subsystem_safe.2 │ ├── nvme_format_nvm.2 │ ├── nvme_format_nvm_compln_event.2 │ ├── nvme_format_nvm_start_event.2 │ ├── nvme_free_ctrl.2 │ ├── nvme_free_host.2 │ ├── nvme_free_ns.2 │ ├── nvme_free_subsystem.2 │ ├── nvme_free_tree.2 │ ├── nvme_free_uri.2 │ ├── nvme_fw_commit.2 │ ├── nvme_fw_commit_ca.2 │ ├── nvme_fw_commit_event.2 │ ├── nvme_fw_download.2 │ ├── nvme_fw_download_seq.2 │ ├── nvme_gen_dhchap_key.2 │ ├── nvme_generate_tls_key_identity.2 │ ├── nvme_get_ana_log_atomic.2 │ ├── nvme_get_ana_log_len.2 │ ├── nvme_get_ana_log_len_from_id_ctrl.2 │ ├── nvme_get_attr.2 │ ├── nvme_get_ctrl_attr.2 │ ├── nvme_get_ctrl_telemetry.2 │ ├── nvme_get_directive_receive_length.2 │ ├── nvme_get_discovery_args.2 │ ├── nvme_get_feature_length.2 │ ├── nvme_get_feature_length2.2 │ ├── nvme_get_features.2 │ ├── nvme_get_features_arbitration.2 │ ├── nvme_get_features_async_event.2 │ ├── nvme_get_features_auto_pst.2 │ ├── nvme_get_features_data.2 │ ├── nvme_get_features_endurance_event_cfg.2 │ ├── nvme_get_features_err_recovery.2 │ ├── nvme_get_features_err_recovery2.2 │ ├── nvme_get_features_hctm.2 │ ├── nvme_get_features_host_behavior.2 │ ├── nvme_get_features_host_id.2 │ ├── nvme_get_features_host_mem_buf.2 │ ├── nvme_get_features_host_mem_buf2.2 │ ├── nvme_get_features_iocs_profile.2 │ ├── nvme_get_features_irq_coalesce.2 │ ├── nvme_get_features_irq_config.2 │ ├── nvme_get_features_kato.2 │ ├── nvme_get_features_lba_range.2 │ ├── nvme_get_features_lba_range2.2 │ ├── nvme_get_features_lba_sts_interval.2 │ ├── nvme_get_features_nopsc.2 │ ├── nvme_get_features_num_queues.2 │ ├── nvme_get_features_plm_config.2 │ ├── nvme_get_features_plm_window.2 │ ├── nvme_get_features_power_mgmt.2 │ ├── nvme_get_features_resv_mask.2 │ ├── nvme_get_features_resv_mask2.2 │ ├── nvme_get_features_resv_persist.2 │ ├── nvme_get_features_resv_persist2.2 │ ├── nvme_get_features_rrl.2 │ ├── nvme_get_features_sanitize.2 │ ├── nvme_get_features_sel.2 │ ├── nvme_get_features_simple.2 │ ├── nvme_get_features_sw_progress.2 │ ├── nvme_get_features_temp_thresh.2 │ ├── nvme_get_features_temp_thresh2.2 │ ├── nvme_get_features_timestamp.2 │ ├── nvme_get_features_volatile_wc.2 │ ├── nvme_get_features_write_atomic.2 │ ├── nvme_get_features_write_protect.2 │ ├── nvme_get_host_telemetry.2 │ ├── nvme_get_lba_status.2 │ ├── nvme_get_lba_status_log.2 │ ├── nvme_get_log.2 │ ├── nvme_get_log_ana.2 │ ├── nvme_get_log_ana_groups.2 │ ├── nvme_get_log_ave_discover.2 │ ├── nvme_get_log_boot_partition.2 │ ├── nvme_get_log_changed_alloc_ns_list.2 │ ├── nvme_get_log_changed_ns_list.2 │ ├── nvme_get_log_cmd_effects.2 │ ├── nvme_get_log_create_telemetry_host.2 │ ├── nvme_get_log_create_telemetry_host_mcda.2 │ ├── nvme_get_log_device_self_test.2 │ ├── nvme_get_log_discovery.2 │ ├── nvme_get_log_dispersed_ns_participating_nss.2 │ ├── nvme_get_log_endurance_group.2 │ ├── nvme_get_log_endurance_grp_evt.2 │ ├── nvme_get_log_error.2 │ ├── nvme_get_log_fdp_configurations.2 │ ├── nvme_get_log_fdp_events.2 │ ├── nvme_get_log_fdp_stats.2 │ ├── nvme_get_log_fid_supported_effects.2 │ ├── nvme_get_log_fw_slot.2 │ ├── nvme_get_log_host_discover.2 │ ├── nvme_get_log_lba_status.2 │ ├── nvme_get_log_lockdown.2 │ ├── nvme_get_log_media_unit_stat.2 │ ├── nvme_get_log_mgmt_addr_list.2 │ ├── nvme_get_log_mi_cmd_supported_effects.2 │ ├── nvme_get_log_page.2 │ ├── nvme_get_log_persistent_event.2 │ ├── nvme_get_log_phy_rx_eom.2 │ ├── nvme_get_log_predictable_lat_event.2 │ ├── nvme_get_log_predictable_lat_nvmset.2 │ ├── nvme_get_log_pull_model_ddc_req.2 │ ├── nvme_get_log_reachability_associations.2 │ ├── nvme_get_log_reachability_groups.2 │ ├── nvme_get_log_reclaim_unit_handle_usage.2 │ ├── nvme_get_log_reservation.2 │ ├── nvme_get_log_rotational_media_info.2 │ ├── nvme_get_log_sanitize.2 │ ├── nvme_get_log_smart.2 │ ├── nvme_get_log_support_cap_config_list.2 │ ├── nvme_get_log_supported_log_pages.2 │ ├── nvme_get_log_telemetry_ctrl.2 │ ├── nvme_get_log_telemetry_host.2 │ ├── nvme_get_log_zns_changed_zones.2 │ ├── nvme_get_logging_level.2 │ ├── nvme_get_logical_block_size.2 │ ├── nvme_get_new_host_telemetry.2 │ ├── nvme_get_ns_attr.2 │ ├── nvme_get_nsid.2 │ ├── nvme_get_path_attr.2 │ ├── nvme_get_property.2 │ ├── nvme_get_subsys_attr.2 │ ├── nvme_get_telemetry_log.2 │ ├── nvme_get_telemetry_max.2 │ ├── nvme_hmac_alg.2 │ ├── nvme_host_behavior_support.2 │ ├── nvme_host_discover_log.2 │ ├── nvme_host_ext_discover_log.2 │ ├── nvme_host_get_dhchap_key.2 │ ├── nvme_host_get_hostid.2 │ ├── nvme_host_get_hostnqn.2 │ ├── nvme_host_get_hostsymname.2 │ ├── nvme_host_get_root.2 │ ├── nvme_host_is_pdc_enabled.2 │ ├── nvme_host_mem_buf_attrs.2 │ ├── nvme_host_metadata.2 │ ├── nvme_host_release_fds.2 │ ├── nvme_host_set_dhchap_key.2 │ ├── nvme_host_set_hostsymname.2 │ ├── nvme_host_set_pdc_enabled.2 │ ├── nvme_id_ctrl.2 │ ├── nvme_id_ctrl_anacap.2 │ ├── nvme_id_ctrl_apsta.2 │ ├── nvme_id_ctrl_avscc.2 │ ├── nvme_id_ctrl_bpcap.2 │ ├── nvme_id_ctrl_cmic.2 │ ├── nvme_id_ctrl_cntrltype.2 │ ├── nvme_id_ctrl_cqes.2 │ ├── nvme_id_ctrl_crcap.2 │ ├── nvme_id_ctrl_ctratt.2 │ ├── nvme_id_ctrl_dctype.2 │ ├── nvme_id_ctrl_dsto.2 │ ├── nvme_id_ctrl_fcatt.2 │ ├── nvme_id_ctrl_fna.2 │ ├── nvme_id_ctrl_frmw.2 │ ├── nvme_id_ctrl_fuses.2 │ ├── nvme_id_ctrl_hctm.2 │ ├── nvme_id_ctrl_kpioc.2 │ ├── nvme_id_ctrl_lpa.2 │ ├── nvme_id_ctrl_mec.2 │ ├── nvme_id_ctrl_nvm.2 │ ├── nvme_id_ctrl_nvm_lbamqf.2 │ ├── nvme_id_ctrl_nvmsr.2 │ ├── nvme_id_ctrl_nvscc.2 │ ├── nvme_id_ctrl_nwpc.2 │ ├── nvme_id_ctrl_oacs.2 │ ├── nvme_id_ctrl_oaes.2 │ ├── nvme_id_ctrl_ofcs.2 │ ├── nvme_id_ctrl_oncs.2 │ ├── nvme_id_ctrl_plsi.2 │ ├── nvme_id_ctrl_rpmbs.2 │ ├── nvme_id_ctrl_sanicap.2 │ ├── nvme_id_ctrl_sgls.2 │ ├── nvme_id_ctrl_sqes.2 │ ├── nvme_id_ctrl_trattr.2 │ ├── nvme_id_ctrl_vwc.2 │ ├── nvme_id_ctrl_vwci.2 │ ├── nvme_id_directives.2 │ ├── nvme_id_domain_attr.2 │ ├── nvme_id_domain_list.2 │ ├── nvme_id_endurance_group_list.2 │ ├── nvme_id_independent_id_ns.2 │ ├── nvme_id_iocs.2 │ ├── nvme_id_iocs_iocsc.2 │ ├── nvme_id_ns.2 │ ├── nvme_id_ns_attr.2 │ ├── nvme_id_ns_dlfeat.2 │ ├── nvme_id_ns_dpc.2 │ ├── nvme_id_ns_dps.2 │ ├── nvme_id_ns_flbas.2 │ ├── nvme_id_ns_granularity_desc.2 │ ├── nvme_id_ns_granularity_list.2 │ ├── nvme_id_ns_mc.2 │ ├── nvme_id_ns_nmic.2 │ ├── nvme_id_ns_rescap.2 │ ├── nvme_id_nsfeat.2 │ ├── nvme_id_nvmset_list.2 │ ├── nvme_id_psd.2 │ ├── nvme_id_uuid.2 │ ├── nvme_id_uuid_list.2 │ ├── nvme_id_uuid_list_entry.2 │ ├── nvme_identify.2 │ ├── nvme_identify_active_ns_list.2 │ ├── nvme_identify_active_ns_list_csi.2 │ ├── nvme_identify_allocated_ns.2 │ ├── nvme_identify_allocated_ns_list.2 │ ├── nvme_identify_allocated_ns_list_csi.2 │ ├── nvme_identify_cns.2 │ ├── nvme_identify_ctrl.2 │ ├── nvme_identify_ctrl_csi.2 │ ├── nvme_identify_ctrl_list.2 │ ├── nvme_identify_domain_list.2 │ ├── nvme_identify_endurance_group_list.2 │ ├── nvme_identify_independent_identify_ns.2 │ ├── nvme_identify_iocs.2 │ ├── nvme_identify_iocs_ns_csi_user_data_format.2 │ ├── nvme_identify_ns.2 │ ├── nvme_identify_ns_csi.2 │ ├── nvme_identify_ns_csi_user_data_format.2 │ ├── nvme_identify_ns_descs.2 │ ├── nvme_identify_ns_granularity.2 │ ├── nvme_identify_nsid_ctrl_list.2 │ ├── nvme_identify_nvmset_list.2 │ ├── nvme_identify_primary_ctrl.2 │ ├── nvme_identify_secondary_ctrl_list.2 │ ├── nvme_identify_uuid.2 │ ├── nvme_import_tls_key.2 │ ├── nvme_import_tls_key_versioned.2 │ ├── nvme_init_copy_range.2 │ ├── nvme_init_copy_range_f1.2 │ ├── nvme_init_copy_range_f2.2 │ ├── nvme_init_copy_range_f3.2 │ ├── nvme_init_ctrl.2 │ ├── nvme_init_ctrl_list.2 │ ├── nvme_init_default_logging.2 │ ├── nvme_init_dsm_range.2 │ ├── nvme_init_logging.2 │ ├── nvme_insert_tls_key.2 │ ├── nvme_insert_tls_key_versioned.2 │ ├── nvme_io.2 │ ├── nvme_io_control_flags.2 │ ├── nvme_io_dsm_flags.2 │ ├── nvme_io_mgmt_recv.2 │ ├── nvme_io_mgmt_recv_mo.2 │ ├── nvme_io_mgmt_send.2 │ ├── nvme_io_mgmt_send_mo.2 │ ├── nvme_io_opcode.2 │ ├── nvme_io_passthru.2 │ ├── nvme_io_passthru64.2 │ ├── nvme_is_64bit_reg.2 │ ├── nvme_kv_opcode.2 │ ├── nvme_lba_range_type.2 │ ├── nvme_lba_range_type_entry.2 │ ├── nvme_lba_rd.2 │ ├── nvme_lba_status.2 │ ├── nvme_lba_status_atype.2 │ ├── nvme_lba_status_cmpc.2 │ ├── nvme_lba_status_desc.2 │ ├── nvme_lba_status_log.2 │ ├── nvme_lbaf.2 │ ├── nvme_lbaf_rp.2 │ ├── nvme_lbart.2 │ ├── nvme_lbas_ns_element.2 │ ├── nvme_lm_cdq.2 │ ├── nvme_lm_cdq_fields.2 │ ├── nvme_lm_controller_state_data.2 │ ├── nvme_lm_controller_state_data_header.2 │ ├── nvme_lm_ctrl_data_queue_fid.2 │ ├── nvme_lm_ctrl_data_queue_fid_data.2 │ ├── nvme_lm_io_completion_queue_data.2 │ ├── nvme_lm_io_submission_queue_data.2 │ ├── nvme_lm_migration_recv_fields.2 │ ├── nvme_lm_migration_send.2 │ ├── nvme_lm_migration_send_fields.2 │ ├── nvme_lm_nvme_controller_state_data.2 │ ├── nvme_lm_nvme_controller_state_data_header.2 │ ├── nvme_lm_queue_attributes.2 │ ├── nvme_lm_track_send.2 │ ├── nvme_lm_track_send_fields.2 │ ├── nvme_lockdown.2 │ ├── nvme_lockdown_log.2 │ ├── nvme_lockdown_log_contents.2 │ ├── nvme_lockdown_log_scope.2 │ ├── nvme_lockdown_scope_contents.2 │ ├── nvme_log_ana_lsp.2 │ ├── nvme_log_phy_rx_eom_action.2 │ ├── nvme_log_phy_rx_eom_quality.2 │ ├── nvme_lookup_ctrl.2 │ ├── nvme_lookup_host.2 │ ├── nvme_lookup_key.2 │ ├── nvme_lookup_keyring.2 │ ├── nvme_lookup_subsystem.2 │ ├── nvme_media_unit_config_desc.2 │ ├── nvme_media_unit_stat_desc.2 │ ├── nvme_media_unit_stat_log.2 │ ├── nvme_metadata_element_desc.2 │ ├── nvme_mgmt_addr_desc.2 │ ├── nvme_mgmt_addr_list_log.2 │ ├── nvme_mi_admin_admin_passthru.2 │ ├── nvme_mi_admin_format_nvm.2 │ ├── nvme_mi_admin_fw_commit.2 │ ├── nvme_mi_admin_fw_download.2 │ ├── nvme_mi_admin_get_ana_log_atomic.2 │ ├── nvme_mi_admin_get_endgid_log.2 │ ├── nvme_mi_admin_get_features_data.2 │ ├── nvme_mi_admin_get_log.2 │ ├── nvme_mi_admin_get_log_ana.2 │ ├── nvme_mi_admin_get_log_ana_groups.2 │ ├── nvme_mi_admin_get_log_ave_discover.2 │ ├── nvme_mi_admin_get_log_boot_partition.2 │ ├── nvme_mi_admin_get_log_changed_alloc_ns_list.2 │ ├── nvme_mi_admin_get_log_changed_ns_list.2 │ ├── nvme_mi_admin_get_log_cmd_effects.2 │ ├── nvme_mi_admin_get_log_create_telemetry_host.2 │ ├── nvme_mi_admin_get_log_create_telemetry_host_mcda.2 │ ├── nvme_mi_admin_get_log_device_self_test.2 │ ├── nvme_mi_admin_get_log_discovery.2 │ ├── nvme_mi_admin_get_log_dispersed_ns_participating_nss.2 │ ├── nvme_mi_admin_get_log_endurance_group.2 │ ├── nvme_mi_admin_get_log_endurance_grp_evt.2 │ ├── nvme_mi_admin_get_log_error.2 │ ├── nvme_mi_admin_get_log_fid_supported_effects.2 │ ├── nvme_mi_admin_get_log_fw_slot.2 │ ├── nvme_mi_admin_get_log_host_discover.2 │ ├── nvme_mi_admin_get_log_lba_status.2 │ ├── nvme_mi_admin_get_log_lockdown.2 │ ├── nvme_mi_admin_get_log_media_unit_stat.2 │ ├── nvme_mi_admin_get_log_mgmt_addr_list.2 │ ├── nvme_mi_admin_get_log_mi_cmd_supported_effects.2 │ ├── nvme_mi_admin_get_log_page.2 │ ├── nvme_mi_admin_get_log_persistent_event.2 │ ├── nvme_mi_admin_get_log_phy_rx_eom.2 │ ├── nvme_mi_admin_get_log_predictable_lat_event.2 │ ├── nvme_mi_admin_get_log_predictable_lat_nvmset.2 │ ├── nvme_mi_admin_get_log_pull_model_ddc_req.2 │ ├── nvme_mi_admin_get_log_reachability_associations.2 │ ├── nvme_mi_admin_get_log_reachability_groups.2 │ ├── nvme_mi_admin_get_log_reservation.2 │ ├── nvme_mi_admin_get_log_rotational_media_info.2 │ ├── nvme_mi_admin_get_log_sanitize.2 │ ├── nvme_mi_admin_get_log_simple.2 │ ├── nvme_mi_admin_get_log_smart.2 │ ├── nvme_mi_admin_get_log_support_cap_config_list.2 │ ├── nvme_mi_admin_get_log_supported_log_pages.2 │ ├── nvme_mi_admin_get_log_telemetry_ctrl.2 │ ├── nvme_mi_admin_get_log_telemetry_host.2 │ ├── nvme_mi_admin_get_log_zns_changed_zones.2 │ ├── nvme_mi_admin_get_nsid_log.2 │ ├── nvme_mi_admin_identify.2 │ ├── nvme_mi_admin_identify_active_ns_list.2 │ ├── nvme_mi_admin_identify_allocated_ns.2 │ ├── nvme_mi_admin_identify_allocated_ns_list.2 │ ├── nvme_mi_admin_identify_cns_nsid.2 │ ├── nvme_mi_admin_identify_ctrl.2 │ ├── nvme_mi_admin_identify_ctrl_list.2 │ ├── nvme_mi_admin_identify_ns.2 │ ├── nvme_mi_admin_identify_ns_descs.2 │ ├── nvme_mi_admin_identify_nsid_ctrl_list.2 │ ├── nvme_mi_admin_identify_partial.2 │ ├── nvme_mi_admin_identify_primary_ctrl.2 │ ├── nvme_mi_admin_identify_secondary_ctrl_list.2 │ ├── nvme_mi_admin_ns_attach.2 │ ├── nvme_mi_admin_ns_attach_ctrls.2 │ ├── nvme_mi_admin_ns_detach_ctrls.2 │ ├── nvme_mi_admin_req_hdr.2 │ ├── nvme_mi_admin_resp_hdr.2 │ ├── nvme_mi_admin_sanitize_nvm.2 │ ├── nvme_mi_admin_security_recv.2 │ ├── nvme_mi_admin_security_send.2 │ ├── nvme_mi_admin_xfer.2 │ ├── nvme_mi_aem_aeei_get_aee.2 │ ├── nvme_mi_aem_aeei_get_aeeid.2 │ ├── nvme_mi_aem_aeei_set_aee.2 │ ├── nvme_mi_aem_aeei_set_aeeid.2 │ ├── nvme_mi_aem_aemti_get_aemgn.2 │ ├── nvme_mi_aem_aeolli_get_aeoltl.2 │ ├── nvme_mi_aem_aeolli_set_aeoltl.2 │ ├── nvme_mi_aem_aesi_get_aese.2 │ ├── nvme_mi_aem_aesi_get_aesid.2 │ ├── nvme_mi_aem_aesi_set_aee.2 │ ├── nvme_mi_aem_aesi_set_aesid.2 │ ├── nvme_mi_aem_config.2 │ ├── nvme_mi_aem_disable.2 │ ├── nvme_mi_aem_enable.2 │ ├── nvme_mi_aem_enable_item.2 │ ├── nvme_mi_aem_enable_list.2 │ ├── nvme_mi_aem_enable_list_header.2 │ ├── nvme_mi_aem_get_enabled.2 │ ├── nvme_mi_aem_get_fd.2 │ ├── nvme_mi_aem_get_next_event.2 │ ├── nvme_mi_aem_handler_next_action.2 │ ├── nvme_mi_aem_msg.2 │ ├── nvme_mi_aem_occ_data.2 │ ├── nvme_mi_aem_occ_list_hdr.2 │ ├── nvme_mi_aem_open.2 │ ├── nvme_mi_aem_process.2 │ ├── nvme_mi_aem_supported_item.2 │ ├── nvme_mi_aem_supported_list.2 │ ├── nvme_mi_aem_supported_list_header.2 │ ├── nvme_mi_ccs.2 │ ├── nvme_mi_close.2 │ ├── nvme_mi_close_ctrl.2 │ ├── nvme_mi_cmd_supported_effects.2 │ ├── nvme_mi_cmd_supported_effects_log.2 │ ├── nvme_mi_config_id.2 │ ├── nvme_mi_config_smbus_freq.2 │ ├── nvme_mi_control.2 │ ├── nvme_mi_control_opcode.2 │ ├── nvme_mi_control_req.2 │ ├── nvme_mi_create_root.2 │ ├── nvme_mi_csts.2 │ ├── nvme_mi_ctrl_health_status.2 │ ├── nvme_mi_ctrl_id.2 │ ├── nvme_mi_cwarn.2 │ ├── nvme_mi_dtyp.2 │ ├── nvme_mi_elem.2 │ ├── nvme_mi_event.2 │ ├── nvme_mi_free_root.2 │ ├── nvme_mi_init_ctrl.2 │ ├── nvme_mi_message_type.2 │ ├── nvme_mi_mi_opcode.2 │ ├── nvme_mi_mi_read_mi_data_ctrl.2 │ ├── nvme_mi_mi_read_mi_data_ctrl_list.2 │ ├── nvme_mi_mi_read_mi_data_port.2 │ ├── nvme_mi_mi_read_mi_data_subsys.2 │ ├── nvme_mi_mi_req_hdr.2 │ ├── nvme_mi_mi_resp_hdr.2 │ ├── nvme_mi_mi_subsystem_health_status_poll.2 │ ├── nvme_mi_mi_xfer.2 │ ├── nvme_mi_msg_hdr.2 │ ├── nvme_mi_msg_resp.2 │ ├── nvme_mi_nvm_ss_health_status.2 │ ├── nvme_mi_open_mctp.2 │ ├── nvme_mi_osc.2 │ ├── nvme_mi_port_pcie.2 │ ├── nvme_mi_port_smb.2 │ ├── nvme_mi_read_ctrl_info.2 │ ├── nvme_mi_read_nvm_ss_info.2 │ ├── nvme_mi_read_port_info.2 │ ├── nvme_mi_read_sc_list.2 │ ├── nvme_mi_resp_status.2 │ ├── nvme_mi_set_probe_enabled.2 │ ├── nvme_mi_status_to_string.2 │ ├── nvme_mi_vpd_hdr.2 │ ├── nvme_mi_vpd_mr_common.2 │ ├── nvme_mi_vpd_mra.2 │ ├── nvme_mi_vpd_ppmra.2 │ ├── nvme_mi_vpd_telem.2 │ ├── nvme_mi_vpd_tra.2 │ ├── nvme_namespace_attach_ctrls.2 │ ├── nvme_namespace_detach_ctrls.2 │ ├── nvme_namespace_filter.2 │ ├── nvme_namespace_first_path.2 │ ├── nvme_namespace_for_each_path.2 │ ├── nvme_namespace_for_each_path_safe.2 │ ├── nvme_namespace_next_path.2 │ ├── nvme_nbft_free.2 │ ├── nvme_nbft_read.2 │ ├── nvme_nd_ns_fpi.2 │ ├── nvme_next_host.2 │ ├── nvme_next_subsystem.2 │ ├── nvme_ns_attach.2 │ ├── nvme_ns_attach_ctrls.2 │ ├── nvme_ns_attach_sel.2 │ ├── nvme_ns_compare.2 │ ├── nvme_ns_detach_ctrls.2 │ ├── nvme_ns_flush.2 │ ├── nvme_ns_get_csi.2 │ ├── nvme_ns_get_ctrl.2 │ ├── nvme_ns_get_eui64.2 │ ├── nvme_ns_get_fd.2 │ ├── nvme_ns_get_firmware.2 │ ├── nvme_ns_get_generic_name.2 │ ├── nvme_ns_get_lba_count.2 │ ├── nvme_ns_get_lba_size.2 │ ├── nvme_ns_get_lba_util.2 │ ├── nvme_ns_get_meta_size.2 │ ├── nvme_ns_get_model.2 │ ├── nvme_ns_get_name.2 │ ├── nvme_ns_get_nguid.2 │ ├── nvme_ns_get_nsid.2 │ ├── nvme_ns_get_serial.2 │ ├── nvme_ns_get_subsystem.2 │ ├── nvme_ns_get_sysfs_dir.2 │ ├── nvme_ns_get_uuid.2 │ ├── nvme_ns_id_desc.2 │ ├── nvme_ns_id_desc_nidt.2 │ ├── nvme_ns_identify.2 │ ├── nvme_ns_identify_descs.2 │ ├── nvme_ns_list.2 │ ├── nvme_ns_metadata_type.2 │ ├── nvme_ns_mgmt.2 │ ├── nvme_ns_mgmt_create.2 │ ├── nvme_ns_mgmt_delete.2 │ ├── nvme_ns_mgmt_delete_timeout.2 │ ├── nvme_ns_mgmt_host_sw_specified.2 │ ├── nvme_ns_mgmt_sel.2 │ ├── nvme_ns_read.2 │ ├── nvme_ns_release_fd.2 │ ├── nvme_ns_rescan.2 │ ├── nvme_ns_verify.2 │ ├── nvme_ns_write.2 │ ├── nvme_ns_write_protect_cfg.2 │ ├── nvme_ns_write_uncorrectable.2 │ ├── nvme_ns_write_zeros.2 │ ├── nvme_nss_hw_err_event.2 │ ├── nvme_nvm_id_ns.2 │ ├── nvme_nvm_id_ns_elbaf.2 │ ├── nvme_nvm_id_ns_pif.2 │ ├── nvme_nvm_identify_ctrl.2 │ ├── nvme_nvmeset_pl_status.2 │ ├── nvme_nvmset_attr.2 │ ├── nvme_nvmset_pl_events.2 │ ├── nvme_nvmset_predictable_lat_log.2 │ ├── nvme_open.2 │ ├── nvme_parse_uri.2 │ ├── nvme_passthru_cmd.2 │ ├── nvme_passthru_cmd64.2 │ ├── nvme_path_get_ana_state.2 │ ├── nvme_path_get_ctrl.2 │ ├── nvme_path_get_name.2 │ ├── nvme_path_get_ns.2 │ ├── nvme_path_get_sysfs_dir.2 │ ├── nvme_paths_filter.2 │ ├── nvme_pel_ehai.2 │ ├── nvme_pel_ehai_pit.2 │ ├── nvme_pel_rci.2 │ ├── nvme_pel_rci_rcpit.2 │ ├── nvme_perf_attr_id.2 │ ├── nvme_perf_attr_id_list.2 │ ├── nvme_perf_characteristics.2 │ ├── nvme_persistent_event_entry.2 │ ├── nvme_persistent_event_log.2 │ ├── nvme_persistent_event_types.2 │ ├── nvme_pevent_log_action.2 │ ├── nvme_phy_rx_eom_log.2 │ ├── nvme_phy_rx_eom_progress.2 │ ├── nvme_plm_config.2 │ ├── nvme_pmr_size.2 │ ├── nvme_pmr_throughput.2 │ ├── nvme_pmrcap.2 │ ├── nvme_pmrctl.2 │ ├── nvme_pmrebs.2 │ ├── nvme_pmrmsc.2 │ ├── nvme_pmrsts.2 │ ├── nvme_pmrswtp.2 │ ├── nvme_power_on_reset_info_list.2 │ ├── nvme_primary_ctrl_cap.2 │ ├── nvme_psd_flags.2 │ ├── nvme_psd_power_scale.2 │ ├── nvme_psd_ps.2 │ ├── nvme_psd_workload.2 │ ├── nvme_pull_model_ddc_req_log.2 │ ├── nvme_reachability_association_desc.2 │ ├── nvme_reachability_associations_log.2 │ ├── nvme_reachability_group_desc.2 │ ├── nvme_reachability_groups_log.2 │ ├── nvme_read.2 │ ├── nvme_read_config.2 │ ├── nvme_read_key.2 │ ├── nvme_refresh_topology.2 │ ├── nvme_register_offsets.2 │ ├── nvme_registered_ctrl.2 │ ├── nvme_registered_ctrl_ext.2 │ ├── nvme_rescan_ctrl.2 │ ├── nvme_resv_acquire.2 │ ├── nvme_resv_cptpl.2 │ ├── nvme_resv_notification_log.2 │ ├── nvme_resv_notify_rnlpt.2 │ ├── nvme_resv_racqa.2 │ ├── nvme_resv_register.2 │ ├── nvme_resv_release.2 │ ├── nvme_resv_report.2 │ ├── nvme_resv_rrega.2 │ ├── nvme_resv_rrela.2 │ ├── nvme_resv_rtype.2 │ ├── nvme_resv_status.2 │ ├── nvme_revoke_tls_key.2 │ ├── nvme_rotational_media_info_log.2 │ ├── nvme_sanitize_compln_event.2 │ ├── nvme_sanitize_log_page.2 │ ├── nvme_sanitize_nvm.2 │ ├── nvme_sanitize_sanact.2 │ ├── nvme_sanitize_ssi.2 │ ├── nvme_sanitize_sstat.2 │ ├── nvme_sanitize_start_event.2 │ ├── nvme_scan.2 │ ├── nvme_scan_ctrl.2 │ ├── nvme_scan_ctrl_namespace_paths.2 │ ├── nvme_scan_ctrl_namespaces.2 │ ├── nvme_scan_ctrls.2 │ ├── nvme_scan_namespace.2 │ ├── nvme_scan_subsystem_namespaces.2 │ ├── nvme_scan_subsystems.2 │ ├── nvme_scan_tls_keys.2 │ ├── nvme_scan_topology.2 │ ├── nvme_secondary_ctrl.2 │ ├── nvme_secondary_ctrl_list.2 │ ├── nvme_security_receive.2 │ ├── nvme_security_send.2 │ ├── nvme_self_test_log.2 │ ├── nvme_set_feat_event_layout.2 │ ├── nvme_set_feature_event.2 │ ├── nvme_set_features.2 │ ├── nvme_set_features_arbitration.2 │ ├── nvme_set_features_async_event.2 │ ├── nvme_set_features_auto_pst.2 │ ├── nvme_set_features_data.2 │ ├── nvme_set_features_endurance_evt_cfg.2 │ ├── nvme_set_features_err_recovery.2 │ ├── nvme_set_features_hctm.2 │ ├── nvme_set_features_host_behavior.2 │ ├── nvme_set_features_host_id.2 │ ├── nvme_set_features_iocs_profile.2 │ ├── nvme_set_features_irq_coalesce.2 │ ├── nvme_set_features_irq_config.2 │ ├── nvme_set_features_lba_range.2 │ ├── nvme_set_features_lba_sts_interval.2 │ ├── nvme_set_features_nopsc.2 │ ├── nvme_set_features_plm_config.2 │ ├── nvme_set_features_plm_window.2 │ ├── nvme_set_features_power_mgmt.2 │ ├── nvme_set_features_resv_mask.2 │ ├── nvme_set_features_resv_mask2.2 │ ├── nvme_set_features_resv_persist.2 │ ├── nvme_set_features_resv_persist2.2 │ ├── nvme_set_features_rrl.2 │ ├── nvme_set_features_sanitize.2 │ ├── nvme_set_features_simple.2 │ ├── nvme_set_features_sw_progress.2 │ ├── nvme_set_features_temp_thresh.2 │ ├── nvme_set_features_temp_thresh2.2 │ ├── nvme_set_features_timestamp.2 │ ├── nvme_set_features_volatile_wc.2 │ ├── nvme_set_features_write_atomic.2 │ ├── nvme_set_features_write_protect.2 │ ├── nvme_set_features_write_protect2.2 │ ├── nvme_set_keyring.2 │ ├── nvme_set_property.2 │ ├── nvme_set_root.2 │ ├── nvme_smart_crit.2 │ ├── nvme_smart_egcw.2 │ ├── nvme_smart_log.2 │ ├── nvme_st_code.2 │ ├── nvme_st_curr_op.2 │ ├── nvme_st_result.2 │ ├── nvme_st_valid_diag_info.2 │ ├── nvme_status_code.2 │ ├── nvme_status_code_type.2 │ ├── nvme_status_equals.2 │ ├── nvme_status_field.2 │ ├── nvme_status_get_type.2 │ ├── nvme_status_get_value.2 │ ├── nvme_status_result.2 │ ├── nvme_status_to_errno.2 │ ├── nvme_status_to_string.2 │ ├── nvme_status_type.2 │ ├── nvme_std_perf_attr.2 │ ├── nvme_streams_directive_params.2 │ ├── nvme_streams_directive_status.2 │ ├── nvme_submit_admin_passthru.2 │ ├── nvme_submit_admin_passthru64.2 │ ├── nvme_submit_io_passthru.2 │ ├── nvme_submit_io_passthru64.2 │ ├── nvme_subsys_filter.2 │ ├── nvme_subsys_type.2 │ ├── nvme_subsystem_first_ctrl.2 │ ├── nvme_subsystem_first_ns.2 │ ├── nvme_subsystem_for_each_ctrl.2 │ ├── nvme_subsystem_for_each_ctrl_safe.2 │ ├── nvme_subsystem_for_each_ns.2 │ ├── nvme_subsystem_for_each_ns_safe.2 │ ├── nvme_subsystem_get_application.2 │ ├── nvme_subsystem_get_fw_rev.2 │ ├── nvme_subsystem_get_host.2 │ ├── nvme_subsystem_get_iopolicy.2 │ ├── nvme_subsystem_get_model.2 │ ├── nvme_subsystem_get_name.2 │ ├── nvme_subsystem_get_nqn.2 │ ├── nvme_subsystem_get_serial.2 │ ├── nvme_subsystem_get_sysfs_dir.2 │ ├── nvme_subsystem_get_type.2 │ ├── nvme_subsystem_lookup_namespace.2 │ ├── nvme_subsystem_next_ctrl.2 │ ├── nvme_subsystem_next_ns.2 │ ├── nvme_subsystem_release_fds.2 │ ├── nvme_subsystem_reset.2 │ ├── nvme_subsystem_set_application.2 │ ├── nvme_supported_cap_config_list_log.2 │ ├── nvme_supported_log_pages.2 │ ├── nvme_telemetry_da.2 │ ├── nvme_telemetry_log.2 │ ├── nvme_thermal_exc_event.2 │ ├── nvme_time_stamp_change_event.2 │ ├── nvme_timestamp.2 │ ├── nvme_unit.2 │ ├── nvme_unlink_ctrl.2 │ ├── nvme_update_config.2 │ ├── nvme_update_key.2 │ ├── nvme_uring_cmd.2 │ ├── nvme_verify.2 │ ├── nvme_version.2 │ ├── nvme_virt_mgmt_act.2 │ ├── nvme_virt_mgmt_rt.2 │ ├── nvme_virtual_mgmt.2 │ ├── nvme_vs.2 │ ├── nvme_vs_perf_attr.2 │ ├── nvme_write.2 │ ├── nvme_write_uncorrectable.2 │ ├── nvme_write_zeros.2 │ ├── nvme_zns_append.2 │ ├── nvme_zns_changed_zone_log.2 │ ├── nvme_zns_desc.2 │ ├── nvme_zns_id_ctrl.2 │ ├── nvme_zns_id_ns.2 │ ├── nvme_zns_identify_ctrl.2 │ ├── nvme_zns_identify_ns.2 │ ├── nvme_zns_lbafe.2 │ ├── nvme_zns_mgmt_recv.2 │ ├── nvme_zns_mgmt_send.2 │ ├── nvme_zns_recv_action.2 │ ├── nvme_zns_report_options.2 │ ├── nvme_zns_report_zones.2 │ ├── nvme_zns_send_action.2 │ ├── nvme_zns_za.2 │ ├── nvme_zns_zs.2 │ ├── nvme_zns_zt.2 │ ├── nvme_zone_report.2 │ ├── nvmf_add_ctrl.2 │ ├── nvmf_addr_family.2 │ ├── nvmf_adrfam_str.2 │ ├── nvmf_cms_str.2 │ ├── nvmf_connect_ctrl.2 │ ├── nvmf_connect_data.2 │ ├── nvmf_connect_disc_entry.2 │ ├── nvmf_default_config.2 │ ├── nvmf_dim_data.2 │ ├── nvmf_dim_entfmt.2 │ ├── nvmf_dim_etype.2 │ ├── nvmf_dim_tas.2 │ ├── nvmf_disc_eflags.2 │ ├── nvmf_disc_log_entry.2 │ ├── nvmf_discovery_log.2 │ ├── nvmf_eflags_str.2 │ ├── nvmf_exat_len.2 │ ├── nvmf_exattype.2 │ ├── nvmf_ext_attr.2 │ ├── nvmf_ext_die.2 │ ├── nvmf_get_discovery_log.2 │ ├── nvmf_get_discovery_wargs.2 │ ├── nvmf_hostid_from_file.2 │ ├── nvmf_hostid_generate.2 │ ├── nvmf_hostnqn_from_file.2 │ ├── nvmf_hostnqn_generate.2 │ ├── nvmf_hostnqn_generate_from_hostid.2 │ ├── nvmf_log_discovery_lid_support.2 │ ├── nvmf_log_discovery_lsp.2 │ ├── nvmf_prtype_str.2 │ ├── nvmf_qptype_str.2 │ ├── nvmf_rdma_cms.2 │ ├── nvmf_rdma_prtype.2 │ ├── nvmf_rdma_qptype.2 │ ├── nvmf_register_ctrl.2 │ ├── nvmf_sectype_str.2 │ ├── nvmf_subtype_str.2 │ ├── nvmf_tcp_sectype.2 │ ├── nvmf_treq.2 │ ├── nvmf_treq_str.2 │ ├── nvmf_trtype.2 │ ├── nvmf_trtype_str.2 │ └── nvmf_update_config.2 ├── meson.build ├── mi.rst.in ├── quickstart.rst.in └── rst │ ├── fabrics.rst │ ├── filters.rst │ ├── ioctl.rst │ ├── linux.rst │ ├── log.rst │ ├── meson.build │ ├── mi.rst │ ├── nbft.rst │ ├── tree.rst │ ├── types.rst │ └── util.rst ├── examples ├── discover-loop.c ├── discover-loop.py ├── display-columnar.c ├── display-tree.c ├── meson.build ├── mi-conf.c ├── mi-mctp-ae.c ├── mi-mctp-csi-test.c ├── mi-mctp.c └── telemetry-listen.c ├── internal └── meson.build ├── libnvme.spec.in ├── libnvme ├── .gitignore ├── README.md ├── __init__.py ├── meson.build ├── nvme.i └── tests │ ├── NBFT │ ├── create-ctrl-obj.py │ ├── gc.py │ └── test-nbft.py ├── meson.build ├── meson_options.txt ├── pyproject.toml ├── scripts ├── build.sh ├── collect-sysfs.sh ├── kernel-doc ├── kernel-doc-check ├── list-man-pages.sh ├── list-pre-compiled.sh ├── meson-vcs-tag.sh ├── release.sh └── update-docs.sh ├── src ├── libnvme-mi.h ├── libnvme-mi.map ├── libnvme.h ├── libnvme.map ├── meson.build └── nvme │ ├── api-types.h │ ├── base64.c │ ├── base64.h │ ├── cleanup.h │ ├── crc32.c │ ├── crc32.h │ ├── fabrics.c │ ├── fabrics.h │ ├── filters.c │ ├── filters.h │ ├── ioctl.c │ ├── ioctl.h │ ├── json.c │ ├── linux.c │ ├── linux.h │ ├── log.c │ ├── log.h │ ├── mi-mctp.c │ ├── mi.c │ ├── mi.h │ ├── nbft.c │ ├── nbft.h │ ├── no-json.c │ ├── private.h │ ├── sysfs.c │ ├── tree.c │ ├── tree.h │ ├── types.h │ ├── util.c │ └── util.h ├── subprojects ├── dbus.wrap ├── json-c.wrap └── openssl.wrap └── test ├── config ├── config-diff.sh ├── config-dump.c ├── data │ ├── config-pcie-with-tcp-config.json │ ├── config-pcie-with-tcp-config.out │ ├── config-pcie-with-tcp-config.tar.xz │ ├── config-pcie.json │ ├── config-pcie.out │ ├── config-pcie.tar.xz │ ├── hostnqn-order.json │ ├── hostnqn-order.out │ ├── hostnqn-order.tar.xz │ ├── tls_key-1.json │ ├── tls_key-1.out │ ├── tls_key-2.json │ └── tls_key-2.out ├── hostnqn-order.c ├── meson.build └── psk-json.c ├── cpp.cc ├── ioctl ├── ana.c ├── discovery.c ├── features.c ├── identify.c ├── logs.c ├── meson.build ├── mock.c ├── mock.h ├── util.c └── util.h ├── meson.build ├── mi-mctp.c ├── mi.c ├── misc.cc ├── mock-ifaddrs.c ├── nbft ├── README ├── diffs │ ├── NBFT-Dell.PowerEdge.R660-fw1.5.5-mpath+discovery │ ├── NBFT-Dell.PowerEdge.R660-fw1.5.5-single │ ├── NBFT-Dell.PowerEdge.R760 │ ├── NBFT-auto-ipv6 │ ├── NBFT-dhcp-ipv4 │ ├── NBFT-dhcp-ipv6 │ ├── NBFT-empty │ ├── NBFT-ipv6-noip+disc │ ├── NBFT-mpath+disc-ipv4+6_half │ ├── NBFT-rhpoc │ ├── NBFT-static-ipv4 │ ├── NBFT-static-ipv4-discovery │ └── NBFT-static-ipv6 ├── gen-nbft-diffs.sh.in ├── meson.build ├── nbft-dump-diff.sh.in ├── nbft-dump.c ├── tables │ ├── NBFT-Dell.PowerEdge.R660-fw1.5.5-mpath+discovery │ ├── NBFT-Dell.PowerEdge.R660-fw1.5.5-single │ ├── NBFT-Dell.PowerEdge.R760 │ ├── NBFT-auto-ipv6 │ ├── NBFT-dhcp-ipv4 │ ├── NBFT-dhcp-ipv6 │ ├── NBFT-empty │ ├── NBFT-ipv6-noip+disc │ ├── NBFT-mpath+disc-ipv4+6_half │ ├── NBFT-rhpoc │ ├── NBFT-static-ipv4 │ ├── NBFT-static-ipv4-discovery │ └── NBFT-static-ipv6 └── tables_bad │ ├── NBFT-bad-oldspec │ └── NBFT-random-noise ├── psk.c ├── register.c ├── sysfs ├── data │ ├── tree-pcie.out │ └── tree-pcie.tar.xz ├── meson.build ├── tree-diff.sh └── tree-dump.c ├── test-util.c ├── test.c ├── tree.c ├── tree.py ├── uriparser.c ├── utils.c ├── utils.h ├── uuid.c └── zns.c /.github/cross/ubuntu-cross-armhf.txt: -------------------------------------------------------------------------------- 1 | [binaries] 2 | c = '/usr/bin/arm-linux-gnueabihf-gcc' 3 | ar = '/usr/arm-linux-gnueabihf/bin/ar' 4 | strip = '/usr/arm-linux-gnueabihf/bin/strip' 5 | pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config' 6 | ld = '/usr/bin/arm-linux/gnueabihf-ld' 7 | exe_wrapper = '/usr/bin/qemu-arm-static' 8 | 9 | [properties] 10 | root = '/usr/arm-linux-gnueabihf' 11 | has_function_printf = true 12 | skip_sanity_check = true 13 | 14 | [host_machine] 15 | system = 'linux' 16 | cpu_family = 'arm' 17 | cpu = 'armv7' 18 | endian = 'little' 19 | -------------------------------------------------------------------------------- /.github/cross/ubuntu-cross-ppc64le.txt: -------------------------------------------------------------------------------- 1 | [binaries] 2 | c = '/usr/bin/powerpc64le-linux-gnu-gcc' 3 | ar = '/usr/powerpc64le-linux-gnu/bin/ar' 4 | strip = '/usr/powerpc64le-linux-gnu/bin/strip' 5 | pkgconfig = '/usr/bin/powerpc64le-linux-gnu-pkg-config' 6 | ld = '/usr/bin/powerpc64le-linux-gnu-ld' 7 | exe_wrapper = '/usr/bin/qemu-ppc64le-static' 8 | 9 | [properties] 10 | root = '/usr/powerpc64le-linux-gnu' 11 | has_function_printf = true 12 | skip_sanity_check = true 13 | 14 | [host_machine] 15 | system = 'linux' 16 | cpu_family = 'ppc64' 17 | cpu = '' 18 | endian = 'little' 19 | -------------------------------------------------------------------------------- /.github/cross/ubuntu-cross-s390x.txt: -------------------------------------------------------------------------------- 1 | [binaries] 2 | c = '/usr/bin/s390x-linux-gnu-gcc' 3 | ar = '/usr/s390x-linux-gnu/bin/ar' 4 | strip = '/usr/s390x-linux-gnu/bin/strip' 5 | pkgconfig = '/usr/bin/s390x-linux-gnu-pkg-config' 6 | ld = '/usr/bin/s390x-linux-gnu-ld' 7 | exe_wrapper = '/usr/bin/qemu-s390x-static' 8 | 9 | [properties] 10 | root = '/usr/s390x-linux-gnu' 11 | has_function_printf = true 12 | skip_sanity_check = true 13 | 14 | [host_machine] 15 | system = 'linux' 16 | cpu_family = 's390x' 17 | cpu = '' 18 | endian = 'big' 19 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | --- 2 | version: 2 3 | updates: 4 | - package-ecosystem: "github-actions" 5 | directory: "/" 6 | schedule: 7 | interval: "weekly" 8 | -------------------------------------------------------------------------------- /.github/workflows/checkpatch.yml: -------------------------------------------------------------------------------- 1 | name: checkpatch review 2 | on: [pull_request] 3 | jobs: 4 | checkpatch: 5 | name: checkpatch review 6 | runs-on: ubuntu-latest 7 | steps: 8 | - name: 'Calculate PR commits + 1' 9 | run: echo "PR_FETCH_DEPTH=$(( ${{ github.event.pull_request.commits }} + 1 ))" >> $GITHUB_ENV 10 | - uses: actions/checkout@v4 11 | with: 12 | ref: ${{ github.event.pull_request.head.sha }} 13 | fetch-depth: 0 14 | - name: Run checkpatch review 15 | uses: webispy/checkpatch-action@v9 16 | -------------------------------------------------------------------------------- /.github/workflows/docs.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | name: docs 3 | 4 | on: 5 | push: 6 | branches: [master] 7 | pull_request: 8 | branches: [master] 9 | 10 | workflow_dispatch: 11 | 12 | jobs: 13 | build-docs: 14 | name: build documentation 15 | runs-on: ubuntu-latest 16 | container: 17 | image: ghcr.io/linux-nvme/debian:latest 18 | steps: 19 | - uses: actions/checkout@v4 20 | - name: build 21 | run: | 22 | scripts/build.sh docs 23 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: release 3 | 4 | on: 5 | push: 6 | branches: [master] 7 | tags: 8 | - '**' 9 | 10 | jobs: 11 | build: 12 | runs-on: ubuntu-latest 13 | if: startsWith(github.ref, 'refs/tags/v') && github.repository == 'linux-nvme/libnvme' 14 | permissions: 15 | contents: write 16 | steps: 17 | - uses: actions/checkout@v4 18 | - uses: ncipollo/release-action@v1 19 | with: 20 | token: ${{ secrets.GITHUB_TOKEN }} 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | a.out 2 | *.o 3 | *.ol 4 | *.os 5 | *~ 6 | *.swp 7 | *.a 8 | *.so.* 9 | *.tar.gz 10 | cscope.* 11 | compile_commands.json 12 | 13 | .build 14 | .build-tools 15 | .cache 16 | .vscode/ 17 | 18 | subprojects/* 19 | !subprojects/*.wrap 20 | -------------------------------------------------------------------------------- /.readthedocs.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: Apache-2.0 2 | 3 | version: 2 4 | 5 | build: 6 | os: ubuntu-24.04 7 | tools: 8 | python: "3" 9 | apt_packages: 10 | - meson 11 | - python3-lxml 12 | - docbook-xsl 13 | - xsltproc 14 | - pandoc 15 | jobs: 16 | post_install: 17 | - pip3 install lxml 18 | pre_build: 19 | - meson setup .build -Ddocs=rst -Ddocs-build=true || cat .build/meson-logs/meson-log.txt 20 | - meson compile -C .build 21 | 22 | sphinx: 23 | configuration: .build/doc/conf.py 24 | -------------------------------------------------------------------------------- /ccan/ccan/array_size/LICENSE: -------------------------------------------------------------------------------- 1 | ../../licenses/CC0 -------------------------------------------------------------------------------- /ccan/ccan/build_assert/LICENSE: -------------------------------------------------------------------------------- 1 | ../../licenses/CC0 -------------------------------------------------------------------------------- /ccan/ccan/check_type/LICENSE: -------------------------------------------------------------------------------- 1 | ../../licenses/CC0 -------------------------------------------------------------------------------- /ccan/ccan/container_of/LICENSE: -------------------------------------------------------------------------------- 1 | ../../licenses/CC0 -------------------------------------------------------------------------------- /ccan/ccan/endian/LICENSE: -------------------------------------------------------------------------------- 1 | ../../licenses/CC0 -------------------------------------------------------------------------------- /ccan/ccan/list/LICENSE: -------------------------------------------------------------------------------- 1 | ../../licenses/BSD-MIT -------------------------------------------------------------------------------- /ccan/ccan/minmax/LICENSE: -------------------------------------------------------------------------------- 1 | ../../licenses/CC0 -------------------------------------------------------------------------------- /ccan/ccan/short_types/LICENSE: -------------------------------------------------------------------------------- 1 | ../../licenses/CC0 -------------------------------------------------------------------------------- /ccan/ccan/str/LICENSE: -------------------------------------------------------------------------------- 1 | ../../licenses/CC0 -------------------------------------------------------------------------------- /ccan/ccan/str/str.c: -------------------------------------------------------------------------------- 1 | /* CC0 (Public domain) - see LICENSE file for details */ 2 | #include 3 | 4 | size_t strcount(const char *haystack, const char *needle) 5 | { 6 | size_t i = 0, nlen = strlen(needle); 7 | 8 | while ((haystack = strstr(haystack, needle)) != NULL) { 9 | i++; 10 | haystack += nlen; 11 | } 12 | return i; 13 | } 14 | -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- 1 | --- 2 | ignore: 3 | - 'subprojects' 4 | - 'ccan' 5 | - 'test' 6 | - 'examples' 7 | -------------------------------------------------------------------------------- /doc/api.rst.in: -------------------------------------------------------------------------------- 1 | === 2 | API 3 | === 4 | 5 | .. module:: libnvme 6 | 7 | This part of the documentation lists the full API reference of all public classes and 8 | functions. 9 | 10 | .. include:: rst/types.rst 11 | .. include:: rst/ioctl.rst 12 | .. include:: rst/fabrics.rst 13 | .. include:: rst/linux.rst 14 | .. include:: rst/mi.rst 15 | .. include:: rst/tree.rst 16 | .. include:: rst/filters.rst 17 | .. include:: rst/util.rst 18 | .. include:: rst/log.rst 19 | .. include:: rst/nbft.rst 20 | -------------------------------------------------------------------------------- /doc/man/nbft_control_flags.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nbft_control_flags" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nbft_control_flags \- Control Descriptor Flags 4 | .SH SYNOPSIS 5 | enum nbft_control_flags { 6 | .br 7 | .BI " NBFT_CONTROL_VALID" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NBFT_CONTROL_VALID" 12 12 | Block Valid: indicates that the structure is valid. 13 | -------------------------------------------------------------------------------- /doc/man/nbft_discovery_flags.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nbft_discovery_flags" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nbft_discovery_flags \- Discovery Descriptor Flags 4 | .SH SYNOPSIS 5 | enum nbft_discovery_flags { 6 | .br 7 | .BI " NBFT_DISCOVERY_VALID" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NBFT_DISCOVERY_VALID" 12 12 | Descriptor Valid: if set to 1h, then this descriptor 13 | is valid. If cleared to 0h, then this descriptor 14 | is reserved. 15 | -------------------------------------------------------------------------------- /doc/man/nbft_heap_obj.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nbft_heap_obj" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nbft_heap_obj \- NBFT Header Driver Signature 4 | .SH SYNOPSIS 5 | struct nbft_heap_obj { 6 | .br 7 | .BI " __le32 offset;" 8 | .br 9 | .BI " __le16 length;" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "offset" 12 17 | Offset in bytes of the heap object, if any, from byte offset 0h 18 | of the NBFT Table Header. 19 | .IP "length" 12 20 | Length in bytes of the heap object, if any. 21 | -------------------------------------------------------------------------------- /doc/man/nbft_hfi_flags.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nbft_hfi_flags" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nbft_hfi_flags \- HFI Descriptor Flags 4 | .SH SYNOPSIS 5 | enum nbft_hfi_flags { 6 | .br 7 | .BI " NBFT_HFI_VALID" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NBFT_HFI_VALID" 12 12 | Descriptor Valid: If set to 1h, then this descriptor is valid. 13 | If cleared to 0h, then this descriptor is reserved. 14 | -------------------------------------------------------------------------------- /doc/man/nbft_info_security.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nbft_info_security" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nbft_info_security \- Security Profile Descriptor 4 | .SH SYNOPSIS 5 | struct nbft_info_security { 6 | .br 7 | .BI " int index;" 8 | .br 9 | .BI " 10 | }; 11 | .br 12 | 13 | .SH Members 14 | .IP "index" 12 15 | The number of this Security Profile Descriptor in the Security 16 | Profile Descriptor List. 17 | -------------------------------------------------------------------------------- /doc/man/nbft_security_secret_type.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nbft_security_secret_type" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nbft_security_secret_type \- Security Profile Descriptor Secret Type 4 | .SH SYNOPSIS 5 | enum nbft_security_secret_type { 6 | .br 7 | .BI " NBFT_SECURITY_SECRET_REDFISH_HOST_IFACE_URI" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NBFT_SECURITY_SECRET_REDFISH_HOST_IFACE_URI" 12 12 | Redfish Host Interface URI: 13 | If set to 1h, then the Secret Keypath 14 | Object Reference is a URI pointing 15 | to a Redfish Key Collection Object 16 | that contains the PSK. 17 | -------------------------------------------------------------------------------- /doc/man/nbft_trtype.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nbft_trtype" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nbft_trtype \- NBFT Interface Transport Types (Figure 7) 4 | .SH SYNOPSIS 5 | enum nbft_trtype { 6 | .br 7 | .BI " NBFT_TRTYPE_TCP" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NBFT_TRTYPE_TCP" 12 12 | NVMe/TCP (802.3 + TCP/IP). String Designator "tcp". 13 | -------------------------------------------------------------------------------- /doc/man/nvme_acq.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_acq" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_acq \- This field indicates the admin completion queue base address 4 | .SH SYNOPSIS 5 | enum nvme_acq { 6 | .br 7 | .BI " NVME_ACQ_ACQB_SHIFT" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NVME_ACQ_ACQB_SHIFT" 12 12 | Shift amount to get the admin completion queue base 13 | -------------------------------------------------------------------------------- /doc/man/nvme_aggregate_endurance_group_event.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_aggregate_endurance_group_event" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_aggregate_endurance_group_event \- Endurance Group Event Aggregate 4 | .SH SYNOPSIS 5 | struct nvme_aggregate_endurance_group_event { 6 | .br 7 | .BI " __le64 num_entries;" 8 | .br 9 | .BI " __le16 entries[];" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "num_entries" 12 17 | Number or entries 18 | .IP "entries" 12 19 | List of entries 20 | -------------------------------------------------------------------------------- /doc/man/nvme_aggregate_predictable_lat_event.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_aggregate_predictable_lat_event" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_aggregate_predictable_lat_event \- Predictable Latency Event Aggregate Log Page 4 | .SH SYNOPSIS 5 | struct nvme_aggregate_predictable_lat_event { 6 | .br 7 | .BI " __le64 num_entries;" 8 | .br 9 | .BI " __le16 entries[];" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "num_entries" 12 17 | Number of entries 18 | .IP "entries" 12 19 | Entry list 20 | -------------------------------------------------------------------------------- /doc/man/nvme_ana_log.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_ana_log" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_ana_log \- Asymmetric Namespace Access Log 4 | .SH SYNOPSIS 5 | struct nvme_ana_log { 6 | .br 7 | .BI " __le64 chgcnt;" 8 | .br 9 | .BI " __le16 ngrps;" 10 | .br 11 | .BI " __u8 rsvd10[6];" 12 | .br 13 | .BI " struct nvme_ana_group_desc descs[];" 14 | .br 15 | .BI " 16 | }; 17 | .br 18 | 19 | .SH Members 20 | .IP "chgcnt" 12 21 | Change Count 22 | .IP "ngrps" 12 23 | Number of ANA Group Descriptors 24 | .IP "rsvd10" 12 25 | Reserved 26 | .IP "descs" 12 27 | ANA Group Descriptor 28 | -------------------------------------------------------------------------------- /doc/man/nvme_asq.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_asq" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_asq \- This field indicates the admin submission queue base address 4 | .SH SYNOPSIS 5 | enum nvme_asq { 6 | .br 7 | .BI " NVME_ASQ_ASQB_SHIFT" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NVME_ASQ_ASQB_SHIFT" 12 12 | Shift amount to get the admin submission queue base 13 | -------------------------------------------------------------------------------- /doc/man/nvme_bpmbl.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_bpmbl" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_bpmbl \- This field indicates the boot partition memory buffer location 4 | .SH SYNOPSIS 5 | enum nvme_bpmbl { 6 | .br 7 | .BI " NVME_BPMBL_BMBBA_SHIFT" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NVME_BPMBL_BMBBA_SHIFT" 12 12 | Shift amount to get the boot partition memory buffer base address 13 | -------------------------------------------------------------------------------- /doc/man/nvme_capacity_mgmt.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_capacity_mgmt" 9 "nvme_capacity_mgmt" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_capacity_mgmt \- Capacity management command 4 | .SH SYNOPSIS 5 | .B "int" nvme_capacity_mgmt 6 | .BI "(struct nvme_capacity_mgmt_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_capacity_mgmt_args\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_cmb_size.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_cmb_size" 9 "nvme_cmb_size" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_cmb_size \- Calculate size of the controller memory buffer 4 | .SH SYNOPSIS 5 | .B "__u64" nvme_cmb_size 6 | .BI "(__u32 cmbsz " ");" 7 | .SH ARGUMENTS 8 | .IP "cmbsz" 12 9 | Value from controller register NVME_REG_CMBSZ 10 | .SH "RETURN" 11 | size of controller memory buffer in bytes 12 | -------------------------------------------------------------------------------- /doc/man/nvme_cmbsts.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_cmbsts" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_cmbsts \- This field indicates the controller memory buffer status 4 | .SH SYNOPSIS 5 | enum nvme_cmbsts { 6 | .br 7 | .BI " NVME_CMBSTS_CBAI_SHIFT" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_CMBSTS_CBAI_MASK" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVME_CMBSTS_CBAI_SHIFT" 12 16 | Shift amount to get the controller base address invalid 17 | .IP "NVME_CMBSTS_CBAI_MASK" 12 18 | Mask to get the controller base address invalid 19 | -------------------------------------------------------------------------------- /doc/man/nvme_cmd_effects_log.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_cmd_effects_log" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_cmd_effects_log \- Commands Supported and Effects Log 4 | .SH SYNOPSIS 5 | struct nvme_cmd_effects_log { 6 | .br 7 | .BI " __le32 acs[256];" 8 | .br 9 | .BI " __le32 iocs[256];" 10 | .br 11 | .BI " __u8 rsvd[2048];" 12 | .br 13 | .BI " 14 | }; 15 | .br 16 | 17 | .SH Members 18 | .IP "acs" 12 19 | Admin Command Supported 20 | .IP "iocs" 12 21 | I/O Command Supported 22 | .IP "rsvd" 12 23 | Reserved 24 | -------------------------------------------------------------------------------- /doc/man/nvme_cmd_format_pil.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_cmd_format_pil" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_cmd_format_pil \- Format NVM - Protection Information Location 4 | .SH SYNOPSIS 5 | enum nvme_cmd_format_pil { 6 | .br 7 | .BI " NVME_FORMAT_PIL_LAST" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_FORMAT_PIL_FIRST" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVME_FORMAT_PIL_LAST" 12 16 | Protection information is transferred as the last 17 | bytes of metadata. 18 | .IP "NVME_FORMAT_PIL_FIRST" 12 19 | Protection information is transferred as the first 20 | bytes of metadata. 21 | -------------------------------------------------------------------------------- /doc/man/nvme_cmd_get_log_telemetry_host_lsp.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_cmd_get_log_telemetry_host_lsp" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_cmd_get_log_telemetry_host_lsp \- Telemetry Host-Initiated log specific field 4 | .SH SYNOPSIS 5 | enum nvme_cmd_get_log_telemetry_host_lsp { 6 | .br 7 | .BI " NVME_LOG_TELEM_HOST_LSP_RETAIN" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_LOG_TELEM_HOST_LSP_CREATE" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVME_LOG_TELEM_HOST_LSP_RETAIN" 12 16 | Get Telemetry Data Blocks 17 | .IP "NVME_LOG_TELEM_HOST_LSP_CREATE" 12 18 | Create Telemetry Data Blocks 19 | -------------------------------------------------------------------------------- /doc/man/nvme_compare.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_compare" 9 "nvme_compare" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_compare \- Submit an nvme user compare command 4 | .SH SYNOPSIS 5 | .B "int" nvme_compare 6 | .BI "(struct nvme_io_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_io_args\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_copy.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_copy" 9 "nvme_copy" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_copy \- Copy command 4 | .SH SYNOPSIS 5 | .B "int" nvme_copy 6 | .BI "(struct nvme_copy_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_copy_args\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_copy_range_sopt.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_copy_range_sopt" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_copy_range_sopt \- NVMe Copy Range Source Options 4 | .SH SYNOPSIS 5 | enum nvme_copy_range_sopt { 6 | .br 7 | .BI " NVME_COPY_SOPT_FCO" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NVME_COPY_SOPT_FCO" 12 12 | NVMe Copy Source Option Fast Copy Only 13 | -------------------------------------------------------------------------------- /doc/man/nvme_create_root.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_create_root" 9 "nvme_create_root" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_create_root \- Initialize root object 4 | .SH SYNOPSIS 5 | .B "nvme_root_t" nvme_create_root 6 | .BI "(FILE *fp " "," 7 | .BI "int log_level " ");" 8 | .SH ARGUMENTS 9 | .IP "fp" 12 10 | File descriptor for logging messages 11 | .IP "log_level" 12 12 | Logging level to use 13 | .SH "RETURN" 14 | Initialized \fInvme_root_t\fP object 15 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_first_ns.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_first_ns" 9 "nvme_ctrl_first_ns" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_first_ns \- Start namespace iterator 4 | .SH SYNOPSIS 5 | .B "nvme_ns_t" nvme_ctrl_first_ns 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | First \fInvme_ns_t\fP object of an \fIc\fP iterator 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_first_path.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_first_path" 9 "nvme_ctrl_first_path" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_first_path \- Start path iterator 4 | .SH SYNOPSIS 5 | .B "nvme_path_t" nvme_ctrl_first_path 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | First \fInvme_path_t\fP object of an \fIc\fP iterator 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_for_each_ns.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_for_each_ns" 9 "nvme_ctrl_for_each_ns" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_for_each_ns \- Traverse namespaces 4 | .SH SYNOPSIS 5 | .B "nvme_ctrl_for_each_ns 6 | .BI "(c " "," 7 | .BI "n " ");" 8 | .SH ARGUMENTS 9 | .IP "c" 12 10 | Controller instance 11 | .IP "n" 12 12 | \fInvme_ns_t\fP object 13 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_for_each_ns_safe.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_for_each_ns_safe" 9 "nvme_ctrl_for_each_ns_safe" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_for_each_ns_safe \- Traverse namespaces 4 | .SH SYNOPSIS 5 | .B "nvme_ctrl_for_each_ns_safe 6 | .BI "(c " "," 7 | .BI "n " "," 8 | .BI "_n " ");" 9 | .SH ARGUMENTS 10 | .IP "c" 12 11 | Controller instance 12 | .IP "n" 12 13 | \fInvme_ns_t\fP object 14 | .IP "_n" 12 15 | A \fInvme_ns_t_node\fP to use as temporary storage 16 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_for_each_path.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_for_each_path" 9 "nvme_ctrl_for_each_path" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_for_each_path \- Traverse paths 4 | .SH SYNOPSIS 5 | .B "nvme_ctrl_for_each_path 6 | .BI "(c " "," 7 | .BI "p " ");" 8 | .SH ARGUMENTS 9 | .IP "c" 12 10 | Controller instance 11 | .IP "p" 12 12 | \fInvme_path_t\fP object 13 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_for_each_path_safe.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_for_each_path_safe" 9 "nvme_ctrl_for_each_path_safe" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_for_each_path_safe \- Traverse paths 4 | .SH SYNOPSIS 5 | .B "nvme_ctrl_for_each_path_safe 6 | .BI "(c " "," 7 | .BI "p " "," 8 | .BI "_p " ");" 9 | .SH ARGUMENTS 10 | .IP "c" 12 11 | Controller instance 12 | .IP "p" 12 13 | \fInvme_path_t\fP object 14 | .IP "_p" 12 15 | A \fInvme_path_t_node\fP to use as temporary storage 16 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_address.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_address" 9 "nvme_ctrl_get_address" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_address \- Address string of a controller 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_address 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | NVMe-over-Fabrics address string of \fIc\fP or empty string 12 | of no address is present. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_config.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_config" 9 "nvme_ctrl_get_config" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_config \- Fabrics configuration of a controller 4 | .SH SYNOPSIS 5 | .B "struct nvme_fabrics_config *" nvme_ctrl_get_config 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | Fabrics configuration of \fIc\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_dhchap_host_key.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_dhchap_host_key" 9 "nvme_ctrl_get_dhchap_host_key" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_dhchap_host_key \- Return host key 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_dhchap_host_key 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller to be checked 10 | .SH "RETURN" 11 | DH-HMAC-CHAP host key or NULL if not set 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_dhchap_key.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_dhchap_key" 9 "nvme_ctrl_get_dhchap_key" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_dhchap_key \- Return controller key 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_dhchap_key 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller for which the key should be set 10 | .SH "RETURN" 11 | DH-HMAC-CHAP controller key or NULL if not set 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_firmware.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_firmware" 9 "nvme_ctrl_get_firmware" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_firmware \- Firmware string of a controller 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_firmware 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | Firmware string of \fIc\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_host_iface.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_host_iface" 9 "nvme_ctrl_get_host_iface" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_host_iface \- Host interface name of a controller 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_host_iface 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | Host interface name of \fIc\fP (if present) 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_host_traddr.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_host_traddr" 9 "nvme_ctrl_get_host_traddr" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_host_traddr \- Host transport address of a controller 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_host_traddr 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | Host transport address of \fIc\fP (if present) 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_keyring.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_keyring" 9 "nvme_ctrl_get_keyring" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_keyring \- Return keyring 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_keyring 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller to be used for the lookup 10 | .SH "RETURN" 11 | Keyring or NULL if not set 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_model.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_model" 9 "nvme_ctrl_get_model" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_model \- Model of a controller 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_model 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | Model string of \fIc\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_name.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_name" 9 "nvme_ctrl_get_name" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_name \- sysfs name of a controller 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_name 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | sysfs name of \fIc\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_numa_node.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_numa_node" 9 "nvme_ctrl_get_numa_node" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_numa_node \- NUMA node of a controller 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_numa_node 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | String indicating the NUMA node 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_phy_slot.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_phy_slot" 9 "nvme_ctrl_get_phy_slot" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_phy_slot \- PCI physical slot number of a controller 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_phy_slot 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | PCI physical slot number of \fIc\fP or empty string if slot 12 | number is not present. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_queue_count.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_queue_count" 9 "nvme_ctrl_get_queue_count" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_queue_count \- Queue count of a controller 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_queue_count 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | Queue count of \fIc\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_serial.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_serial" 9 "nvme_ctrl_get_serial" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_serial \- Serial number of a controller 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_serial 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | Serial number string of \fIc\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_sqsize.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_sqsize" 9 "nvme_ctrl_get_sqsize" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_sqsize \- SQ size of a controller 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_sqsize 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | SQ size (as string) of \fIc\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_state.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_state" 9 "nvme_ctrl_get_state" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_state \- Running state of a controller 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_state 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | String indicating the running state of \fIc\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_subsysnqn.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_subsysnqn" 9 "nvme_ctrl_get_subsysnqn" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_subsysnqn \- Subsystem NQN of a controller 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_subsysnqn 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | Subsystem NQN of \fIc\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_subsystem.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_subsystem" 9 "nvme_ctrl_get_subsystem" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_subsystem \- Parent subsystem of a controller 4 | .SH SYNOPSIS 5 | .B "nvme_subsystem_t" nvme_ctrl_get_subsystem 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | Parent nvme_subsystem_t object 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_sysfs_dir.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_sysfs_dir" 9 "nvme_ctrl_get_sysfs_dir" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_sysfs_dir \- sysfs directory of a controller 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_sysfs_dir 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | sysfs directory name of \fIc\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_tls_key.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_tls_key" 9 "nvme_ctrl_get_tls_key" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_tls_key \- Return Derive TLS PSK 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_tls_key 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller to be used for the lookup 10 | .SH "RETURN" 11 | Key in PSK interchange format or NULL if not set 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_tls_key_identity.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_tls_key_identity" 9 "nvme_ctrl_get_tls_key_identity" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_tls_key_identity \- Return Derive TLS Identity 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_tls_key_identity 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller to be used for the lookup 10 | .SH "RETURN" 11 | Derive TLS Identity or NULL if not set 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_traddr.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_traddr" 9 "nvme_ctrl_get_traddr" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_traddr \- Transport address of a controller 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_traddr 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | Transport address of \fIc\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_transport.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_transport" 9 "nvme_ctrl_get_transport" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_transport \- Transport type of a controller 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_transport 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | Transport type of \fIc\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_get_trsvcid.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_get_trsvcid" 9 "nvme_ctrl_get_trsvcid" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_get_trsvcid \- Transport service identifier of a controller 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ctrl_get_trsvcid 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | Transport service identifier of \fIc\fP (if present) 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_identify.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_identify" 9 "nvme_ctrl_identify" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_identify \- Issues an 'identify controller' command 4 | .SH SYNOPSIS 5 | .B "int" nvme_ctrl_identify 6 | .BI "(nvme_ctrl_t c " "," 7 | .BI "struct nvme_id_ctrl *id " ");" 8 | .SH ARGUMENTS 9 | .IP "c" 12 10 | Controller instance 11 | .IP "id" 12 12 | Identify controller data structure 13 | .SH "DESCRIPTION" 14 | Issues an 'identify controller' command to \fIc\fP and copies the 15 | data into \fIid\fP. 16 | .SH "RETURN" 17 | 0 on success or -1 on failure. 18 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_is_discovered.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_is_discovered" 9 "nvme_ctrl_is_discovered" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_is_discovered \- Returns the value of the 'discovered' flag 4 | .SH SYNOPSIS 5 | .B "bool" nvme_ctrl_is_discovered 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | Value of the 'discovered' flag of \fIc\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_is_discovery_ctrl.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_is_discovery_ctrl" 9 "nvme_ctrl_is_discovery_ctrl" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_is_discovery_ctrl \- Check the 'discovery_ctrl' flag 4 | .SH SYNOPSIS 5 | .B "bool" nvme_ctrl_is_discovery_ctrl 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller to be checked 10 | .SH "DESCRIPTION" 11 | Returns the value of the 'discovery_ctrl' flag which specifies whether 12 | \fIc\fP connects to a discovery subsystem. 13 | .SH "RETURN" 14 | Value of the 'discover_ctrl' flag 15 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_is_persistent.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_is_persistent" 9 "nvme_ctrl_is_persistent" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_is_persistent \- Returns the value of the 'persistent' flag 4 | .SH SYNOPSIS 5 | .B "bool" nvme_ctrl_is_persistent 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "RETURN" 11 | Value of the 'persistent' flag of \fIc\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_is_unique_discovery_ctrl.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_is_unique_discovery_ctrl" 9 "nvme_ctrl_is_unique_discovery_ctrl" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_is_unique_discovery_ctrl \- Check the 'unique_discovery_ctrl' flag 4 | .SH SYNOPSIS 5 | .B "bool" nvme_ctrl_is_unique_discovery_ctrl 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller to be checked 10 | .SH "RETURN" 11 | Value of the 'unique_discovery_ctrl' flag 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_list.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_ctrl_list" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_ctrl_list \- Controller List 4 | .SH SYNOPSIS 5 | struct nvme_ctrl_list { 6 | .br 7 | .BI " __le16 num;" 8 | .br 9 | .BI " __le16 identifier[NVME_ID_CTRL_LIST_MAX];" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "num" 12 17 | Number of Identifiers 18 | .IP "identifier" 12 19 | NVM subsystem unique controller identifier 20 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_next_ns.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_next_ns" 9 "nvme_ctrl_next_ns" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_next_ns \- Next namespace iterator 4 | .SH SYNOPSIS 5 | .B "nvme_ns_t" nvme_ctrl_next_ns 6 | .BI "(nvme_ctrl_t c " "," 7 | .BI "nvme_ns_t n " ");" 8 | .SH ARGUMENTS 9 | .IP "c" 12 10 | Controller instance 11 | .IP "n" 12 12 | Previous nvme_ns_t iterator 13 | .SH "RETURN" 14 | Next nvme_ns_t object of an \fIc\fP iterator 15 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_next_path.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_next_path" 9 "nvme_ctrl_next_path" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_next_path \- Next path iterator 4 | .SH SYNOPSIS 5 | .B "nvme_path_t" nvme_ctrl_next_path 6 | .BI "(nvme_ctrl_t c " "," 7 | .BI "nvme_path_t p " ");" 8 | .SH ARGUMENTS 9 | .IP "c" 12 10 | Controller instance 11 | .IP "p" 12 12 | Previous \fInvme_path_t\fP object of an \fIc\fP iterator 13 | .SH "RETURN" 14 | Next \fInvme_path_t\fP object of an \fIc\fP iterator 15 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_release_fd.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_release_fd" 9 "nvme_ctrl_release_fd" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_release_fd \- Close fd and clear fd from controller object 4 | .SH SYNOPSIS 5 | .B "void" nvme_ctrl_release_fd 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_reset.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_reset" 9 "nvme_ctrl_reset" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_reset \- Initiate a controller reset 4 | .SH SYNOPSIS 5 | .B "int" nvme_ctrl_reset 6 | .BI "(int fd " ");" 7 | .SH ARGUMENTS 8 | .IP "fd" 12 9 | File descriptor of nvme device 10 | .SH "DESCRIPTION" 11 | This should only be sent to controller handles, not to namespaces. 12 | .SH "RETURN" 13 | 0 if a reset was initiated or -1 with errno set otherwise. 14 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_set_dhchap_host_key.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_set_dhchap_host_key" 9 "nvme_ctrl_set_dhchap_host_key" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_set_dhchap_host_key \- Set host key 4 | .SH SYNOPSIS 5 | .B "void" nvme_ctrl_set_dhchap_host_key 6 | .BI "(nvme_ctrl_t c " "," 7 | .BI "const char *key " ");" 8 | .SH ARGUMENTS 9 | .IP "c" 12 10 | Host for which the key should be set 11 | .IP "key" 12 12 | DH-HMAC-CHAP Key to set or NULL to clear existing key 13 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_set_dhchap_key.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_set_dhchap_key" 9 "nvme_ctrl_set_dhchap_key" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_set_dhchap_key \- Set controller key 4 | .SH SYNOPSIS 5 | .B "void" nvme_ctrl_set_dhchap_key 6 | .BI "(nvme_ctrl_t c " "," 7 | .BI "const char *key " ");" 8 | .SH ARGUMENTS 9 | .IP "c" 12 10 | Controller for which the key should be set 11 | .IP "key" 12 12 | DH-HMAC-CHAP Key to set or NULL to clear existing key 13 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_set_discovered.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_set_discovered" 9 "nvme_ctrl_set_discovered" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_set_discovered \- Set the 'discovered' flag 4 | .SH SYNOPSIS 5 | .B "void" nvme_ctrl_set_discovered 6 | .BI "(nvme_ctrl_t c " "," 7 | .BI "bool discovered " ");" 8 | .SH ARGUMENTS 9 | .IP "c" 12 10 | nvme_ctrl_t object 11 | .IP "discovered" 12 12 | Value of the 'discovered' flag 13 | .SH "DESCRIPTION" 14 | Set the 'discovered' flag of \fIc\fP to \fIdiscovered\fP 15 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_set_discovery_ctrl.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_set_discovery_ctrl" 9 "nvme_ctrl_set_discovery_ctrl" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_set_discovery_ctrl \- Set the 'discovery_ctrl' flag 4 | .SH SYNOPSIS 5 | .B "void" nvme_ctrl_set_discovery_ctrl 6 | .BI "(nvme_ctrl_t c " "," 7 | .BI "bool discovery " ");" 8 | .SH ARGUMENTS 9 | .IP "c" 12 10 | Controller to be modified 11 | .IP "discovery" 12 12 | value of the discovery_ctrl flag 13 | .SH "DESCRIPTION" 14 | Sets the 'discovery_ctrl' flag in \fIc\fP to specify whether 15 | \fIc\fP connects to a discovery subsystem. 16 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_set_keyring.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_set_keyring" 9 "nvme_ctrl_set_keyring" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_set_keyring \- Set keyring 4 | .SH SYNOPSIS 5 | .B "void" nvme_ctrl_set_keyring 6 | .BI "(nvme_ctrl_t c " "," 7 | .BI "const char *keyring " ");" 8 | .SH ARGUMENTS 9 | .IP "c" 12 10 | Controller for which the keyring should be set 11 | .IP "keyring" 12 12 | Keyring name 13 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_set_persistent.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_set_persistent" 9 "nvme_ctrl_set_persistent" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_set_persistent \- Set the 'persistent' flag 4 | .SH SYNOPSIS 5 | .B "void" nvme_ctrl_set_persistent 6 | .BI "(nvme_ctrl_t c " "," 7 | .BI "bool persistent " ");" 8 | .SH ARGUMENTS 9 | .IP "c" 12 10 | Controller instance 11 | .IP "persistent" 12 12 | value of the 'persistent' flag 13 | .SH "DESCRIPTION" 14 | Set the 'persistent' flag of \fIc\fP to \fIpersistent\fP 15 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_set_tls_key.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_set_tls_key" 9 "nvme_ctrl_set_tls_key" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_set_tls_key \- Set Derive TLS PSK 4 | .SH SYNOPSIS 5 | .B "void" nvme_ctrl_set_tls_key 6 | .BI "(nvme_ctrl_t c " "," 7 | .BI "const char *key " ");" 8 | .SH ARGUMENTS 9 | .IP "c" 12 10 | Controller for which the key should be set 11 | .IP "key" 12 12 | Key in interchange format or NULL to clear existing key 13 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrl_set_tls_key_identity.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrl_set_tls_key_identity" 9 "nvme_ctrl_set_tls_key_identity" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrl_set_tls_key_identity \- Set Derive TLS Identity 4 | .SH SYNOPSIS 5 | .B "void" nvme_ctrl_set_tls_key_identity 6 | .BI "(nvme_ctrl_t c " "," 7 | .BI "const char *identity " ");" 8 | .SH ARGUMENTS 9 | .IP "c" 12 10 | Controller for which the key should be set 11 | .IP "identity" 12 12 | Derive TLS identity or NULL to clear existing key 13 | -------------------------------------------------------------------------------- /doc/man/nvme_ctrls_filter.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ctrls_filter" 9 "nvme_ctrls_filter" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ctrls_filter \- Filter for controllers 4 | .SH SYNOPSIS 5 | .B "int" nvme_ctrls_filter 6 | .BI "(const struct dirent *d " ");" 7 | .SH ARGUMENTS 8 | .IP "d" 12 9 | dirent to check 10 | .SH "RETURN" 11 | 1 if \fId\fP matches, 0 otherwise 12 | -------------------------------------------------------------------------------- /doc/man/nvme_default_host.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_default_host" 9 "nvme_default_host" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_default_host \- Initializes the default host 4 | .SH SYNOPSIS 5 | .B "nvme_host_t" nvme_default_host 6 | .BI "(nvme_root_t r " ");" 7 | .SH ARGUMENTS 8 | .IP "r" 12 9 | \fInvme_root_t\fP object 10 | .SH "DESCRIPTION" 11 | Initializes the default host object based on the hostnqn/hostid 12 | values returned by \fBnvme_host_get_ids\fP and attaches it to \fIr\fP. 13 | .SH "RETURN" 14 | \fInvme_host_t\fP object 15 | -------------------------------------------------------------------------------- /doc/man/nvme_describe_key_serial.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_describe_key_serial" 9 "nvme_describe_key_serial" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_describe_key_serial \- Return key description 4 | .SH SYNOPSIS 5 | .B "char *" nvme_describe_key_serial 6 | .BI "(long key_id " ");" 7 | .SH ARGUMENTS 8 | .IP "key_id" 12 9 | Key serial number 10 | .SH "DESCRIPTION" 11 | Fetches the description of the key or keyring identified 12 | by the serial number \fIkey_id\fP. 13 | .SH "RETURN" 14 | The description of \fIkey_id\fP or NULL on failure. 15 | The returned string needs to be freed by the caller. 16 | -------------------------------------------------------------------------------- /doc/man/nvme_directive_dtype.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_directive_dtype" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_directive_dtype \- Directive Types 4 | .SH SYNOPSIS 5 | enum nvme_directive_dtype { 6 | .br 7 | .BI " NVME_DIRECTIVE_DTYPE_IDENTIFY" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_DIRECTIVE_DTYPE_STREAMS" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVME_DIRECTIVE_DTYPE_IDENTIFY" 12 16 | Identify directive type 17 | .IP "NVME_DIRECTIVE_DTYPE_STREAMS" 12 18 | Streams directive type 19 | -------------------------------------------------------------------------------- /doc/man/nvme_directive_recv.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_directive_recv" 9 "nvme_directive_recv" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_directive_recv \- Receive directive specific data 4 | .SH SYNOPSIS 5 | .B "int" nvme_directive_recv 6 | .BI "(struct nvme_directive_recv_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_directive_recv_args\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_directive_send_identify_endir.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_directive_send_identify_endir" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_directive_send_identify_endir \- Enable Directive 4 | .SH SYNOPSIS 5 | enum nvme_directive_send_identify_endir { 6 | .br 7 | .BI " NVME_DIRECTIVE_SEND_IDENTIFY_ENDIR_DISABLE" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_DIRECTIVE_SEND_IDENTIFY_ENDIR_ENABLE" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVME_DIRECTIVE_SEND_IDENTIFY_ENDIR_DISABLE" 12 16 | .IP "NVME_DIRECTIVE_SEND_IDENTIFY_ENDIR_ENABLE" 12 17 | -------------------------------------------------------------------------------- /doc/man/nvme_disconnect_ctrl.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_disconnect_ctrl" 9 "nvme_disconnect_ctrl" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_disconnect_ctrl \- Disconnect a controller 4 | .SH SYNOPSIS 5 | .B "int" nvme_disconnect_ctrl 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | .SH "DESCRIPTION" 11 | Issues a 'disconnect' fabrics command to \fIc\fP 12 | .SH "RETURN" 13 | 0 on success, -1 on failure. 14 | -------------------------------------------------------------------------------- /doc/man/nvme_dsm_attributes.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_dsm_attributes" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_dsm_attributes \- Dataset Management attributes 4 | .SH SYNOPSIS 5 | enum nvme_dsm_attributes { 6 | .br 7 | .BI " NVME_DSMGMT_IDR" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_DSMGMT_IDW" 12 | , 13 | .br 14 | .br 15 | .BI " NVME_DSMGMT_AD" 16 | 17 | }; 18 | .SH Constants 19 | .IP "NVME_DSMGMT_IDR" 12 20 | Attribute -Integral Dataset for Read 21 | .IP "NVME_DSMGMT_IDW" 12 22 | Attribute - Integral Dataset for Write 23 | .IP "NVME_DSMGMT_AD" 12 24 | Attribute - Deallocate 25 | -------------------------------------------------------------------------------- /doc/man/nvme_dsm_range.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_dsm_range" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_dsm_range \- Dataset Management - Range Definition 4 | .SH SYNOPSIS 5 | struct nvme_dsm_range { 6 | .br 7 | .BI " __le32 cattr;" 8 | .br 9 | .BI " __le32 nlb;" 10 | .br 11 | .BI " __le64 slba;" 12 | .br 13 | .BI " 14 | }; 15 | .br 16 | 17 | .SH Members 18 | .IP "cattr" 12 19 | Context Attributes 20 | .IP "nlb" 12 21 | Length in logical blocks 22 | .IP "slba" 12 23 | Starting LBA 24 | -------------------------------------------------------------------------------- /doc/man/nvme_dump_config.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_dump_config" 9 "nvme_dump_config" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_dump_config \- Print the JSON configuration 4 | .SH SYNOPSIS 5 | .B "int" nvme_dump_config 6 | .BI "(nvme_root_t r " ");" 7 | .SH ARGUMENTS 8 | .IP "r" 12 9 | nvme_root_t object 10 | .SH "DESCRIPTION" 11 | Prints the current contents of the JSON configuration 12 | file to stdout. 13 | .SH "RETURN" 14 | 0 on success, -1 on failure. 15 | -------------------------------------------------------------------------------- /doc/man/nvme_dump_tree.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_dump_tree" 9 "nvme_dump_tree" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_dump_tree \- Dump internal object tree 4 | .SH SYNOPSIS 5 | .B "int" nvme_dump_tree 6 | .BI "(nvme_root_t r " ");" 7 | .SH ARGUMENTS 8 | .IP "r" 12 9 | nvme_root_t object 10 | .SH "DESCRIPTION" 11 | Prints the internal object tree in JSON format 12 | to stdout. 13 | .SH "RETURN" 14 | 0 on success, -1 on failure. 15 | -------------------------------------------------------------------------------- /doc/man/nvme_eg_event_aggregate_log.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_eg_event_aggregate_log" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_eg_event_aggregate_log \- Endurance Group Event Aggregate 4 | .SH SYNOPSIS 5 | struct nvme_eg_event_aggregate_log { 6 | .br 7 | .BI " __le64 nr_entries;" 8 | .br 9 | .BI " __le16 egids[];" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "nr_entries" 12 17 | Number of Entries 18 | .IP "egids" 12 19 | Endurance Group Identifier 20 | -------------------------------------------------------------------------------- /doc/man/nvme_end_grp_chan_desc.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_end_grp_chan_desc" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_end_grp_chan_desc \- Endurance Group Channel Configuration Descriptor 4 | .SH SYNOPSIS 5 | struct nvme_end_grp_chan_desc { 6 | .br 7 | .BI " __le16 egchans;" 8 | .br 9 | .BI " struct nvme_channel_config_desc chan_config_desc[];" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "egchans" 12 17 | Number of Channels 18 | .IP "chan_config_desc" 12 19 | Channel config descriptors. 20 | See \fIstruct\fP nvme_channel_config_desc 21 | -------------------------------------------------------------------------------- /doc/man/nvme_eom_optional_data.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_eom_optional_data" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_eom_optional_data \- EOM Optional Data Present Fields (Deprecated) 4 | .SH SYNOPSIS 5 | enum nvme_eom_optional_data { 6 | .br 7 | .BI " NVME_EOM_PRINTABLE_EYE_PRESENT" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_EOM_EYE_DATA_PRESENT" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVME_EOM_PRINTABLE_EYE_PRESENT" 12 16 | Printable Eye Present 17 | .IP "NVME_EOM_EYE_DATA_PRESENT" 12 18 | Eye Data Present 19 | -------------------------------------------------------------------------------- /doc/man/nvme_errno_to_string.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_errno_to_string" 9 "nvme_errno_to_string" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_errno_to_string \- Returns string describing nvme connect failures 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_errno_to_string 6 | .BI "(int err " ");" 7 | .SH ARGUMENTS 8 | .IP "err" 12 9 | Returned error code from \fBnvme_add_ctrl\fP 10 | .SH "RETURN" 11 | String representation of the nvme connect error codes 12 | -------------------------------------------------------------------------------- /doc/man/nvme_fdp_event_flags.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_fdp_event_flags" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_fdp_event_flags \- FDP Event Flags 4 | .SH SYNOPSIS 5 | enum nvme_fdp_event_flags { 6 | .br 7 | .BI " NVME_FDP_EVENT_F_PIV" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_FDP_EVENT_F_NSIDV" 12 | , 13 | .br 14 | .br 15 | .BI " NVME_FDP_EVENT_F_LV" 16 | 17 | }; 18 | .SH Constants 19 | .IP "NVME_FDP_EVENT_F_PIV" 12 20 | Placement Identifier Valid 21 | .IP "NVME_FDP_EVENT_F_NSIDV" 12 22 | Namespace Identifier Valid 23 | .IP "NVME_FDP_EVENT_F_LV" 12 24 | Location Valid 25 | -------------------------------------------------------------------------------- /doc/man/nvme_fdp_event_realloc_flags.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_fdp_event_realloc_flags" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_fdp_event_realloc_flags \- Media Reallocated Event Type Specific Flags 4 | .SH SYNOPSIS 5 | enum nvme_fdp_event_realloc_flags { 6 | .br 7 | .BI " NVME_FDP_EVENT_REALLOC_F_LBAV" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NVME_FDP_EVENT_REALLOC_F_LBAV" 12 12 | LBA Valid 13 | -------------------------------------------------------------------------------- /doc/man/nvme_fdp_events_log.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_fdp_events_log" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_fdp_events_log \- FDP Events Log Page 4 | .SH SYNOPSIS 5 | struct nvme_fdp_events_log { 6 | .br 7 | .BI " __le32 n;" 8 | .br 9 | .BI " __u8 rsvd4[60];" 10 | .br 11 | .BI " struct nvme_fdp_event events[63];" 12 | .br 13 | .BI " 14 | }; 15 | .br 16 | 17 | .SH Members 18 | .IP "n" 12 19 | Number of FDP Events 20 | .IP "rsvd4" 12 21 | Reserved 22 | .IP "events" 12 23 | FDP Events (\fIstruct nvme_fdp_event\fP) 24 | -------------------------------------------------------------------------------- /doc/man/nvme_fdp_ruh_desc.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_fdp_ruh_desc" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_fdp_ruh_desc \- Reclaim Unit Handle Descriptor 4 | .SH SYNOPSIS 5 | struct nvme_fdp_ruh_desc { 6 | .br 7 | .BI " __u8 ruht;" 8 | .br 9 | .BI " __u8 rsvd1[3];" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "ruht" 12 17 | Reclaim Unit Handle Type 18 | .IP "rsvd1" 12 19 | Reserved 20 | -------------------------------------------------------------------------------- /doc/man/nvme_fdp_ruh_status.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_fdp_ruh_status" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_fdp_ruh_status \- Reclaim Unit Handle Status 4 | .SH SYNOPSIS 5 | struct nvme_fdp_ruh_status { 6 | .br 7 | .BI " __u8 rsvd0[14];" 8 | .br 9 | .BI " __le16 nruhsd;" 10 | .br 11 | .BI " struct nvme_fdp_ruh_status_desc ruhss[];" 12 | .br 13 | .BI " 14 | }; 15 | .br 16 | 17 | .SH Members 18 | .IP "rsvd0" 12 19 | Reserved 20 | .IP "nruhsd" 12 21 | Number of Reclaim Unit Handle Status Descriptors 22 | .IP "ruhss" 12 23 | Reclaim Unit Handle Status descriptors 24 | -------------------------------------------------------------------------------- /doc/man/nvme_fdp_ruh_type.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_fdp_ruh_type" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_fdp_ruh_type \- Reclaim Unit Handle Type 4 | .SH SYNOPSIS 5 | enum nvme_fdp_ruh_type { 6 | .br 7 | .BI " NVME_FDP_RUHT_INITIALLY_ISOLATED" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_FDP_RUHT_PERSISTENTLY_ISOLATED" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVME_FDP_RUHT_INITIALLY_ISOLATED" 12 16 | Initially Isolated 17 | .IP "NVME_FDP_RUHT_PERSISTENTLY_ISOLATED" 12 18 | Persistently Isolated 19 | -------------------------------------------------------------------------------- /doc/man/nvme_fdp_ruhu_desc.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_fdp_ruhu_desc" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_fdp_ruhu_desc \- Reclaim Unit Handle Usage Descriptor 4 | .SH SYNOPSIS 5 | struct nvme_fdp_ruhu_desc { 6 | .br 7 | .BI " __u8 ruha;" 8 | .br 9 | .BI " __u8 rsvd1[7];" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "ruha" 12 17 | Reclaim Unit Handle Attributes (\fIenum nvme_fdp_ruha\fP) 18 | .IP "rsvd1" 12 19 | Reserved 20 | -------------------------------------------------------------------------------- /doc/man/nvme_fdp_ruhu_log.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_fdp_ruhu_log" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_fdp_ruhu_log \- Reclaim Unit Handle Usage Log Page 4 | .SH SYNOPSIS 5 | struct nvme_fdp_ruhu_log { 6 | .br 7 | .BI " __le16 nruh;" 8 | .br 9 | .BI " __u8 rsvd2[6];" 10 | .br 11 | .BI " struct nvme_fdp_ruhu_desc ruhus[];" 12 | .br 13 | .BI " 14 | }; 15 | .br 16 | 17 | .SH Members 18 | .IP "nruh" 12 19 | Number of Reclaim Unit Handles 20 | .IP "rsvd2" 12 21 | Reserved 22 | .IP "ruhus" 12 23 | Reclaim Unit Handle Usage descriptors 24 | -------------------------------------------------------------------------------- /doc/man/nvme_fdp_supported_event_attributes.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_fdp_supported_event_attributes" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_fdp_supported_event_attributes \- Supported FDP Event Attributes 4 | .SH SYNOPSIS 5 | enum nvme_fdp_supported_event_attributes { 6 | .br 7 | .BI " NVME_FDP_SUPP_EVENT_ENABLED_SHIFT" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_FDP_SUPP_EVENT_ENABLED_MASK" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVME_FDP_SUPP_EVENT_ENABLED_SHIFT" 12 16 | FDP Event Enable Shift 17 | .IP "NVME_FDP_SUPP_EVENT_ENABLED_MASK" 12 18 | FDP Event Enable Mask 19 | -------------------------------------------------------------------------------- /doc/man/nvme_fdp_supported_event_desc.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_fdp_supported_event_desc" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_fdp_supported_event_desc \- Supported FDP Event Descriptor 4 | .SH SYNOPSIS 5 | struct nvme_fdp_supported_event_desc { 6 | .br 7 | .BI " __u8 evt;" 8 | .br 9 | .BI " __u8 evta;" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "evt" 12 17 | FDP Event Type 18 | .IP "evta" 12 19 | FDP Event Type Attributes (\fIenum nvme_fdp_supported_event_attributes\fP) 20 | -------------------------------------------------------------------------------- /doc/man/nvme_feat_auto_pst.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_feat_auto_pst" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_feat_auto_pst \- Autonomous Power State Transition 4 | .SH SYNOPSIS 5 | struct nvme_feat_auto_pst { 6 | .br 7 | .BI " __le64 apst_entry[32];" 8 | .br 9 | .BI " 10 | }; 11 | .br 12 | 13 | .SH Members 14 | .IP "apst_entry" 12 15 | See \fIenum nvme_apst_entry\fP 16 | -------------------------------------------------------------------------------- /doc/man/nvme_feat_plm_window_select.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_feat_plm_window_select" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_feat_plm_window_select \- Predictable Latency Per NVM Set Log 4 | .SH SYNOPSIS 5 | enum nvme_feat_plm_window_select { 6 | .br 7 | .BI " NVME_FEATURE_PLM_DTWIN" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_FEATURE_PLM_NDWIN" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVME_FEATURE_PLM_DTWIN" 12 16 | Deterministic Window select 17 | .IP "NVME_FEATURE_PLM_NDWIN" 12 18 | Non-Deterministic Window select 19 | -------------------------------------------------------------------------------- /doc/man/nvme_feat_tmpthresh_thsel.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_feat_tmpthresh_thsel" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_feat_tmpthresh_thsel \- Temperature Threshold - Threshold Type Select 4 | .SH SYNOPSIS 5 | enum nvme_feat_tmpthresh_thsel { 6 | .br 7 | .BI " NVME_FEATURE_TEMPTHRESH_THSEL_OVER" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_FEATURE_TEMPTHRESH_THSEL_UNDER" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVME_FEATURE_TEMPTHRESH_THSEL_OVER" 12 16 | Over temperature threshold select 17 | .IP "NVME_FEATURE_TEMPTHRESH_THSEL_UNDER" 12 18 | Under temperature threshold select 19 | -------------------------------------------------------------------------------- /doc/man/nvme_fid_supported_effects_log.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_fid_supported_effects_log" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_fid_supported_effects_log \- Feature Identifiers Supported and Effects 4 | .SH SYNOPSIS 5 | struct nvme_fid_supported_effects_log { 6 | .br 7 | .BI " __le32 fid_support[NVME_LOG_FID_SUPPORTED_EFFECTS_MAX];" 8 | .br 9 | .BI " 10 | }; 11 | .br 12 | 13 | .SH Members 14 | .IP "fid_support" 12 15 | Feature Identifier Supported 16 | -------------------------------------------------------------------------------- /doc/man/nvme_firmware_slot.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_firmware_slot" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_firmware_slot \- Firmware Slot Information Log 4 | .SH SYNOPSIS 5 | struct nvme_firmware_slot { 6 | .br 7 | .BI " __u8 afi;" 8 | .br 9 | .BI " __u8 rsvd1[7];" 10 | .br 11 | .BI " char frs[7][8];" 12 | .br 13 | .BI " __u8 rsvd2[448];" 14 | .br 15 | .BI " 16 | }; 17 | .br 18 | 19 | .SH Members 20 | .IP "afi" 12 21 | Active Firmware Info 22 | .IP "rsvd1" 12 23 | Reserved 24 | .IP "frs" 12 25 | Firmware Revision for Slot 26 | .IP "rsvd2" 12 27 | Reserved 28 | -------------------------------------------------------------------------------- /doc/man/nvme_first_host.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_first_host" 9 "nvme_first_host" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_first_host \- Start host iterator 4 | .SH SYNOPSIS 5 | .B "nvme_host_t" nvme_first_host 6 | .BI "(nvme_root_t r " ");" 7 | .SH ARGUMENTS 8 | .IP "r" 12 9 | \fInvme_root_t\fP object 10 | .SH "RETURN" 11 | First \fInvme_host_t\fP object in an iterator 12 | -------------------------------------------------------------------------------- /doc/man/nvme_first_subsystem.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_first_subsystem" 9 "nvme_first_subsystem" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_first_subsystem \- Start subsystem iterator 4 | .SH SYNOPSIS 5 | .B "nvme_subsystem_t" nvme_first_subsystem 6 | .BI "(nvme_host_t h " ");" 7 | .SH ARGUMENTS 8 | .IP "h" 12 9 | \fInvme_host_t\fP object 10 | .SH "RETURN" 11 | first \fInvme_subsystem_t\fP object in an iterator 12 | -------------------------------------------------------------------------------- /doc/man/nvme_for_each_host.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_for_each_host" 9 "nvme_for_each_host" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_for_each_host \- Traverse host list 4 | .SH SYNOPSIS 5 | .B "nvme_for_each_host 6 | .BI "(r " "," 7 | .BI "h " ");" 8 | .SH ARGUMENTS 9 | .IP "r" 12 10 | \fInvme_root_t\fP object 11 | .IP "h" 12 12 | \fInvme_host_t\fP object 13 | -------------------------------------------------------------------------------- /doc/man/nvme_for_each_host_safe.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_for_each_host_safe" 9 "nvme_for_each_host_safe" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_for_each_host_safe \- Traverse host list 4 | .SH SYNOPSIS 5 | .B "nvme_for_each_host_safe 6 | .BI "(r " "," 7 | .BI "h " "," 8 | .BI "_h " ");" 9 | .SH ARGUMENTS 10 | .IP "r" 12 11 | \fInvme_root_t\fP object 12 | .IP "h" 12 13 | \fInvme_host_t\fP object 14 | .IP "_h" 12 15 | Temporary \fInvme_host_t\fP object 16 | -------------------------------------------------------------------------------- /doc/man/nvme_for_each_subsystem.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_for_each_subsystem" 9 "nvme_for_each_subsystem" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_for_each_subsystem \- Traverse subsystems 4 | .SH SYNOPSIS 5 | .B "nvme_for_each_subsystem 6 | .BI "(h " "," 7 | .BI "s " ");" 8 | .SH ARGUMENTS 9 | .IP "h" 12 10 | \fInvme_host_t\fP object 11 | .IP "s" 12 12 | \fInvme_subsystem_t\fP object 13 | -------------------------------------------------------------------------------- /doc/man/nvme_for_each_subsystem_safe.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_for_each_subsystem_safe" 9 "nvme_for_each_subsystem_safe" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_for_each_subsystem_safe \- Traverse subsystems 4 | .SH SYNOPSIS 5 | .B "nvme_for_each_subsystem_safe 6 | .BI "(h " "," 7 | .BI "s " "," 8 | .BI "_s " ");" 9 | .SH ARGUMENTS 10 | .IP "h" 12 11 | \fInvme_host_t\fP object 12 | .IP "s" 12 13 | \fInvme_subsystem_t\fP object 14 | .IP "_s" 12 15 | Temporary \fInvme_subsystem_t\fP object 16 | -------------------------------------------------------------------------------- /doc/man/nvme_free_ctrl.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_free_ctrl" 9 "nvme_free_ctrl" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_free_ctrl \- Free controller 4 | .SH SYNOPSIS 5 | .B "void" nvme_free_ctrl 6 | .BI "(struct nvme_ctrl *c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | -------------------------------------------------------------------------------- /doc/man/nvme_free_host.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_free_host" 9 "nvme_free_host" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_free_host \- Free nvme_host_t object 4 | .SH SYNOPSIS 5 | .B "void" nvme_free_host 6 | .BI "(nvme_host_t h " ");" 7 | .SH ARGUMENTS 8 | .IP "h" 12 9 | nvme_host_t object 10 | -------------------------------------------------------------------------------- /doc/man/nvme_free_ns.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_free_ns" 9 "nvme_free_ns" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_free_ns \- Free a namespace object 4 | .SH SYNOPSIS 5 | .B "void" nvme_free_ns 6 | .BI "(struct nvme_ns *n " ");" 7 | .SH ARGUMENTS 8 | .IP "n" 12 9 | Namespace instance 10 | -------------------------------------------------------------------------------- /doc/man/nvme_free_subsystem.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_free_subsystem" 9 "nvme_free_subsystem" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_free_subsystem \- Free a subsystem 4 | .SH SYNOPSIS 5 | .B "void" nvme_free_subsystem 6 | .BI "(struct nvme_subsystem *s " ");" 7 | .SH ARGUMENTS 8 | .IP "s" 12 9 | subsystem 10 | .SH "DESCRIPTION" 11 | Frees \fIs\fP and all related objects. 12 | -------------------------------------------------------------------------------- /doc/man/nvme_free_tree.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_free_tree" 9 "nvme_free_tree" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_free_tree \- Free root object 4 | .SH SYNOPSIS 5 | .B "void" nvme_free_tree 6 | .BI "(nvme_root_t r " ");" 7 | .SH ARGUMENTS 8 | .IP "r" 12 9 | \fInvme_root_t\fP object 10 | .SH "DESCRIPTION" 11 | Free an \fInvme_root_t\fP object and all attached objects 12 | -------------------------------------------------------------------------------- /doc/man/nvme_free_uri.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_free_uri" 9 "nvme_free_uri" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_free_uri \- Free the URI structure 4 | .SH SYNOPSIS 5 | .B "void" nvme_free_uri 6 | .BI "(struct nvme_fabrics_uri *uri " ");" 7 | .SH ARGUMENTS 8 | .IP "uri" 12 9 | \fInvme_fabrics_uri\fP structure 10 | .SH "DESCRIPTION" 11 | Free an \fInvme_fabrics_uri\fP structure. 12 | -------------------------------------------------------------------------------- /doc/man/nvme_get_ana_log_len.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_get_ana_log_len" 9 "nvme_get_ana_log_len" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_get_ana_log_len \- Retrieve size of the current ANA log 4 | .SH SYNOPSIS 5 | .B "int" nvme_get_ana_log_len 6 | .BI "(int fd " "," 7 | .BI "size_t *analen " ");" 8 | .SH ARGUMENTS 9 | .IP "fd" 12 10 | File descriptor of nvme device 11 | .IP "analen" 12 12 | Pointer to where the length will be set on success 13 | .SH "RETURN" 14 | The nvme command status if a response was received (see 15 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 16 | -------------------------------------------------------------------------------- /doc/man/nvme_get_attr.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_get_attr" 9 "nvme_get_attr" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_get_attr \- Read sysfs attribute 4 | .SH SYNOPSIS 5 | .B "char *" nvme_get_attr 6 | .BI "(const char *d " "," 7 | .BI "const char *attr " ");" 8 | .SH ARGUMENTS 9 | .IP "d" 12 10 | sysfs directory 11 | .IP "attr" 12 12 | sysfs attribute name 13 | .SH "RETURN" 14 | String with the contents of \fIattr\fP or NULL in case of an empty value 15 | or in case of an error (indicated by non-zero errno code). 16 | -------------------------------------------------------------------------------- /doc/man/nvme_get_ctrl_attr.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_get_ctrl_attr" 9 "nvme_get_ctrl_attr" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_get_ctrl_attr \- Read controller sysfs attribute 4 | .SH SYNOPSIS 5 | .B "char *" nvme_get_ctrl_attr 6 | .BI "(nvme_ctrl_t c " "," 7 | .BI "const char *attr " ");" 8 | .SH ARGUMENTS 9 | .IP "c" 12 10 | Controller instance 11 | .IP "attr" 12 12 | sysfs attribute name 13 | .SH "RETURN" 14 | String with the contents of \fIattr\fP or NULL in case of an empty value 15 | or in case of an error (indicated by non-zero errno code). 16 | -------------------------------------------------------------------------------- /doc/man/nvme_get_features.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_get_features" 9 "nvme_get_features" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_get_features \- Retrieve a feature attribute 4 | .SH SYNOPSIS 5 | .B "int" nvme_get_features 6 | .BI "(struct nvme_get_features_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_get_features_args\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_get_log.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_get_log" 9 "nvme_get_log" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_get_log \- NVMe Admin Get Log command 4 | .SH SYNOPSIS 5 | .B "int" nvme_get_log 6 | .BI "(struct nvme_get_log_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_get_log_args\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_get_ns_attr.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_get_ns_attr" 9 "nvme_get_ns_attr" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_get_ns_attr \- Read namespace sysfs attribute 4 | .SH SYNOPSIS 5 | .B "char *" nvme_get_ns_attr 6 | .BI "(nvme_ns_t n " "," 7 | .BI "const char *attr " ");" 8 | .SH ARGUMENTS 9 | .IP "n" 12 10 | nvme_ns_t object 11 | .IP "attr" 12 12 | sysfs attribute name 13 | .SH "RETURN" 14 | String with the contents of \fIattr\fP or NULL in case of an empty value 15 | or in case of an error (indicated by non-zero errno code). 16 | -------------------------------------------------------------------------------- /doc/man/nvme_get_path_attr.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_get_path_attr" 9 "nvme_get_path_attr" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_get_path_attr \- Read path sysfs attribute 4 | .SH SYNOPSIS 5 | .B "char *" nvme_get_path_attr 6 | .BI "(nvme_path_t p " "," 7 | .BI "const char *attr " ");" 8 | .SH ARGUMENTS 9 | .IP "p" 12 10 | nvme_path_t object 11 | .IP "attr" 12 12 | sysfs attribute name 13 | .SH "RETURN" 14 | String with the contents of \fIattr\fP or NULL in case of an empty value 15 | or in case of an error (indicated by non-zero errno code). 16 | -------------------------------------------------------------------------------- /doc/man/nvme_get_subsys_attr.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_get_subsys_attr" 9 "nvme_get_subsys_attr" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_get_subsys_attr \- Read subsystem sysfs attribute 4 | .SH SYNOPSIS 5 | .B "char *" nvme_get_subsys_attr 6 | .BI "(nvme_subsystem_t s " "," 7 | .BI "const char *attr " ");" 8 | .SH ARGUMENTS 9 | .IP "s" 12 10 | nvme_subsystem_t object 11 | .IP "attr" 12 12 | sysfs attribute name 13 | .SH "RETURN" 14 | String with the contents of \fIattr\fP or NULL in case of an empty value 15 | or in case of an error (indicated by non-zero errno code). 16 | -------------------------------------------------------------------------------- /doc/man/nvme_host_behavior_support.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_host_behavior_support" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_host_behavior_support \- Enable Advanced Command 4 | .SH SYNOPSIS 5 | enum nvme_host_behavior_support { 6 | .br 7 | .BI " NVME_ENABLE_ACRE" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NVME_ENABLE_ACRE" 12 12 | Enable Advanced Command Retry Enable 13 | -------------------------------------------------------------------------------- /doc/man/nvme_host_get_dhchap_key.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_host_get_dhchap_key" 9 "nvme_host_get_dhchap_key" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_host_get_dhchap_key \- Return host key 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_host_get_dhchap_key 6 | .BI "(nvme_host_t h " ");" 7 | .SH ARGUMENTS 8 | .IP "h" 12 9 | Host for which the key should be returned 10 | .SH "RETURN" 11 | DH-HMAC-CHAP host key or NULL if not set 12 | -------------------------------------------------------------------------------- /doc/man/nvme_host_get_hostid.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_host_get_hostid" 9 "nvme_host_get_hostid" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_host_get_hostid \- Host ID of an nvme_host_t object 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_host_get_hostid 6 | .BI "(nvme_host_t h " ");" 7 | .SH ARGUMENTS 8 | .IP "h" 12 9 | nvme_host_t object 10 | .SH "RETURN" 11 | Host ID of \fIh\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_host_get_hostnqn.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_host_get_hostnqn" 9 "nvme_host_get_hostnqn" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_host_get_hostnqn \- Host NQN of an nvme_host_t object 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_host_get_hostnqn 6 | .BI "(nvme_host_t h " ");" 7 | .SH ARGUMENTS 8 | .IP "h" 12 9 | nvme_host_t object 10 | .SH "RETURN" 11 | Host NQN of \fIh\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_host_get_hostsymname.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_host_get_hostsymname" 9 "nvme_host_get_hostsymname" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_host_get_hostsymname \- Get the host's symbolic name 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_host_get_hostsymname 6 | .BI "(nvme_host_t h " ");" 7 | .SH ARGUMENTS 8 | .IP "h" 12 9 | Host for which the symbolic name should be returned. 10 | .SH "RETURN" 11 | The symbolic name or NULL if a symbolic name hasn't been 12 | configure. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_host_get_root.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_host_get_root" 9 "nvme_host_get_root" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_host_get_root \- Returns nvme_root_t object 4 | .SH SYNOPSIS 5 | .B "nvme_root_t" nvme_host_get_root 6 | .BI "(nvme_host_t h " ");" 7 | .SH ARGUMENTS 8 | .IP "h" 12 9 | \fInvme_host_t\fP object 10 | .SH "RETURN" 11 | \fInvme_root_t\fP object from \fIh\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_host_release_fds.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_host_release_fds" 9 "nvme_host_release_fds" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_host_release_fds \- Close all opened file descriptors under host 4 | .SH SYNOPSIS 5 | .B "void" nvme_host_release_fds 6 | .BI "(struct nvme_host *h " ");" 7 | .SH ARGUMENTS 8 | .IP "h" 12 9 | nvme_host_t object 10 | .SH "DESCRIPTION" 11 | Controller and Namespace objects cache the file descriptors 12 | of opened nvme devices. This API can be used to close and 13 | clear all cached fds under this host. 14 | -------------------------------------------------------------------------------- /doc/man/nvme_host_set_dhchap_key.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_host_set_dhchap_key" 9 "nvme_host_set_dhchap_key" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_host_set_dhchap_key \- set host key 4 | .SH SYNOPSIS 5 | .B "void" nvme_host_set_dhchap_key 6 | .BI "(nvme_host_t h " "," 7 | .BI "const char *key " ");" 8 | .SH ARGUMENTS 9 | .IP "h" 12 10 | Host for which the key should be set 11 | .IP "key" 12 12 | DH-HMAC-CHAP Key to set or NULL to clear existing key 13 | -------------------------------------------------------------------------------- /doc/man/nvme_host_set_hostsymname.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_host_set_hostsymname" 9 "nvme_host_set_hostsymname" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_host_set_hostsymname \- Set the host's symbolic name 4 | .SH SYNOPSIS 5 | .B "void" nvme_host_set_hostsymname 6 | .BI "(nvme_host_t h " "," 7 | .BI "const char *hostsymname " ");" 8 | .SH ARGUMENTS 9 | .IP "h" 12 10 | Host for which the symbolic name should be set. 11 | .IP "hostsymname" 12 12 | Symbolic name 13 | -------------------------------------------------------------------------------- /doc/man/nvme_id_ctrl_apsta.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_id_ctrl_apsta" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_id_ctrl_apsta \- Flags indicating the attributes of the autonomous power state transition feature. 4 | .SH SYNOPSIS 5 | enum nvme_id_ctrl_apsta { 6 | .br 7 | .BI " NVME_CTRL_APSTA_APST" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NVME_CTRL_APSTA_APST" 12 12 | If set, then the controller supports autonomous power 13 | state transitions. 14 | -------------------------------------------------------------------------------- /doc/man/nvme_id_ctrl_avscc.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_id_ctrl_avscc" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_id_ctrl_avscc \- Flags indicating the configuration settings for Admin Vendor Specific command handling. 4 | .SH SYNOPSIS 5 | enum nvme_id_ctrl_avscc { 6 | .br 7 | .BI " NVME_CTRL_AVSCC_AVS" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NVME_CTRL_AVSCC_AVS" 12 12 | If set, all Admin Vendor Specific Commands use the 13 | optional vendor specific command format with NDT and 14 | NDM fields. 15 | -------------------------------------------------------------------------------- /doc/man/nvme_id_ctrl_fcatt.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_id_ctrl_fcatt" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_id_ctrl_fcatt \- This field indicates attributes of the controller that are specific to NVMe over Fabrics. 4 | .SH SYNOPSIS 5 | enum nvme_id_ctrl_fcatt { 6 | .br 7 | .BI " NVME_CTRL_FCATT_DYNAMIC" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NVME_CTRL_FCATT_DYNAMIC" 12 12 | If cleared, then the NVM subsystem uses a dynamic 13 | controller model. If set, then the NVM subsystem 14 | uses a static controller model. 15 | -------------------------------------------------------------------------------- /doc/man/nvme_id_ctrl_fuses.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_id_ctrl_fuses" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_id_ctrl_fuses \- This field indicates the fused operations that the controller supports. 4 | .SH SYNOPSIS 5 | enum nvme_id_ctrl_fuses { 6 | .br 7 | .BI " NVME_CTRL_FUSES_COMPARE_AND_WRITE" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NVME_CTRL_FUSES_COMPARE_AND_WRITE" 12 12 | If set, then the controller supports the 13 | Compare and Write fused operation. 14 | -------------------------------------------------------------------------------- /doc/man/nvme_id_ctrl_hctm.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_id_ctrl_hctm" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_id_ctrl_hctm \- Flags indicate the attributes of the host controlled thermal management feature 4 | .SH SYNOPSIS 5 | enum nvme_id_ctrl_hctm { 6 | .br 7 | .BI " NVME_CTRL_HCTMA_HCTM" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NVME_CTRL_HCTMA_HCTM" 12 12 | then the controller supports host controlled thermal 13 | management, and the Set Features command and Get 14 | Features command with the Feature Identifier field 15 | set to NVME_FEAT_FID_HCTM. 16 | -------------------------------------------------------------------------------- /doc/man/nvme_id_ctrl_nvscc.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_id_ctrl_nvscc" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_id_ctrl_nvscc \- This field indicates the configuration settings for NVM Vendor Specific command handling. 4 | .SH SYNOPSIS 5 | enum nvme_id_ctrl_nvscc { 6 | .br 7 | .BI " NVME_CTRL_NVSCC_FMT" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NVME_CTRL_NVSCC_FMT" 12 12 | If set, all NVM Vendor Specific Commands use the 13 | format with NDT and NDM fields. 14 | -------------------------------------------------------------------------------- /doc/man/nvme_id_ctrl_ofcs.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_id_ctrl_ofcs" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_id_ctrl_ofcs \- Indicate whether the controller supports optional fabric commands. 4 | .SH SYNOPSIS 5 | enum nvme_id_ctrl_ofcs { 6 | .br 7 | .BI " NVME_CTRL_OFCS_DISCONNECT" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NVME_CTRL_OFCS_DISCONNECT" 12 12 | If set, then the controller supports the 13 | Disconnect command and deletion of individual 14 | I/O Queues. 15 | -------------------------------------------------------------------------------- /doc/man/nvme_id_directives.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_id_directives" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_id_directives \- Identify Directive - Return Parameters Data Structure 4 | .SH SYNOPSIS 5 | struct nvme_id_directives { 6 | .br 7 | .BI " __u8 supported[32];" 8 | .br 9 | .BI " __u8 enabled[32];" 10 | .br 11 | .BI " __u8 rsvd64[4032];" 12 | .br 13 | .BI " 14 | }; 15 | .br 16 | 17 | .SH Members 18 | .IP "supported" 12 19 | Identify directive is supported 20 | .IP "enabled" 12 21 | Identify directive is Enabled 22 | .IP "rsvd64" 12 23 | Reserved 24 | -------------------------------------------------------------------------------- /doc/man/nvme_id_domain_list.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_id_domain_list" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_id_domain_list \- Domain List 4 | .SH SYNOPSIS 5 | struct nvme_id_domain_list { 6 | .br 7 | .BI " __u8 num;" 8 | .br 9 | .BI " __u8 rsvd[127];" 10 | .br 11 | .BI " struct nvme_id_domain_attr domain_attr[NVME_ID_DOMAIN_LIST_MAX];" 12 | .br 13 | .BI " 14 | }; 15 | .br 16 | 17 | .SH Members 18 | .IP "num" 12 19 | Number of domain attributes 20 | .IP "rsvd" 12 21 | Reserved 22 | .IP "domain_attr" 12 23 | List of domain attributes 24 | -------------------------------------------------------------------------------- /doc/man/nvme_id_endurance_group_list.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_id_endurance_group_list" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_id_endurance_group_list \- Endurance Group List 4 | .SH SYNOPSIS 5 | struct nvme_id_endurance_group_list { 6 | .br 7 | .BI " __le16 num;" 8 | .br 9 | .BI " __le16 identifier[NVME_ID_ENDURANCE_GROUP_LIST_MAX];" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "num" 12 17 | Number of Identifiers 18 | .IP "identifier" 12 19 | Endurance Group Identifier 20 | -------------------------------------------------------------------------------- /doc/man/nvme_id_iocs.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_id_iocs" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_id_iocs \- NVMe Identify IO Command Set data structure 4 | .SH SYNOPSIS 5 | struct nvme_id_iocs { 6 | .br 7 | .BI " __le64 iocsc[512];" 8 | .br 9 | .BI " 10 | }; 11 | .br 12 | 13 | .SH Members 14 | .IP "iocsc" 12 15 | List of supported IO Command Set Combination vectors 16 | -------------------------------------------------------------------------------- /doc/man/nvme_id_ns_attr.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_id_ns_attr" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_id_ns_attr \- Specifies attributes of the namespace. 4 | .SH SYNOPSIS 5 | enum nvme_id_ns_attr { 6 | .br 7 | .BI " NVME_NS_NSATTR_WRITE_PROTECTED" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NVME_NS_NSATTR_WRITE_PROTECTED" 12 12 | If set, then the namespace is currently 13 | write protected and all write access to the 14 | namespace shall fail. 15 | -------------------------------------------------------------------------------- /doc/man/nvme_id_ns_granularity_desc.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_id_ns_granularity_desc" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_id_ns_granularity_desc \- Namespace Granularity Descriptor 4 | .SH SYNOPSIS 5 | struct nvme_id_ns_granularity_desc { 6 | .br 7 | .BI " __le64 nszegran;" 8 | .br 9 | .BI " __le64 ncapgran;" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "nszegran" 12 17 | Namespace Size Granularity 18 | .IP "ncapgran" 12 19 | Namespace Capacity Granularity 20 | -------------------------------------------------------------------------------- /doc/man/nvme_id_ns_nmic.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_id_ns_nmic" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_id_ns_nmic \- This field specifies multi-path I/O and namespace sharing capabilities of the namespace. 4 | .SH SYNOPSIS 5 | enum nvme_id_ns_nmic { 6 | .br 7 | .BI " NVME_NS_NMIC_SHARED" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NVME_NS_NMIC_SHARED" 12 12 | If set, then the namespace may be attached to two or 13 | more controllers in the NVM subsystem concurrently 14 | -------------------------------------------------------------------------------- /doc/man/nvme_id_nvmset_list.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_id_nvmset_list" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_id_nvmset_list \- NVM set list 4 | .SH SYNOPSIS 5 | struct nvme_id_nvmset_list { 6 | .br 7 | .BI " __u8 nid;" 8 | .br 9 | .BI " __u8 rsvd1[127];" 10 | .br 11 | .BI " struct nvme_nvmset_attr ent[NVME_ID_NVMSET_LIST_MAX];" 12 | .br 13 | .BI " 14 | }; 15 | .br 16 | 17 | .SH Members 18 | .IP "nid" 12 19 | Nvmset id 20 | .IP "rsvd1" 12 21 | Reserved 22 | .IP "ent" 12 23 | nvmset id list 24 | -------------------------------------------------------------------------------- /doc/man/nvme_id_uuid_list.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_id_uuid_list" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_id_uuid_list \- UUID list 4 | .SH SYNOPSIS 5 | struct nvme_id_uuid_list { 6 | .br 7 | .BI " __u8 rsvd0[32];" 8 | .br 9 | .BI " struct nvme_id_uuid_list_entry entry[NVME_ID_UUID_LIST_MAX];" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "rsvd0" 12 17 | reserved 18 | .IP "entry" 12 19 | UUID list entry 20 | -------------------------------------------------------------------------------- /doc/man/nvme_id_uuid_list_entry.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_id_uuid_list_entry" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_id_uuid_list_entry \- UUID List Entry 4 | .SH SYNOPSIS 5 | struct nvme_id_uuid_list_entry { 6 | .br 7 | .BI " __u8 header;" 8 | .br 9 | .BI " __u8 rsvd1[15];" 10 | .br 11 | .BI " __u8 uuid[16];" 12 | .br 13 | .BI " 14 | }; 15 | .br 16 | 17 | .SH Members 18 | .IP "header" 12 19 | UUID Lists Entry Header 20 | .IP "rsvd1" 12 21 | reserved 22 | .IP "uuid" 12 23 | 128-bit Universally Unique Identifier 24 | -------------------------------------------------------------------------------- /doc/man/nvme_init_ctrl.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_init_ctrl" 9 "nvme_init_ctrl" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_init_ctrl \- Initialize nvme_ctrl_t object for an existing controller. 4 | .SH SYNOPSIS 5 | .B "int" nvme_init_ctrl 6 | .BI "(nvme_host_t h " "," 7 | .BI "nvme_ctrl_t c " "," 8 | .BI "int instance " ");" 9 | .SH ARGUMENTS 10 | .IP "h" 12 11 | nvme_host_t object 12 | .IP "c" 12 13 | nvme_ctrl_t object 14 | .IP "instance" 12 15 | Instance number (e.g. 1 for nvme1) 16 | .SH "RETURN" 17 | The \fBioctl\fP return code. Typically 0 on success. 18 | -------------------------------------------------------------------------------- /doc/man/nvme_io.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_io" 9 "nvme_io" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_io \- Submit an nvme user I/O command 4 | .SH SYNOPSIS 5 | .B "int" nvme_io 6 | .BI "(struct nvme_io_args *args " "," 7 | .BI "__u8 opcode " ");" 8 | .SH ARGUMENTS 9 | .IP "args" 12 10 | \fIstruct nvme_io_args\fP argument structure 11 | .IP "opcode" 12 12 | Opcode to execute 13 | .SH "RETURN" 14 | The nvme command status if a response was received (see 15 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 16 | -------------------------------------------------------------------------------- /doc/man/nvme_io_mgmt_recv.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_io_mgmt_recv" 9 "nvme_io_mgmt_recv" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_io_mgmt_recv \- I/O Management Receive command 4 | .SH SYNOPSIS 5 | .B "int" nvme_io_mgmt_recv 6 | .BI "(struct nvme_io_mgmt_recv_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_io_mgmt_recv_args\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_io_mgmt_recv_mo.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_io_mgmt_recv_mo" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_io_mgmt_recv_mo \- I/O Management Receive - Management Operation 4 | .SH SYNOPSIS 5 | enum nvme_io_mgmt_recv_mo { 6 | .br 7 | .BI " NVME_IO_MGMT_RECV_RUH_STATUS" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NVME_IO_MGMT_RECV_RUH_STATUS" 12 12 | Reclaim Unit Handle Status 13 | -------------------------------------------------------------------------------- /doc/man/nvme_io_mgmt_send.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_io_mgmt_send" 9 "nvme_io_mgmt_send" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_io_mgmt_send \- I/O Management Send command 4 | .SH SYNOPSIS 5 | .B "int" nvme_io_mgmt_send 6 | .BI "(struct nvme_io_mgmt_send_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_io_mgmt_send_args\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_io_mgmt_send_mo.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_io_mgmt_send_mo" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_io_mgmt_send_mo \- I/O Management Send - Management Operation 4 | .SH SYNOPSIS 5 | enum nvme_io_mgmt_send_mo { 6 | .br 7 | .BI " NVME_IO_MGMT_SEND_RUH_UPDATE" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NVME_IO_MGMT_SEND_RUH_UPDATE" 12 12 | Reclaim Unit Handle Update 13 | -------------------------------------------------------------------------------- /doc/man/nvme_lba_range_type.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_lba_range_type" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_lba_range_type \- LBA Range Type 4 | .SH SYNOPSIS 5 | struct nvme_lba_range_type { 6 | .br 7 | .BI " struct nvme_lba_range_type_entry entry[NVME_FEAT_LBA_RANGE_MAX];" 8 | .br 9 | .BI " 10 | }; 11 | .br 12 | 13 | .SH Members 14 | .IP "entry" 12 15 | LBA range type entry. See \fIstruct\fP nvme_lba_range_type_entry 16 | -------------------------------------------------------------------------------- /doc/man/nvme_lba_rd.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_lba_rd" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_lba_rd \- LBA Range Descriptor 4 | .SH SYNOPSIS 5 | struct nvme_lba_rd { 6 | .br 7 | .BI " __le64 rslba;" 8 | .br 9 | .BI " __le32 rnlb;" 10 | .br 11 | .BI " __u8 rsvd12[4];" 12 | .br 13 | .BI " 14 | }; 15 | .br 16 | 17 | .SH Members 18 | .IP "rslba" 12 19 | Range Starting LBA 20 | .IP "rnlb" 12 21 | Range Number of Logical Blocks 22 | .IP "rsvd12" 12 23 | Reserved 24 | -------------------------------------------------------------------------------- /doc/man/nvme_lm_cdq.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_lm_cdq" 9 "nvme_lm_cdq" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_lm_cdq \- Controller Data Queue - Controller Data Queue command 4 | .SH SYNOPSIS 5 | .B "int" nvme_lm_cdq 6 | .BI "(struct nvme_lm_cdq_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_lm_cdq_args\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise.) 13 | -------------------------------------------------------------------------------- /doc/man/nvme_lm_controller_state_data.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_lm_controller_state_data" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_lm_controller_state_data \- Controller State data structure contains data on the controller's state. 4 | .SH SYNOPSIS 5 | struct nvme_lm_controller_state_data { 6 | .br 7 | .BI " struct nvme_lm_controller_state_data_header hdr;" 8 | .br 9 | .BI " struct nvme_lm_nvme_controller_state_data data;" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "hdr" 12 17 | Header 18 | .IP "data" 12 19 | Data 20 | -------------------------------------------------------------------------------- /doc/man/nvme_lm_ctrl_data_queue_fid.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_lm_ctrl_data_queue_fid" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_lm_ctrl_data_queue_fid \- Controller Data Queue - Set Feature 4 | .SH SYNOPSIS 5 | enum nvme_lm_ctrl_data_queue_fid { 6 | .br 7 | .BI " NVME_LM_CTRL_DATA_QUEUE_ETPT_MASK" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_LM_CTRL_DATA_QUEUE_ETPT_SHIFT" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVME_LM_CTRL_DATA_QUEUE_ETPT_MASK" 12 16 | Mask to set Enable Tail Pointer Trigger (ETPT) 17 | .IP "NVME_LM_CTRL_DATA_QUEUE_ETPT_SHIFT" 12 18 | Shift to set ETPT 19 | -------------------------------------------------------------------------------- /doc/man/nvme_lm_ctrl_data_queue_fid_data.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_lm_ctrl_data_queue_fid_data" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_lm_ctrl_data_queue_fid_data \- Get Controller Data Queue feature data 4 | .SH SYNOPSIS 5 | struct nvme_lm_ctrl_data_queue_fid_data { 6 | .br 7 | .BI " __le32 hp;" 8 | .br 9 | .BI " __le32 tpt;" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "hp" 12 17 | Head Pointer 18 | .IP "tpt" 12 19 | Tail Pointer Trigger 20 | -------------------------------------------------------------------------------- /doc/man/nvme_lm_migration_send.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_lm_migration_send" 9 "nvme_lm_migration_send" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_lm_migration_send \- Migration Send command 4 | .SH SYNOPSIS 5 | .B "int" nvme_lm_migration_send 6 | .BI "(struct nvme_lm_migration_send_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_lm_migration_send_args\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_lm_track_send.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_lm_track_send" 9 "nvme_lm_track_send" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_lm_track_send \- Track Send command 4 | .SH SYNOPSIS 5 | .B "int" nvme_lm_track_send 6 | .BI "(struct nvme_lm_track_send_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_lm_track_send_args\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_lockdown.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_lockdown" 9 "nvme_lockdown" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_lockdown \- Issue lockdown command 4 | .SH SYNOPSIS 5 | .B "int" nvme_lockdown 6 | .BI "(struct nvme_lockdown_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_lockdown_args\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_log_ana_lsp.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_log_ana_lsp" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_log_ana_lsp \- Asymmetric Namespace Access - Return Groups Only 4 | .SH SYNOPSIS 5 | enum nvme_log_ana_lsp { 6 | .br 7 | .BI " NVME_LOG_ANA_LSP_RGO_NAMESPACES" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_LOG_ANA_LSP_RGO_GROUPS_ONLY" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVME_LOG_ANA_LSP_RGO_NAMESPACES" 12 16 | .IP "NVME_LOG_ANA_LSP_RGO_GROUPS_ONLY" 12 17 | -------------------------------------------------------------------------------- /doc/man/nvme_lookup_key.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_lookup_key" 9 "nvme_lookup_key" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_lookup_key \- Lookup key serial number 4 | .SH SYNOPSIS 5 | .B "long" nvme_lookup_key 6 | .BI "(const char *type " "," 7 | .BI "const char *identity " ");" 8 | .SH ARGUMENTS 9 | .IP "type" 12 10 | Key type 11 | .IP "identity" 12 12 | Key description 13 | .SH "DESCRIPTION" 14 | Looks up the serial number of the key \fIidentity\fP 15 | with type type in the current session keyring. 16 | .SH "RETURN" 17 | The key serial number of the key 18 | or 0 with errno set otherwise. 19 | -------------------------------------------------------------------------------- /doc/man/nvme_lookup_keyring.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_lookup_keyring" 9 "nvme_lookup_keyring" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_lookup_keyring \- Lookup keyring serial number 4 | .SH SYNOPSIS 5 | .B "long" nvme_lookup_keyring 6 | .BI "(const char *keyring " ");" 7 | .SH ARGUMENTS 8 | .IP "keyring" 12 9 | Keyring name 10 | .SH "DESCRIPTION" 11 | Looks up the serial number of the keyring \fIkeyring\fP. 12 | .SH "RETURN" 13 | The key serial number of the keyring 14 | or 0 with errno set otherwise. 15 | -------------------------------------------------------------------------------- /doc/man/nvme_media_unit_config_desc.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_media_unit_config_desc" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_media_unit_config_desc \- Media Unit Configuration Descriptor 4 | .SH SYNOPSIS 5 | struct nvme_media_unit_config_desc { 6 | .br 7 | .BI " __le16 muid;" 8 | .br 9 | .BI " __u8 rsvd2[4];" 10 | .br 11 | .BI " __le16 mudl;" 12 | .br 13 | .BI " 14 | }; 15 | .br 16 | 17 | .SH Members 18 | .IP "muid" 12 19 | Media Unit Identifier 20 | .IP "rsvd2" 12 21 | Reserved 22 | .IP "mudl" 12 23 | Media Unit Descriptor Length 24 | -------------------------------------------------------------------------------- /doc/man/nvme_mgmt_addr_desc.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_mgmt_addr_desc" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_mgmt_addr_desc \- Management Address Descriptor 4 | .SH SYNOPSIS 5 | struct nvme_mgmt_addr_desc { 6 | .br 7 | .BI " __u8 mat;" 8 | .br 9 | .BI " __u8 rsvd1[3];" 10 | .br 11 | .BI " __u8 madrs[508];" 12 | .br 13 | .BI " 14 | }; 15 | .br 16 | 17 | .SH Members 18 | .IP "mat" 12 19 | Management Address Type 20 | .IP "rsvd1" 12 21 | Reserved 22 | .IP "madrs" 12 23 | Management Address 24 | -------------------------------------------------------------------------------- /doc/man/nvme_mgmt_addr_list_log.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_mgmt_addr_list_log" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_mgmt_addr_list_log \- Management Address List Log 4 | .SH SYNOPSIS 5 | struct nvme_mgmt_addr_list_log { 6 | .br 7 | .BI " struct nvme_mgmt_addr_desc mad[8];" 8 | .br 9 | .BI " 10 | }; 11 | .br 12 | 13 | .SH Members 14 | .IP "mad" 12 15 | Management Address Descriptor 16 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_aem_aeei_get_aee.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_mi_aem_aeei_get_aee" 9 "nvme_mi_aem_aeei_get_aee" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_mi_aem_aeei_get_aee \- return aee from aeei field 4 | .SH SYNOPSIS 5 | .B "bool" nvme_mi_aem_aeei_get_aee 6 | .BI "(__le16 aeei " ");" 7 | .SH ARGUMENTS 8 | .IP "aeei" 12 9 | aeei field from \fInvme_mi_aem_enable_item\fP 10 | .SH "RETURN" 11 | aee value 12 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_aem_aeei_get_aeeid.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_mi_aem_aeei_get_aeeid" 9 "nvme_mi_aem_aeei_get_aeeid" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_mi_aem_aeei_get_aeeid \- return aeeid from aeei field 4 | .SH SYNOPSIS 5 | .B "__u8" nvme_mi_aem_aeei_get_aeeid 6 | .BI "(__le16 aeei " ");" 7 | .SH ARGUMENTS 8 | .IP "aeei" 12 9 | aeei field from \fInvme_mi_aem_enable_item\fP 10 | .SH "RETURN" 11 | aeeid value 12 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_aem_aeei_set_aee.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_mi_aem_aeei_set_aee" 9 "nvme_mi_aem_aeei_set_aee" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_mi_aem_aeei_set_aee \- set aee in the aeei field 4 | .SH SYNOPSIS 5 | .B "void" nvme_mi_aem_aeei_set_aee 6 | .BI "(struct nvme_mi_aem_enable_item *item " "," 7 | .BI "bool enabled " ");" 8 | .SH ARGUMENTS 9 | .IP "item" 12 10 | Pointer to \fInvme_mi_aem_enable_item\fP to update the aee field 11 | .IP "enabled" 12 12 | aee value to use 13 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_aem_aeei_set_aeeid.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_mi_aem_aeei_set_aeeid" 9 "nvme_mi_aem_aeei_set_aeeid" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_mi_aem_aeei_set_aeeid \- set aeeid in the aeei field 4 | .SH SYNOPSIS 5 | .B "void" nvme_mi_aem_aeei_set_aeeid 6 | .BI "(struct nvme_mi_aem_enable_item *item " "," 7 | .BI "__u8 aeeid " ");" 8 | .SH ARGUMENTS 9 | .IP "item" 12 10 | Pointer to \fInvme_mi_aem_enable_item\fP to update the aeei field 11 | .IP "aeeid" 12 12 | aeeid value to use 13 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_aem_aemti_get_aemgn.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_mi_aem_aemti_get_aemgn" 9 "nvme_mi_aem_aemti_get_aemgn" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_mi_aem_aemti_get_aemgn \- return aemgn from aemti field 4 | .SH SYNOPSIS 5 | .B "__u8" nvme_mi_aem_aemti_get_aemgn 6 | .BI "(__u8 aemti " ");" 7 | .SH ARGUMENTS 8 | .IP "aemti" 12 9 | aemti field from \fInvme_mi_aem_occ_list_hdr\fP 10 | .SH "RETURN" 11 | aemgn value 12 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_aem_aeolli_get_aeoltl.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_mi_aem_aeolli_get_aeoltl" 9 "nvme_mi_aem_aeolli_get_aeoltl" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_mi_aem_aeolli_get_aeoltl \- return aeoltl from aeolli field 4 | .SH SYNOPSIS 5 | .B "__u32" nvme_mi_aem_aeolli_get_aeoltl 6 | .BI "(__u8 *aeolli " ");" 7 | .SH ARGUMENTS 8 | .IP "aeolli" 12 9 | Pointer to 3 byte aeolli field from \fInvme_mi_aem_occ_list_hdr\fP 10 | .SH "RETURN" 11 | aeoltl value 12 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_aem_aeolli_set_aeoltl.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_mi_aem_aeolli_set_aeoltl" 9 "nvme_mi_aem_aeolli_set_aeoltl" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_mi_aem_aeolli_set_aeoltl \- set aeoltl in the aeolli field 4 | .SH SYNOPSIS 5 | .B "void" nvme_mi_aem_aeolli_set_aeoltl 6 | .BI "(struct nvme_mi_aem_occ_list_hdr *hdr " "," 7 | .BI "__u32 aeoltl " ");" 8 | .SH ARGUMENTS 9 | .IP "hdr" 12 10 | Pointer to \fInvme_mi_aem_occ_list_hdr\fP to set the aeolli field 11 | .IP "aeoltl" 12 12 | aeoltl value to use 13 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_aem_aesi_get_aese.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_mi_aem_aesi_get_aese" 9 "nvme_mi_aem_aesi_get_aese" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_mi_aem_aesi_get_aese \- return aese from aesi field 4 | .SH SYNOPSIS 5 | .B "bool" nvme_mi_aem_aesi_get_aese 6 | .BI "(__le16 aesi " ");" 7 | .SH ARGUMENTS 8 | .IP "aesi" 12 9 | aesi field from \fInvme_mi_aem_supported_item\fP 10 | .SH "RETURN" 11 | A bool representing the aese value 12 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_aem_aesi_get_aesid.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_mi_aem_aesi_get_aesid" 9 "nvme_mi_aem_aesi_get_aesid" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_mi_aem_aesi_get_aesid \- return aesid from aesi field 4 | .SH SYNOPSIS 5 | .B "__u8" nvme_mi_aem_aesi_get_aesid 6 | .BI "(__le16 aesi " ");" 7 | .SH ARGUMENTS 8 | .IP "aesi" 12 9 | aesi field from \fInvme_mi_aem_supported_item\fP 10 | .SH "RETURN" 11 | aesid value 12 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_aem_aesi_set_aee.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_mi_aem_aesi_set_aee" 9 "nvme_mi_aem_aesi_set_aee" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_mi_aem_aesi_set_aee \- set aee in the aesi field 4 | .SH SYNOPSIS 5 | .B "void" nvme_mi_aem_aesi_set_aee 6 | .BI "(struct nvme_mi_aem_supported_item *item " "," 7 | .BI "bool enabled " ");" 8 | .SH ARGUMENTS 9 | .IP "item" 12 10 | Pointer to \fInvme_mi_aem_supported_item\fP to update the aesi field 11 | .IP "enabled" 12 12 | aee value to use 13 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_aem_aesi_set_aesid.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_mi_aem_aesi_set_aesid" 9 "nvme_mi_aem_aesi_set_aesid" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_mi_aem_aesi_set_aesid \- set aesid in the aesi field 4 | .SH SYNOPSIS 5 | .B "void" nvme_mi_aem_aesi_set_aesid 6 | .BI "(struct nvme_mi_aem_supported_item *item " "," 7 | .BI "__u8 aesid " ");" 8 | .SH ARGUMENTS 9 | .IP "item" 12 10 | Pointer to \fInvme_mi_aem_supported_item\fP to update the aesi field 11 | .IP "aesid" 12 12 | aesid value to use 13 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_aem_disable.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_mi_aem_disable" 9 "nvme_mi_aem_disable" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_mi_aem_disable \- Disable AE on the provided endpoint 4 | .SH SYNOPSIS 5 | .B "int" nvme_mi_aem_disable 6 | .BI "(nvme_mi_ep_t ep " ");" 7 | .SH ARGUMENTS 8 | .IP "ep" 12 9 | Endpoint to disable AEs 10 | .SH "RETURN" 11 | 0 is a success, nonzero is an error and errno may be read for further details 12 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_aem_enable_item.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_mi_aem_enable_item" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_mi_aem_enable_item \- AE Enabled item entry 4 | .SH SYNOPSIS 5 | struct nvme_mi_aem_enable_item { 6 | .br 7 | .BI " __u8 aeel;" 8 | .br 9 | .BI " __le16 aeei;" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "aeel" 12 17 | AE Enable Length (length of this structure which is 3) 18 | .IP "aeei" 12 19 | AE Enable Info 20 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_aem_enable_list.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_mi_aem_enable_list" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_mi_aem_enable_list \- AE enable list sent with SET CONFIG Asyncronous Event 4 | .SH SYNOPSIS 5 | struct nvme_mi_aem_enable_list { 6 | .br 7 | .BI " struct nvme_mi_aem_enable_list_header hdr;" 8 | .br 9 | .BI " 10 | }; 11 | .br 12 | 13 | .SH Members 14 | .IP "hdr" 12 15 | AE enable list header 16 | .SH "Description" 17 | Following this header should be hdr.numaee entries of nvme_mi_aem_enable_item structures 18 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_aem_get_fd.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_mi_aem_get_fd" 9 "nvme_mi_aem_get_fd" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_mi_aem_get_fd \- Returns the pollable fd for AEM data available 4 | .SH SYNOPSIS 5 | .B "int" nvme_mi_aem_get_fd 6 | .BI "(nvme_mi_ep_t ep " ");" 7 | .SH ARGUMENTS 8 | .IP "ep" 12 9 | The endpoint being monitored for asynchronous data 10 | .SH "DESCRIPTION" 11 | This populated structure can be polled from the application to understand if 12 | a call to \fBnvme_mi_aem_process\fP is required (when a poll returns > 0). 13 | .SH "RETURN" 14 | The fd value or -1 if error 15 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_aem_open.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_mi_aem_open" 9 "nvme_mi_aem_open" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_mi_aem_open \- Prepare an existing endpoint to receive AEMs 4 | .SH SYNOPSIS 5 | .B "int" nvme_mi_aem_open 6 | .BI "(nvme_mi_ep_t ep " ");" 7 | .SH ARGUMENTS 8 | .IP "ep" 12 9 | Endpoint to configure for AEMs 10 | .SH "RETURN" 11 | 0 if success, -1 otherwise 12 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_aem_supported_item.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_mi_aem_supported_item" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_mi_aem_supported_item \- AE Supported List Item 4 | .SH SYNOPSIS 5 | struct nvme_mi_aem_supported_item { 6 | .br 7 | .BI " __u8 aesl;" 8 | .br 9 | .BI " __le16 aesi;" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "aesl" 12 17 | AE supported list item length 18 | .IP "aesi" 12 19 | AE supported info 20 | .SH "Description" 21 | Following this header should be hdr.numaes entries of 22 | nvme_mi_aem_supported_item structures 23 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_aem_supported_list.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_mi_aem_supported_list" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_mi_aem_supported_list \- AE Supported List received with GET CONFIG Asynchronous Event 4 | .SH SYNOPSIS 5 | struct nvme_mi_aem_supported_list { 6 | .br 7 | .BI " struct nvme_mi_aem_supported_list_header hdr;" 8 | .br 9 | .BI " 10 | }; 11 | .br 12 | 13 | .SH Members 14 | .IP "hdr" 12 15 | AE supported list header 16 | .SH "Description" 17 | Following this header should be hdr.numaes entries of 18 | nvme_mi_aem_supported_item structures 19 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_close.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_mi_close" 9 "nvme_mi_close" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_mi_close \- Close an endpoint connection and release resources, including controller objects. 4 | .SH SYNOPSIS 5 | .B "void" nvme_mi_close 6 | .BI "(nvme_mi_ep_t ep " ");" 7 | .SH ARGUMENTS 8 | .IP "ep" 12 9 | Endpoint object to close 10 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_close_ctrl.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_mi_close_ctrl" 9 "nvme_mi_close_ctrl" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_mi_close_ctrl \- free a controller 4 | .SH SYNOPSIS 5 | .B "void" nvme_mi_close_ctrl 6 | .BI "(nvme_mi_ctrl_t ctrl " ");" 7 | .SH ARGUMENTS 8 | .IP "ctrl" 12 9 | controller to free 10 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_free_root.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_mi_free_root" 9 "nvme_mi_free_root" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_mi_free_root \- Free root object. 4 | .SH SYNOPSIS 5 | .B "void" nvme_mi_free_root 6 | .BI "(nvme_root_t root " ");" 7 | .SH ARGUMENTS 8 | .IP "root" 12 9 | root to free 10 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_osc.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_mi_osc" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_mi_osc \- Optionally Supported Command Data Structure 4 | .SH SYNOPSIS 5 | struct nvme_mi_osc { 6 | .br 7 | .BI " __u8 type;" 8 | .br 9 | .BI " __u8 opc;" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "type" 12 17 | Command Type 18 | .IP "opc" 12 19 | Opcode 20 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_read_sc_list.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_mi_read_sc_list" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_mi_read_sc_list \- Management Endpoint Buffer Supported Command List Data Structure 4 | .SH SYNOPSIS 5 | struct nvme_mi_read_sc_list { 6 | .br 7 | .BI " __le16 numcmd;" 8 | .br 9 | .BI " struct nvme_mi_osc cmds[];" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "numcmd" 12 17 | Number of Commands 18 | .IP "cmds" 12 19 | MEB supported Command Data Structure. 20 | See \fIstruct\fP nvme_mi_osc 21 | -------------------------------------------------------------------------------- /doc/man/nvme_mi_vpd_tra.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_mi_vpd_tra" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_mi_vpd_tra \- Vital Product Data Topology MultiRecord 4 | .SH SYNOPSIS 5 | struct nvme_mi_vpd_tra { 6 | .br 7 | .BI " __u8 vn;" 8 | .br 9 | .BI " __u8 rsvd6;" 10 | .br 11 | .BI " __u8 ec;" 12 | .br 13 | .BI " struct nvme_mi_vpd_telem elems[0];" 14 | .br 15 | .BI " 16 | }; 17 | .br 18 | 19 | .SH Members 20 | .IP "vn" 12 21 | Version Number 22 | .IP "rsvd6" 12 23 | Reserved 24 | .IP "ec" 12 25 | Element Count 26 | .IP "elems" 12 27 | Element Descriptor 28 | -------------------------------------------------------------------------------- /doc/man/nvme_namespace_filter.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_namespace_filter" 9 "nvme_namespace_filter" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_namespace_filter \- Filter for namespaces 4 | .SH SYNOPSIS 5 | .B "int" nvme_namespace_filter 6 | .BI "(const struct dirent *d " ");" 7 | .SH ARGUMENTS 8 | .IP "d" 12 9 | dirent to check 10 | .SH "RETURN" 11 | 1 if \fId\fP matches, 0 otherwise 12 | -------------------------------------------------------------------------------- /doc/man/nvme_namespace_first_path.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_namespace_first_path" 9 "nvme_namespace_first_path" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_namespace_first_path \- Start path iterator 4 | .SH SYNOPSIS 5 | .B "nvme_path_t" nvme_namespace_first_path 6 | .BI "(nvme_ns_t ns " ");" 7 | .SH ARGUMENTS 8 | .IP "ns" 12 9 | Namespace instance 10 | .SH "RETURN" 11 | First \fInvme_path_t\fP object of an \fIns\fP iterator 12 | -------------------------------------------------------------------------------- /doc/man/nvme_namespace_for_each_path.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_namespace_for_each_path" 9 "nvme_namespace_for_each_path" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_namespace_for_each_path \- Traverse paths 4 | .SH SYNOPSIS 5 | .B "nvme_namespace_for_each_path 6 | .BI "(n " "," 7 | .BI "p " ");" 8 | .SH ARGUMENTS 9 | .IP "n" 12 10 | Namespace instance 11 | .IP "p" 12 12 | \fInvme_path_t\fP object 13 | -------------------------------------------------------------------------------- /doc/man/nvme_namespace_for_each_path_safe.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_namespace_for_each_path_safe" 9 "nvme_namespace_for_each_path_safe" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_namespace_for_each_path_safe \- Traverse paths 4 | .SH SYNOPSIS 5 | .B "nvme_namespace_for_each_path_safe 6 | .BI "(n " "," 7 | .BI "p " "," 8 | .BI "_p " ");" 9 | .SH ARGUMENTS 10 | .IP "n" 12 11 | Namespace instance 12 | .IP "p" 12 13 | \fInvme_path_t\fP object 14 | .IP "_p" 12 15 | A \fInvme_path_t_node\fP to use as temporary storage 16 | -------------------------------------------------------------------------------- /doc/man/nvme_namespace_next_path.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_namespace_next_path" 9 "nvme_namespace_next_path" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_namespace_next_path \- Next path iterator 4 | .SH SYNOPSIS 5 | .B "nvme_path_t" nvme_namespace_next_path 6 | .BI "(nvme_ns_t ns " "," 7 | .BI "nvme_path_t p " ");" 8 | .SH ARGUMENTS 9 | .IP "ns" 12 10 | Namespace instance 11 | .IP "p" 12 12 | Previous \fInvme_path_t\fP object of an \fIns\fP iterator 13 | .SH "RETURN" 14 | Next \fInvme_path_t\fP object of an \fIns\fP iterator 15 | -------------------------------------------------------------------------------- /doc/man/nvme_nbft_free.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_nbft_free" 9 "nvme_nbft_free" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_nbft_free \- Free the struct nbft_info and its contents 4 | .SH SYNOPSIS 5 | .B "void" nvme_nbft_free 6 | .BI "(struct nbft_info *nbft " ");" 7 | .SH ARGUMENTS 8 | .IP "nbft" 12 9 | Parsed NBFT table data. 10 | -------------------------------------------------------------------------------- /doc/man/nvme_next_host.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_next_host" 9 "nvme_next_host" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_next_host \- Next host iterator 4 | .SH SYNOPSIS 5 | .B "nvme_host_t" nvme_next_host 6 | .BI "(nvme_root_t r " "," 7 | .BI "nvme_host_t h " ");" 8 | .SH ARGUMENTS 9 | .IP "r" 12 10 | \fInvme_root_t\fP object 11 | .IP "h" 12 12 | Previous \fInvme_host_t\fP iterator 13 | .SH "RETURN" 14 | Next \fInvme_host_t\fP object in an iterator 15 | -------------------------------------------------------------------------------- /doc/man/nvme_next_subsystem.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_next_subsystem" 9 "nvme_next_subsystem" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_next_subsystem \- Next subsystem iterator 4 | .SH SYNOPSIS 5 | .B "nvme_subsystem_t" nvme_next_subsystem 6 | .BI "(nvme_host_t h " "," 7 | .BI "nvme_subsystem_t s " ");" 8 | .SH ARGUMENTS 9 | .IP "h" 12 10 | \fInvme_host_t\fP object 11 | .IP "s" 12 12 | Previous \fInvme_subsystem_t\fP iterator 13 | .SH "RETURN" 14 | next \fInvme_subsystem_t\fP object in an iterator 15 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_attach.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_attach" 9 "nvme_ns_attach" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_attach \- Attach or detach namespace to controller(s) 4 | .SH SYNOPSIS 5 | .B "int" nvme_ns_attach 6 | .BI "(struct nvme_ns_attach_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_ns_attach_args\fP Argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_attach_sel.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_ns_attach_sel" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_ns_attach_sel \- Namespace Attachment - Select 4 | .SH SYNOPSIS 5 | enum nvme_ns_attach_sel { 6 | .br 7 | .BI " NVME_NS_ATTACH_SEL_CTRL_ATTACH" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_NS_ATTACH_SEL_CTRL_DEATTACH" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVME_NS_ATTACH_SEL_CTRL_ATTACH" 12 16 | Namespace attach selection 17 | .IP "NVME_NS_ATTACH_SEL_CTRL_DEATTACH" 12 18 | Namespace detach selection 19 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_compare.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_compare" 9 "nvme_ns_compare" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_compare \- Compare data on a namespace 4 | .SH SYNOPSIS 5 | .B "int" nvme_ns_compare 6 | .BI "(nvme_ns_t n " "," 7 | .BI "void *buf " "," 8 | .BI "off_t offset " "," 9 | .BI "size_t count " ");" 10 | .SH ARGUMENTS 11 | .IP "n" 12 12 | Namespace instance 13 | .IP "buf" 12 14 | Buffer with data to be compared 15 | .IP "offset" 12 16 | LBA offset of \fIn\fP 17 | .IP "count" 12 18 | Number of sectors in \fIbuf\fP 19 | .SH "RETURN" 20 | Number of sectors compared 21 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_flush.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_flush" 9 "nvme_ns_flush" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_flush \- Flush data to a namespace 4 | .SH SYNOPSIS 5 | .B "int" nvme_ns_flush 6 | .BI "(nvme_ns_t n " ");" 7 | .SH ARGUMENTS 8 | .IP "n" 12 9 | Namespace instance 10 | .SH "RETURN" 11 | 0 on success, -1 on error. 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_get_csi.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_get_csi" 9 "nvme_ns_get_csi" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_get_csi \- Command set identifier of a namespace 4 | .SH SYNOPSIS 5 | .B "enum nvme_csi" nvme_ns_get_csi 6 | .BI "(nvme_ns_t n " ");" 7 | .SH ARGUMENTS 8 | .IP "n" 12 9 | Namespace instance 10 | .SH "RETURN" 11 | The namespace's command set identifier in use 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_get_ctrl.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_get_ctrl" 9 "nvme_ns_get_ctrl" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_get_ctrl \- &nvme_ctrl_t of a namespace 4 | .SH SYNOPSIS 5 | .B "nvme_ctrl_t" nvme_ns_get_ctrl 6 | .BI "(nvme_ns_t n " ");" 7 | .SH ARGUMENTS 8 | .IP "n" 12 9 | Namespace instance 10 | .SH "DESCRIPTION" 11 | nvme_ctrl_t object may be NULL for a multipathed namespace 12 | .SH "RETURN" 13 | nvme_ctrl_t object of \fIn\fP if present 14 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_get_eui64.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_get_eui64" 9 "nvme_ns_get_eui64" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_get_eui64 \- 64-bit eui of a namespace 4 | .SH SYNOPSIS 5 | .B "const uint8_t *" nvme_ns_get_eui64 6 | .BI "(nvme_ns_t n " ");" 7 | .SH ARGUMENTS 8 | .IP "n" 12 9 | Namespace instance 10 | .SH "RETURN" 11 | A pointer to the 64-bit eui 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_get_firmware.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_get_firmware" 9 "nvme_ns_get_firmware" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_get_firmware \- Firmware string of a namespace 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ns_get_firmware 6 | .BI "(nvme_ns_t n " ");" 7 | .SH ARGUMENTS 8 | .IP "n" 12 9 | Namespace instance 10 | .SH "RETURN" 11 | Firmware string of \fIn\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_get_generic_name.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_get_generic_name" 9 "nvme_ns_get_generic_name" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_get_generic_name \- Returns name of generic namespace chardev. 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ns_get_generic_name 6 | .BI "(nvme_ns_t n " ");" 7 | .SH ARGUMENTS 8 | .IP "n" 12 9 | Namespace instance 10 | .SH "RETURN" 11 | Name of generic namespace chardev 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_get_lba_count.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_get_lba_count" 9 "nvme_ns_get_lba_count" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_get_lba_count \- LBA count of a namespace 4 | .SH SYNOPSIS 5 | .B "uint64_t" nvme_ns_get_lba_count 6 | .BI "(nvme_ns_t n " ");" 7 | .SH ARGUMENTS 8 | .IP "n" 12 9 | Namespace instance 10 | .SH "RETURN" 11 | LBA count of \fIn\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_get_lba_size.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_get_lba_size" 9 "nvme_ns_get_lba_size" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_get_lba_size \- LBA size of a namespace 4 | .SH SYNOPSIS 5 | .B "int" nvme_ns_get_lba_size 6 | .BI "(nvme_ns_t n " ");" 7 | .SH ARGUMENTS 8 | .IP "n" 12 9 | Namespace instance 10 | .SH "RETURN" 11 | LBA size of \fIn\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_get_lba_util.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_get_lba_util" 9 "nvme_ns_get_lba_util" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_get_lba_util \- LBA utilization of a namespace 4 | .SH SYNOPSIS 5 | .B "uint64_t" nvme_ns_get_lba_util 6 | .BI "(nvme_ns_t n " ");" 7 | .SH ARGUMENTS 8 | .IP "n" 12 9 | Namespace instance 10 | .SH "RETURN" 11 | LBA utilization of \fIn\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_get_meta_size.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_get_meta_size" 9 "nvme_ns_get_meta_size" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_get_meta_size \- Metadata size of a namespace 4 | .SH SYNOPSIS 5 | .B "int" nvme_ns_get_meta_size 6 | .BI "(nvme_ns_t n " ");" 7 | .SH ARGUMENTS 8 | .IP "n" 12 9 | Namespace instance 10 | .SH "RETURN" 11 | Metadata size of \fIn\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_get_model.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_get_model" 9 "nvme_ns_get_model" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_get_model \- Model of a namespace 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ns_get_model 6 | .BI "(nvme_ns_t n " ");" 7 | .SH ARGUMENTS 8 | .IP "n" 12 9 | Namespace instance 10 | .SH "RETURN" 11 | Model string of \fIn\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_get_name.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_get_name" 9 "nvme_ns_get_name" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_get_name \- sysfs name of a namespace 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ns_get_name 6 | .BI "(nvme_ns_t n " ");" 7 | .SH ARGUMENTS 8 | .IP "n" 12 9 | Namespace instance 10 | .SH "RETURN" 11 | sysfs name of \fIn\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_get_nguid.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_get_nguid" 9 "nvme_ns_get_nguid" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_get_nguid \- 128-bit nguid of a namespace 4 | .SH SYNOPSIS 5 | .B "const uint8_t *" nvme_ns_get_nguid 6 | .BI "(nvme_ns_t n " ");" 7 | .SH ARGUMENTS 8 | .IP "n" 12 9 | Namespace instance 10 | .SH "RETURN" 11 | A pointer to the 128-bit nguid 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_get_nsid.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_get_nsid" 9 "nvme_ns_get_nsid" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_get_nsid \- NSID of a namespace 4 | .SH SYNOPSIS 5 | .B "int" nvme_ns_get_nsid 6 | .BI "(nvme_ns_t n " ");" 7 | .SH ARGUMENTS 8 | .IP "n" 12 9 | Namespace instance 10 | .SH "RETURN" 11 | NSID of \fIn\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_get_serial.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_get_serial" 9 "nvme_ns_get_serial" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_get_serial \- Serial number of a namespace 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ns_get_serial 6 | .BI "(nvme_ns_t n " ");" 7 | .SH ARGUMENTS 8 | .IP "n" 12 9 | Namespace instance 10 | .SH "RETURN" 11 | Serial number string of \fIn\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_get_subsystem.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_get_subsystem" 9 "nvme_ns_get_subsystem" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_get_subsystem \- &nvme_subsystem_t of a namespace 4 | .SH SYNOPSIS 5 | .B "nvme_subsystem_t" nvme_ns_get_subsystem 6 | .BI "(nvme_ns_t n " ");" 7 | .SH ARGUMENTS 8 | .IP "n" 12 9 | Namespace instance 10 | .SH "RETURN" 11 | nvme_subsystem_t object of \fIn\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_get_sysfs_dir.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_get_sysfs_dir" 9 "nvme_ns_get_sysfs_dir" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_get_sysfs_dir \- sysfs directory of a namespace 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_ns_get_sysfs_dir 6 | .BI "(nvme_ns_t n " ");" 7 | .SH ARGUMENTS 8 | .IP "n" 12 9 | Namespace instance 10 | .SH "RETURN" 11 | sysfs directory name of \fIn\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_get_uuid.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_get_uuid" 9 "nvme_ns_get_uuid" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_get_uuid \- UUID of a namespace 4 | .SH SYNOPSIS 5 | .B "void" nvme_ns_get_uuid 6 | .BI "(nvme_ns_t n " "," 7 | .BI "unsigned char out[NVME_UUID_LEN] " ");" 8 | .SH ARGUMENTS 9 | .IP "n" 12 10 | Namespace instance 11 | .IP "out" 12 12 | buffer for the UUID 13 | .SH "DESCRIPTION" 14 | Copies the namespace's uuid into \fIout\fP 15 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_identify.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_identify" 9 "nvme_ns_identify" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_identify \- Issue an 'identify namespace' command 4 | .SH SYNOPSIS 5 | .B "int" nvme_ns_identify 6 | .BI "(nvme_ns_t n " "," 7 | .BI "struct nvme_id_ns *ns " ");" 8 | .SH ARGUMENTS 9 | .IP "n" 12 10 | Namespace instance 11 | .IP "ns" 12 12 | \fInvme_id_ns\fP buffer 13 | .SH "DESCRIPTION" 14 | Writes the data returned by the 'identify namespace' command 15 | into \fIns\fP. 16 | .SH "RETURN" 17 | 0 on success, -1 on error. 18 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_identify_descs.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_identify_descs" 9 "nvme_ns_identify_descs" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_identify_descs \- Issue an 'identify descriptors' command 4 | .SH SYNOPSIS 5 | .B "int" nvme_ns_identify_descs 6 | .BI "(nvme_ns_t n " "," 7 | .BI "struct nvme_ns_id_desc *descs " ");" 8 | .SH ARGUMENTS 9 | .IP "n" 12 10 | Namespace instance 11 | .IP "descs" 12 12 | List of identify descriptors 13 | .SH "DESCRIPTION" 14 | Writes the data returned by the 'identify descriptors' command 15 | into \fIdescs\fP. 16 | .SH "RETURN" 17 | 0 on success, -1 on error. 18 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_list.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_ns_list" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_ns_list \- Namespace List 4 | .SH SYNOPSIS 5 | struct nvme_ns_list { 6 | .br 7 | .BI " __le32 ns[NVME_ID_NS_LIST_MAX];" 8 | .br 9 | .BI " 10 | }; 11 | .br 12 | 13 | .SH Members 14 | .IP "ns" 12 15 | Namespace Identifier 16 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_mgmt.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_mgmt" 9 "nvme_ns_mgmt" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_mgmt \- Issue a Namespace management command 4 | .SH SYNOPSIS 5 | .B "int" nvme_ns_mgmt 6 | .BI "(struct nvme_ns_mgmt_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_ns_mgmt_args\fP Argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_mgmt_sel.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_ns_mgmt_sel" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_ns_mgmt_sel \- Namespace Management - Select 4 | .SH SYNOPSIS 5 | enum nvme_ns_mgmt_sel { 6 | .br 7 | .BI " NVME_NS_MGMT_SEL_CREATE" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_NS_MGMT_SEL_DELETE" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVME_NS_MGMT_SEL_CREATE" 12 16 | Namespace Create selection 17 | .IP "NVME_NS_MGMT_SEL_DELETE" 12 18 | Namespace Delete selection 19 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_read.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_read" 9 "nvme_ns_read" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_read \- Read from a namespace 4 | .SH SYNOPSIS 5 | .B "int" nvme_ns_read 6 | .BI "(nvme_ns_t n " "," 7 | .BI "void *buf " "," 8 | .BI "off_t offset " "," 9 | .BI "size_t count " ");" 10 | .SH ARGUMENTS 11 | .IP "n" 12 12 | Namespace instance 13 | .IP "buf" 12 14 | Buffer into which the data will be transferred 15 | .IP "offset" 12 16 | LBA offset of \fIn\fP 17 | .IP "count" 12 18 | Number of sectors in \fIbuf\fP 19 | .SH "RETURN" 20 | Number of sectors read or -1 on error. 21 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_release_fd.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_release_fd" 9 "nvme_ns_release_fd" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_release_fd \- Close fd and clear fd from ns object 4 | .SH SYNOPSIS 5 | .B "void" nvme_ns_release_fd 6 | .BI "(nvme_ns_t n " ");" 7 | .SH ARGUMENTS 8 | .IP "n" 12 9 | Namespace instance 10 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_rescan.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_rescan" 9 "nvme_ns_rescan" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_rescan \- Initiate a controller rescan 4 | .SH SYNOPSIS 5 | .B "int" nvme_ns_rescan 6 | .BI "(int fd " ");" 7 | .SH ARGUMENTS 8 | .IP "fd" 12 9 | File descriptor of nvme device 10 | .SH "DESCRIPTION" 11 | This should only be sent to controller handles, not to namespaces. 12 | .SH "RETURN" 13 | 0 if a rescan was initiated or -1 with errno set otherwise. 14 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_verify.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_verify" 9 "nvme_ns_verify" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_verify \- Verify data on a namespace 4 | .SH SYNOPSIS 5 | .B "int" nvme_ns_verify 6 | .BI "(nvme_ns_t n " "," 7 | .BI "off_t offset " "," 8 | .BI "size_t count " ");" 9 | .SH ARGUMENTS 10 | .IP "n" 12 11 | Namespace instance 12 | .IP "offset" 12 13 | LBA offset of \fIn\fP 14 | .IP "count" 12 15 | Number of sectors to be verified 16 | .SH "RETURN" 17 | Number of sectors verified 18 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_write.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_write" 9 "nvme_ns_write" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_write \- Write to a namespace 4 | .SH SYNOPSIS 5 | .B "int" nvme_ns_write 6 | .BI "(nvme_ns_t n " "," 7 | .BI "void *buf " "," 8 | .BI "off_t offset " "," 9 | .BI "size_t count " ");" 10 | .SH ARGUMENTS 11 | .IP "n" 12 12 | Namespace instance 13 | .IP "buf" 12 14 | Buffer with data to be written 15 | .IP "offset" 12 16 | LBA offset of \fIn\fP 17 | .IP "count" 12 18 | Number of sectors in \fIbuf\fP 19 | .SH "RETURN" 20 | Number of sectors written or -1 on error 21 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_write_uncorrectable.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_write_uncorrectable" 9 "nvme_ns_write_uncorrectable" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_write_uncorrectable \- Issus a 'write uncorrectable' command 4 | .SH SYNOPSIS 5 | .B "int" nvme_ns_write_uncorrectable 6 | .BI "(nvme_ns_t n " "," 7 | .BI "off_t offset " "," 8 | .BI "size_t count " ");" 9 | .SH ARGUMENTS 10 | .IP "n" 12 11 | Namespace instance 12 | .IP "offset" 12 13 | LBA offset in \fIn\fP 14 | .IP "count" 12 15 | Number of sectors to be written 16 | .SH "RETURN" 17 | Number of sectors written 18 | -------------------------------------------------------------------------------- /doc/man/nvme_ns_write_zeros.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_ns_write_zeros" 9 "nvme_ns_write_zeros" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_ns_write_zeros \- Write zeros to a namespace 4 | .SH SYNOPSIS 5 | .B "int" nvme_ns_write_zeros 6 | .BI "(nvme_ns_t n " "," 7 | .BI "off_t offset " "," 8 | .BI "size_t count " ");" 9 | .SH ARGUMENTS 10 | .IP "n" 12 11 | Namespace instance 12 | .IP "offset" 12 13 | LBA offset in \fIn\fP 14 | .IP "count" 12 15 | Number of sectors to be written 16 | .SH "RETURN" 17 | Number of sectors written 18 | -------------------------------------------------------------------------------- /doc/man/nvme_open.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_open" 9 "nvme_open" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_open \- Open an nvme controller or namespace device 4 | .SH SYNOPSIS 5 | .B "int" nvme_open 6 | .BI "(const char *name " ");" 7 | .SH ARGUMENTS 8 | .IP "name" 12 9 | The basename of the device to open 10 | .SH "DESCRIPTION" 11 | This will look for the handle in /dev/ and validate the name and filetype 12 | match linux conventions. 13 | .SH "RETURN" 14 | A file descriptor for the device on a successful open, or -1 with 15 | errno set otherwise. 16 | -------------------------------------------------------------------------------- /doc/man/nvme_path_get_ana_state.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_path_get_ana_state" 9 "nvme_path_get_ana_state" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_path_get_ana_state \- ANA state of an nvme_path_t object 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_path_get_ana_state 6 | .BI "(nvme_path_t p " ");" 7 | .SH ARGUMENTS 8 | .IP "p" 12 9 | \fInvme_path_t\fP object 10 | .SH "RETURN" 11 | ANA (Asynchronous Namespace Access) state of \fIp\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_path_get_ctrl.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_path_get_ctrl" 9 "nvme_path_get_ctrl" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_path_get_ctrl \- Parent controller of an nvme_path_t object 4 | .SH SYNOPSIS 5 | .B "nvme_ctrl_t" nvme_path_get_ctrl 6 | .BI "(nvme_path_t p " ");" 7 | .SH ARGUMENTS 8 | .IP "p" 12 9 | \fInvme_path_t\fP object 10 | .SH "RETURN" 11 | Parent controller if present 12 | -------------------------------------------------------------------------------- /doc/man/nvme_path_get_name.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_path_get_name" 9 "nvme_path_get_name" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_path_get_name \- sysfs name of an &nvme_path_t object 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_path_get_name 6 | .BI "(nvme_path_t p " ");" 7 | .SH ARGUMENTS 8 | .IP "p" 12 9 | \fInvme_path_t\fP object 10 | .SH "RETURN" 11 | sysfs name of \fIp\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_path_get_ns.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_path_get_ns" 9 "nvme_path_get_ns" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_path_get_ns \- Parent namespace of an nvme_path_t object 4 | .SH SYNOPSIS 5 | .B "nvme_ns_t" nvme_path_get_ns 6 | .BI "(nvme_path_t p " ");" 7 | .SH ARGUMENTS 8 | .IP "p" 12 9 | \fInvme_path_t\fP object 10 | .SH "RETURN" 11 | Parent namespace if present 12 | -------------------------------------------------------------------------------- /doc/man/nvme_path_get_sysfs_dir.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_path_get_sysfs_dir" 9 "nvme_path_get_sysfs_dir" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_path_get_sysfs_dir \- sysfs directory of an nvme_path_t object 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_path_get_sysfs_dir 6 | .BI "(nvme_path_t p " ");" 7 | .SH ARGUMENTS 8 | .IP "p" 12 9 | \fInvme_path_t\fP object 10 | .SH "RETURN" 11 | sysfs directory of \fIp\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_paths_filter.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_paths_filter" 9 "nvme_paths_filter" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_paths_filter \- Filter for paths 4 | .SH SYNOPSIS 5 | .B "int" nvme_paths_filter 6 | .BI "(const struct dirent *d " ");" 7 | .SH ARGUMENTS 8 | .IP "d" 12 9 | dirent to check 10 | .SH "RETURN" 11 | 1 if \fId\fP matches, 0 otherwise 12 | -------------------------------------------------------------------------------- /doc/man/nvme_perf_attr_id.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_perf_attr_id" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_perf_attr_id \- Performance attribute identifier structure 4 | .SH SYNOPSIS 5 | struct nvme_perf_attr_id { 6 | .br 7 | .BI " __u8 id[NVME_UUID_LEN];" 8 | .br 9 | .BI " 10 | }; 11 | .br 12 | 13 | .SH Members 14 | .IP "id" 12 15 | Performance attribute identifier 16 | -------------------------------------------------------------------------------- /doc/man/nvme_pmr_size.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_pmr_size" 9 "nvme_pmr_size" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_pmr_size \- Calculate size of persistent memory region elasticity buffer 4 | .SH SYNOPSIS 5 | .B "__u64" nvme_pmr_size 6 | .BI "(__u32 pmrebs " ");" 7 | .SH ARGUMENTS 8 | .IP "pmrebs" 12 9 | Value from controller register NVME_REG_PMREBS 10 | .SH "RETURN" 11 | size of controller persistent memory buffer in bytes 12 | -------------------------------------------------------------------------------- /doc/man/nvme_pmr_throughput.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_pmr_throughput" 9 "nvme_pmr_throughput" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_pmr_throughput \- Calculate throughput of persistent memory buffer 4 | .SH SYNOPSIS 5 | .B "__u64" nvme_pmr_throughput 6 | .BI "(__u32 pmrswtp " ");" 7 | .SH ARGUMENTS 8 | .IP "pmrswtp" 12 9 | Value from controller register NVME_REG_PMRSWTP 10 | .SH "RETURN" 11 | throughput of controller persistent memory buffer in bytes/second 12 | -------------------------------------------------------------------------------- /doc/man/nvme_pmrctl.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_pmrctl" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_pmrctl \- This field indicates the persistent memory region control 4 | .SH SYNOPSIS 5 | enum nvme_pmrctl { 6 | .br 7 | .BI " NVME_PMRCTL_EN_SHIFT" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_PMRCTL_EN_MASK" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVME_PMRCTL_EN_SHIFT" 12 16 | Shift amount to get the enable 17 | .IP "NVME_PMRCTL_EN_MASK" 12 18 | Mask to get the enable 19 | -------------------------------------------------------------------------------- /doc/man/nvme_psd_power_scale.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_psd_power_scale" 9 "nvme_psd_power_scale" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_psd_power_scale \- power scale occupies the upper 3 bits 4 | .SH SYNOPSIS 5 | .B "unsigned int" nvme_psd_power_scale 6 | .BI "(__u8 ps " ");" 7 | .SH ARGUMENTS 8 | .IP "ps" 12 9 | power scale value 10 | .SH "RETURN" 11 | power scale value 12 | -------------------------------------------------------------------------------- /doc/man/nvme_read.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_read" 9 "nvme_read" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_read \- Submit an nvme user read command 4 | .SH SYNOPSIS 5 | .B "int" nvme_read 6 | .BI "(struct nvme_io_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_io_args\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_read_config.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_read_config" 9 "nvme_read_config" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_read_config \- Read NVMe JSON configuration file 4 | .SH SYNOPSIS 5 | .B "int" nvme_read_config 6 | .BI "(nvme_root_t r " "," 7 | .BI "const char *config_file " ");" 8 | .SH ARGUMENTS 9 | .IP "r" 12 10 | nvme_root_t object 11 | .IP "config_file" 12 12 | JSON configuration file 13 | .SH "DESCRIPTION" 14 | Read in the contents of \fIconfig_file\fP and merge them with 15 | the elements in \fIr\fP. 16 | .SH "RETURN" 17 | 0 on success, -1 on failure with errno set. 18 | -------------------------------------------------------------------------------- /doc/man/nvme_refresh_topology.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_refresh_topology" 9 "nvme_refresh_topology" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_refresh_topology \- Refresh nvme_root_t object contents 4 | .SH SYNOPSIS 5 | .B "void" nvme_refresh_topology 6 | .BI "(nvme_root_t r " ");" 7 | .SH ARGUMENTS 8 | .IP "r" 12 9 | nvme_root_t object 10 | .SH "DESCRIPTION" 11 | Removes all elements in \fIr\fP and rescans the existing topology. 12 | -------------------------------------------------------------------------------- /doc/man/nvme_rescan_ctrl.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_rescan_ctrl" 9 "nvme_rescan_ctrl" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_rescan_ctrl \- Rescan an existing controller 4 | .SH SYNOPSIS 5 | .B "void" nvme_rescan_ctrl 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | -------------------------------------------------------------------------------- /doc/man/nvme_resv_release.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_resv_release" 9 "nvme_resv_release" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_resv_release \- Send an nvme reservation release 4 | .SH SYNOPSIS 5 | .B "int" nvme_resv_release 6 | .BI "(struct nvme_resv_release_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_resv_release_args\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_resv_rrela.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_resv_rrela" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_resv_rrela \- Reservation Release - Reservation Release Action 4 | .SH SYNOPSIS 5 | enum nvme_resv_rrela { 6 | .br 7 | .BI " NVME_RESERVATION_RRELA_RELEASE" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_RESERVATION_RRELA_CLEAR" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVME_RESERVATION_RRELA_RELEASE" 12 16 | Release 17 | .IP "NVME_RESERVATION_RRELA_CLEAR" 12 18 | Clear 19 | -------------------------------------------------------------------------------- /doc/man/nvme_revoke_tls_key.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_revoke_tls_key" 9 "nvme_revoke_tls_key" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_revoke_tls_key \- Revoke TLS key from keyring 4 | .SH SYNOPSIS 5 | .B "long" nvme_revoke_tls_key 6 | .BI "(const char *keyring " "," 7 | .BI "const char *key_type " "," 8 | .BI "const char *identity " ");" 9 | .SH ARGUMENTS 10 | .IP "keyring" 12 11 | Keyring to use 12 | .IP "key_type" 12 13 | Type of the key to revoke 14 | .IP "identity" 12 15 | Key identity string 16 | .SH "RETURN" 17 | 0 on success or on failure -1 with errno set. 18 | -------------------------------------------------------------------------------- /doc/man/nvme_sanitize_start_event.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_sanitize_start_event" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_sanitize_start_event \- Sanitize Start Event Data 4 | .SH SYNOPSIS 5 | struct nvme_sanitize_start_event { 6 | .br 7 | .BI " __le32 sani_cap;" 8 | .br 9 | .BI " __le32 sani_cdw10;" 10 | .br 11 | .BI " __le32 sani_cdw11;" 12 | .br 13 | .BI " 14 | }; 15 | .br 16 | 17 | .SH Members 18 | .IP "sani_cap" 12 19 | SANICAP 20 | .IP "sani_cdw10" 12 21 | Sanitize CDW10 22 | .IP "sani_cdw11" 12 23 | Sanitize CDW11 24 | -------------------------------------------------------------------------------- /doc/man/nvme_scan.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_scan" 9 "nvme_scan" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_scan \- Scan NVMe topology 4 | .SH SYNOPSIS 5 | .B "nvme_root_t" nvme_scan 6 | .BI "(const char *config_file " ");" 7 | .SH ARGUMENTS 8 | .IP "config_file" 12 9 | Configuration file 10 | .SH "RETURN" 11 | nvme_root_t object of found elements 12 | -------------------------------------------------------------------------------- /doc/man/nvme_scan_ctrl.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_scan_ctrl" 9 "nvme_scan_ctrl" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_scan_ctrl \- Scan on a controller 4 | .SH SYNOPSIS 5 | .B "nvme_ctrl_t" nvme_scan_ctrl 6 | .BI "(nvme_root_t r " "," 7 | .BI "const char *name " ");" 8 | .SH ARGUMENTS 9 | .IP "r" 12 10 | nvme_root_t object 11 | .IP "name" 12 12 | Name of the controller 13 | .SH "DESCRIPTION" 14 | Scans a controller with sysfs name \fIname\fP and add it to \fIr\fP. 15 | .SH "RETURN" 16 | nvme_ctrl_t object 17 | -------------------------------------------------------------------------------- /doc/man/nvme_scan_ctrl_namespace_paths.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_scan_ctrl_namespace_paths" 9 "nvme_scan_ctrl_namespace_paths" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_scan_ctrl_namespace_paths \- Scan for namespace paths in a controller 4 | .SH SYNOPSIS 5 | .B "int" nvme_scan_ctrl_namespace_paths 6 | .BI "(nvme_ctrl_t c " "," 7 | .BI "struct dirent ***paths " ");" 8 | .SH ARGUMENTS 9 | .IP "c" 12 10 | Controller to scan 11 | .IP "paths" 12 12 | Pointer to array of dirents 13 | .SH "RETURN" 14 | number of entries in \fIpaths\fP 15 | -------------------------------------------------------------------------------- /doc/man/nvme_scan_ctrl_namespaces.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_scan_ctrl_namespaces" 9 "nvme_scan_ctrl_namespaces" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_scan_ctrl_namespaces \- Scan for namespaces in a controller 4 | .SH SYNOPSIS 5 | .B "int" nvme_scan_ctrl_namespaces 6 | .BI "(nvme_ctrl_t c " "," 7 | .BI "struct dirent ***ns " ");" 8 | .SH ARGUMENTS 9 | .IP "c" 12 10 | Controller to scan 11 | .IP "ns" 12 12 | Pointer to array of dirents 13 | .SH "RETURN" 14 | number of entries in \fIns\fP 15 | -------------------------------------------------------------------------------- /doc/man/nvme_scan_ctrls.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_scan_ctrls" 9 "nvme_scan_ctrls" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_scan_ctrls \- Scan for controllers 4 | .SH SYNOPSIS 5 | .B "int" nvme_scan_ctrls 6 | .BI "(struct dirent ***ctrls " ");" 7 | .SH ARGUMENTS 8 | .IP "ctrls" 12 9 | Pointer to array of dirents 10 | .SH "RETURN" 11 | number of entries in \fIctrls\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_scan_namespace.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_scan_namespace" 9 "nvme_scan_namespace" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_scan_namespace \- scan namespace based on sysfs name 4 | .SH SYNOPSIS 5 | .B "nvme_ns_t" nvme_scan_namespace 6 | .BI "(const char *name " ");" 7 | .SH ARGUMENTS 8 | .IP "name" 12 9 | sysfs name of the namespace to scan 10 | .SH "RETURN" 11 | nvme_ns_t object or NULL if not found. 12 | -------------------------------------------------------------------------------- /doc/man/nvme_scan_subsystem_namespaces.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_scan_subsystem_namespaces" 9 "nvme_scan_subsystem_namespaces" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_scan_subsystem_namespaces \- Scan for namespaces in a subsystem 4 | .SH SYNOPSIS 5 | .B "int" nvme_scan_subsystem_namespaces 6 | .BI "(nvme_subsystem_t s " "," 7 | .BI "struct dirent ***ns " ");" 8 | .SH ARGUMENTS 9 | .IP "s" 12 10 | Subsystem to scan 11 | .IP "ns" 12 12 | Pointer to array of dirents 13 | .SH "RETURN" 14 | number of entries in \fIns\fP 15 | -------------------------------------------------------------------------------- /doc/man/nvme_scan_subsystems.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_scan_subsystems" 9 "nvme_scan_subsystems" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_scan_subsystems \- Scan for subsystems 4 | .SH SYNOPSIS 5 | .B "int" nvme_scan_subsystems 6 | .BI "(struct dirent ***subsys " ");" 7 | .SH ARGUMENTS 8 | .IP "subsys" 12 9 | Pointer to array of dirents 10 | .SH "RETURN" 11 | number of entries in \fIsubsys\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_secondary_ctrl_list.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_secondary_ctrl_list" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_secondary_ctrl_list \- Secondary Controller List 4 | .SH SYNOPSIS 5 | struct nvme_secondary_ctrl_list { 6 | .br 7 | .BI " __u8 num;" 8 | .br 9 | .BI " __u8 rsvd[31];" 10 | .br 11 | .BI " struct nvme_secondary_ctrl sc_entry[NVME_ID_SECONDARY_CTRL_MAX];" 12 | .br 13 | .BI " 14 | }; 15 | .br 16 | 17 | .SH Members 18 | .IP "num" 12 19 | Number of Identifiers 20 | .IP "rsvd" 12 21 | Reserved 22 | .IP "sc_entry" 12 23 | Secondary Controller Entry 24 | -------------------------------------------------------------------------------- /doc/man/nvme_security_receive.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_security_receive" 9 "nvme_security_receive" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_security_receive \- Security Receive command 4 | .SH SYNOPSIS 5 | .B "int" nvme_security_receive 6 | .BI "(struct nvme_security_receive_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_security_receive\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_set_feature_event.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_set_feature_event" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_set_feature_event \- Set Feature Event Data 4 | .SH SYNOPSIS 5 | struct nvme_set_feature_event { 6 | .br 7 | .BI " __le32 layout;" 8 | .br 9 | .BI " __le32 cdw_mem[0];" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "layout" 12 17 | Set Feature Event Layout 18 | .IP "cdw_mem" 12 19 | Command Dwords Memory buffer 20 | -------------------------------------------------------------------------------- /doc/man/nvme_set_features.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_set_features" 9 "nvme_set_features" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_set_features \- Set a feature attribute 4 | .SH SYNOPSIS 5 | .B "int" nvme_set_features 6 | .BI "(struct nvme_set_features_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_set_features_args\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_set_keyring.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_set_keyring" 9 "nvme_set_keyring" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_set_keyring \- Link keyring for lookup 4 | .SH SYNOPSIS 5 | .B "int" nvme_set_keyring 6 | .BI "(long keyring_id " ");" 7 | .SH ARGUMENTS 8 | .IP "keyring_id" 12 9 | Keyring id 10 | .SH "DESCRIPTION" 11 | Links \fIkeyring_id\fP into the session keyring such that 12 | its keys are available for further key lookups. 13 | .SH "RETURN" 14 | 0 on success, a negative number on error 15 | with errno set. 16 | -------------------------------------------------------------------------------- /doc/man/nvme_status_code.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_status_code" 9 "nvme_status_code" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_status_code \- Returns the NVMe Status Code 4 | .SH SYNOPSIS 5 | .B "__u16" nvme_status_code 6 | .BI "(__u16 status_field " ");" 7 | .SH ARGUMENTS 8 | .IP "status_field" 12 9 | The NVMe Completion Queue Entry's Status Field 10 | See \fIenum nvme_status_field\fP 11 | .SH "RETURN" 12 | status code 13 | -------------------------------------------------------------------------------- /doc/man/nvme_status_code_type.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_status_code_type" 9 "nvme_status_code_type" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_status_code_type \- Returns the NVMe Status Code Type 4 | .SH SYNOPSIS 5 | .B "__u16" nvme_status_code_type 6 | .BI "(__u16 status_field " ");" 7 | .SH ARGUMENTS 8 | .IP "status_field" 12 9 | The NVMe Completion Queue Entry's Status Field 10 | See \fIenum nvme_status_field\fP 11 | .SH "RETURN" 12 | status code type 13 | -------------------------------------------------------------------------------- /doc/man/nvme_status_get_type.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_status_get_type" 9 "nvme_status_get_type" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_status_get_type \- extract the type from a nvme_* return value 4 | .SH SYNOPSIS 5 | .B "__u32" nvme_status_get_type 6 | .BI "(int status " ");" 7 | .SH ARGUMENTS 8 | .IP "status" 12 9 | the (non-negative) return value from the NVMe API 10 | .SH "RETURN" 11 | the type component of the status. 12 | -------------------------------------------------------------------------------- /doc/man/nvme_status_get_value.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_status_get_value" 9 "nvme_status_get_value" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_status_get_value \- extract the status value from a nvme_* return value 4 | .SH SYNOPSIS 5 | .B "__u32" nvme_status_get_value 6 | .BI "(int status " ");" 7 | .SH ARGUMENTS 8 | .IP "status" 12 9 | the (non-negative) return value from the NVMe API 10 | .SH "RETURN" 11 | the value component of the status; the set of values will depend 12 | on the status type. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_std_perf_attr.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_std_perf_attr" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_std_perf_attr \- Standard performance attribute structure 4 | .SH SYNOPSIS 5 | struct nvme_std_perf_attr { 6 | .br 7 | .BI " __u8 rsvd0[4];" 8 | .br 9 | .BI " __u8 r4karl;" 10 | .br 11 | .BI " __u8 rsvd5[4091];" 12 | .br 13 | .BI " 14 | }; 15 | .br 16 | 17 | .SH Members 18 | .IP "rsvd0" 12 19 | Reserved 20 | .IP "r4karl" 12 21 | Random 4 KiB average read latency 22 | .IP "rsvd5" 12 23 | Reserved 24 | -------------------------------------------------------------------------------- /doc/man/nvme_streams_directive_status.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_streams_directive_status" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_streams_directive_status \- Streams Directive - Get Status Data Structure 4 | .SH SYNOPSIS 5 | struct nvme_streams_directive_status { 6 | .br 7 | .BI " __le16 osc;" 8 | .br 9 | .BI " __le16 sid[];" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "osc" 12 17 | Open Stream Count 18 | .IP "sid" 12 19 | Stream Identifier 20 | -------------------------------------------------------------------------------- /doc/man/nvme_subsys_filter.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsys_filter" 9 "nvme_subsys_filter" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsys_filter \- Filter for subsystems 4 | .SH SYNOPSIS 5 | .B "int" nvme_subsys_filter 6 | .BI "(const struct dirent *d " ");" 7 | .SH ARGUMENTS 8 | .IP "d" 12 9 | dirent to check 10 | .SH "RETURN" 11 | 1 if \fId\fP matches, 0 otherwise 12 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_first_ctrl.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_first_ctrl" 9 "nvme_subsystem_first_ctrl" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_first_ctrl \- First ctrl iterator 4 | .SH SYNOPSIS 5 | .B "nvme_ctrl_t" nvme_subsystem_first_ctrl 6 | .BI "(nvme_subsystem_t s " ");" 7 | .SH ARGUMENTS 8 | .IP "s" 12 9 | \fInvme_subsystem_t\fP object 10 | .SH "RETURN" 11 | First controller of an \fIs\fP iterator 12 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_first_ns.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_first_ns" 9 "nvme_subsystem_first_ns" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_first_ns \- Start namespace iterator 4 | .SH SYNOPSIS 5 | .B "nvme_ns_t" nvme_subsystem_first_ns 6 | .BI "(nvme_subsystem_t s " ");" 7 | .SH ARGUMENTS 8 | .IP "s" 12 9 | \fInvme_subsystem_t\fP object 10 | .SH "RETURN" 11 | First \fInvme_ns_t\fP object of an \fIs\fP iterator 12 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_for_each_ctrl.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_for_each_ctrl" 9 "nvme_subsystem_for_each_ctrl" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_for_each_ctrl \- Traverse controllers 4 | .SH SYNOPSIS 5 | .B "nvme_subsystem_for_each_ctrl 6 | .BI "(s " "," 7 | .BI "c " ");" 8 | .SH ARGUMENTS 9 | .IP "s" 12 10 | \fInvme_subsystem_t\fP object 11 | .IP "c" 12 12 | Controller instance 13 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_for_each_ctrl_safe.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_for_each_ctrl_safe" 9 "nvme_subsystem_for_each_ctrl_safe" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_for_each_ctrl_safe \- Traverse controllers 4 | .SH SYNOPSIS 5 | .B "nvme_subsystem_for_each_ctrl_safe 6 | .BI "(s " "," 7 | .BI "c " "," 8 | .BI "_c " ");" 9 | .SH ARGUMENTS 10 | .IP "s" 12 11 | \fInvme_subsystem_t\fP object 12 | .IP "c" 12 13 | Controller instance 14 | .IP "_c" 12 15 | A \fInvme_ctrl_t_node\fP to use as temporary storage 16 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_for_each_ns.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_for_each_ns" 9 "nvme_subsystem_for_each_ns" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_for_each_ns \- Traverse namespaces 4 | .SH SYNOPSIS 5 | .B "nvme_subsystem_for_each_ns 6 | .BI "(s " "," 7 | .BI "n " ");" 8 | .SH ARGUMENTS 9 | .IP "s" 12 10 | \fInvme_subsystem_t\fP object 11 | .IP "n" 12 12 | \fInvme_ns_t\fP object 13 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_for_each_ns_safe.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_for_each_ns_safe" 9 "nvme_subsystem_for_each_ns_safe" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_for_each_ns_safe \- Traverse namespaces 4 | .SH SYNOPSIS 5 | .B "nvme_subsystem_for_each_ns_safe 6 | .BI "(s " "," 7 | .BI "n " "," 8 | .BI "_n " ");" 9 | .SH ARGUMENTS 10 | .IP "s" 12 11 | \fInvme_subsystem_t\fP object 12 | .IP "n" 12 13 | \fInvme_ns_t\fP object 14 | .IP "_n" 12 15 | A \fInvme_ns_t_node\fP to use as temporary storage 16 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_get_application.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_get_application" 9 "nvme_subsystem_get_application" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_get_application \- Return the application string 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_subsystem_get_application 6 | .BI "(nvme_subsystem_t s " ");" 7 | .SH ARGUMENTS 8 | .IP "s" 12 9 | nvme_subsystem_t object 10 | .SH "RETURN" 11 | Managing application string or NULL if not set. 12 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_get_fw_rev.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_get_fw_rev" 9 "nvme_subsystem_get_fw_rev" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_get_fw_rev \- Return the firmware rev of subsystem 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_subsystem_get_fw_rev 6 | .BI "(nvme_subsystem_t s " ");" 7 | .SH ARGUMENTS 8 | .IP "s" 12 9 | nvme_subsystem_t object 10 | .SH "RETURN" 11 | Firmware revision of the current subsystem 12 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_get_host.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_get_host" 9 "nvme_subsystem_get_host" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_get_host \- Returns nvme_host_t object 4 | .SH SYNOPSIS 5 | .B "nvme_host_t" nvme_subsystem_get_host 6 | .BI "(nvme_subsystem_t s " ");" 7 | .SH ARGUMENTS 8 | .IP "s" 12 9 | subsystem 10 | .SH "RETURN" 11 | \fInvme_host_t\fP object from \fIs\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_get_iopolicy.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_get_iopolicy" 9 "nvme_subsystem_get_iopolicy" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_get_iopolicy \- Return the IO policy of subsytem 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_subsystem_get_iopolicy 6 | .BI "(nvme_subsystem_t s " ");" 7 | .SH ARGUMENTS 8 | .IP "s" 12 9 | nvme_subsystem_t object 10 | .SH "RETURN" 11 | IO policy used by current subsystem 12 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_get_model.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_get_model" 9 "nvme_subsystem_get_model" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_get_model \- Return the model of subsystem 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_subsystem_get_model 6 | .BI "(nvme_subsystem_t s " ");" 7 | .SH ARGUMENTS 8 | .IP "s" 12 9 | nvme_subsystem_t object 10 | .SH "RETURN" 11 | Model of the current subsystem 12 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_get_name.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_get_name" 9 "nvme_subsystem_get_name" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_get_name \- sysfs name of an nvme_subsystem_t object 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_subsystem_get_name 6 | .BI "(nvme_subsystem_t s " ");" 7 | .SH ARGUMENTS 8 | .IP "s" 12 9 | nvme_subsystem_t object 10 | .SH "RETURN" 11 | sysfs name of \fIs\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_get_nqn.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_get_nqn" 9 "nvme_subsystem_get_nqn" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_get_nqn \- Retrieve NQN from subsystem 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_subsystem_get_nqn 6 | .BI "(nvme_subsystem_t s " ");" 7 | .SH ARGUMENTS 8 | .IP "s" 12 9 | nvme_subsystem_t object 10 | .SH "RETURN" 11 | NQN of subsystem 12 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_get_serial.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_get_serial" 9 "nvme_subsystem_get_serial" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_get_serial \- Return the serial number of subsystem 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_subsystem_get_serial 6 | .BI "(nvme_subsystem_t s " ");" 7 | .SH ARGUMENTS 8 | .IP "s" 12 9 | nvme_subsystem_t object 10 | .SH "RETURN" 11 | Serial number of the current subsystem 12 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_get_sysfs_dir.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_get_sysfs_dir" 9 "nvme_subsystem_get_sysfs_dir" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_get_sysfs_dir \- sysfs directory of an nvme_subsystem_t object 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_subsystem_get_sysfs_dir 6 | .BI "(nvme_subsystem_t s " ");" 7 | .SH ARGUMENTS 8 | .IP "s" 12 9 | nvme_subsystem_t object 10 | .SH "RETURN" 11 | sysfs directory name of \fIs\fP 12 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_get_type.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_get_type" 9 "nvme_subsystem_get_type" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_get_type \- Returns the type of a subsystem 4 | .SH SYNOPSIS 5 | .B "const char *" nvme_subsystem_get_type 6 | .BI "(nvme_subsystem_t s " ");" 7 | .SH ARGUMENTS 8 | .IP "s" 12 9 | nvme_subsystem_t object 10 | .SH "DESCRIPTION" 11 | Returns the subsystem type of \fIs\fP. 12 | .SH "RETURN" 13 | 'nvm' or 'discovery' 14 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_lookup_namespace.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_lookup_namespace" 9 "nvme_subsystem_lookup_namespace" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_lookup_namespace \- lookup namespace by NSID 4 | .SH SYNOPSIS 5 | .B "nvme_ns_t" nvme_subsystem_lookup_namespace 6 | .BI "(struct nvme_subsystem *s " "," 7 | .BI "__u32 nsid " ");" 8 | .SH ARGUMENTS 9 | .IP "s" 12 10 | nvme_subsystem_t object 11 | .IP "nsid" 12 12 | Namespace id 13 | .SH "RETURN" 14 | nvme_ns_t of the namespace with id \fInsid\fP in subsystem \fIs\fP 15 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_next_ctrl.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_next_ctrl" 9 "nvme_subsystem_next_ctrl" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_next_ctrl \- Next ctrl iterator 4 | .SH SYNOPSIS 5 | .B "nvme_ctrl_t" nvme_subsystem_next_ctrl 6 | .BI "(nvme_subsystem_t s " "," 7 | .BI "nvme_ctrl_t c " ");" 8 | .SH ARGUMENTS 9 | .IP "s" 12 10 | \fInvme_subsystem_t\fP object 11 | .IP "c" 12 12 | Previous controller instance of an \fIs\fP iterator 13 | .SH "RETURN" 14 | Next controller of an \fIs\fP iterator 15 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_next_ns.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_next_ns" 9 "nvme_subsystem_next_ns" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_next_ns \- Next namespace iterator 4 | .SH SYNOPSIS 5 | .B "nvme_ns_t" nvme_subsystem_next_ns 6 | .BI "(nvme_subsystem_t s " "," 7 | .BI "nvme_ns_t n " ");" 8 | .SH ARGUMENTS 9 | .IP "s" 12 10 | \fInvme_subsystem_t\fP object 11 | .IP "n" 12 12 | Previous \fInvme_ns_t\fP iterator 13 | .SH "RETURN" 14 | Next \fInvme_ns_t\fP object of an \fIs\fP iterator 15 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_release_fds.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_release_fds" 9 "nvme_subsystem_release_fds" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_release_fds \- Close all opened fds under subsystem 4 | .SH SYNOPSIS 5 | .B "void" nvme_subsystem_release_fds 6 | .BI "(struct nvme_subsystem *s " ");" 7 | .SH ARGUMENTS 8 | .IP "s" 12 9 | nvme_subsystem_t object 10 | .SH "DESCRIPTION" 11 | Controller and Namespace objects cache the file descriptors 12 | of opened nvme devices. This API can be used to close and 13 | clear all cached fds under this subsystem. 14 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_reset.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_reset" 9 "nvme_subsystem_reset" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_reset \- Initiate a subsystem reset 4 | .SH SYNOPSIS 5 | .B "int" nvme_subsystem_reset 6 | .BI "(int fd " ");" 7 | .SH ARGUMENTS 8 | .IP "fd" 12 9 | File descriptor of nvme device 10 | .SH "DESCRIPTION" 11 | This should only be sent to controller handles, not to namespaces. 12 | .SH "RETURN" 13 | Zero if a subsystem reset was initiated or -1 with errno set 14 | otherwise. 15 | -------------------------------------------------------------------------------- /doc/man/nvme_subsystem_set_application.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_subsystem_set_application" 9 "nvme_subsystem_set_application" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_subsystem_set_application \- Set the application string 4 | .SH SYNOPSIS 5 | .B "void" nvme_subsystem_set_application 6 | .BI "(nvme_subsystem_t s " "," 7 | .BI "const char *a " ");" 8 | .SH ARGUMENTS 9 | .IP "s" 12 10 | nvme_subsystem_t object 11 | .IP "a" 12 12 | application string 13 | .SH "DESCRIPTION" 14 | Sets the managing application string for \fIs\fP. 15 | -------------------------------------------------------------------------------- /doc/man/nvme_supported_log_pages.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_supported_log_pages" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_supported_log_pages \- Supported Log Pages - Log 4 | .SH SYNOPSIS 5 | struct nvme_supported_log_pages { 6 | .br 7 | .BI " __le32 lid_support[NVME_LOG_SUPPORTED_LOG_PAGES_MAX];" 8 | .br 9 | .BI " 10 | }; 11 | .br 12 | 13 | .SH Members 14 | .IP "lid_support" 12 15 | Log Page Identifier Supported 16 | .SH "Description" 17 | Supported Log Pages (Log Identifier 00h) 18 | -------------------------------------------------------------------------------- /doc/man/nvme_thermal_exc_event.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_thermal_exc_event" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_thermal_exc_event \- Thermal Excursion Event Data 4 | .SH SYNOPSIS 5 | struct nvme_thermal_exc_event { 6 | .br 7 | .BI " __u8 over_temp;" 8 | .br 9 | .BI " __u8 threshold;" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "over_temp" 12 17 | Over Temperature 18 | .IP "threshold" 12 19 | temperature threshold 20 | -------------------------------------------------------------------------------- /doc/man/nvme_time_stamp_change_event.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_time_stamp_change_event" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_time_stamp_change_event \- Timestamp Change Event 4 | .SH SYNOPSIS 5 | struct nvme_time_stamp_change_event { 6 | .br 7 | .BI " __le64 previous_timestamp;" 8 | .br 9 | .BI " __le64 ml_secs_since_reset;" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "previous_timestamp" 12 17 | Previous Timestamp 18 | .IP "ml_secs_since_reset" 12 19 | Milliseconds Since Reset 20 | -------------------------------------------------------------------------------- /doc/man/nvme_timestamp.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_timestamp" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_timestamp \- Timestamp - Data Structure for Get Features 4 | .SH SYNOPSIS 5 | struct nvme_timestamp { 6 | .br 7 | .BI " __u8 timestamp[6];" 8 | .br 9 | .BI " __u8 attr;" 10 | .br 11 | .BI " __u8 rsvd;" 12 | .br 13 | .BI " 14 | }; 15 | .br 16 | 17 | .SH Members 18 | .IP "timestamp" 12 19 | Timestamp value based on origin and synch field 20 | .IP "attr" 12 21 | Attribute 22 | .IP "rsvd" 12 23 | Reserved 24 | -------------------------------------------------------------------------------- /doc/man/nvme_unlink_ctrl.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_unlink_ctrl" 9 "nvme_unlink_ctrl" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_unlink_ctrl \- Unlink controller 4 | .SH SYNOPSIS 5 | .B "void" nvme_unlink_ctrl 6 | .BI "(struct nvme_ctrl *c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller instance 10 | -------------------------------------------------------------------------------- /doc/man/nvme_update_config.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_update_config" 9 "nvme_update_config" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_update_config \- Update JSON configuration 4 | .SH SYNOPSIS 5 | .B "int" nvme_update_config 6 | .BI "(nvme_root_t r " ");" 7 | .SH ARGUMENTS 8 | .IP "r" 12 9 | nvme_root_t object 10 | .SH "DESCRIPTION" 11 | Updates the JSON configuration file with the contents of \fIr\fP. 12 | .SH "RETURN" 13 | 0 on success, -1 on failure. 14 | -------------------------------------------------------------------------------- /doc/man/nvme_version.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_version" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_version \- Selector for version to be returned by @nvme_get_version 4 | .SH SYNOPSIS 5 | enum nvme_version { 6 | .br 7 | .BI " NVME_VERSION_PROJECT" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_VERSION_GIT" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVME_VERSION_PROJECT" 12 16 | Project release version 17 | .IP "NVME_VERSION_GIT" 12 18 | Git reference 19 | -------------------------------------------------------------------------------- /doc/man/nvme_virt_mgmt_rt.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_virt_mgmt_rt" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_virt_mgmt_rt \- Virtualization Management - Resource Type 4 | .SH SYNOPSIS 5 | enum nvme_virt_mgmt_rt { 6 | .br 7 | .BI " NVME_VIRT_MGMT_RT_VQ_RESOURCE" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_VIRT_MGMT_RT_VI_RESOURCE" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVME_VIRT_MGMT_RT_VQ_RESOURCE" 12 16 | VQ Resources 17 | .IP "NVME_VIRT_MGMT_RT_VI_RESOURCE" 12 18 | VI Resources 19 | -------------------------------------------------------------------------------- /doc/man/nvme_write.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_write" 9 "nvme_write" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_write \- Submit an nvme user write command 4 | .SH SYNOPSIS 5 | .B "int" nvme_write 6 | .BI "(struct nvme_io_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_io_args\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_zns_append.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_zns_append" 9 "nvme_zns_append" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_zns_append \- Append data to a zone 4 | .SH SYNOPSIS 5 | .B "int" nvme_zns_append 6 | .BI "(struct nvme_zns_append_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_zns_append_args\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_zns_changed_zone_log.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_zns_changed_zone_log" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_zns_changed_zone_log \- ZNS Changed Zone List log 4 | .SH SYNOPSIS 5 | struct nvme_zns_changed_zone_log { 6 | .br 7 | .BI " __le16 nrzid;" 8 | .br 9 | .BI " __u8 rsvd2[6];" 10 | .br 11 | .BI " __le64 zid[NVME_ZNS_CHANGED_ZONES_MAX];" 12 | .br 13 | .BI " 14 | }; 15 | .br 16 | 17 | .SH Members 18 | .IP "nrzid" 12 19 | Number of Zone Identifiers 20 | .IP "rsvd2" 12 21 | Reserved 22 | .IP "zid" 12 23 | Zone Identifier 24 | -------------------------------------------------------------------------------- /doc/man/nvme_zns_id_ctrl.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_zns_id_ctrl" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_zns_id_ctrl \- I/O Command Set Specific Identify Controller Data Structure for the Zoned Namespace Command Set 4 | .SH SYNOPSIS 5 | struct nvme_zns_id_ctrl { 6 | .br 7 | .BI " __u8 zasl;" 8 | .br 9 | .BI " __u8 rsvd1[4095];" 10 | .br 11 | .BI " 12 | }; 13 | .br 14 | 15 | .SH Members 16 | .IP "zasl" 12 17 | Zone Append Size Limit 18 | .IP "rsvd1" 12 19 | Reserved 20 | -------------------------------------------------------------------------------- /doc/man/nvme_zns_identify_ctrl.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_zns_identify_ctrl" 9 "nvme_zns_identify_ctrl" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_zns_identify_ctrl \- ZNS identify controller data 4 | .SH SYNOPSIS 5 | .B "int" nvme_zns_identify_ctrl 6 | .BI "(int fd " "," 7 | .BI "struct nvme_zns_id_ctrl *id " ");" 8 | .SH ARGUMENTS 9 | .IP "fd" 12 10 | File descriptor of nvme device 11 | .IP "id" 12 12 | User space destination address to transfer the data 13 | .SH "RETURN" 14 | The nvme command status if a response was received (see 15 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 16 | -------------------------------------------------------------------------------- /doc/man/nvme_zns_lbafe.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_zns_lbafe" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_zns_lbafe \- LBA Format Extension Data Structure 4 | .SH SYNOPSIS 5 | struct nvme_zns_lbafe { 6 | .br 7 | .BI " __le64 zsze;" 8 | .br 9 | .BI " __u8 zdes;" 10 | .br 11 | .BI " __u8 rsvd9[7];" 12 | .br 13 | .BI " 14 | }; 15 | .br 16 | 17 | .SH Members 18 | .IP "zsze" 12 19 | Zone Size 20 | .IP "zdes" 12 21 | Zone Descriptor Extension Size 22 | .IP "rsvd9" 12 23 | reserved 24 | -------------------------------------------------------------------------------- /doc/man/nvme_zns_mgmt_recv.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_zns_mgmt_recv" 9 "nvme_zns_mgmt_recv" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_zns_mgmt_recv \- ZNS management receive command 4 | .SH SYNOPSIS 5 | .B "int" nvme_zns_mgmt_recv 6 | .BI "(struct nvme_zns_mgmt_recv_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_zns_mgmt_recv_args\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_zns_mgmt_send.2: -------------------------------------------------------------------------------- 1 | .TH "nvme_zns_mgmt_send" 9 "nvme_zns_mgmt_send" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvme_zns_mgmt_send \- ZNS management send command 4 | .SH SYNOPSIS 5 | .B "int" nvme_zns_mgmt_send 6 | .BI "(struct nvme_zns_mgmt_send_args *args " ");" 7 | .SH ARGUMENTS 8 | .IP "args" 12 9 | \fIstruct nvme_zns_mgmt_send_args\fP argument structure 10 | .SH "RETURN" 11 | The nvme command status if a response was received (see 12 | \fIenum nvme_status_field\fP) or -1 with errno set otherwise. 13 | -------------------------------------------------------------------------------- /doc/man/nvme_zns_recv_action.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_zns_recv_action" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_zns_recv_action \- Zone Management Receive - Zone Receive Action Specific Features 4 | .SH SYNOPSIS 5 | enum nvme_zns_recv_action { 6 | .br 7 | .BI " NVME_ZNS_ZRA_REPORT_ZONES" 8 | , 9 | .br 10 | .br 11 | .BI " NVME_ZNS_ZRA_EXTENDED_REPORT_ZONES" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVME_ZNS_ZRA_REPORT_ZONES" 12 16 | Report Zones 17 | .IP "NVME_ZNS_ZRA_EXTENDED_REPORT_ZONES" 12 18 | Extended Report Zones 19 | -------------------------------------------------------------------------------- /doc/man/nvme_zns_zt.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvme_zns_zt" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvme_zns_zt \- Zone Descriptor Data Structure - Zone Type 4 | .SH SYNOPSIS 5 | enum nvme_zns_zt { 6 | .br 7 | .BI " NVME_ZONE_TYPE_SEQWRITE_REQ" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NVME_ZONE_TYPE_SEQWRITE_REQ" 12 12 | Sequential Write Required 13 | -------------------------------------------------------------------------------- /doc/man/nvme_zone_report.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "struct nvme_zone_report" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | struct nvme_zone_report \- Report Zones Data Structure 4 | .SH SYNOPSIS 5 | struct nvme_zone_report { 6 | .br 7 | .BI " __le64 nr_zones;" 8 | .br 9 | .BI " __u8 rsvd8[56];" 10 | .br 11 | .BI " struct nvme_zns_desc entries[];" 12 | .br 13 | .BI " 14 | }; 15 | .br 16 | 17 | .SH Members 18 | .IP "nr_zones" 12 19 | Number of descriptors in \fIentries\fP 20 | .IP "rsvd8" 12 21 | Reserved 22 | .IP "entries" 12 23 | Zoned namespace descriptors 24 | -------------------------------------------------------------------------------- /doc/man/nvmf_adrfam_str.2: -------------------------------------------------------------------------------- 1 | .TH "nvmf_adrfam_str" 9 "nvmf_adrfam_str" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvmf_adrfam_str \- Decode ADRFAM field 4 | .SH SYNOPSIS 5 | .B "const char *" nvmf_adrfam_str 6 | .BI "(__u8 adrfam " ");" 7 | .SH ARGUMENTS 8 | .IP "adrfam" 12 9 | value to be decoded 10 | .SH "DESCRIPTION" 11 | Decode the address family field in the discovery 12 | log page entry. 13 | .SH "RETURN" 14 | decoded string 15 | -------------------------------------------------------------------------------- /doc/man/nvmf_cms_str.2: -------------------------------------------------------------------------------- 1 | .TH "nvmf_cms_str" 9 "nvmf_cms_str" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvmf_cms_str \- Decode RDMA connection management service field 4 | .SH SYNOPSIS 5 | .B "const char *" nvmf_cms_str 6 | .BI "(__u8 cms " ");" 7 | .SH ARGUMENTS 8 | .IP "cms" 12 9 | value to be decoded 10 | .SH "DESCRIPTION" 11 | Decode the RDMA connection management service field in the discovery 12 | log page entry. 13 | .SH "RETURN" 14 | decoded string 15 | -------------------------------------------------------------------------------- /doc/man/nvmf_connect_ctrl.2: -------------------------------------------------------------------------------- 1 | .TH "nvmf_connect_ctrl" 9 "nvmf_connect_ctrl" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvmf_connect_ctrl \- Connect a controller 4 | .SH SYNOPSIS 5 | .B "int" nvmf_connect_ctrl 6 | .BI "(nvme_ctrl_t c " ");" 7 | .SH ARGUMENTS 8 | .IP "c" 12 9 | Controller to be connected 10 | .SH "DESCRIPTION" 11 | Issues a 'connect' command to the NVMe-oF controller. 12 | \fIc\fP must be initialized and not connected to the topology. 13 | .SH "RETURN" 14 | 0 on success; on failure errno is set and -1 is returned. 15 | -------------------------------------------------------------------------------- /doc/man/nvmf_default_config.2: -------------------------------------------------------------------------------- 1 | .TH "nvmf_default_config" 9 "nvmf_default_config" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvmf_default_config \- Default values for fabrics configuration 4 | .SH SYNOPSIS 5 | .B "void" nvmf_default_config 6 | .BI "(struct nvme_fabrics_config *cfg " ");" 7 | .SH ARGUMENTS 8 | .IP "cfg" 12 9 | config values to set 10 | .SH "DESCRIPTION" 11 | Initializes \fIcfg\fP with default values. 12 | -------------------------------------------------------------------------------- /doc/man/nvmf_dim_entfmt.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvmf_dim_entfmt" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvmf_dim_entfmt \- Discovery Information Management Entry Format 4 | .SH SYNOPSIS 5 | enum nvmf_dim_entfmt { 6 | .br 7 | .BI " NVMF_DIM_ENTFMT_BASIC" 8 | , 9 | .br 10 | .br 11 | .BI " NVMF_DIM_ENTFMT_EXTENDED" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVMF_DIM_ENTFMT_BASIC" 12 16 | Basic discovery information entry 17 | .IP "NVMF_DIM_ENTFMT_EXTENDED" 12 18 | Extended discovery information entry 19 | -------------------------------------------------------------------------------- /doc/man/nvmf_dim_etype.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvmf_dim_etype" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvmf_dim_etype \- Discovery Information Management Entity Type 4 | .SH SYNOPSIS 5 | enum nvmf_dim_etype { 6 | .br 7 | .BI " NVMF_DIM_ETYPE_HOST" 8 | , 9 | .br 10 | .br 11 | .BI " NVMF_DIM_ETYPE_DDC" 12 | , 13 | .br 14 | .br 15 | .BI " NVMF_DIM_ETYPE_CDC" 16 | 17 | }; 18 | .SH Constants 19 | .IP "NVMF_DIM_ETYPE_HOST" 12 20 | Host 21 | .IP "NVMF_DIM_ETYPE_DDC" 12 22 | Direct Discovery controller 23 | .IP "NVMF_DIM_ETYPE_CDC" 12 24 | Centralized Discovery controller 25 | -------------------------------------------------------------------------------- /doc/man/nvmf_dim_tas.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvmf_dim_tas" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvmf_dim_tas \- Discovery Information Management Task 4 | .SH SYNOPSIS 5 | enum nvmf_dim_tas { 6 | .br 7 | .BI " NVMF_DIM_TAS_REGISTER" 8 | , 9 | .br 10 | .br 11 | .BI " NVMF_DIM_TAS_DEREGISTER" 12 | , 13 | .br 14 | .br 15 | .BI " NVMF_DIM_TAS_UPDATE" 16 | 17 | }; 18 | .SH Constants 19 | .IP "NVMF_DIM_TAS_REGISTER" 12 20 | Register 21 | .IP "NVMF_DIM_TAS_DEREGISTER" 12 22 | Deregister 23 | .IP "NVMF_DIM_TAS_UPDATE" 12 24 | Update 25 | -------------------------------------------------------------------------------- /doc/man/nvmf_eflags_str.2: -------------------------------------------------------------------------------- 1 | .TH "nvmf_eflags_str" 9 "nvmf_eflags_str" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvmf_eflags_str \- Decode EFLAGS field 4 | .SH SYNOPSIS 5 | .B "const char *" nvmf_eflags_str 6 | .BI "(__u16 eflags " ");" 7 | .SH ARGUMENTS 8 | .IP "eflags" 12 9 | value to be decoded 10 | .SH "DESCRIPTION" 11 | Decode the EFLAGS field in the discovery log page 12 | entry. 13 | .SH "RETURN" 14 | decoded string 15 | -------------------------------------------------------------------------------- /doc/man/nvmf_exat_len.2: -------------------------------------------------------------------------------- 1 | .TH "nvmf_exat_len" 9 "nvmf_exat_len" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvmf_exat_len \- Return length rounded up by 4 4 | .SH SYNOPSIS 5 | .B "__u16" nvmf_exat_len 6 | .BI "(size_t val_len " ");" 7 | .SH ARGUMENTS 8 | .IP "val_len" 12 9 | Value length 10 | .SH "DESCRIPTION" 11 | Return the size in bytes, rounded to a multiple of 4 (e.g., size of 12 | __u32), of the buffer needed to hold the exat value of size 13 | \fIval_len\fP. 14 | .SH "RETURN" 15 | Length rounded up by 4 16 | -------------------------------------------------------------------------------- /doc/man/nvmf_exattype.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvmf_exattype" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvmf_exattype \- Extended Attribute Type 4 | .SH SYNOPSIS 5 | enum nvmf_exattype { 6 | .br 7 | .BI " NVMF_EXATTYPE_HOSTID" 8 | , 9 | .br 10 | .br 11 | .BI " NVMF_EXATTYPE_SYMNAME" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVMF_EXATTYPE_HOSTID" 12 16 | Host Identifier 17 | .IP "NVMF_EXATTYPE_SYMNAME" 12 18 | Symblic Name 19 | -------------------------------------------------------------------------------- /doc/man/nvmf_hostid_from_file.2: -------------------------------------------------------------------------------- 1 | .TH "nvmf_hostid_from_file" 9 "nvmf_hostid_from_file" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvmf_hostid_from_file \- Reads the host identifier from the config default location 4 | .SH SYNOPSIS 5 | .B "char *" nvmf_hostid_from_file 6 | .SH ARGUMENTS 7 | .SH "DESCRIPTION" 8 | 9 | Retrieve the host idenditifer from the config file located in $SYSCONFDIR/nvme/. 10 | $SYSCONFDIR is usually /etc. 11 | .SH "RETURN" 12 | The host identifier, or NULL if unsuccessful. If found, the caller 13 | is responsible to free the string. 14 | -------------------------------------------------------------------------------- /doc/man/nvmf_hostid_generate.2: -------------------------------------------------------------------------------- 1 | .TH "nvmf_hostid_generate" 9 "nvmf_hostid_generate" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvmf_hostid_generate \- Generate a machine specific host identifier 4 | .SH SYNOPSIS 5 | .B "char *" nvmf_hostid_generate 6 | .SH ARGUMENTS 7 | .SH "RETURN" 8 | On success, an identifier string based on the machine identifier to 9 | be used as NVMe Host Identifier, or NULL on failure. 10 | -------------------------------------------------------------------------------- /doc/man/nvmf_hostnqn_from_file.2: -------------------------------------------------------------------------------- 1 | .TH "nvmf_hostnqn_from_file" 9 "nvmf_hostnqn_from_file" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvmf_hostnqn_from_file \- Reads the host nvm qualified name from the config default location 4 | .SH SYNOPSIS 5 | .B "char *" nvmf_hostnqn_from_file 6 | .SH ARGUMENTS 7 | .SH "DESCRIPTION" 8 | 9 | Retrieve the qualified name from the config file located in $SYSCONFIDR/nvme. 10 | $SYSCONFDIR is usually /etc. 11 | .SH "RETURN" 12 | The host nqn, or NULL if unsuccessful. If found, the caller 13 | is responsible to free the string. 14 | -------------------------------------------------------------------------------- /doc/man/nvmf_hostnqn_generate.2: -------------------------------------------------------------------------------- 1 | .TH "nvmf_hostnqn_generate" 9 "nvmf_hostnqn_generate" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvmf_hostnqn_generate \- Generate a machine specific host nqn 4 | .SH SYNOPSIS 5 | .B "char *" nvmf_hostnqn_generate 6 | .SH ARGUMENTS 7 | .SH "RETURN" 8 | An nvm namespace qualified name string based on the machine 9 | identifier, or NULL if not successful. 10 | -------------------------------------------------------------------------------- /doc/man/nvmf_prtype_str.2: -------------------------------------------------------------------------------- 1 | .TH "nvmf_prtype_str" 9 "nvmf_prtype_str" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvmf_prtype_str \- Decode RDMA Provider type field 4 | .SH SYNOPSIS 5 | .B "const char *" nvmf_prtype_str 6 | .BI "(__u8 prtype " ");" 7 | .SH ARGUMENTS 8 | .IP "prtype" 12 9 | value to be decoded 10 | .SH "DESCRIPTION" 11 | Decode the RDMA Provider type field in the discovery 12 | log page entry. 13 | .SH "RETURN" 14 | decoded string 15 | -------------------------------------------------------------------------------- /doc/man/nvmf_qptype_str.2: -------------------------------------------------------------------------------- 1 | .TH "nvmf_qptype_str" 9 "nvmf_qptype_str" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvmf_qptype_str \- Decode RDMA QP Service type field 4 | .SH SYNOPSIS 5 | .B "const char *" nvmf_qptype_str 6 | .BI "(__u8 qptype " ");" 7 | .SH ARGUMENTS 8 | .IP "qptype" 12 9 | value to be decoded 10 | .SH "DESCRIPTION" 11 | Decode the RDMA QP Service type field in the discovery log page 12 | entry. 13 | .SH "RETURN" 14 | decoded string 15 | -------------------------------------------------------------------------------- /doc/man/nvmf_rdma_cms.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvmf_rdma_cms" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvmf_rdma_cms \- RDMA Connection Management Service Type codes for Discovery Log Page entry TSAS RDMA_CMS field 4 | .SH SYNOPSIS 5 | enum nvmf_rdma_cms { 6 | .br 7 | .BI " NVMF_RDMA_CMS_RDMA_CM" 8 | 9 | }; 10 | .SH Constants 11 | .IP "NVMF_RDMA_CMS_RDMA_CM" 12 12 | Sockets based endpoint addressing 13 | -------------------------------------------------------------------------------- /doc/man/nvmf_rdma_qptype.2: -------------------------------------------------------------------------------- 1 | .TH "libnvme" 9 "enum nvmf_rdma_qptype" "May 2025" "API Manual" LINUX 2 | .SH NAME 3 | enum nvmf_rdma_qptype \- RDMA QP Service Type codes for Discovery Log Page entry TSAS RDMA_QPTYPE field 4 | .SH SYNOPSIS 5 | enum nvmf_rdma_qptype { 6 | .br 7 | .BI " NVMF_RDMA_QPTYPE_CONNECTED" 8 | , 9 | .br 10 | .br 11 | .BI " NVMF_RDMA_QPTYPE_DATAGRAM" 12 | 13 | }; 14 | .SH Constants 15 | .IP "NVMF_RDMA_QPTYPE_CONNECTED" 12 16 | Reliable Connected 17 | .IP "NVMF_RDMA_QPTYPE_DATAGRAM" 12 18 | Reliable Datagram 19 | -------------------------------------------------------------------------------- /doc/man/nvmf_sectype_str.2: -------------------------------------------------------------------------------- 1 | .TH "nvmf_sectype_str" 9 "nvmf_sectype_str" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvmf_sectype_str \- Decode SECTYPE field 4 | .SH SYNOPSIS 5 | .B "const char *" nvmf_sectype_str 6 | .BI "(__u8 sectype " ");" 7 | .SH ARGUMENTS 8 | .IP "sectype" 12 9 | value to be decoded 10 | .SH "DESCRIPTION" 11 | Decode the SECTYPE field in the discovery log page 12 | entry. 13 | .SH "RETURN" 14 | decoded string 15 | -------------------------------------------------------------------------------- /doc/man/nvmf_subtype_str.2: -------------------------------------------------------------------------------- 1 | .TH "nvmf_subtype_str" 9 "nvmf_subtype_str" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvmf_subtype_str \- Decode SUBTYPE field 4 | .SH SYNOPSIS 5 | .B "const char *" nvmf_subtype_str 6 | .BI "(__u8 subtype " ");" 7 | .SH ARGUMENTS 8 | .IP "subtype" 12 9 | value to be decoded 10 | .SH "DESCRIPTION" 11 | Decode the subsystem type field in the discovery 12 | log page entry. 13 | .SH "RETURN" 14 | decoded string 15 | -------------------------------------------------------------------------------- /doc/man/nvmf_treq_str.2: -------------------------------------------------------------------------------- 1 | .TH "nvmf_treq_str" 9 "nvmf_treq_str" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvmf_treq_str \- Decode TREQ field 4 | .SH SYNOPSIS 5 | .B "const char *" nvmf_treq_str 6 | .BI "(__u8 treq " ");" 7 | .SH ARGUMENTS 8 | .IP "treq" 12 9 | value to be decoded 10 | .SH "DESCRIPTION" 11 | Decode the transport requirements field in the 12 | discovery log page entry. 13 | .SH "RETURN" 14 | decoded string 15 | -------------------------------------------------------------------------------- /doc/man/nvmf_trtype_str.2: -------------------------------------------------------------------------------- 1 | .TH "nvmf_trtype_str" 9 "nvmf_trtype_str" "May 2025" "libnvme API manual" LINUX 2 | .SH NAME 3 | nvmf_trtype_str \- Decode TRTYPE field 4 | .SH SYNOPSIS 5 | .B "const char *" nvmf_trtype_str 6 | .BI "(__u8 trtype " ");" 7 | .SH ARGUMENTS 8 | .IP "trtype" 12 9 | value to be decoded 10 | .SH "DESCRIPTION" 11 | Decode the transport type field in the discovery 12 | log page entry. 13 | .SH "RETURN" 14 | decoded string 15 | -------------------------------------------------------------------------------- /doc/quickstart.rst.in: -------------------------------------------------------------------------------- 1 | ========== 2 | Quickstart 3 | ========== 4 | 5 | tbd -------------------------------------------------------------------------------- /libnvme/.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | __pycache__/ 3 | nvme.py 4 | nvme_wrap.c 5 | -------------------------------------------------------------------------------- /libnvme/__init__.py: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: LGPL-2.1-or-later 2 | # 3 | # This file is part of libnvme. 4 | # Copyright (c) 2022 Dell Inc. 5 | # 6 | # Authors: Martin Belanger 7 | 8 | __version__ = @PROJECT_VERSION@ 9 | __git_version__ = @GIT_VERSION@ 10 | -------------------------------------------------------------------------------- /libnvme/tests/NBFT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/libnvme/tests/NBFT -------------------------------------------------------------------------------- /libnvme/tests/create-ctrl-obj.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # SPDX-License-Identifier: LGPL-2.1-or-later 3 | import sys 4 | import pprint 5 | from libnvme import nvme 6 | 7 | root = nvme.root() 8 | root.log_level('debug') 9 | 10 | host = nvme.host(root) 11 | subsysnqn = nvme.NVME_DISC_SUBSYS_NAME 12 | transport = 'loop' 13 | traddr = '127.0.0.1' 14 | trsvcid = '8009' 15 | ctrl = nvme.ctrl(root, subsysnqn=subsysnqn, transport=transport, traddr=traddr, trsvcid=trsvcid) 16 | -------------------------------------------------------------------------------- /scripts/collect-sysfs.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # SPDX-License-Identifier: LGPL-2.1-or-later 3 | 4 | filename=nvme-sysfs-$(hostname)-$(uname -r).tar.xz 5 | 6 | declare -a dirs=( 7 | "/sys/class/nvme" 8 | "/sys/class/nvme-fabrics" 9 | "/sys/class/nvme-generic" 10 | "/sys/class/nvme-subsystem" 11 | "/sys/bus/pci/slots" 12 | ) 13 | 14 | files="" 15 | for d in "${dirs[@]}"; do 16 | files+="${d} " 17 | for l in "${d}"/*; do 18 | files+="$(readlink -f $l) " 19 | done 20 | done 21 | 22 | tar -c -J -p -f "${filename}" ${files} 2> /dev/null 23 | -------------------------------------------------------------------------------- /scripts/kernel-doc-check: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: LGPL-2.1-or-later 3 | 4 | kernel_doc=$(dirname $0)/kernel-doc 5 | 6 | "$kernel_doc" -none "$@" 2>&1 | 7 | grep '\(warning\|error\)' 8 | 9 | # check that kernel-doc succeeded, but the grep failed 10 | [ ${PIPESTATUS[0]} -eq 0 -a ${PIPESTATUS[1]} -eq 1 ] 11 | -------------------------------------------------------------------------------- /scripts/list-man-pages.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: LGPL-2.1-or-later 3 | 4 | file=$1 5 | 6 | for func in $(sed -n 's/ \* \([a-z_][a-z_0-9]*\)() -.*/\1/p' $file); do 7 | echo ${func} 8 | done 9 | 10 | for struct in $(sed -n 's/ \* struct \([a-z_][a-z_0-9]*\) -.*/\1/p' $file); do 11 | echo ${struct} 12 | done 13 | 14 | for enum in $(sed -n 's/ \* enum \([a-z_][a-z_0-9]*\) -.*/\1/p' $file); do 15 | echo ${enum} 16 | done 17 | -------------------------------------------------------------------------------- /scripts/list-pre-compiled.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | for i in man/*.2; do 4 | echo $i 5 | done 6 | -------------------------------------------------------------------------------- /src/libnvme-mi.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * This file is part of libnvme. 4 | * Copyright (c) 2021 Code Construct Pty Ltd 5 | * 6 | * Authors: Jeremy Kerr 7 | */ 8 | 9 | #ifndef _LIBNVME_MI_H 10 | #define _LIBNVME_MI_H 11 | 12 | #ifdef __cplusplus 13 | extern "C" { 14 | #endif 15 | 16 | #include 17 | #include 18 | #include 19 | 20 | #ifdef __cplusplus 21 | } 22 | #endif 23 | 24 | #endif /* _LIBNVME_MI_H */ 25 | -------------------------------------------------------------------------------- /src/nvme/base64.h: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 | #ifndef _BASE64_H 3 | #define _BASE64_H 4 | 5 | int base64_encode(const unsigned char *src, int len, char *dst); 6 | int base64_decode(const char *src, int len, unsigned char *dst); 7 | 8 | #endif /* _BASE64_H */ 9 | -------------------------------------------------------------------------------- /src/nvme/crc32.h: -------------------------------------------------------------------------------- 1 | #ifndef crc32_H 2 | #define crc32_H 3 | 4 | #include 5 | #include 6 | 7 | uint32_t crc32(uint32_t crc, const void *buf, size_t len); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /src/nvme/no-json.c: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * This file is part of libnvme. 4 | * Copyright (c) 2023 SUSE Software Solutions 5 | * 6 | * Authors: Daniel Wagner 7 | */ 8 | 9 | #include "tree.h" 10 | 11 | #include 12 | 13 | int json_read_config(nvme_root_t r, const char *config_file) 14 | { 15 | return -ENOTSUP; 16 | } 17 | 18 | int json_update_config(nvme_root_t r, const char *config_file) 19 | { 20 | return -ENOTSUP; 21 | } 22 | 23 | int json_dump_tree(nvme_root_t r) 24 | { 25 | return -ENOTSUP; 26 | } 27 | -------------------------------------------------------------------------------- /subprojects/dbus.wrap: -------------------------------------------------------------------------------- 1 | [wrap-git] 2 | url = https://gitlab.freedesktop.org/dbus/dbus.git 3 | revision = cd1a9bb09a4e9330f8669fb6d385b1e095f97fc2 4 | depth = 1 5 | -------------------------------------------------------------------------------- /test/config/data/config-pcie-with-tcp-config.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/config/data/config-pcie-with-tcp-config.tar.xz -------------------------------------------------------------------------------- /test/config/data/config-pcie.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/config/data/config-pcie.json -------------------------------------------------------------------------------- /test/config/data/config-pcie.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/config/data/config-pcie.out -------------------------------------------------------------------------------- /test/config/data/config-pcie.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/config/data/config-pcie.tar.xz -------------------------------------------------------------------------------- /test/config/data/hostnqn-order.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/config/data/hostnqn-order.out -------------------------------------------------------------------------------- /test/config/data/hostnqn-order.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/config/data/hostnqn-order.tar.xz -------------------------------------------------------------------------------- /test/misc.cc: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /** 3 | * This file is part of libnvme. 4 | * Copyright (c) 2025 Daniel Wagner, SUSE LLC 5 | */ 6 | 7 | #include 8 | #include 9 | 10 | static int minmax_test() 11 | { 12 | /* 13 | * Ensure libnvme doesn't spoil the namespace, e.g. by exposing a 14 | * min/max macro. 15 | */ 16 | return !(std::min(1, 2) == 1 && std::max(1, 2) == 2); 17 | } 18 | 19 | int main(int argc, char *argv[]) 20 | { 21 | return minmax_test(); 22 | } 23 | -------------------------------------------------------------------------------- /test/nbft/diffs/NBFT-empty: -------------------------------------------------------------------------------- 1 | raw_nbft_size=315 2 | host.id=78563412aaaabbbbcccc123456789012 3 | host.nqn=nqn.2014-08.org.nvmexpress:uuid:12345678-aaaa-bbbb-cccc-123456789012 4 | host.host_id_configured=1 5 | host.host_nqn_configured=1 6 | host.primary=0 7 | -------------------------------------------------------------------------------- /test/nbft/gen-nbft-diffs.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | for T in "@TABLES_DIR@"/*; do 4 | "@NBFT_DUMP_PATH@" "$T" > "@DIFF_DIR@/`basename $T`" 5 | done 6 | -------------------------------------------------------------------------------- /test/nbft/nbft-dump-diff.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if [ $# -ne 2 ]; then 4 | echo "Usage: $0 TABLE DIFF" >&2 5 | exit 255 6 | fi 7 | 8 | "@NBFT_DUMP_PATH@" "$1" | diff --unified "$2" - 9 | -------------------------------------------------------------------------------- /test/nbft/tables/NBFT-Dell.PowerEdge.R660-fw1.5.5-mpath+discovery: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/nbft/tables/NBFT-Dell.PowerEdge.R660-fw1.5.5-mpath+discovery -------------------------------------------------------------------------------- /test/nbft/tables/NBFT-Dell.PowerEdge.R660-fw1.5.5-single: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/nbft/tables/NBFT-Dell.PowerEdge.R660-fw1.5.5-single -------------------------------------------------------------------------------- /test/nbft/tables/NBFT-Dell.PowerEdge.R760: -------------------------------------------------------------------------------- 1 | ../../../libnvme/tests/NBFT -------------------------------------------------------------------------------- /test/nbft/tables/NBFT-auto-ipv6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/nbft/tables/NBFT-auto-ipv6 -------------------------------------------------------------------------------- /test/nbft/tables/NBFT-dhcp-ipv4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/nbft/tables/NBFT-dhcp-ipv4 -------------------------------------------------------------------------------- /test/nbft/tables/NBFT-dhcp-ipv6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/nbft/tables/NBFT-dhcp-ipv6 -------------------------------------------------------------------------------- /test/nbft/tables/NBFT-empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/nbft/tables/NBFT-empty -------------------------------------------------------------------------------- /test/nbft/tables/NBFT-ipv6-noip+disc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/nbft/tables/NBFT-ipv6-noip+disc -------------------------------------------------------------------------------- /test/nbft/tables/NBFT-mpath+disc-ipv4+6_half: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/nbft/tables/NBFT-mpath+disc-ipv4+6_half -------------------------------------------------------------------------------- /test/nbft/tables/NBFT-rhpoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/nbft/tables/NBFT-rhpoc -------------------------------------------------------------------------------- /test/nbft/tables/NBFT-static-ipv4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/nbft/tables/NBFT-static-ipv4 -------------------------------------------------------------------------------- /test/nbft/tables/NBFT-static-ipv4-discovery: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/nbft/tables/NBFT-static-ipv4-discovery -------------------------------------------------------------------------------- /test/nbft/tables/NBFT-static-ipv6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/nbft/tables/NBFT-static-ipv6 -------------------------------------------------------------------------------- /test/nbft/tables_bad/NBFT-bad-oldspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/nbft/tables_bad/NBFT-bad-oldspec -------------------------------------------------------------------------------- /test/nbft/tables_bad/NBFT-random-noise: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/nbft/tables_bad/NBFT-random-noise -------------------------------------------------------------------------------- /test/sysfs/data/tree-pcie.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/linux-nvme/libnvme/88bffbf8bf3809f3e3200ddbbc4f09741386b137/test/sysfs/data/tree-pcie.tar.xz -------------------------------------------------------------------------------- /test/tree.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | ''' 3 | SPDX-License-Identifier: LGPL-3.1-or-later 4 | 5 | This file is part of libnvme. 6 | Copyright (c) 2021 SUSE Software Solutions AG 7 | 8 | Authors: Hannes Reinecke 9 | 10 | Scans the NVMe subsystem and prints out all found hosts, 11 | subsystems, and controllers 12 | ''' 13 | 14 | import libnvme 15 | 16 | r = libnvme.nvme_root() 17 | for h in r.hosts(): 18 | print (h) 19 | for s in h.subsystems(): 20 | print (s) 21 | for c in s.controllers(): 22 | print (c) 23 | 24 | -------------------------------------------------------------------------------- /test/utils.h: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LGPL-2.1-or-later 2 | /* 3 | * This file is part of libnvme. 4 | * Copyright (c) 2022 Code Construct 5 | * 6 | * Common test utilities for libnvme tests. These have quite strict error 7 | * handling, so the general pattern is to abort/exit on error. 8 | */ 9 | 10 | #ifndef _TEST_UTILS_H 11 | #define _TEST_UTILS_H 12 | 13 | #include 14 | 15 | FILE *test_setup_log(void); 16 | void test_print_log_buf(FILE *logfd); 17 | void test_close_log(FILE *fd); 18 | 19 | #endif /* _TEST_UTILS_H */ 20 | 21 | --------------------------------------------------------------------------------