18#ifndef _COBALT_POSIX_SCHED_H
19#define _COBALT_POSIX_SCHED_H
21#include <linux/list.h>
22#include <cobalt/kernel/sched.h>
23#include <xenomai/posix/syscall.h>
25struct cobalt_resources;
28struct cobalt_sched_group {
29#ifdef CONFIG_XENO_OPT_SCHED_QUOTA
30 struct xnsched_quota_group quota;
32 struct cobalt_resources *scope;
34 struct list_head next;
37int __cobalt_sched_weightprio(
int policy,
38 const struct sched_param_ex *param_ex);
40int __cobalt_sched_setconfig_np(
int cpu,
int policy,
41 void __user *u_config,
43 union sched_config *(*fetch_config)
44 (
int policy,
const void __user *u_config,
46 int (*ack_config)(
int policy,
47 const union sched_config *config,
48 void __user *u_config));
50ssize_t __cobalt_sched_getconfig_np(
int cpu,
int policy,
51 void __user *u_config,
53 union sched_config *(*fetch_config)
54 (
int policy,
const void __user *u_config,
56 ssize_t (*put_config)(
int policy,
57 void __user *u_config,
size_t u_len,
58 const union sched_config *config,
60int cobalt_sched_setscheduler_ex(pid_t pid,
62 const struct sched_param_ex *param_ex,
63 __u32 __user *u_winoff,
64 int __user *u_promoted);
66int cobalt_sched_getscheduler_ex(pid_t pid,
68 struct sched_param_ex *param_ex);
71cobalt_sched_policy_param(
union xnsched_policy_param *param,
72 int u_policy,
const struct sched_param_ex *param_ex,
77COBALT_SYSCALL_DECL(sched_weightprio,
78 (
int policy,
const struct sched_param_ex __user *u_param));
80COBALT_SYSCALL_DECL(sched_minprio, (
int policy));
82COBALT_SYSCALL_DECL(sched_maxprio, (
int policy));
87 union sched_config __user *u_config,
92 union sched_config __user *u_config,
98 const struct sched_param_ex __user *u_param,
99 __u32 __user *u_winoff,
100 int __user *u_promoted));
104 int __user *u_policy,
105 struct sched_param_ex __user *u_param));
107void cobalt_sched_reclaim(
struct cobalt_process *process);
int sched_setconfig_np(int cpu, int policy, const union sched_config *config, size_t len)
Set CPU-specific scheduler settings for a policy.
Definition sched.c:557
ssize_t sched_getconfig_np(int cpu, int policy, union sched_config *config, size_t *len_r)
Retrieve CPU-specific scheduler settings for a policy.
Definition sched.c:614
int sched_yield(void))
Yield the processor.
Definition sched.c:52
int sched_setscheduler_ex(pid_t pid, int policy, const struct sched_param_ex *param_ex)
Set extended scheduling policy of a process.
Definition sched.c:283
int sched_getscheduler_ex(pid_t pid, int *policy_r, struct sched_param_ex *param_ex)
Get extended scheduling policy of a process.
Definition sched.c:398