Martin Husemann wrote:
On Thu, Feb 21, 2008 at 09:15:14AM -0500, Jared D. McNeill wrote:3. Get rid of pmf_device_register completely, and treat suspend/resume/shutdown as event handlers.Can you explain this variant?
Sure. All PMF callbacks that are not suspend or resume are currently registered using pmf_event_register/deregister. From the man page:
pmf_event_register(dev, ev, handler, global)
Register the callback handler to be called whenever an ev event
is triggered. If global is true, handler accepts anonymous
events from pmf_event_inject().
So we could add PMFE_DEVICE_{SUSPEND,RESUME,SHUTDOWN} types to the
pmf_generic_event_t enum, and use pmf_event_inject to invoke shutdown
handlers for devices. pmf_event_inject is currently asynchronous, so we
will need to add a flags argument to it to make it run a handler
synchronously.
Cheers, Jared