libnvme(2)

πŸ’– NAME πŸ’–

struct nvme_get_discovery_args β€” the lil argument bundle you hand over to nvmf_get_discovery_wargs() ✨

So like, this is a page from the libnvme API Manual, bestie, and we're talking about one very specific struct. Sit with me. 🫢


✨ SYNOPSIS ✨

struct nvme_get_discovery_args {
    nvme_ctrl_t c;
    int args_size;
    int max_retries;
    __u32 *result;
    __u32 timeout;
    __u8 lsp;
 };

Look at her. Six fields. Gorgeous. No notes. πŸ’…


πŸŽ€ Members πŸŽ€

Okay okay okay, field-by-field, let's go β€” this is the part you actually came for, no cap:

  • c β€” the Discovery controller. That's your girl. The ctrl you're doing the discovery thing against. πŸ‘‘
  • args_size β€” the length of the structure. Yes literally just how big this struct is. She's measuring herself. Iconic behaviour honestly.
  • max_retries β€” how many times we're willing to retry if it, like, fails. Because sometimes things fail and we try again. Persistence! ✨
  • result β€” the command completion result, straight from CQE dword0. That's where the answer comes back to you. πŸ¦‹
  • timeout β€” the timeout, in ms. Default is NVME_DEFAULT_IOCTL_TIMEOUT, so if you don't say anything she's got a default and she's sticking with it.
  • lsp β€” the log specific field. Peep enum nvmf_log_discovery_lsp for the actual values, iykyk. πŸ”₯
fr fr: nothing spicy here, it's just a plain old arg struct β€” but every field matters and you should set them on purpose, not vibes-only. 😭

and that's the whole page, bestie!! πŸŒˆπŸ’–

This was struct nvme_get_discovery_args from the libnvme API Manual, dated July 2026 β€” manual name libnvme(2), periodt. Go pass that struct to nvmf_get_discovery_wargs() and slay. πŸŽ€πŸ¦‹βœ¨πŸ’œ

πŸ“¦ where this page comes from