Generate a host-unreachable failure rather then a crash if the MTU is too
[dragonfly.git] / tools / regression / p1003_1b / prutil.c
1 #include <errno.h>
2 #include <unistd.h>
3 #include <sched.h>
4 #include <stdio.h>
5
6 #include <err.h>
7 #include <sysexits.h>
8 #include "prutil.h"
9
10 /*
11  * $FreeBSD: src/tools/regression/p1003_1b/prutil.c,v 1.1 2000/02/16 14:28:41 dufault Exp $
12  * $DragonFly: src/tools/regression/p1003_1b/prutil.c,v 1.2 2003/06/17 04:29:11 dillon Exp $
13  */
14 void quit(const char *text)
15 {
16         err(errno, text);
17 }
18
19 char *sched_text(int scheduler)
20 {
21         switch(scheduler)
22         {
23                 case SCHED_FIFO:
24                 return "SCHED_FIFO";
25
26                 case SCHED_RR:
27                 return "SCHED_RR";
28
29                 case SCHED_OTHER:
30                 return "SCHED_OTHER";
31
32                 default:
33                 return "Illegal scheduler value";
34         }
35 }
36
37 int sched_is(int line, struct sched_param *p, int shouldbe)
38 {
39         int scheduler;
40         struct sched_param param;
41
42         /* What scheduler are we running now?
43          */
44         errno = 0;
45         scheduler = sched_getscheduler(0);
46         if (sched_getparam(0, &param))
47                 quit("sched_getparam");
48
49         if (p)
50                 *p = param;
51
52         if (shouldbe != -1 && scheduler != shouldbe)
53         {
54                 fprintf(stderr,
55                 "At line %d the scheduler should be %s yet it is %s.\n",
56                 line, sched_text(shouldbe), sched_text(scheduler));
57
58                 exit(-1);
59         }
60
61         return scheduler;
62 }