STRUCT BRCMF_BUS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct brcmf_bus(9) πŸ’–

okay so bestie, welcome to the Kernel API Manual, we're looking at struct brcmf_bus today and honestly? it's kind of a big deal. this is the interface structure between common and bus layer β€” the lil middleman that lets the common code and the bus code talk to each other without it being a whole thing. 🫢


✨ SYNOPSIS ✨

struct brcmf_bus {
    union {
      struct brcmf_sdio_dev *sdio;
      struct brcmf_usbdev *usb;
      struct brcmf_pciedev *pcie;
    } bus_priv;
    enum brcmf_bus_protocol_type proto_type;
    struct device *dev;
    struct brcmf_pub *drvr;
    enum brcmf_bus_state state;
    struct brcmf_bus_stats stats;
    uint maxctl;
    u32 chip;
    u32 chiprev;
    enum brcmf_fwvendor fwvid;
    bool always_use_fws_queue;
    bool wowl_supported;
    bool removing;
    struct mutex bus_reset_lock;
    const struct brcmf_bus_ops *ops;
    struct brcmf_bus_msgbuf *msgbuf;
    struct list_head list;
 };

like, copy that exactly fr fr. no typos, no "fixing" the indentation, we respect the original. πŸ’…


πŸŽ€ Members πŸŽ€

  • bus_priv β€” pointer to private bus device. this is a union, so it's one of sdio, usb, or pcie depending on which bus you're on. pick your fighter. 🌈
  • proto_type β€” protocol type, bcdc or msgbuf. that's the vibe check for which protocol we're speaking.
  • dev β€” device pointer of bus device.
  • drvr β€” public driver information. the main character of the whole show ngl πŸ‘‘
  • state β€” operational state of the bus interface.
  • stats β€” statistics shared between common and bus layer. receipts, basically πŸ“Š
  • maxctl β€” maximum size for rxctl request message.
  • chip β€” device identifier of the dongle chip.
  • chiprev β€” revision of the dongle chip. (yes, separately. it's giving thorough ✨)
  • fwvid β€” firmware vendor-support identifier of the device.
  • always_use_fws_queue β€” bus wants use queue also when fwsignal is inactive.
  • wowl_supported β€” is wowl supported by bus driver. (a question in the original, keeping it a question, we don't editorialize πŸ’€)
  • ops β€” callbacks for this bus instance.
  • msgbuf β€” msgbuf protocol parameters provided by bus layer.
  • list β€” member used to add this bus instance to linked list.
πŸ™ˆ tiny heads up: the struct up in the synopsis also has removing and bus_reset_lock fields, but the Members list doesn't say anything about them. so like… they're there, they exist, we're just not making stuff up about them. bestie behavior only. πŸ’–

🌸 SEE ALSO 🌸

  • Kernel file ./drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h
  • struct brcmf_bus_ops(9), struct brcmf_bus_msgbuf(9), struct brcmf_bus_stats(9)

go read those next, they're lowkey the rest of the lore πŸ¦‹


⭐ and that's the whole page!! source/version is ./drivers/net/wireless/broadco... dated October 2026, page title struct brcmf_bus(9) β€” slay, go forth and register your bus πŸ’œπŸŽ€

πŸ“¦ where this page comes from