STRUCT TB_NVM(9)
β¨ struct tb_nvm(9) β¨
okay so bestie, welcome to the Kernel API Manual π this page is literally all about struct tb_nvm, and itβs giving βNVM info holder with main character energy.β letβs get into it, no cap.
πΈ NAME πΈ
struct tb_nvm - Structure holding NVM information π
π SYNOPSIS π
hereβs the whole struct, character for character, periodt:
struct tb_nvm {
struct device *dev;
u32 major;
u32 minor;
int id;
struct nvmem_device *active;
size_t active_size;
struct nvmem_device *non_active;
void *buf;
void *buf_data_start;
size_t buf_data_size;
bool authenticating;
bool flushed;
const struct tb_nvm_vendor_ops *vops;
};
π Members π
okay, member-by-member vibe check, bestie:
devβ Owner of the NVM πmajorβ Major version number of the active NVM portionminorβ Minor version number of the active NVM portionidβ Identifier used with both NVM portions β one id, two portions, iconicactiveβ Active portion NVMem device β¨active_sizeβ Size in bytes of the active NVMnon_activeβ Non-active portion NVMem device π¦bufβ Buffer where the NVM image is stored before it is written to the actual NVM flash devicebuf_data_startβ Where the actual image starts after skipping possible headersbuf_data_sizeβ Number of bytes actually consumed by the new NVM imageauthenticatingβ The device is authenticating the new NVMflushedβ The image has been flushed to the storage areavopsβ Router vendor specific NVM operations (optional)
π« Description π«
β οΈ important bestie: the user of this structure needs to handle serialization of possible concurrent access. thatβs the whole note, fr fr β no cap, itβs on the user of this structure.
π¦ SEE ALSO π¦
the reference rabbit hole starts at Kernel file ./drivers/thunderbolt/tb.h, and includes the whole squad:
enum tb_switch_tmu_mode(9)struct tb_switch_tmu(9)struct tb_switch(9)struct tb_bandwidth_group(9)struct tb_port(9)struct usb4_port(9)struct tb_retimer(9)struct tb_path_hop(9)enum tb_path_port(9)struct tb_path(9)struct tb_cm_ops(9)tb_upstream_port(9)tb_is_upstream_port(9)tb_port_has_remote(9)tb_domain_event(9)tb_switch_for_each_port(9)tb_switch_downstream_port(9)tb_switch_depth(9)tb_switch_is_icm(9)tb_switch_tmu_is_configured(9)tb_switch_tmu_is_enabled(9)tb_switch_clx_is_enabled(9)tb_port_path_direction_downstream(9)tb_for_each_port_on_path(9)tb_for_each_upstream_port_on_path(9)tb_path_for_each_hop(9)tb_downstream_route(9)tb_xdomain_downstream_port(9)usb4_switch_version(9)tb_switch_is_usb4(9)enum usb4_sb_target(9)enum usb4_margin_sw_error_counter(9)struct usb4_port_margining_params(9)
okay bye bestie! π source/version: ./drivers/thunderbolt; date: October 2026; footer energy: struct tb_nvm(9). mwah π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms