---
name: "pm_send_all"
section: "9"
platform: "linux"
package: "linux-manual-2.6.18"
version: "2.6.18.dfsg.1-26etch2"
release: "Debian 4.0 (Etch)"
platforms: ["linux"]
url: "https://new.carta.tech/pm_send_all"
---

# pm\_send\_all(9)

send request to all managed devices

## NAME

pm\_send\_all - send request to all managed devices

## SYNOPSIS

**int pm\_send\_all(pm\_request\_t** *rqst***, void \*** *data***);**

## ARGUMENTS

*rqst*

power management request

*data*

data for the callback

## 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.

## 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.

## BUGS

what stops two power management requests occurring in parallel and conflicting.

## COPYRIGHT
