STRUCT FALCON_NIC_DATA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct falcon_nic_data β€” the Kernel API Manual, but make it cute ✨

okay so this is the page for struct falcon_nic_data from the Kernel API Manual (struct falcon_nic_data(9), to be official about it) and bestie, it's literally the state-keeping brain of a Falcon NIC. we're gonna go through it together, no stress πŸ’…


πŸ’– NAME πŸ’–

struct falcon_nic_data β€” Falcon NIC state. that's it, that's the whole vibe. it's the struct where Falcon keeps all its state πŸ¦‹


🌸 SYNOPSIS 🌸

here's the whole thing, exactly as it lives in the header β€” don't touch, just admire:

struct falcon_nic_data {
    struct pci_dev *pci_dev2;
    struct ef4_nic *efx;
    struct falcon_board board;
    u64 stats[FALCON_STAT_COUNT];
    unsigned int stats_disable_count;
    bool stats_pending;
    struct timer_list stats_timer;
    struct falcon_spi_device spi_flash;
    struct falcon_spi_device spi_eeprom;
    struct mutex spi_lock;
    struct mutex mdio_lock;
    bool xmac_poll_required;
 };

πŸŽ€ Members πŸŽ€

every member, one by one, so you know exactly who's who in this friend group:

  • pci_dev2 β€” the secondary function of Falcon A. yes, secondary. main character energy is elsewhere.
  • efx β€” an ef4_nic pointer. that's the link back to the bigger ef4_nic world.
  • board β€” board state and functions. the board's whole personality lives here.
  • stats β€” hardware statistics. the receipts, basically.
  • stats_disable_count β€” nest count for disabling statistics fetches. it's a counter, it nests, that's the whole deal.
  • stats_pending β€” is there a pending DMA of MAC statistics. lowkey just a yes/no ✨
  • stats_timer β€” a timer for regularly fetching MAC statistics. it's giving scheduled maintenance πŸ•
  • spi_flash β€” the SPI flash device.
  • spi_eeprom β€” the SPI EEPROM device.
  • spi_lock β€” the SPI bus lock. please respect it πŸ™
  • mdio_lock β€” the MDIO bus lock. also please respect it.
  • xmac_poll_required β€” XMAC link state needs polling. yes ma'am, we poll πŸ‘‘

πŸ‘€ SEE ALSO πŸ‘€

go look at the kernel file ./drivers/net/ethernet/sfc/falcon/nic.h, and the friends: struct falcon_board_type(9), struct falcon_board(9), and struct falcon_spi_device(9). it's a whole ecosystem, iykyk πŸ’œ


ngl the locks in here are real important β€” spi_lock and mdio_lock are bus locks, so treat them with the respect they deserve, bestie. no cap.

and that's the whole page, periodt 🫢 this was the struct falcon_nic_data(9) page from the Kernel API Manual, coming at you from ./drivers/net/ethernet/sfc/falcon and dated October 2026 β€” stan the sfc/falcon directory, she ate πŸ’…πŸ”₯

πŸ“¦ where this page comes from