tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: autoconf question

On Fri, 4 Jul 2008, Quentin Garnier wrote:

That's what the attach args (aux) are for.  Have the parent enough

That and the interface attribute (the ia in the API).  If there are
two classes of child devices, that begs for different interface
attributes.  Please don't abuse the attach args for that.

Hmmm. Based on the docs available, I was under the impression that interface attributes were for the child to be able to attach to different parents. Such as the ld(4) driver attaching to all sorts of RAID controllers. In fact, one of the children of my driver is yet another (non-RAID) interface for ld.

So what I've got is

        device  sdhc: sdmmcbus
        attach  sdhc at pci with sdhc_pci
        file . . . .

        device  sdmmc { }
        attach  sdmmc at sdmmcbus
        file . . . .

        attach ld at sdmmc with ld_sdmmc
        file .../ld_sdmmc.c

        device flashcard at sdmmc
        file ...

When an instance of sdmmc attaches to the sdmmcbus (ie, a card is inserted), I want to attach an ld and a card-specific I/O driver for each "function" offered by the card. The configuration process seems only to evaluate the match of all possible children and picks the best one.

Since I need to have _two_ children, I can run config_match*() twice, but I need to have the ld driver get selected the first time, and the other driver selected on the second call.

I suppose I could make use of a pseudo-locator but that seems to me to be at least as ugly as passing a dont't-let-ld-match value in the attach_args.

|   Paul Goyette   | PGP DSS Key fingerprint: |  E-mail addresses:   |
| Customer Service | FA29 0E3B 35AF E8AE 6651 |   |
| Network Engineer | 0786 F758 55DE 53BA 7731 | |

Home | Main Index | Thread Index | Old Index