#define _OSTHERMALNOTIFICATION_H_
#include <sys/cdefs.h>
+#include <Availability.h>
/*
** OSThermalNotification.h
__BEGIN_DECLS
+/* Define pressure levels usable by OSThermalPressureLevel */
+typedef enum {
+#if TARGET_OS_OSX || TARGET_OS_MACCATALYST
+ kOSThermalPressureLevelNominal = 0,
+ kOSThermalPressureLevelModerate,
+ kOSThermalPressureLevelHeavy,
+ kOSThermalPressureLevelTrapping,
+ kOSThermalPressureLevelSleeping
+#else
+ kOSThermalPressureLevelNominal = 0,
+ kOSThermalPressureLevelLight = 10,
+ kOSThermalPressureLevelModerate = 20,
+ kOSThermalPressureLevelHeavy = 30,
+ kOSThermalPressureLevelTrapping = 40,
+ kOSThermalPressureLevelSleeping = 50
+#endif
+} OSThermalPressureLevel;
+
+/*
+ ** External notify(3) string for thermal pressure level notification
+ */
+__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_7_0)
+extern const char * const kOSThermalNotificationPressureLevelName;
+
+
+#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && \
+ __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_2_0
+
typedef enum {
OSThermalNotificationLevelAny = -1,
OSThermalNotificationLevelNormal = 0,
- OSThermalNotificationLevel70PercentTorch = 1,
- OSThermalNotificationLevel70PercentBacklight = 3,
- OSThermalNotificationLevel50PercentTorch = 3,
- OSThermalNotificationLevel50PercentBacklight = 5,
- OSThermalNotificationLevelDisableTorch = 5,
- OSThermalNotificationLevel25PercentBacklight = 7,
- OSThermalNotificationLevelAppTerminate = 12,
- OSThermalNotificationLevelDeviceRestart = 16
} OSThermalNotificationLevel;
+extern OSThermalNotificationLevel _OSThermalNotificationLevelForBehavior(int) __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_4_2);
+extern void _OSThermalNotificationSetLevelForBehavior(int, int) __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_4_2);
+
+enum {
+ kOSThermalMitigationNone,
+ kOSThermalMitigation70PercentTorch,
+ kOSThermalMitigation70PercentBacklight,
+ kOSThermalMitigation50PercentTorch,
+ kOSThermalMitigation50PercentBacklight,
+ kOSThermalMitigationDisableTorch,
+ kOSThermalMitigation25PercentBacklight,
+ kOSThermalMitigationDisableMapsHalo,
+ kOSThermalMitigationAppTerminate,
+ kOSThermalMitigationDeviceRestart,
+ kOSThermalMitigationThermalTableReady,
+ kOSThermalMitigationCount
+};
+
+#define OSThermalNotificationLevel70PercentTorch _OSThermalNotificationLevelForBehavior(kOSThermalMitigation70PercentTorch)
+#define OSThermalNotificationLevel70PercentBacklight _OSThermalNotificationLevelForBehavior(kOSThermalMitigation70PercentBacklight)
+#define OSThermalNotificationLevel50PercentTorch _OSThermalNotificationLevelForBehavior(kOSThermalMitigation50PercentTorch)
+#define OSThermalNotificationLevel50PercentBacklight _OSThermalNotificationLevelForBehavior(kOSThermalMitigation50PercentBacklight)
+#define OSThermalNotificationLevelDisableTorch _OSThermalNotificationLevelForBehavior(kOSThermalMitigationDisableTorch)
+#define OSThermalNotificationLevel25PercentBacklight _OSThermalNotificationLevelForBehavior(kOSThermalMitigation25PercentBacklight)
+#define OSThermalNotificationLevelDisableMapsHalo _OSThermalNotificationLevelForBehavior(kOSThermalMitigationDisableMapsHalo)
+#define OSThermalNotificationLevelAppTerminate _OSThermalNotificationLevelForBehavior(kOSThermalMitigationAppTerminate)
+#define OSThermalNotificationLevelDeviceRestart _OSThermalNotificationLevelForBehavior(kOSThermalMitigationDeviceRestart)
+
/* Backwards compatibility */
#define OSThermalNotificationLevelWarning OSThermalNotificationLevel70PercentBacklight
#define OSThermalNotificationLevelUrgent OSThermalNotificationLevelAppTerminate
/*
** Simple polling interface to detect current thermal level
*/
-
-OSThermalNotificationLevel OSThermalNotificationCurrentLevel(void);
+__OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_2_0)
+extern OSThermalNotificationLevel OSThermalNotificationCurrentLevel(void);
/*
** External notify(3) string for manual notification setup
*/
+__OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_2_0)
+extern const char * const kOSThermalNotificationName;
+
+/*
+** External notify(3) string for alerting user of a thermal condition
+*/
+__OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_6_0)
+extern const char * const kOSThermalNotificationAlert;
+
+/*
+** External notify(3) string for notifying system the options taken to resolve thermal condition
+*/
+__OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_6_0)
+extern const char * const kOSThermalNotificationDecision;
-extern const char *kOSThermalNotificationName;
+#endif // __IPHONE_OS_VERSION_MIN_REQUIRED
__END_DECLS