STRUCT DVB_ADAPTER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct dvb_adapter(9)

okay so bestie, buckle up β€” this is from the Kernel API Manual, and we're about to get deep into struct dvb_adapter, which is literally the main-character struct for a Digital TV adapter using the Linux DVB API. iykyk πŸ¦‹


✨ NAME ✨

struct dvb_adapter β€” the struct that represents a Digital TV adapter using the Linux DVB API πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

struct dvb_adapter {
    int num;
    struct list_head list_head;
    struct list_head device_list;
    const char *name;
    u8 proposed_mac [6];
    void* priv;
    struct device *device;
    struct module *module;
    int mfe_shared;
    struct dvb_device *mfe_dvbdev;
    struct mutex mfe_lock;
  #if defined(CONFIG_MEDIA_CONTROLLER_DVB);
    struct mutex mdev_lock;
    struct media_device *mdev;
    struct media_entity *conn;
    struct media_pad *conn_pads;
  #endif;
 };

no cap, that's the whole layout β€” now let's meet everybody in the group chat 🌸


πŸ’« Members

  • num β€” the adapter's number. that's it, that's the whole vibe πŸ”’
  • list_head β€” a list holding the DVB adapters ✨
  • device_list β€” a list holding the DVB devices πŸŽ€
  • name β€” the adapter's name, so it can be addressed properly πŸ‘‘
  • proposed_mac β€” the proposed MAC address for the adapter. six bytes of u8 doing their little thing πŸ¦‹
  • priv β€” private data. mind your business, it's private πŸ™ˆ
  • device β€” a pointer to struct device πŸ”₯
  • module β€” a pointer to struct module ⭐
  • mfe_shared β€” indicates mutually exclusive frontends, and the value matters, so pay attention:
    • 1 = legacy exclusion behavior: blocking any open call
    • 2 = enhanced exclusion behavior, emulating the standard behavior of busy frontends: allowing read-only sharing and otherwise returning immediately with -EBUSY when any of the frontends is already opened with write access

literally pick the right one, bestie πŸ’…

  • mfe_dvbdev β€” the frontend device in use, in the case of MFE 🫢
  • mfe_lock β€” the lock that prevents using the other frontends when MFE is used. keep them separated, periodt πŸ”’
  • mdev_lock β€” protects access to the mdev pointer. yes queen, guard it 🌈
  • mdev β€” a pointer to struct media_device, used when the media controller is used ✨
  • conn β€” RF connector. used only if the device has no separate tuner 🧚
  • conn_pads β€” a pointer to struct media_pad associated with conn (note the semicolon on the end of that one in the docs, we don't question it) πŸ’€
okay the mdev_lock, mdev, conn, and conn_pads crew only show up when CONFIG_MEDIA_CONTROLLER_DVB is defined β€” it's giving conditional guest list 🎟️

πŸ” SEE ALSO πŸ”

the whole extended fam, in Kernel file ./include/media/dvbdev.h:

like, the whole friend group, obsessed πŸ˜­πŸ’–


and that's the page, bestie β€” straight outta ./include/media, dated October 2026, slaying in the Kernel API Manual forever πŸŽ€βœ¨πŸ’…

πŸ“¦ where this page comes from