STRUCT BRCMF_FWS_HANGER(9)
π struct brcmf_fws_hanger(9) π
okay bestie, welcome to the Kernel API Manual β yes we're reading kernel docs for fun now, this is who we are, and honestly? iconic. today's main character is struct brcmf_fws_hanger, and no cap, she's literally just a little holding pen for packets that are waiting on a txstatus from the firmware. that's it. that's her whole job. π
β¨ NAME β¨
struct brcmf_fws_hanger β holds packets awaiting firmware txstatus. like a coat check but for network packets, and the firmware is the person who's supposed to come back for them π§
πΈ SYNOPSIS πΈ
struct brcmf_fws_hanger {
u32 pushed;
u32 popped;
u32 failed_to_push;
u32 failed_to_pop;
u32 failed_slotfind;
u32 slot_pos;
struct brcmf_fws_hanger_item items[BRCMF_FWS_HANGER_MAXITEMS];
};
like. look at her. four little u32 failure counters, two regular counters, and a whole array of items. she's balanced, she's structured, she has main character energy π₯
π Members π
okay so let's go through her fields one by one, because every single one of them matters and i'm not skipping a single one, that's not the vibe we're on today π«Ά
pushedβ the count of packets that got pushed in to wait for txstatus. they're in the hanger, they're chillin, they're waiting for their moment πpoppedβ packets that got popped when a txstatus came in and got handled. bye girl, you did great, we love a clean exit πfailed_to_pushβ this is the sad number: packets that could not be pushed. the hanger said no. it happens. πfailed_to_popβ packets that could not be popped. like reaching into the coat check and the coat's just... not there? concerning! πfailed_slotfindβ packets for which the code failed to find an entry. no slot found, no entry located, just vibes and disappointment πslot_posβ the last returned item index for a free entry. basically a little bookmark so next time we don't have to search from the top, she remembers where she was at πΈitemsβ the array of hanger items themselves. type isstruct brcmf_fws_hanger_item, and it's sizedBRCMF_FWS_HANGER_MAXITEMSso you know exactly how much room you've got. this is the actual hanger, the rest of the struct is just the receipts β¨
π¦ SEE ALSO π¦
if you're obsessed (and you should be) here's the whole friend group, all of them live in the kernel file ./drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c:
- Firmware Signalling(9)
enum brcmf_fws_skb_state(9)struct brcmf_skbuff_cb(9)enum brcmf_fws_txstatus(9)struct brcmf_fws_mac_descriptor(9)enum brcmf_fws_hanger_item_state(9)struct brcmf_fws_hanger_item(9)brcmf_fws_get_tlv_len(9)
ngl,brcmf_fws_hanger_itemandenum brcmf_fws_hanger_item_stateare basically this struct's siblings, so if you liked this one, go read theirs too. family content. π«Ά
that's the whole page!! this was pulled from ./drivers/net/wireless/broadco... (the path got a little truncated in the footer, rip, but you get the idea π) and it's dated October 2026 β a little time capsule from the future, slay. now go forth and understand packets awaiting txstatus, bestie. i'm so proud of you. πβ¨π
π¦ 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