libnvme(2)
π libnvme β struct nvme_lm_io_completion_queue_data π
okay bestie, sit down, hydrate, and let me tell you about this little struct from the libnvme API manual (that's section 2 of the manual, the one for library calls, iykyk). this one is genuinely niche and I'm obsessed with it.
β¨ NAME β¨
struct nvme_lm_io_completion_queue_data β I/O Completion Queue data structure. πΈ
she holds the fields related to the contents of the Create I/O Completion Queue command that created an I/O Completion Queue. so basically she's the receipts π§Ύ for a completion queue that already exists. not the command itself, just the tea about what it made. periodt.
π¦ SYNOPSIS π¦
struct nvme_lm_io_completion_queue_data {
__le64 iocqprp1;
__le16 iocqqsize;
__le16 iocqqid;
__le16 iocqhp;
__le16 iocqtp;
__le32 iocqa;
__u8 rsvd20[4];
};
look at her. so compact. so neat. lowkey a work of art. π
π Members π
okay now the main character energy part β every single field, no skips, fr fr:
iocqprp1β I/O Completion Queue PRP Entry 1 (that'sIOCQPRP1, the fancy acronym, keep it in your notes bestie). πiocqqsizeβ I/O Completion Queue Size, akaIOCQQSIZE. how big the queue is, no cap.iocqqidβ I/O Completion Queue Identifier</... wait, no, gotta close it properly: I/O Completion Queue Identifier (IOCQQID). it's her name tag. πiocqhpβ I/O Completion Queue Head Pointer (IOCQHP). the head pointer is doing head pointer things. iconic behaviour.iocqtpβ I/O Completion Queue Tail Pointer (IOCQTP). yes, she's the tail to that head. they're a package deal. π«Άiocqaβ I/O Completion Queue Attributes (IOCQA). the ~vibes~ field. the personality, if you will.rsvd20β Reserved. π do not touch. do not write to it. do not look at it too long. reserved means reserved, bestie, that's a boundary and we respect boundaries. π
π a gentle reminder: rsvd20 is Reserved. it is not a secret bonus field for you to store your little gremlin data in. hands off. β
okay that's the whole struct!! every field accounted for, nothing dropped, we ate and left no crumbs πβ¨
July 2026 β that's the date on this page, and it lives in the libnvme(2) API manual, so if you're reading this you're officially in section 2 territory. mwah, love that for us. ππ bye bestie, go make a completion queue or something π
π¦ where this page comes from
- ubuntu stonking: libnvme-dev 1.16.2-1build1 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms