dalvik: Use common SchedPolicy type and fix getpid() vs. gettid() bug

Signed-off-by: San Mehat <san@google.com>
diff --git a/vm/Thread.c b/vm/Thread.c
index 8f3650f..8a4ae4b 100644
--- a/vm/Thread.c
+++ b/vm/Thread.c
@@ -3110,18 +3110,16 @@
     if (gDvm.kernelGroupScheduling) {
         const char *grp = NULL;
 
-        if (policy == SCHED_BACKGROUND) {
+        if (policy == SP_BACKGROUND) {
             grp = "bg_non_interactive";
         }
 
         dvmChangeThreadSchedulerGroup(grp);
     } else {
         struct sched_param param;
-
         param.sched_priority = 0;
-        sched_setscheduler(getpid(),
-                           (policy == SCHED_BACKGROUND) ? 5 : 0,
-                            &param);
+        sched_setscheduler(dvmGetSysThreadId(),
+                           (policy == SP_BACKGROUND) ? 5 : 0, &param);
     }
 }
 
@@ -3143,9 +3141,9 @@
     newNice = kNiceValues[newPriority-1];
 
     if (newNice >= ANDROID_PRIORITY_BACKGROUND) {
-        dvmChangeThreadSchedulerPolicy(SCHED_BACKGROUND);
+        dvmChangeThreadSchedulerPolicy(SP_BACKGROUND);
     } else if (getpriority(PRIO_PROCESS, pid) >= ANDROID_PRIORITY_BACKGROUND) {
-        dvmChangeThreadSchedulerPolicy(SCHED_FOREGROUND);
+        dvmChangeThreadSchedulerPolicy(SP_FOREGROUND);
     }
 
     if (setpriority(PRIO_PROCESS, pid, newNice) != 0) {
diff --git a/vm/Thread.h b/vm/Thread.h
index 0859513..194e778 100644
--- a/vm/Thread.h
+++ b/vm/Thread.h
@@ -22,6 +22,8 @@
 
 #include "jni.h"
 
+#include <utils/threads.h> /* Need SchedPolicy */
+
 #if defined(CHECK_MUTEX) && !defined(__USE_UNIX98)
 /* glibc lacks this unless you #define __USE_UNIX98 */
 int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type);
@@ -416,11 +418,6 @@
 INLINE JNIEnv* dvmGetThreadJNIEnv(Thread* self) { return self->jniEnv; }
 INLINE void dvmSetThreadJNIEnv(Thread* self, JNIEnv* env) { self->jniEnv = env;}
 
-typedef enum SchedPolicy {
-    SCHED_BACKGROUND = 0,
-    SCHED_FOREGROUND = 1,
-} SchedPolicy;
-
 /*
  * Change the scheduling policy of the current process.
  * This is mapped onto whatever underlying scheme the kernel
diff --git a/vm/alloc/Heap.c b/vm/alloc/Heap.c
index cdb94c7..0d625b4 100644
--- a/vm/alloc/Heap.c
+++ b/vm/alloc/Heap.c
@@ -783,7 +783,7 @@
          */
 
         if (priorityResult >= ANDROID_PRIORITY_BACKGROUND) {
-            dvmChangeThreadSchedulerPolicy(SCHED_FOREGROUND);
+            dvmChangeThreadSchedulerPolicy(SP_FOREGROUND);
         }
 
         if (setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_NORMAL) != 0) {
@@ -1036,7 +1036,7 @@
         }
 
         if (oldThreadPriority >= ANDROID_PRIORITY_BACKGROUND) {
-            dvmChangeThreadSchedulerPolicy(SCHED_BACKGROUND);
+            dvmChangeThreadSchedulerPolicy(SP_BACKGROUND);
         }
     }
     gcElapsedTime = (dvmGetRelativeTimeUsec() - gcHeap->gcStartTime) / 1000;