Merge "Update RenderScript docs: reduction, other API 23/24 changes, cleanup."
diff --git a/cmds/app_process/app_main.cpp b/cmds/app_process/app_main.cpp
index 2e02382..72a21e3 100644
--- a/cmds/app_process/app_main.cpp
+++ b/cmds/app_process/app_main.cpp
@@ -299,8 +299,7 @@
     }
 
     if (!niceName.isEmpty()) {
-        runtime.setArgv0(niceName.string());
-        set_process_name(niceName.string());
+        runtime.setArgv0(niceName.string(), true /* setProcName */);
     }
 
     if (zygote) {
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index 99cd2cf..0bacebd 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -269,7 +269,15 @@
     return jniRegisterNativeMethods(env, className, gMethods, numMethods);
 }
 
-void AndroidRuntime::setArgv0(const char* argv0) {
+void AndroidRuntime::setArgv0(const char* argv0, bool setProcName) {
+    if (setProcName) {
+        int len = strlen(argv0);
+        if (len < 15) {
+            pthread_setname_np(pthread_self(), argv0);
+        } else {
+            pthread_setname_np(pthread_self(), argv0 + len - 15);
+        }
+    }
     memset(mArgBlockStart, 0, mArgBlockLength);
     strlcpy(mArgBlockStart, argv0, mArgBlockLength);
 }
diff --git a/core/jni/android_util_Process.cpp b/core/jni/android_util_Process.cpp
index ee8fb19..2395ece 100644
--- a/core/jni/android_util_Process.cpp
+++ b/core/jni/android_util_Process.cpp
@@ -411,10 +411,8 @@
         env->ReleaseStringCritical(name, str);
     }
 
-    if (name8.size() > 0) {
-        const char* procName = name8.string();
-        set_process_name(procName);
-        AndroidRuntime::getRuntime()->setArgv0(procName);
+    if (!name8.isEmpty()) {
+        AndroidRuntime::getRuntime()->setArgv0(name8.string(), true /* setProcName */);
     }
 }
 
diff --git a/include/android_runtime/AndroidRuntime.h b/include/android_runtime/AndroidRuntime.h
index 9a3b990..ed77d9a 100644
--- a/include/android_runtime/AndroidRuntime.h
+++ b/include/android_runtime/AndroidRuntime.h
@@ -44,7 +44,7 @@
         Tool,
     };
 
-    void setArgv0(const char* argv0);
+    void setArgv0(const char* argv0, bool setProcName = false);
     void addOption(const char* optionString, void* extra_info = NULL);
 
     /**
diff --git a/media/mca/filterpacks/Android.mk b/media/mca/filterpacks/Android.mk
index 0ff7658..d89b1e9 100644
--- a/media/mca/filterpacks/Android.mk
+++ b/media/mca/filterpacks/Android.mk
@@ -50,4 +50,8 @@
 
 LOCAL_CFLAGS += -Wall -Werror -Wunused -Wunreachable-code
 
+# Bug: http://b/29823425 Disable constant-conversion warning triggered in
+# native/imageproc/to_rgba.c
+LOCAL_CFLAGS += -Wno-constant-conversion
+
 include $(BUILD_SHARED_LIBRARY)
diff --git a/services/core/jni/com_android_server_AlarmManagerService.cpp b/services/core/jni/com_android_server_AlarmManagerService.cpp
index 407c072..8f6f613 100644
--- a/services/core/jni/com_android_server_AlarmManagerService.cpp
+++ b/services/core/jni/com_android_server_AlarmManagerService.cpp
@@ -37,11 +37,39 @@
 #include <errno.h>
 #include <unistd.h>
 #include <linux/ioctl.h>
-#include <linux/android_alarm.h>
 #include <linux/rtc.h>
 
 #include <memory>
 
+//--------------------------------------------------------------------------
+// The android_alarm.h header has been deleted from the kernel headers.
+// Add only the parts still needed, this should be deleted in the future.
+#include <linux/ioctl.h>
+
+enum android_alarm_type {
+  ANDROID_ALARM_RTC_WAKEUP,
+  ANDROID_ALARM_RTC,
+  ANDROID_ALARM_ELAPSED_REALTIME_WAKEUP,
+  ANDROID_ALARM_ELAPSED_REALTIME,
+  ANDROID_ALARM_SYSTEMTIME,
+  ANDROID_ALARM_TYPE_COUNT,
+};
+
+enum android_alarm_return_flags {
+  ANDROID_ALARM_RTC_WAKEUP_MASK = 1U << ANDROID_ALARM_RTC_WAKEUP,
+  ANDROID_ALARM_RTC_MASK = 1U << ANDROID_ALARM_RTC,
+  ANDROID_ALARM_ELAPSED_REALTIME_WAKEUP_MASK = 1U << ANDROID_ALARM_ELAPSED_REALTIME_WAKEUP,
+  ANDROID_ALARM_ELAPSED_REALTIME_MASK = 1U << ANDROID_ALARM_ELAPSED_REALTIME,
+  ANDROID_ALARM_SYSTEMTIME_MASK = 1U << ANDROID_ALARM_SYSTEMTIME,
+  ANDROID_ALARM_TIME_CHANGE_MASK = 1U << 16
+};
+
+#define ALARM_IOW(c,type,size) _IOW('a', (c) | ((type) << 4), size)
+#define ANDROID_ALARM_WAIT _IO('a', 1)
+#define ANDROID_ALARM_SET(type) ALARM_IOW(2, type, struct timespec)
+#define ANDROID_ALARM_SET_RTC _IOW('a', 5, struct timespec)
+//--------------------------------------------------------------------------
+
 namespace android {
 
 static const size_t N_ANDROID_TIMERFDS = ANDROID_ALARM_TYPE_COUNT + 1;