include/linux/nvme.h
Source file repositories/reference/linux-study-clean/include/linux/nvme.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/nvme.h- Extension
.h- Size
- 54235 bytes
- Lines
- 2356
- Domain
- Representative Device Path
- Bucket
- PCIe NVMe Storage Path
- Inferred role
- Representative Device Path: implementation source
- Status
- source implementation candidate
Why This File Exists
Part of the selected hardware vertical slice: PCI discovery, driver binding, NVMe queues, block requests, DMA, interrupts, and completion.
- Part of the selected hardware vertical slice: PCI discovery, driver binding, NVMe queues, block requests, DMA, interrupts, and completion.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/bits.hlinux/types.hlinux/uuid.h
Detected Declarations
struct nvme_id_power_statestruct nvme_id_ctrlstruct nvme_lbafstruct nvme_id_nsstruct nvme_id_ns_cs_indepstruct nvme_zns_lbafestruct nvme_id_ns_znsstruct nvme_id_ctrl_znsstruct nvme_id_ns_nvmstruct nvme_id_ctrl_nvmstruct nvme_ns_id_descstruct nvme_endurance_group_logstruct nvme_rotational_media_logstruct nvme_fdp_configstruct nvme_fdp_ruh_descstruct nvme_fdp_config_descstruct nvme_fdp_config_logstruct nvme_smart_logstruct nvme_fw_slot_info_logstruct nvme_effects_logstruct nvme_ana_group_descstruct nvme_ana_rsp_hdrstruct nvme_zone_descriptorstruct nvme_zone_reportstruct nvme_lba_range_typestruct nvme_registered_ctrlstruct nvme_reservation_statusstruct nvme_registered_ctrl_extstruct nvme_reservation_status_extstruct nvme_sgl_descstruct nvme_keyed_sgl_descstruct nvme_common_commandstruct nvme_rw_commandstruct nvme_dsm_cmdstruct nvme_dsm_rangestruct nvme_write_zeroes_cmdstruct nvme_zone_mgmt_send_cmdstruct nvme_zone_mgmt_recv_cmdstruct nvme_io_mgmt_recv_cmdstruct nvme_fdp_ruh_status_descstruct nvme_fdp_ruh_statusstruct nvme_feat_auto_pststruct nvme_feat_host_behaviorstruct nvme_supported_logstruct nvme_supported_features_logstruct nvme_identifystruct nvme_featuresstruct nvme_host_mem_buf_desc
Annotated Snippet
struct nvme_id_power_state {
__le16 max_power; /* centiwatts */
__u8 rsvd2;
__u8 flags;
__le32 entry_lat; /* microseconds */
__le32 exit_lat; /* microseconds */
__u8 read_tput;
__u8 read_lat;
__u8 write_tput;
__u8 write_lat;
__le16 idle_power;
__u8 idle_scale;
__u8 rsvd19;
__le16 active_power;
__u8 active_work_scale;
__u8 rsvd23[9];
};
enum {
NVME_PS_FLAGS_MAX_POWER_SCALE = 1 << 0,
NVME_PS_FLAGS_NON_OP_STATE = 1 << 1,
};
enum nvme_ctrl_attr {
NVME_CTRL_ATTR_HID_128_BIT = (1 << 0),
NVME_CTRL_ATTR_TBKAS = (1 << 6),
NVME_CTRL_ATTR_ELBAS = (1 << 15),
NVME_CTRL_ATTR_RHII = (1 << 18),
NVME_CTRL_ATTR_FDPS = (1 << 19),
};
struct nvme_id_ctrl {
__le16 vid;
__le16 ssvid;
char sn[20];
char mn[40];
char fr[8];
__u8 rab;
__u8 ieee[3];
__u8 cmic;
__u8 mdts;
__le16 cntlid;
__le32 ver;
__le32 rtd3r;
__le32 rtd3e;
__le32 oaes;
__le32 ctratt;
__u8 rsvd100[11];
__u8 cntrltype;
__u8 fguid[16];
__le16 crdt1;
__le16 crdt2;
__le16 crdt3;
__u8 rsvd134[122];
__le16 oacs;
__u8 acl;
__u8 aerl;
__u8 frmw;
__u8 lpa;
__u8 elpe;
__u8 npss;
__u8 avscc;
__u8 apsta;
__le16 wctemp;
__le16 cctemp;
__le16 mtfa;
__le32 hmpre;
__le32 hmmin;
__u8 tnvmcap[16];
__u8 unvmcap[16];
__le32 rpmbs;
__le16 edstt;
__u8 dsto;
__u8 fwug;
__le16 kas;
__le16 hctma;
__le16 mntmt;
__le16 mxtmt;
__le32 sanicap;
__le32 hmminds;
__le16 hmmaxd;
__le16 nvmsetidmax;
__le16 endgidmax;
__u8 anatt;
__u8 anacap;
__le32 anagrpmax;
__le32 nanagrpid;
__u8 rsvd352[160];
__u8 sqes;
__u8 cqes;
Annotation
- Immediate include surface: `linux/bits.h`, `linux/types.h`, `linux/uuid.h`.
- Detected declarations: `struct nvme_id_power_state`, `struct nvme_id_ctrl`, `struct nvme_lbaf`, `struct nvme_id_ns`, `struct nvme_id_ns_cs_indep`, `struct nvme_zns_lbafe`, `struct nvme_id_ns_zns`, `struct nvme_id_ctrl_zns`, `struct nvme_id_ns_nvm`, `struct nvme_id_ctrl_nvm`.
- Atlas domain: Representative Device Path / PCIe NVMe Storage Path.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.