summaryrefslogtreecommitdiff
path: root/src/kmk/main.c
diff options
context:
space:
mode:
authorFelix Geyer <fgeyer@debian.org>2013-01-26 15:15:05 +0100
committerFelix Geyer <fgeyer@debian.org>2013-01-26 15:15:05 +0100
commitb31bdef8a3eba48bf069962004794c7ca58a6b92 (patch)
treeff96a893bef3b0d60355ceed717ef44f04168114 /src/kmk/main.c
parent361f05c7a4ee30ae04d1168db696e7003bd43dfc (diff)
downloadkbuild-b31bdef8a3eba48bf069962004794c7ca58a6b92.tar.gz
Imported Upstream version 0.1.9998svn2577+dfsgupstream/0.1.9998svn2577+dfsg
Diffstat (limited to 'src/kmk/main.c')
-rw-r--r--src/kmk/main.c34
1 files changed, 31 insertions, 3 deletions
diff --git a/src/kmk/main.c b/src/kmk/main.c
index e901e98..528ce60 100644
--- a/src/kmk/main.c
+++ b/src/kmk/main.c
@@ -55,6 +55,9 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
# define INCL_BASE
# include <os2.h>
# endif
+# ifdef __HAIKU__
+# include <OS.h>
+# endif
#endif /* KMK*/
#if defined(HAVE_SYS_RESOURCE_H) && defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT)
@@ -835,7 +838,7 @@ set_make_priority_and_affinity (void)
if (process_affinity)
if (!SetProcessAffinityMask (GetCurrentProcess (), process_affinity))
fprintf (stderr, "warning: SetPriorityClass (,%#x) failed with last error %d\n",
- process_affinity, GetLastError());
+ process_affinity, GetLastError ());
switch (process_priority)
{
@@ -845,12 +848,31 @@ set_make_priority_and_affinity (void)
case 3: dwPriority = NORMAL_PRIORITY_CLASS; break;
case 4: dwPriority = HIGH_PRIORITY_CLASS; break;
case 5: dwPriority = REALTIME_PRIORITY_CLASS; break;
- default: fatal(NILF, _("invalid priority %d\n"), process_priority);
+ default: fatal (NILF, _("invalid priority %d\n"), process_priority);
}
if (!SetPriorityClass (GetCurrentProcess (), dwPriority))
fprintf (stderr, "warning: SetPriorityClass (,%#x) failed with last error %d\n",
dwPriority, GetLastError ());
+#elif defined(__HAIKU__)
+ int32 iNewPriority;
+ status_t error;
+
+ switch (process_priority)
+ {
+ case 0: return;
+ case 1: iNewPriority = B_LOWEST_ACTIVE_PRIORITY; break;
+ case 2: iNewPriority = B_LOW_PRIORITY; break;
+ case 3: iNewPriority = B_NORMAL_PRIORITY; break;
+ case 4: iNewPriority = B_URGENT_DISPLAY_PRIORITY; break;
+ case 5: iNewPriority = B_REAL_TIME_DISPLAY_PRIORITY; break;
+ default: fatal (NILF, _("invalid priority %d\n"), process_priority);
+ }
+ error = set_thread_priority (find_thread (NULL), iNewPriority);
+ if (error != B_OK)
+ fprintf (stderr, "warning: set_thread_priority (,%d) failed: %s\n",
+ newPriority, strerror (error));
+
# else /*#elif HAVE_NICE */
int nice_level = 0;
switch (process_priority)
@@ -861,7 +883,7 @@ set_make_priority_and_affinity (void)
case 3: nice_level = 0; break;
case 4: nice_level = -10; break;
case 5: nice_level = -19; break;
- default: fatal(NILF, _("invalid priority %d\n"), process_priority);
+ default: fatal (NILF, _("invalid priority %d\n"), process_priority);
}
errno = 0;
if (nice (nice_level) == -1 && errno != 0)
@@ -3696,6 +3718,9 @@ print_data_base ()
print_rule_data_base ();
print_file_data_base ();
print_vpath_data_base ();
+#ifdef KMK
+ print_kbuild_data_base ();
+#endif
#ifndef CONFIG_WITH_STRCACHE2
strcache_print_stats ("#");
#else
@@ -3720,6 +3745,9 @@ print_stats ()
print_variable_stats ();
print_file_stats ();
+# ifdef KMK
+ print_kbuild_define_stats ();
+# endif
# ifndef CONFIG_WITH_STRCACHE2
strcache_print_stats ("#");
# else