libnvme(9) API Manual libnvme(9)

# [NAME](#NAME)

struct nvme\_primary\_ctrl\_cap - Identify - Controller Capabilities Structure

# [SYNOPSIS](#SYNOPSIS)

struct nvme\_primary\_ctrl\_cap {  
**\_\_le16 cntlid;**  
**\_\_le16 portid;**  
**\_\_u8 crt;**  
**\_\_u8 rsvd5\[27];**  
**\_\_le32 vqfrt;**  
**\_\_le32 vqrfa;**  
**\_\_le16 vqrfap;**  
**\_\_le16 vqprt;**  
**\_\_le16 vqfrsm;**  
**\_\_le16 vqgran;**  
**\_\_u8 rsvd48\[16];**  
**\_\_le32 vifrt;**  
**\_\_le32 virfa;**  
**\_\_le16 virfap;**  
**\_\_le16 viprt;**  
**\_\_le16 vifrsm;**  
**\_\_le16 vigran;**  
**\_\_u8 rsvd80\[4016];**  
};

# [Members](#Members)

[cntlid](#cntlid)

Controller Identifier

[portid](#portid)

Port Identifier

[crt](#crt)

Controller Resource Types

[rsvd5](#rsvd5)

reserved

[vqfrt](#vqfrt)

VQ Resources Flexible Total

[vqrfa](#vqrfa)

VQ Resources Flexible Assigned

[vqrfap](#vqrfap)

VQ Resources Flexible Allocated to Primary

[vqprt](#vqprt)

VQ Resources Private Total

[vqfrsm](#vqfrsm)

VQ Resources Flexible Secondary Maximum

[vqgran](#vqgran)

VQ Flexible Resource Preferred Granularity

[rsvd48](#rsvd48)

reserved

[vifrt](#vifrt)

VI Resources Flexible Total

[virfa](#virfa)

VI Resources Flexible Assigned

[virfap](#virfap)

VI Resources Flexible Allocated to Primary

[viprt](#viprt)

VI Resources Private Total

[vifrsm](#vifrsm)

VI Resources Flexible Secondary Maximum

[vigran](#vigran)

VI Flexible Resource Preferred Granularity

[rsvd80](#rsvd80)

reserved

struct nvme\_primary\_ctrl\_cap October 2026

---

Document: nvme_primary_ctrl_cap-libnvme3(2) from nvme-cli 3.2-r0 (Chainguard OS)
Source: https://github.com/linux-nvme/nvme-cli
