summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--schedutils/chrt.12
-rw-r--r--schedutils/chrt.c29
2 files changed, 27 insertions, 4 deletions
diff --git a/schedutils/chrt.1 b/schedutils/chrt.1
index 83b3dbb0c..06c58b479 100644
--- a/schedutils/chrt.1
+++ b/schedutils/chrt.1
@@ -63,6 +63,7 @@ operate on an existing PID and do not launch a new task
.B -b, --batch
set scheduling policy to
.BR SCHED_BATCH
+(Linux specific)
.TP
.B -f, --fifo
set scheduling policy to
@@ -71,6 +72,7 @@ set scheduling policy to
.B -i, --idle
set schedulng policy to
.BR SCHED_IDLE
+(Linux specific)
.TP
.B -m, --max
show minimum and maximum valid priorities, then exit
diff --git a/schedutils/chrt.c b/schedutils/chrt.c
index dcd052403..7d6bb2dbc 100644
--- a/schedutils/chrt.c
+++ b/schedutils/chrt.c
@@ -34,7 +34,7 @@
/* the SCHED_BATCH is supported since Linux 2.6.16
* -- temporary workaround for people with old glibc headers
*/
-#ifndef SCHED_BATCH
+#if defined (__linux__) && !defined(SCHED_BATCH)
# define SCHED_BATCH 3
#endif
@@ -42,7 +42,7 @@
* commit id 0e6aca43e08a62a48d6770e9a159dbec167bf4c6
* -- temporary workaround for people with old glibc headers
*/
-#ifndef SCHED_IDLE
+#if defined (__linux__) && !defined(SCHED_IDLE)
# define SCHED_IDLE 5
#endif
@@ -95,15 +95,19 @@ static void show_rt_info(const char *what, pid_t pid)
case SCHED_FIFO:
printf("SCHED_FIFO\n");
break;
+#ifdef SCHED_IDLE
case SCHED_IDLE:
printf("SCHED_IDLE\n");
break;
+#endif
case SCHED_RR:
printf("SCHED_RR\n");
break;
+#ifdef SCHED_BATCH
case SCHED_BATCH:
printf("SCHED_BATCH\n");
break;
+#endif
default:
printf(_("unknown\n"));
}
@@ -119,8 +123,21 @@ static void show_min_max(void)
{
int i;
int policies[] = { SCHED_OTHER, SCHED_FIFO, SCHED_RR,
- SCHED_BATCH, SCHED_IDLE };
- const char *names[] = { "OTHER", "FIFO", "RR", "BATCH", "IDLE" };
+#ifdef SCHED_BATCH
+ SCHED_BATCH,
+#endif
+#ifdef SCHED_IDLE
+ SCHED_IDLE,
+#endif
+ };
+ const char *names[] = { "OTHER", "FIFO", "RR",
+#ifdef SCHED_BATCH
+ "BATCH",
+#endif
+#ifdef SCHED_IDLE
+ "IDLE",
+#endif
+ };
for (i = 0; i < ARRAY_SIZE(policies); i++) {
int max = sched_get_priority_max(policies[i]);
@@ -164,13 +181,17 @@ int main(int argc, char *argv[])
switch (i) {
case 'b':
+#ifdef SCHED_BATCH
policy = SCHED_BATCH;
+#endif
break;
case 'f':
policy = SCHED_FIFO;
break;
case 'i':
+#ifdef SCHED_IDLE
policy = SCHED_IDLE;
+#endif
break;
case 'm':
show_min_max();