> Maybe ahc(4) was the only one that was broken. The point is that you > could have found this by comparing the object files.
Although ahc(4) has many quirks (to share sources among *BSD/Linux), only aic7xxx_osm.c belongs to ahc(4) and it doesn't have any bad cast, per output of grep adapt_dev sys/dev/ic/*. (note aic79xx_osm.c is for ahd(4)) It's always better thing to device_private()'fy, but the main trouble on device_t/softc split is that it isn't easy to check actual types (device_t or softc) against all (void *) pointers/arguments. On the other hand, (void *) casts against device_t variables are quite trivial. --- Izumi Tsutsui