Entry points: Autoconfiguration struct cfattach hpa_ca = { sizeof (struct hpa_softc), hpa_match, hpa_attach }; Our device state is stored in the software configuration (softc) structure, which gets set to zero for us. Probe/Match: Do a test to tell if our device is there, usually with the help of some bus specific functions. Return 1 if we have a match, or 0 otherwise. Attach: Initialise device map memory map Interrupt or start polling timer setup higher level abstraction structures (ie ifnet for network drivers) start other timers