STRUCT BUILD_FEATURE_DEVS_INFO(9)
π
struct build_feature_devs_info β Kernel API Manual (section 9, bestie!)
okay so this is the struct build_feature_devs_info page from the kernel API manual, section 9 β the info collected during a feature dev build. it's literally just a lil' struct that holds all the deets while the kernel is out here enumerating feature devices, and honestly it's giving "main character of the enumeration arc" energy π
β¨ NAME β¨
struct build_feature_devs_info β info collected during feature dev build. that's it, that's the whole job, and it ate π
π¦ SYNOPSIS π¦
struct build_feature_devs_info {
struct device *dev;
struct dfl_fpga_cdev *cdev;
unsigned int nr_irqs;
int *irq_table;
enum dfl_id_type type;
void __iomem *ioaddr;
resource_size_t start;
resource_size_t len;
struct list_head sub_features;
int feature_num;
};
like, copy it exactly bestie, don't retype it from memory π
π Members π
each field is a little icon, periodt:
devβ the device to enumerate. this is the one we're out here getting to know β¨cdevβ the container device for all feature devices. the mothership, if you will πnr_irqsβ number of irqs for all feature devices. count 'em π₯irq_tableβ Linux IRQ numbers for all irqs, indexed by local irq index of this device. so it's the lookup table, and yes the indexing matters, no cap π«Άtypeβ the current FIU type. which flavor of FIU are we in, iykyk πioaddrβ header register region address of current FIU in enumeration. address girlies rise πΈstartβ register resource start of current FIU. where the resource begins, lowkey important πlenβ max register resource length of current FIU. the maximum, not just any length, okay πsub_featuresβ a sub features linked list for feature device in enumeration. a whole linked list of sub features, we love a data structure π§feature_numβ number of sub features for feature device in enumeration. the count that goes with the list, they're a matching set π
ngl bestie, the whole struct is basically "who am I, where's my container, how many irqs, here's the table, what type, here's the address, start, len, the sub feature list, and how many of those there are." memorize it and slay π
π₯ SEE ALSO π₯
the kernel file ./drivers/fpga/dfl.c and its whole friend group β literally the entire group chat, no one left out:
struct dfl_dev_info(9)struct dfl_chardev_info(9)dfl_fpga_port_ops_get(9)dfl_fpga_port_ops_put(9)dfl_fpga_port_ops_add(9)dfl_fpga_port_ops_del(9)dfl_fpga_check_port_id(9)dfl_fpga_dev_feature_uinit(9)dfl_fpga_dev_feature_init(9)dfl_fpga_dev_ops_register(9)dfl_fpga_dev_ops_unregister(9)struct dfl_feature_info(9)dfh_find_param(9)parse_feature(9)dfl_fpga_enum_info_add_dfl(9)dfl_fpga_enum_info_add_irq(9)dfl_fpga_feature_devs_enumerate(9)dfl_fpga_feature_devs_remove(9)__dfl_fpga_cdev_find_port_data(9)dfl_fpga_cdev_release_port(9)dfl_fpga_cdev_assign_port(9)dfl_fpga_cdev_config_ports_pf(9)dfl_fpga_cdev_config_ports_vf(9)dfl_fpga_set_irq_triggers(9)dfl_feature_ioctl_get_num_irqs(9)dfl_feature_ioctl_set_irq(9)
and that's the page bestie π«Ά sign-off time: this one comes from ./drivers/fpga, dated October 2026, and the page itself is struct build...re_devs_info(9) β yes the header is literally abbreviated like that, don't @ me, that's just how it was printed πβ¨π
π¦ 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