STRUCT DVB_USB_ADAPTER_FE_PROPERTIES(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct dvb_usb_adapter_fe_properties(9) β€” Kernel API Manual πŸŽ€

okay bestie, welcome to the manual page for struct dvb_usb_adapter_fe_properties, straight out of the Kernel API Manual. yes, the name is a mouthful, no, we're not changing it. ✨


🌸 NAME 🌸

struct dvb_usb_adapter_fe_properties β€” the properties of a dvb-usb-adapter. and like, what is a dvb-usb-adapter? literally just a dvb_adapter that's chilling on a USB-device. that's the whole vibe. πŸ¦‹


✨ SYNOPSIS ✨

struct dvb_usb_adapter_fe_properties {
  #define DVB_USB_ADAP_HAS_PID_FILTER               0x01;
  #define DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF 0x02;
  #define DVB_USB_ADAP_NEED_PID_FILTERING           0x04;
  #define DVB_USB_ADAP_RECEIVES_204_BYTE_TS         0x08;
  #define DVB_USB_ADAP_RECEIVES_RAW_PAYLOAD         0x10;
    int caps;
    int pid_filter_count;
    int (*streaming_ctrl)  (struct dvb_usb_adapter *, int);
    int (*pid_filter_ctrl) (struct dvb_usb_adapter *, int);
    int (*pid_filter)      (struct dvb_usb_adapter *, int, u16, int);
    int (*frontend_attach) (struct dvb_usb_adapter *);
    int (*tuner_attach)    (struct dvb_usb_adapter *);
    struct usb_data_stream_properties stream;
    int size_of_priv;
 };

like, just look at it. five #defines, a pile of function pointers, and a size_of_priv at the end for good measure. iconic. πŸ‘‘


🫢 Members 🫢

here's the member-by-member breakdown, no gatekeeping:

  • caps β€” the capabilities of the DVB USB device. this is where those DVB_USB_ADAP_* flags from up top actually live.
  • pid_filter_count β€” the number of PID filter positions in the optional hardware PID-filter. optional!! so don't come for it if it's not there. πŸ™ˆ
  • streaming_ctrl β€” called to start and stop the MPEG2-TS streaming of the device. and note, bestie: this is not URB submitting/killing. this callback gets called while no data URBs are active β€” data URBs get submitted only after streaming_ctrl(1) returns successfully, and they get killed before streaming_ctrl(0) is called. the ordering is not a suggestion, it's the whole point. ⭐
  • pid_filter_ctrl β€” called to en/disable the PID filter, if any. "if any" doing a lot of work there but okay. πŸ’…
  • pid_filter β€” called to set/unset a PID for filtering. that's it, that's the job.
  • frontend_attach β€” called to attach the possible frontends, and it fills the fe-field of struct dvb_usb_device. possible frontends, plural, because why would anything be simple. 🌈
  • tuner_attach β€” called to attach the correct tuner, and to fill pll_addr, pll_desc and pll_init_buf of struct dvb_usb_device. three fields, one callback, main character energy fr. πŸ”₯
  • stream β€” configuration of the USB streaming, typed as struct usb_data_stream_properties.
  • size_of_priv β€” the size of the priv memory in struct dvb_usb_adapter. yes you have to say it out loud, the allocator is listening. 😭

πŸ‘‘ SEE ALSO πŸ‘‘

go read the Kernel file ./drivers/media/usb/dvb-usb/dvb-usb.h and then go down this little list, in this order, because that's how it's written and we respect the source:

  • struct dvb_usb_device_description(9)
  • struct dvb_rc_legacy(9)
  • struct dvb_rc(9)
  • enum dvb_usb_mode(9)
  • struct dvb_usb_device_properties(9)
  • struct usb_data_stream(9)
  • struct dvb_usb_fe_adapter(9)
  • struct dvb_usb_adapter(9)
  • struct dvb_usb_device(9)

and that's the page!! πŸ’– this little beauty comes to you from ./drivers/media/usb/dvb-usb, dated October 2026, and it's filed under the ever-mysterious struct dvb_u...e_properties(9) in your Kernel API Manual. mwah, go write some drivers, ily. πŸŽ€πŸ¦‹πŸ’œ

πŸ“¦ where this page comes from