// SPDX-License-Identifier: LGPL-2.1
#include <sched.h>
/*
* Not defined anywhere else, probably, just to make sure we
* catch future flags
*/
#define SCHED_POLICY_MASK 0xff
#ifndef SCHED_DEADLINE
#define SCHED_DEADLINE 6
#endif
#ifndef SCHED_RESET_ON_FORK
#define SCHED_RESET_ON_FORK 0x40000000
#endif
static size_t syscall_arg__scnprintf_sched_policy(char *bf, size_t size,
struct syscall_arg *arg)
{
bool show_prefix = arg->show_string_prefix;
const char *prefix = "SCHED_" ;
const char *policies[] = {
"NORMAL" , "FIFO" , "RR" , "BATCH" , "ISO" , "IDLE" , "DEADLINE" ,
};
size_t printed;
int policy = arg->val,
flags = policy & ~SCHED_POLICY_MASK;
policy &= SCHED_POLICY_MASK;
if (policy <= SCHED_DEADLINE)
printed = scnprintf(bf, size, "%s%s" , show_prefix ? prefix : "" , policies[policy]);
else
printed = scnprintf(bf, size, "%#x" , policy);
#define P_POLICY_FLAG(n) \
if (flags & SCHED_## n) { \
printed += scnprintf(bf + printed, size - printed, "|%s%s" , show_prefix ? prefix : "" , #n ); \
flags &= ~SCHED_## n; \
}
P_POLICY_FLAG(RESET_ON_FORK);
#undef P_POLICY_FLAG
if (flags)
printed += scnprintf(bf + printed, size - printed, "|%#x" , flags);
return printed;
}
#define SCA_SCHED_POLICY syscall_arg__scnprintf_sched_policy
Messung V0.5 C=97 H=100 G=98
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet)
¤
*© Formatika GbR, Deutschland