.\" This manpage has been automatically generated by docbook2man .\" from a DocBook document. This tool can be found at: .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . .TH "PM_SEND_ALL" "" "06 October 2005" "" "" .SH NAME pm_send_all \- send request to all managed devices .SH SYNOPSIS "SYNOPSIS" .sp \fB .sp int pm_send_all (pm_request_t \fIrqst\fB, void * \fIdata\fB); \fR .SH "ARGUMENTS" .TP \fB\fIrqst\fB\fR power management request .TP \fB\fIdata\fB\fR data for the callback .SH "DESCRIPTION" .PP Issue a power management request to a all devices. The PM_SUSPEND events are handled specially. Any device is permitted to fail a suspend by returning a non zero (error) value from its callback function. If any device vetoes a suspend request then all other devices that have suspended during the processing of this request are restored to their previous state. .SH "WARNING" .PP This function takes the pm_devs_lock. The lock is not dropped until the callbacks have completed. This prevents races against pm locking functions, races against module unload pm_unregister code. It does mean however that you must not issue pm_ functions within the callback or you will deadlock and users will hate you. .PP Zero is returned on success. If a suspend fails then the status from the device that vetoes the suspend is returned. .SH "BUGS" .PP what stops two power management requests occurring in parallel and conflicting.