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 ofraw_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
- 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