Merge "Fix 64-bit host build."
diff --git a/include/system/audio.h b/include/system/audio.h
index 4ccf262..56ab4e4 100644
--- a/include/system/audio.h
+++ b/include/system/audio.h
@@ -408,6 +408,8 @@
AUDIO_DEVICE_IN_USB_DEVICE |
AUDIO_DEVICE_IN_DEFAULT),
AUDIO_DEVICE_IN_ALL_SCO = AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET,
+ AUDIO_DEVICE_IN_ALL_USB = (AUDIO_DEVICE_IN_USB_ACCESSORY |
+ AUDIO_DEVICE_IN_USB_DEVICE),
};
typedef uint32_t audio_devices_t;
@@ -520,12 +522,25 @@
return false;
}
+static inline bool audio_is_usb_out_device(audio_devices_t device)
+{
+ return ((popcount(device) == 1) && (device & AUDIO_DEVICE_OUT_ALL_USB));
+}
+
+static inline bool audio_is_usb_in_device(audio_devices_t device)
+{
+ if ((device & AUDIO_DEVICE_BIT_IN) != 0) {
+ device &= ~AUDIO_DEVICE_BIT_IN;
+ if (popcount(device) == 1 && (device & AUDIO_DEVICE_IN_ALL_USB) != 0)
+ return true;
+ }
+ return false;
+}
+
+/* OBSOLETE - use audio_is_usb_out_device() instead. */
static inline bool audio_is_usb_device(audio_devices_t device)
{
- if ((popcount(device) == 1) && (device & AUDIO_DEVICE_OUT_ALL_USB))
- return true;
- else
- return false;
+ return audio_is_usb_out_device(device);
}
static inline bool audio_is_remote_submix_device(audio_devices_t device)
diff --git a/libcutils/properties.c b/libcutils/properties.c
index bfbd1b8..b283658 100644
--- a/libcutils/properties.c
+++ b/libcutils/properties.c
@@ -78,15 +78,16 @@
if ((result == INTMAX_MIN || result == INTMAX_MAX) && errno == ERANGE) {
// Over or underflow
result = default_value;
- ALOGV("%s(%s,%lld) - overflow", __FUNCTION__, key, default_value);
+ ALOGV("%s(%s,%" PRIdMAX ") - overflow", __FUNCTION__, key, default_value);
} else if (result < lower_bound || result > upper_bound) {
// Out of range of requested bounds
result = default_value;
- ALOGV("%s(%s,%lld) - out of range", __FUNCTION__, key, default_value);
+ ALOGV("%s(%s,%" PRIdMAX ") - out of range", __FUNCTION__, key, default_value);
} else if (end == buf) {
// Numeric conversion failed
result = default_value;
- ALOGV("%s(%s,%lld) - numeric conversion failed", __FUNCTION__, key, default_value);
+ ALOGV("%s(%s,%" PRIdMAX ") - numeric conversion failed",
+ __FUNCTION__, key, default_value);
}
errno = tmp;
diff --git a/libcutils/sched_policy.c b/libcutils/sched_policy.c
index d20d217..7c65843 100644
--- a/libcutils/sched_policy.c
+++ b/libcutils/sched_policy.c
@@ -38,6 +38,7 @@
#if defined(HAVE_ANDROID_OS) && defined(HAVE_SCHED_H) && defined(HAVE_PTHREADS)
+#include <linux/prctl.h>
#include <sched.h>
#include <pthread.h>
@@ -53,6 +54,9 @@
#define CAN_SET_SP_SYSTEM 0 // non-zero means to implement set_sched_policy(tid, SP_SYSTEM)
+// timer slack value in nS enforced when the thread moves to background
+#define TIMER_SLACK_BG 40000000
+
static pthread_once_t the_once = PTHREAD_ONCE_INIT;
static int __sys_supports_schedgroups = -1;
@@ -324,6 +328,8 @@
¶m);
}
+ prctl(PR_SET_TIMERSLACK_PID, policy == SP_BACKGROUND ? TIMER_SLACK_BG : 0, tid);
+
return 0;
}
diff --git a/libcutils/tests/Android.mk b/libcutils/tests/Android.mk
index e9d3ed7..d3e07f8 100644
--- a/libcutils/tests/Android.mk
+++ b/libcutils/tests/Android.mk
@@ -19,7 +19,8 @@
PropertiesTest.cpp \
shared_libraries := \
- libutils
+ libutils \
+ liblog
static_libraries := \
libcutils