STRUCT MOST_INTERFACE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct most_interface(9) β€” Kernel API Manual, but make it make sense πŸŽ€

okay bestie, this is the struct most_interface(9) page from the Kernel API Manual, and it’s giving β€œinterface instance description” with main-character energy ✨ Let’s get into it.

πŸ’– NAME πŸ’–

struct most_interface β€” Interface instance description. Literally that’s the name, no cap 🫢

✨ SYNOPSIS ✨

       struct most_interface {
           struct device *dev;
           struct device *driver_dev;
           struct module *mod;
           enum most_interface_type interface;
           const char *description;
           unsigned int num_channels;
           struct most_channel_capability *channel_vector;
           void *(*dma_alloc)(struct mbo *mbo, u32 size);
           void (*dma_free)(struct mbo *mbo, u32 size);
           int (*configure)(struct most_interface *iface, int channel_idx,
       struct most_channel_config *channel_config);
           int (*enqueue)(struct most_interface *iface, int channel_idx, struct
       mbo *mbo);
           int (*poison_channel)(struct most_interface *iface, int
       channel_idx);
           void (*request_netinfo)(struct most_interface *iface, int
       channel_idx, void (*on_netinfo)(struct most_interface *iface, unsigned
       char link_stat, unsigned char *mac_addr));
           void *priv;
           struct interface_private *p;
        };

🫢 Members 🫢

  • dev β€” the actual device ✨
  • driver_dev β€” struct device for calling snd_card_new
  • mod β€” module
  • interface β€” Interface type. ost_interface_type.
  • description β€” PRELIMINARY. Unique description of the device instance from point of view of the interface in free text form (ASCII). It may be a hexadecimal presentation of the memory address for the MediaLB IP or USB device ID with USB properties for USB interface, etc.
  • num_channels β€” Number of channels and size of the channel_vector.
  • channel_vector β€” Properties of the channels. Array index represents channel ID by the driver.
  • dma_alloc β€” Callback to interface driver to allocation DMA memory. (yes, that’s the exact wording, bestie 🫢)
  • dma_free β€” Callback to interface driver to free a DMA memory allocation.
  • configure β€” Callback to change data type for the channel of the interface instance. May be zero if the instance of the interface is not configurable. Parameter channel_config describes direction and data type for the channel, configured by the higher level. The content of (and then the sentence just… ends 😭 iconic in a tragic way)
  • enqueue β€” Delivers MBO to the HDM for processing. After HDM completes Rx- or Tx- operation the processed MBO shall be returned back to the MostCore using completion routine. The reason to get the MBO delivered from the MostCore after the channel is poisoned is the re-opening of the channel by the application. In this case the HDM shall hold MBOs and service the channel as usual. The HDM must be able to hold at least one MBO for each channel. The callback returns a negative value on error, otherwise 0.
  • poison_channel β€” Informs HDM about closing the channel. The HDM shall cancel all transfers and synchronously or asynchronously return all enqueued for this channel MBOs using the completion routine. The callback returns a negative value on error, otherwise 0.
  • request_netinfo β€” triggers retrieving of network info from the HDM by means of "Message exchange over MDP/MEP" The call of the function request_netinfo with the parameter on_netinfo as NULL prohibits use of the previously obtained function pointer.
  • priv β€” Private field used by mostcore to store context information.
  • p β€” struct interface_private pointer

🌈 Description 🌈

Describes an interface of a MOST device the core driver is bound to. This structure is allocated and initialized in the HDM. MostCore may not modify this structure. So hands off, bestie β€” that’s the rule πŸ’…

πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./include/linux/most.h plus these cross-reference besties:


source ./include/linux β€’ date October 2026 β€’ page struct most_interface(9) β€” that’s the footer, bestie, mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from