.\" 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.