> On May 17, 2015, at 3:40 PM, Paul Goyette <[email protected]> wrote: > > My crusade for modularity has arrived at the pcppi(4) driver, and I've > discovered that there are a number of places in the code where a #if is used > to determine whether or not some _other_ driver is available to provide > certain routines. For pcppi(4), these dependencies are for the attimer(4) > and pckbd(4) drivers. (While I haven't yet gone searching, I'd be willing to > wager that there are other similar examples in other drivers.) > > These #if constructs make it very difficult to modularize these drivers. > > I'd like to propose the following new kernel mechanism that will allow us to > remove these #if dependencies. > > 1. Extend the struct cfattach to have an additional member, and create > a new CFATTACH_DECL4_NEW macro to initialize it (and updates to the > existing CFATTACH_* family to default the value to NULL). > > int (*ca_callback)(device_t, int, void *); > > (This will require a kernel version bump.)
Ewww. Gross. It might be better to use weak symbols and then fix them up later.
