libnvme(2)

πŸ’– struct nbft_info πŸ’–

okay bestie, so this is the libnvme API manual, and today we're doing struct nbft_info β€” aka the parsed NBFT table data. it's giving "the whole NBFT, decoded and handed to you on a platter." no cap. πŸŽ€


✨ NAME ✨

struct nbft_info β€” The parsed NBFT table data.

like. that's it. that's the whole vibe. it's a struct, it holds your NBFT, and it's iconic for it. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

struct nbft_info {
    char *filename;
    __u8 *raw_nbft;
    ssize_t raw_nbft_size;
    struct nbft_info_host host;
    struct nbft_info_hfi **hfi_list;
    struct nbft_info_security **security_list;
    struct nbft_info_discovery **discovery_list;
    struct nbft_info_subsystem_ns **subsystem_ns_list;
 };

look at her. eight members, all lined up, main character energy. okay and yes, the indentation is exactly like that in the original, i'm not touching it, i'm not that kind of person. πŸ™ˆ


🌸 Members 🌸

okay so let's go member by member, because each one is doing her little job and we're gonna clap for all of them. πŸ‘‘

  • filename β€” Path to the NBFT table. that's the file it came from, bestie. the origin story. ✨
  • raw_nbft β€” The original NBFT table contents. the uncooked version. the raw footage. untouched and unedited. 🎬
  • raw_nbft_size β€” Size of raw_nbft. yes girl, she tells you how big the previous one is, they're a duo, they come as a set. 🫢
  • host β€” The Host Descriptor (should match other NBFTs). lowkey important: if you've got multiple NBFTs kicking around, this one should line up with the rest. that's the note. that's the whole note. ⭐
  • hfi_list β€” The HFI Descriptor List (null-terminated array). it ends when it hits a null, that's how you know you're done, don't go past it. πŸ’€
  • security_list β€” The Security Profile Descriptor List (null-terminated array). same deal, same null-terminated situation, the security girlies are just as well-behaved. πŸ’œ
  • discovery_list β€” The Discovery Descriptor List (null-terminated array). null-terminated. again. we love consistency. πŸ”₯
  • subsystem_ns_list β€” The SSNS Descriptor List (null-terminated array). yes, four lists, four null-terminated arrays, and if you forget the null-terminated part, that's on you bestie, it's written right there. 😭
fr fr though: every single one of those _list members is a null-terminated array. that's not a suggestion. that's the contract. don't walk past the null. 🚫

and that's the page! short, sweet, structurally sound. iykyk. 🧚

mwah, this was the libnvme API manual, page libnvme(2), covering struct nbft_info β€” dated July 2026, from libnvme itself. go parse something pretty. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from