3
PRIVILEGE=hal-power-suspend
4
if [ "$HAVE_POLKIT" = "1" ] ; then
5
if [ "$HAL_METHOD_INVOKED_BY_UID" != "0" ] ; then
6
RESULT=$(polkit-is-privileged --privilege $PRIVILEGE \
7
--user $HAL_METHOD_INVOKED_BY_UID \
8
--system-bus-unique-name $HAL_METHOD_INVOKED_BY_SYSTEMBUS_CONNECTION_NAME 2>&1)
10
if [ "$IS_PRIVILEGED" != "0" ] ; then
11
echo org.freedesktop.Hal.Device.PermissionDeniedByPolicy >&2
12
echo $PRIVILEGE refused uid $HAL_METHOD_INVOKED_BY_UID >&2
18
alarm_not_supported() {
19
echo org.freedesktop.Hal.Device.SystemPowerManagement.AlarmNotSupported >&2
20
echo Waking the system up is not supported >&2
25
echo org.freedesktop.Hal.Device.SystemPowerManagement.NotSupported >&2
26
echo No suspend-hybrid method found >&2
32
# Make a suitable command line argument so that the tools can do the correct
33
# quirks for video resume.
34
# Passing the quirks to the tool allows the tool to not depend on HAL for data.
36
[ "$HAL_PROP_POWER_MANAGEMENT_QUIRK_S3_BIOS" = "true" ] && QUIRKS="$QUIRKS --quirk-s3-bios"
37
[ "$HAL_PROP_POWER_MANAGEMENT_QUIRK_S3_MODE" = "true" ] && QUIRKS="$QUIRKS --quirk-s3-mode"
38
[ "$HAL_PROP_POWER_MANAGEMENT_QUIRK_DPMS_SUSPEND" = "true" ] && QUIRKS="$QUIRKS --quirk-dpms-suspend"
39
[ "$HAL_PROP_POWER_MANAGEMENT_QUIRK_DPMS_ON" = "true" ] && QUIRKS="$QUIRKS --quirk-dpms-on"
40
[ "$HAL_PROP_POWER_MANAGEMENT_QUIRK_VBESTATE_RESTORE" = "true" ] && QUIRKS="$QUIRKS --quirk-vbestate"
41
[ "$HAL_PROP_POWER_MANAGEMENT_QUIRK_VBEMODE_RESTORE" = "true" ] && QUIRKS="$QUIRKS --quirk-vbemode"
42
[ "$HAL_PROP_POWER_MANAGEMENT_QUIRK_VGA_MODE_3" = "true" ] && QUIRKS="$QUIRKS --quirk-vga-mode3"
43
[ "$HAL_PROP_POWER_MANAGEMENT_QUIRK_VBE_POST" = "true" ] && QUIRKS="$QUIRKS --quirk-vbepost"
44
[ "$HAL_PROP_POWER_MANAGEMENT_QUIRK_RADEON_OFF" = "true" ] && QUIRKS="$QUIRKS --quirk-radeon-off"
46
if [ -x "/usr/sbin/pm-suspend-hybrid" ] ; then
47
if [ $seconds_to_sleep != "0" ] ; then
50
/usr/sbin/pm-suspend-hybrid $QUIRKS
5
hal_check_priv org.freedesktop.hal.power-management.suspend