Date: Thu, 6 Nov 2014 01:54:12 +0900
   From: Masao Uebayashi <uebay...@gmail.com>

   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");

Why use a string-keyed table with run-time lookups instead of a C
object with a C declaration?

/* ioconf.h */
extern struct cfiattrdata xxxbus;

/* xxx.c */
        config_found(self, &xxxbus);

Reply via email to