blob: eda241fd3d79d58ee8e447abef1c0a95b00a750f [file] [log] [blame]
Dmitry V. Levinfff2f312014-12-11 19:25:02 +00001#include "defs.h"
2
3#include <sched.h>
4
5#include "xlat/schedulers.h"
6
Dmitry V. Levina0bd3742015-04-07 01:36:50 +00007SYS_FUNC(sched_getscheduler)
Dmitry V. Levinfff2f312014-12-11 19:25:02 +00008{
9 if (entering(tcp)) {
10 tprintf("%d", (int) tcp->u_arg[0]);
11 } else if (!syserror(tcp)) {
12 tcp->auxstr = xlookup(schedulers, tcp->u_rval);
13 if (tcp->auxstr != NULL)
14 return RVAL_STR;
15 }
16 return 0;
17}
18
Dmitry V. Levina0bd3742015-04-07 01:36:50 +000019SYS_FUNC(sched_setscheduler)
Dmitry V. Levinfff2f312014-12-11 19:25:02 +000020{
Dmitry V. Levin10c408a2015-07-17 16:16:24 +000021 tprintf("%d, ", (int) tcp->u_arg[0]);
22 printxval(schedulers, tcp->u_arg[1], "SCHED_???");
23 tprints(", ");
24 printnum_int(tcp, tcp->u_arg[2], "%d");
25
26 return RVAL_DECODED;
Dmitry V. Levinfff2f312014-12-11 19:25:02 +000027}
28
Dmitry V. Levina0bd3742015-04-07 01:36:50 +000029SYS_FUNC(sched_getparam)
Dmitry V. Levinfff2f312014-12-11 19:25:02 +000030{
Dmitry V. Levinf8bf1d52015-07-17 16:12:22 +000031 if (entering(tcp))
Dmitry V. Levinfff2f312014-12-11 19:25:02 +000032 tprintf("%d, ", (int) tcp->u_arg[0]);
Dmitry V. Levinf8bf1d52015-07-17 16:12:22 +000033 else
34 printnum_int(tcp, tcp->u_arg[1], "%d");
Dmitry V. Levinfff2f312014-12-11 19:25:02 +000035 return 0;
36}
37
Dmitry V. Levina0bd3742015-04-07 01:36:50 +000038SYS_FUNC(sched_setparam)
Dmitry V. Levinfff2f312014-12-11 19:25:02 +000039{
Dmitry V. Levin10c408a2015-07-17 16:16:24 +000040 tprintf("%d, ", (int) tcp->u_arg[0]);
41 printnum_int(tcp, tcp->u_arg[1], "%d");
42
43 return RVAL_DECODED;
Dmitry V. Levinfff2f312014-12-11 19:25:02 +000044}
45
Dmitry V. Levina0bd3742015-04-07 01:36:50 +000046SYS_FUNC(sched_get_priority_min)
Dmitry V. Levinfff2f312014-12-11 19:25:02 +000047{
Dmitry V. Levin10c408a2015-07-17 16:16:24 +000048 printxval(schedulers, tcp->u_arg[0], "SCHED_???");
49
50 return RVAL_DECODED;
Dmitry V. Levinfff2f312014-12-11 19:25:02 +000051}
52
Dmitry V. Levina0bd3742015-04-07 01:36:50 +000053SYS_FUNC(sched_rr_get_interval)
Dmitry V. Levinfff2f312014-12-11 19:25:02 +000054{
55 if (entering(tcp)) {
Dmitry V. Levinf8bf1d52015-07-17 16:12:22 +000056 tprintf("%d, ", (int) tcp->u_arg[0]);
Dmitry V. Levinfff2f312014-12-11 19:25:02 +000057 } else {
58 if (syserror(tcp))
Dmitry V. Levinf8bf1d52015-07-17 16:12:22 +000059 printaddr(tcp->u_arg[1]);
Dmitry V. Levinfff2f312014-12-11 19:25:02 +000060 else
61 print_timespec(tcp, tcp->u_arg[1]);
62 }
63 return 0;
64}