STRUCT SSI_PROTOCOL(9)
โจ struct ssi_protocol(9) โจ
okay bestie, welcome to the struct ssi_protocol glow-up ๐
this is a page from the Kernel API Manual, and we're about to go through the SSI protocol (McSAAB) data struct together like it's a group project we're actually going to slay ๐ซถ
๐ธ NAME ๐ธ
struct ssi_protocol โ the SSI protocol (McSAAB) data. that's it, that's the vibe โจ
๐ SYNOPSIS ๐
struct ssi_protocol {
unsigned int main_state;
unsigned int send_state;
unsigned int recv_state;
unsigned long flags;
u8 rxid;
u8 txid;
unsigned int txqueue_len;
struct timer_list tx_wd;
struct timer_list rx_wd;
struct timer_list keep_alive;
spinlock_t lock;
struct net_device *netdev;
struct list_head txqueue;
struct list_head cmdqueue;
struct work_struct work;
struct hsi_client *cl;
struct list_head link;
atomic_t tx_usecnt;
int channel_id_cmd;
int channel_id_data;
};
like yes, she's got range ๐ twenty members and not one of them is filler.
๐ MEMBERS ๐
every single one of these is a main character, so let's give them their moment ๐
main_stateโ the main state machine. she runs the whole show, no cap.send_stateโ the TX state machine. the sending side of things ๐คrecv_stateโ the RX state machine. the receiving side ๐ฌflagsโ flags! rn they're only used to follow the wake line test, that's her whole job rn and she's doing it.rxidโ the RX data id.txidโ the TX data id.txqueue_lenโ how long the TX queue is. literally the TX queue length ๐tx_wdโ the TX watchdog. she's watching ๐rx_wdโ the RX watchdog. also watching ๐keep_aliveโ a workaround for an SSI HW bug. iconic of her to say it like that, honestly.lockโ exists to serialize access to this struct ๐ so everybody takes turns, periodt.netdevโ the Phonet network device.txqueueโ the TX data queue.cmdqueueโ the queue of free commands.workโ astruct work_structfor scheduled work ๐ ๏ธclโ the HSI client own reference.linkโ the link forssip_list.tx_usecntโ a refcount to keep track of the slaves that use the wake line. she's counting, bestie ๐งฎchannel_id_cmdโ the HSI channel id for the command stream.channel_id_dataโ the HSI channel id for the data stream.
๐ฆ SEE ALSO ๐ฆ
the kernel file ./drivers/hsi/clients/ssi_protocol.c โ go read the source, iykyk ๐
and that's the whole page, bestie ๐ this cutie lives in ./drivers/hsi/clients, dated October 2026, and she answers to struct ssi_protocol(9) whenever you call her name ๐โจ๐
๐ฆ 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