STRUCT DFL_DEVICE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct dfl_device(9) πŸ’–

okay bestie, welcome to the Kernel API Manual entry for struct dfl_device β€” yes we're in section 9, yes it's a struct, and yes it's literally the whole personality of an dfl device on the dfl bus. slay.


✨ NAME ✨

struct dfl_device β€” the struct that represents a dfl device on the dfl bus πŸ¦‹


🌸 SYNOPSIS 🌸

struct dfl_device {
    struct device dev;
    int id;
    u16 type;
    u16 feature_id;
    u8 revision;
    struct resource mmio_res;
    int *irqs;
    unsigned int num_irqs;
    struct dfl_fpga_cdev *cdev;
    const struct dfl_device_id *id_entry;
    u8 dfh_version;
    unsigned int param_size;
    void *params;
 };

no cap, that's the whole glow-up. every field copied exactly, character for character, because we do not edit source code in this house πŸ’…


πŸŽ€ Members πŸŽ€

  • dev β€” the generic device interface. like, the main character energy slot every device struct needs 🫢
  • id β€” the id of the dfl device. it's an int, it's iconic, it's how you know who's who.
  • type β€” type of DFL FIU of the device. check enum dfl_id_type for the vibes (iykyk).
  • feature_id β€” feature identifier local to its DFL FIU type. so like, it only makes sense next to its own type β€” a little duo, honestly πŸ’œ
  • revision β€” revision of this dfl device feature. a u8, very demure, very mindful.
  • mmio_res β€” mmio resource of this dfl device. it's a struct resource, aka the memory-mapped moment.
  • irqs β€” list of Linux IRQ numbers of this dfl device. a whole int * of interrupts, obsessed 😭
  • num_irqs β€” number of IRQs supported by this dfl device. the count, the total, the unsigned int of it all.
  • cdev β€” pointer to the DFL FPGA container device this dfl device belongs to. it's giving family tree 🌈
  • id_entry β€” matched id entry in dfl driver's id table. the const struct dfl_device_id * that said "it's you" πŸ’–
  • dfh_version β€” version of DFH for the device. a u8 keeping track of which DFH era we're in.
  • param_size β€” size of the block parameters in bytes. unsigned int, extremely precise, we love a unit.
  • params β€” pointer to block of parameters copied memory. a void *, so it's mysterious and flexible, lowkey main character 🧚
fr fr bestie, don't invent extra fields β€” the struct in the synopsis is the whole entire struct, no bonus content πŸ’€

πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./include/linux/dfl.h
  • enum dfl_id_type(9)
  • struct dfl_driver(9)

and that's the tea πŸ“ this page lives in ./include/linux, version October 2026 vibes, and it's filed as struct dfl_device(9) β€” periodt, go read the header file now, mwah πŸ’œβœ¨πŸŽ€

πŸ“¦ where this page comes from