.TH "pm_send_all" 9 "pm_send_all" "25 May 1998" "Kernel Hacker's Manual" LINUX .SH NAME pm_send_all \- send request to all managed devices .SH SYNOPSIS .B "int" pm_send_all .BI "(pm_request_t " rqst "," .BI "void *" data ");" .SH ARGUMENTS .IP "rqst" 12 power management request .IP "data" 12 data for the callback .SH "DESCRIPTION" 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" 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. Zero is returned on success. If a suspend fails then the status from the device that vetoes the suspend is returned. .SH "BUGS" what stops two power management requests occuring in parallel and conflicting.