157257Sdufault#include <errno.h> 257257Sdufault#include <unistd.h> 357257Sdufault#include <sched.h> 457257Sdufault#include <stdio.h> 557257Sdufault 657257Sdufault#include <err.h> 757257Sdufault#include <sysexits.h> 857257Sdufault#include "prutil.h" 957257Sdufault 1057257Sdufault/* 1157257Sdufault * $FreeBSD$ 1257257Sdufault */ 1357257Sdufaultvoid quit(const char *text) 1457257Sdufault{ 1557257Sdufault err(errno, text); 1657257Sdufault} 1757257Sdufault 1857257Sdufaultchar *sched_text(int scheduler) 1957257Sdufault{ 2057257Sdufault switch(scheduler) 2157257Sdufault { 2257257Sdufault case SCHED_FIFO: 2357257Sdufault return "SCHED_FIFO"; 2457257Sdufault 2557257Sdufault case SCHED_RR: 2657257Sdufault return "SCHED_RR"; 2757257Sdufault 2857257Sdufault case SCHED_OTHER: 2957257Sdufault return "SCHED_OTHER"; 3057257Sdufault 3157257Sdufault default: 3257257Sdufault return "Illegal scheduler value"; 3357257Sdufault } 3457257Sdufault} 3557257Sdufault 3657257Sdufaultint sched_is(int line, struct sched_param *p, int shouldbe) 3757257Sdufault{ 3857257Sdufault int scheduler; 3957257Sdufault struct sched_param param; 4057257Sdufault 4157257Sdufault /* What scheduler are we running now? 4257257Sdufault */ 4357257Sdufault errno = 0; 4457257Sdufault scheduler = sched_getscheduler(0); 4557257Sdufault if (sched_getparam(0, ¶m)) 4657257Sdufault quit("sched_getparam"); 4757257Sdufault 4857257Sdufault if (p) 4957257Sdufault *p = param; 5057257Sdufault 5157257Sdufault if (shouldbe != -1 && scheduler != shouldbe) 5257257Sdufault { 5357257Sdufault fprintf(stderr, 5457257Sdufault "At line %d the scheduler should be %s yet it is %s.\n", 5557257Sdufault line, sched_text(shouldbe), sched_text(scheduler)); 5657257Sdufault 5757257Sdufault exit(-1); 5857257Sdufault } 5957257Sdufault 6057257Sdufault return scheduler; 6157257Sdufault} 62