NVME_MI_ADMIN_IDENTIFY_SECONDARY_CTRL_LIST(2)

πŸ’– NAME πŸ’–

nvme_mi_admin_identify_secondary_ctrl_list β€” bestie, this one does an Admin identify for a secondary controller list. That's it, that's the whole vibe. ✨

This page lives in the libnvme API manual, so you already know it's the good stuff.


🌸 SYNOPSIS 🌸

int nvme_mi_admin_identify_secondary_ctrl_list (nvme_mi_ctrl_t ctrl ,
__u16 cntid , struct nvme_secondary_ctrl_list *list );

okay so look at her. three little args and a dream. 🫢


πŸŽ€ ARGUMENTS πŸŽ€

  • ctrl β€” the Controller you want to run this identify command on. that's her. that's the one.
  • cntid β€” the Controller ID that tells the list where to start. like "begin here bestie" πŸ‘‘
  • list β€” the list data we're gonna populate. it comes in empty and leaves full, main character energy honestly.

πŸ¦‹ DESCRIPTION πŸ¦‹

So what's actually happening: you're performing an Identify command, and it's for the secondary controllers that are associated with the current primary controller. Only the entries with IDs greater than or equal to cntid get returned β€” so if you only care about the second half of the squad, you can skip ahead. πŸ’…

Now here's the part where you have to pay attention, because she's strict:

Will return an error if the length of the response data (from the controller) is not a full NVME_IDENTIFY_DATA_SIZE. so no partial vibes allowed. 😭

But the flip side is genuinely slay: list will be fully populated on success. like, no half-filled situationship. either it's all there or you get an error. periodt. πŸ’–

See: struct nvme_secondary_ctrl_list β€” go read that one too, iykyk. 🧚


⭐ RETURN ⭐

  • 0 on success πŸŽ‰
  • non-zero on failure πŸ’€

that's the whole page, bestie β€” go populate a list, you got this. 🌈

this was the libnvme API manual, nvme_mi_admin_identify_secondary_ctrl_list(2) section, dated July 2026. mwah, take care of her. πŸŽ€πŸ’œ

πŸ“¦ where this page comes from