STRUCT MOST_DEV(9)
π struct most_dev(9) β the kernel API manual, bestie edition π
okay so we're in struct most_dev(9) territory and honestly? this one's a whole vibe. it's the struct that holds all usb interface specific stuff β¨ like, every single usb-interface-specific little thing lives in here. no cap. π«Ά
πΈ SYNOPSIS πΈ
here's the whole shape of it, bestie β copy-paste levels of exact:
struct most_dev {
struct device dev;
struct usb_device *usb_device;
struct most_interface iface;
struct most_channel_capability *cap;
struct most_channel_config *conf;
struct most_dci_obj *dci;
u8 *ep_address;
char description[MAX_STRING_LEN];
char suffix[MAX_NUM_ENDPOINTS][MAX_SUFFIX_LEN];
spinlock_t channel_lock[MAX_NUM_ENDPOINTS];
bool padding_active[MAX_NUM_ENDPOINTS];
bool is_channel_healthy[MAX_NUM_ENDPOINTS];
struct clear_hold_work clear_work[MAX_NUM_ENDPOINTS];
struct usb_anchor *busy_urbs;
struct mutex io_mutex;
struct timer_list link_stat_timer;
struct work_struct poll_work_obj;
void (*on_netinfo)(struct most_interface *most_iface, unsigned char link_state, unsigned char *addrs);
};
she's giving "long struct, big responsibility" and we stan π
β¨ Members β¨
usb_deviceβ pointer to usb device π like, the actual device bestieifaceβ hardware interface π the whole interface situationcapβ channel capabilities π what each channel can doconfβ channel configuration π how each channel is set updciβ direct communication interface of hardware π‘ (yes the hardware has a direct line, very main character)ep_addressβ endpoint address table πdescriptionβ device description π the literal description field, iconicsuffixβ suffix for channel name π·οΈchannel_lockβ synchronize channel access π pls don't touch the channel while someone else is using it, typadding_activeβ indicates channel uses padding π§·is_channel_healthyβ health status table of each channel π©Ί a vibe check for every single channel, literallybusy_urbsβ list of anchored items β anchored, yes, as in usb_anchorio_mutexβ synchronize I/O with disconnect π (disconnect is always lurking, so we lock)link_stat_timerβ timer for link status reports β°poll_work_objβ work for polling link status π
ngl the[...]arrays are per-endpoint, soMAX_NUM_ENDPOINTSof everything. mind the arrays girlies π
π¦ SEE ALSO π¦
- kernel file
./drivers/most/most_usb.c struct most_dci_obj(9)drci_rd_reg(9)drci_wr_reg(9)get_stream_frame_size(9)hdm_poison_channel(9)hdm_add_padding(9)hdm_remove_padding(9)hdm_write_completion(9)hdm_read_completion(9)hdm_enqueue(9)hdm_configure_channel(9)hdm_request_netinfo(9)link_stat_timer_handler(9)wq_netinfo(9)wq_clear_halt(9)hdm_probe(9)hdm_disconnect(9)
and that's the whole page, bestie π it comes to you from ./drivers/most, dated October 2026, and it remains forever struct most_dev(9) at heart. slay, go forth and read your kernel structs πβ¨πΈ
π¦ 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