| // Copyright (c) 2012 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef POWER_MANAGER_COMMON_POWER_CONSTANTS_H_ |
| #define POWER_MANAGER_COMMON_POWER_CONSTANTS_H_ |
| |
| #include <stdint.h> |
| |
| #include <string> |
| |
| #include "base/time/time.h" |
| |
| namespace power_manager { |
| |
| // Preference names. |
| |
| // Battery seconds-to-empty and percentage (in the range [0.0, 100.0]) |
| // thresholds at which the system should shut down automatically. If both prefs |
| // are set, only the percent-based pref will take effect. |
| extern const char kLowBatteryShutdownTimePref[]; |
| extern const char kLowBatteryShutdownPercentPref[]; |
| |
| // Integer default delays for dimming the screen, turning it off, and suspending |
| // the system while on AC and battery power. Note that these values are |
| // overriden by policy messages sent from Chrome. |
| extern const char kPluggedDimMsPref[]; |
| extern const char kPluggedOffMsPref[]; |
| extern const char kPluggedSuspendMsPref[]; |
| extern const char kUnpluggedDimMsPref[]; |
| extern const char kUnpluggedOffMsPref[]; |
| extern const char kUnpluggedSuspendMsPref[]; |
| |
| // If true, the system will not suspend due to user inactivity. |
| extern const char kDisableIdleSuspendPref[]; |
| |
| // If true, force special behavior for factory mode (e.g. don't suspend on lid |
| // close or idle, don't turn the screen off for inactivity, etc.). |
| extern const char kFactoryModePref[]; |
| |
| // If true, powerd will monitor the lid switch. |
| extern const char kUseLidPref[]; |
| |
| // If true, powerd will detect hovering if a capable device is present. |
| extern const char kDetectHoverPref[]; |
| |
| // Integer amount of time that powerd should wait before retrying after a failed |
| // suspend attempt. |
| extern const char kRetrySuspendMsPref[]; |
| |
| // Integer number of failed suspend attempts before shutting the system down. |
| extern const char kRetrySuspendAttemptsPref[]; |
| |
| // Minimum brightness level (in hardware-specific units) that the backlight |
| // should be remain at before it's turned off entirely. If unset, a default |
| // based on the maximum brightness level is used. |
| extern const char kMinVisibleBacklightLevelPref[]; |
| |
| // If true, powerd will jump directly from the min-visible-level to 0 rather |
| // than animating smoothly. |
| extern const char kInstantTransitionsBelowMinLevelPref[]; |
| |
| // If true, the system will not be suspended due to user inactivity while |
| // something is connected to the headphone jack. |
| extern const char kAvoidSuspendWhenHeadphoneJackPluggedPref[]; |
| |
| // Newline-separated list of names of inputs that wake the system from suspend. |
| extern const char kWakeupInputPref[]; |
| |
| // Fraction of the battery's total charge, in the range (0.0, 1.0], at which it |
| // should be reported as full in the UI. |
| extern const char kPowerSupplyFullFactorPref[]; |
| |
| // Maximum luminance of the internal panel. Optionally set through VPD in the |
| // factory to allow specifying different default brightness percentages for |
| // different displays in kInternalBacklightNoAls*BrightnessPref. |
| extern const char kInternalBacklightMaxNitsPref[]; |
| |
| // Ambient-light-sensor-derived internal backlight brightness steps. See |
| // powerd/policy/ambient_light_handler.h for details. |
| extern const char kInternalBacklightAlsStepsPref[]; |
| |
| // Starting internal backlight brightness while on line and battery power for |
| // systems lacking an ambient light sensor. See |
| // powerd/policy/internal_backlight_controller.cc for details. |
| extern const char kInternalBacklightNoAlsAcBrightnessPref[]; |
| extern const char kInternalBacklightNoAlsBatteryBrightnessPref[]; |
| |
| // Ambient-light-sensor-derived keyboard backlight brightness steps. |
| extern const char kKeyboardBacklightAlsStepsPref[]; |
| |
| // User-requested keyboard backlight brightness steps, given as ascending |
| // newline-separated percentages in the range [0.0, 100.0]. |
| extern const char kKeyboardBacklightUserStepsPref[]; |
| |
| // Initial brightness for the keyboard backlight for systems that lack ambient |
| // light sensors, in the range [0.0, 100.0]. |
| extern const char kKeyboardBacklightNoAlsBrightnessPref[]; |
| |
| // Duration in milliseconds the keyboard backlight should remain on after |
| // hovering stops (on systems that support hover detection) or after the last |
| // report of user activity (if kKeyboardBacklightTurnOnForUserActivityPref is |
| // enabled). |
| extern const char kKeyboardBacklightKeepOnMsPref[]; |
| |
| // Alternate delay used in place of |kKeyboardBacklightKeepOnMsPref| while |
| // fullscreen video is playing. |
| extern const char kKeyboardBacklightKeepOnDuringVideoMsPref[]; |
| |
| // If true, powerd will dynamically turn the keyboard backlight on when user |
| // activity is detected and disable it after kKeyboardBacklightKeepOnMsPref. |
| // This can be set on systems that lack ambient light sensors and hover |
| // detection to reduce the backlight's power consumption. It has no effect if |
| // kDetectHoverPref is set. |
| extern const char kKeyboardBacklightTurnOnForUserActivityPref[]; |
| |
| // Smoothing constant used to calculated smoothed ambient lux level, in the |
| // range of (0.0, 1.0]. Value closer to 0.0 means smoothed_lux will respond to |
| // ambient light change slower. Value of 1.0 means smoothing is disabled. |
| extern const char kAlsSmoothingConstantPref[]; |
| |
| // If true, the system won't be suspended due to user inactivity unless a USB |
| // input device is connected. |
| extern const char kRequireUsbInputDeviceToSuspendPref[]; |
| |
| // Milliseconds to wait before polling the power status again after the number |
| // of samples is equal to |kMaxCurrentSamplesPref|. |
| extern const char kBatteryPollIntervalPref[]; |
| |
| // Milliseconds to wait before polling the power status again when the number of |
| // samples is less than |kMaxCurrentSamplesPref|. |
| extern const char kBatteryPollIntervalInitialPref[]; |
| |
| // Milliseconds to wait after boot, line power being connected or disconnected, |
| // or the system resuming before start collecting the battery current to |
| // provide time-to-empty/full estimates. |
| extern const char kBatteryStabilizedAfterStartupMsPref[]; |
| extern const char kBatteryStabilizedAfterLinePowerConnectedMsPref[]; |
| extern const char kBatteryStabilizedAfterLinePowerDisconnectedMsPref[]; |
| extern const char kBatteryStabilizedAfterResumeMsPref[]; |
| |
| // If true, multiple battery directories will be read from sysfs if present. |
| extern const char kMultipleBatteriesPref[]; |
| |
| // Number of current and charge samples that need to be averaged before |
| // providing time-to-empty/full estimates. |
| extern const char kMaxCurrentSamplesPref[]; |
| extern const char kMaxChargeSamplesPref[]; |
| |
| // Minimum maximum power in watts that must be reported by a USB power source in |
| // order for it to be classified as an AC power source. |
| extern const char kUsbMinAcWattsPref[]; |
| |
| // String describing the position of each charging port on the system. Each line |
| // contains "NAME ENUM", where NAME is the basename of a sysfs subdirectory |
| // describing the port (e.g. "CROS_USB_PD_CHARGER0") and ENUM is the name of |
| // value from the PowerSupplyProperties::PowerSource::Port enum (e.g. "LEFT", |
| // "RIGHT", "LEFT_FRONT", etc.). |
| extern const char kChargingPortsPref[]; |
| |
| // Milliseconds to wait after setting the backlight to 0 before asking Chrome to |
| // turn off the display via DPMS. |
| extern const char kTurnOffScreenTimeoutMsPref[]; |
| |
| // If true, disables dark resume even on systems where it is available. |
| extern const char kDisableDarkResumePref[]; |
| |
| // Seconds in suspend without full resume after which the device should shutdown |
| // proactively. Should be a positive integer for the feature to be enabled. |
| extern const char kShutdownFromSuspendSecPref[]; |
| |
| // sysfs device directories with power/dark_resume_active and |
| // power/dark_resume_source files, respectively, that are used to control |
| // whether dark resume is enabled in the kernel. |
| extern const char kDarkResumeDevicesPref[]; |
| extern const char kDarkResumeSourcesPref[]; |
| |
| // If true, policies sent by Chrome will be ignored. |
| extern const char kIgnoreExternalPolicyPref[]; |
| |
| // Number of user sessions that have been active on the current charge. |
| // Written by powerd to persist the count across reboots for metrics-reporting. |
| extern const char kNumSessionsOnCurrentChargePref[]; |
| |
| // Number of ambient light sensors on the device. |
| extern const char kHasAmbientLightSensorPref[]; |
| |
| // If true, device is allowed to have Ambient EQ feature. |
| extern const char kAllowAmbientEQ[]; |
| |
| // If true, the device has a charge controller responsible for handling |
| // power policies. |
| extern const char kHasChargeControllerPref[]; |
| |
| // If true, the device has a keyboard backlight. |
| extern const char kHasKeyboardBacklightPref[]; |
| |
| // If true, the device doesn't have an internal display. |
| extern const char kExternalDisplayOnlyPref[]; |
| |
| // If true, the device has a legacy ACPI power button that doesn't report button |
| // releases properly. |
| extern const char kLegacyPowerButtonPref[]; |
| |
| // If true, record suspend and resume timestamps in eventlog using the "mosys" |
| // command. |
| extern const char kMosysEventlogPref[]; |
| |
| // If true, use CRAS, the Chrome OS audio server, to monitor audio activity and |
| // to mute audio when suspending. |
| extern const char kUseCrasPref[]; |
| |
| // Integer TPM dictionary-attack counter value at or above which the system will |
| // suspend instead of shutting down in response to idle or lid-close (see |
| // http://crbug.com/462428). Set to 0 to disable querying the TPM. |
| extern const char kTpmCounterSuspendThresholdPref[]; |
| |
| // Time interval between fetches of the TPM status, in seconds. |
| extern const char kTpmStatusIntervalSecPref[]; |
| |
| // If true, suspend to idle by writing freeze to /sys/power/state. Otherwise |
| // suspend by writing mem to /sys/power/state. |
| extern const char kSuspendToIdlePref[]; |
| |
| // If true, update wifi transmit power when in tablet vs. clamshell mode. |
| extern const char kSetWifiTransmitPowerForTabletModePref[]; |
| |
| // If true, update wifi transmit power based on proximity sensors. |
| extern const char kSetWifiTransmitPowerForProximityPref[]; |
| |
| // If true, update cellular transmit power when in tablet vs. clamshell mode. |
| extern const char kSetCellularTransmitPowerForTabletModePref[]; |
| |
| // If true, update cellular transmit power based on proximity sensors. |
| extern const char kSetCellularTransmitPowerForProximityPref[]; |
| |
| // GPIO number for the dynamic power reduction signal of a built-in cellular |
| // modem. |
| extern const char kSetCellularTransmitPowerDprGpioPref[]; |
| |
| // If true, enables console during suspend. |
| extern const char kEnableConsoleDuringSuspendPref[]; |
| |
| // Maximum time in milliseconds to wait to resuspend (i.e. wait for all suspend |
| // delays) after a dark resume. |
| extern const char kMaxDarkSuspendDelayTimeoutMsPref[]; |
| |
| // Mode for system suspend. Valid values are "s2idle", "shallow" and "deep". |
| // Please look at https://www.kernel.org/doc/Documentation/power/states.txt for |
| // more information. |
| extern const char kSuspendModePref[]; |
| |
| // If true, enables wake from suspend (S3/S0ix) on DP hot plug detect on type-c |
| // ports. |
| extern const char kWakeOnDpPref[]; |
| |
| // Time in hours for Smart Discharge to help device last through. |
| extern const char kSmartDischargeToZeroHrPref[]; |
| |
| // Current in microamps that the device is expected to consume in battery cutoff |
| // state. This field allows EC to calculate the battery level at which the |
| // device should enter battery cutoff state. |
| extern const char kCutoffPowerUaPref[]; |
| |
| // Current in microamps that the device is expected to consume in hibernate |
| // state. This field allows EC to calculate the battery level at which the |
| // device should enter S5 or hibernate if EC can wake up by timer. |
| extern const char kHibernatePowerUaPref[]; |
| |
| // Miscellaneous constants. |
| |
| // Name of the cros_fp fingerprint sensor input device. |
| extern const char kCrosFpInputDevName[]; |
| |
| // sysfs directory containing internal backlight devices and a glob-style |
| // pattern matching device names. |
| extern const char kInternalBacklightPath[]; |
| extern const char kInternalBacklightPattern[]; |
| |
| // sysfs directory containing keyboard backlight devices and a glob-style |
| // pattern matching device names. |
| extern const char kKeyboardBacklightPath[]; |
| extern const char kKeyboardBacklightPattern[]; |
| |
| // udev subsystem used to announce changes to keyboard backlights. |
| extern const char kKeyboardBacklightUdevSubsystem[]; |
| |
| // sysfs directory containing information about connected power sources. |
| extern const char kPowerStatusPath[]; |
| |
| // sysfs path to the wakeup control file relative to the device sysfs |
| // directory (power/wakeup). |
| extern const char kPowerWakeup[]; |
| |
| // Program used to run code as root. |
| extern const char kSetuidHelperPath[]; |
| |
| // Information about "NameOwnerChanged" D-Bus signals emitted by dbus-daemon. |
| extern const char kBusServiceName[]; |
| extern const char kBusServicePath[]; |
| extern const char kBusInterface[]; |
| extern const char kBusNameOwnerChangedSignal[]; |
| |
| // Small value used when comparing floating-point percentages. |
| extern const double kEpsilon; |
| |
| // Total time that should be used to gradually animate the backlight level |
| // to a new brightness, in milliseconds. Note that some |
| // BacklightController implementations may not use animated transitions. |
| extern const int64_t kFastBacklightTransitionMs; |
| extern const int64_t kSlowBacklightTransitionMs; |
| // udev subsystem to watch for input device related events. |
| extern const char kInputUdevSubsystem[]; |
| |
| enum class PowerSource { |
| AC, |
| BATTERY, |
| }; |
| |
| enum class LidState { |
| OPEN, |
| CLOSED, |
| NOT_PRESENT, |
| }; |
| |
| enum class RadioTransmitPower { |
| LOW, |
| HIGH, |
| UNSPECIFIED, |
| }; |
| |
| // Convertible Chromebooks may either be folded into a tablet or used as a |
| // clamshell. |
| enum class TabletMode { |
| ON, |
| OFF, |
| UNSUPPORTED, |
| }; |
| |
| // Chromebooks may have one or more sensors that are able to indicate |
| // the user's physical proximity to the device. |
| enum class UserProximity { |
| NEAR, |
| FAR, |
| UNKNOWN, |
| }; |
| |
| enum class SessionState { |
| STOPPED, |
| STARTED, |
| }; |
| |
| enum class DisplayMode { |
| NORMAL, |
| PRESENTATION, |
| }; |
| |
| enum class ButtonState { |
| UP, |
| DOWN, |
| REPEAT, |
| }; |
| |
| // Reasons for the system being shut down or rebooted. |
| // Note: These are reported in a histogram and must not be renumbered. |
| enum class ShutdownReason { |
| // Explicit user request (e.g. holding power button). |
| USER_REQUEST = 0, |
| // Request from StateController (e.g. lid was closed or user was inactive). |
| STATE_TRANSITION = 1, |
| // Battery level dropped below shutdown threshold. |
| LOW_BATTERY = 2, |
| // Multiple suspend attempts failed. |
| SUSPEND_FAILED = 3, |
| // Device spent |kShutdownFromSuspendAfterSecPref| in suspend without full |
| // resume. |
| SHUTDOWN_FROM_SUSPEND = 4, |
| // System is being rebooted to apply an update. |
| SYSTEM_UPDATE = 5, |
| // Unclassified external request sent to powerd by another process. |
| OTHER_REQUEST_TO_POWERD = 7, |
| }; |
| |
| enum class WifiRegDomain { |
| FCC, |
| EU, |
| REST_OF_WORLD, |
| NONE, |
| }; |
| |
| // Returns human-readable descriptions of enum values. |
| std::string PowerSourceToString(PowerSource source); |
| std::string LidStateToString(LidState state); |
| std::string TabletModeToString(TabletMode mode); |
| std::string UserProximityToString(UserProximity proximity); |
| std::string SessionStateToString(SessionState state); |
| std::string DisplayModeToString(DisplayMode mode); |
| std::string ButtonStateToString(ButtonState state); |
| std::string ShutdownReasonToString(ShutdownReason reason); |
| std::string WifiRegDomainToString(WifiRegDomain domain); |
| |
| } // namespace power_manager |
| |
| #endif // POWER_MANAGER_COMMON_POWER_CONSTANTS_H_ |