i40e_read_nvm_module_data(9)
π i40e_read_nvm_module_data β bestie, let's read some NVM
okay so real talk, this is a page from the Kernel API Manual and it's the i40e_read_nvm_module_data(9) entry β¨ β yes, the (9) is giving very "we live in the kernel section of the manual" energy, iykyk π
πΈ NAME πΈ
i40e_read_nvm_module_data β Reads NVM Buffer to specified memory location π§
Like, that's literally what it does. It reads an NVM buffer and drops it exactly where you told it to. no cap. π«Ά
β¨ SYNOPSIS β¨
int i40e_read_nvm_module_data (struct i40e_hw *hw , u8 module_ptr , u16
module_offset , u16 data_offset , u16 words_data_size , u16 *data_ptr );
she returns an int, and she takes six whole arguments. six! the way that this function is highkey doing the most π
but honestly? slay.
π ARGUMENTS π
okay bestie, here's the cast of characters, one by one, no skips:
hwβ Pointer to the HW structure π₯οΈ this is your hardware babe, the whole vibe check of the operation.module_ptrβ Pointer to module in words with respect to NVM beginning π so like, in words, measured from the start of the NVM. words, not bytes, don't come for me.module_offsetβ Offset in words from module start π― counted from where the module begins.data_offsetβ Offset in words from reading data area start π§ this one's counted from the start of the reading data area β different starting line, same word units.words_data_sizeβ Words to read from NVM π literally how many words you want pulled out of the NVM. the size of the snack, basically πdata_ptrβ Pointer to memory location where resulting buffer will be stored π this is where the freshly-read buffer lands. it's giving "delivery address" energy.
π SEE ALSO π
okay so there are so many siblings in this family, it's a whole friend group π and the kernel file they all live in is right here:
- Kernel file
./drivers/net/ethernet/intel/i40e/i40e_nvm.c
and now the whole squad, in order, bestie:
i40e_init_nvm(9)i40e_acquire_nvm(9)i40e_release_nvm(9)i40e_poll_sr_srctl_done_bit(9)i40e_read_nvm_word_srctl(9)i40e_read_nvm_aq(9)i40e_read_nvm_word_aq(9)__i40e_read_nvm_word(9)i40e_read_nvm_word(9)i40e_read_nvm_buffer_srctl(9)i40e_read_nvm_buffer_aq(9)__i40e_read_nvm_buffer(9)i40e_read_nvm_buffer(9)i40e_write_nvm_aq(9)i40e_calc_nvm_checksum(9)i40e_update_nvm_checksum(9)i40e_validate_nvm_checksum(9)i40e_nvmupd_validate_command(9)i40e_nvmupd_nvm_erase(9)i40e_nvmupd_nvm_write(9)i40e_nvmupd_nvm_read(9)i40e_nvmupd_exec_aq(9)i40e_nvmupd_get_aq_result(9)i40e_nvmupd_get_aq_event(9)i40e_nvmupd_state_init(9)i40e_nvmupd_state_reading(9)i40e_nvmupd_state_writing(9)i40e_nvmupd_command(9)i40e_nvmupd_clear_wait_state(9)i40e_nvmupd_check_wait_event(9)
likeβ¦ that's thirty-two references plus a file path. she's connected. main character energy fr fr ππ₯
quick vibe check bestie: every one of those (9) references is exactly as written above β don't go shortening them, the kernel is very particular and so am I π
and that's the whole page, babe π¦ the source lives over at ./drivers/net/ethernet/intel/i40e, dated October 2026, and it's filed under i40e_read_nvm_module_data(9). mwah, go read some NVM, you absolute icon πβ¨π
π¦ 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