For future reference:

I think any "xxxbus" interface attribute (aka bus) should provide
xxxbusprint (and xxxbussubmatch if multiple children).  I'll probably
change config(1) to extend cfiattrdata like:

struct cfiattrdata {
        const char *ci_name;
        cfprint_t ci_print;
        cfsubmatch_t ci_submatch;
        int ci_loclen;
        const struct cflocdesc ci_locdesc[];
};

Then config_found*() can omit print/submatch args.

If the found child is known (e.g., "pcibus" creating "pci"):

        config_found(self, "xxxbus");

If finding unknown children (e.g. "pci" finding pci devices):

        config_find(self, "pci", locs, aux);

Reply via email to