19#ifndef _COBALT_KERNEL_SCHED_TP_H
20#define _COBALT_KERNEL_SCHED_TP_H
22#ifndef _COBALT_KERNEL_SCHED_H
23#error "please don't include cobalt/kernel/sched-tp.h directly"
31#ifdef CONFIG_XENO_OPT_SCHED_TP
33#define XNSCHED_TP_MIN_PRIO 1
34#define XNSCHED_TP_MAX_PRIO 255
35#define XNSCHED_TP_NR_PRIO \
36 (XNSCHED_TP_MAX_PRIO - XNSCHED_TP_MIN_PRIO + 1)
38extern struct xnsched_class xnsched_class_tp;
40struct xnsched_tp_window {
45struct xnsched_tp_schedule {
47 xnticks_t tf_duration;
49 struct xnsched_tp_window pwins[0];
53 struct xnsched_tpslot {
55 xnsched_queue_t runnable;
56 } partitions[CONFIG_XENO_OPT_SCHED_TP_NRPART];
58 struct xnsched_tpslot idle;
60 struct xnsched_tpslot *tps;
62 struct xntimer tf_timer;
64 struct xnsched_tp_schedule *gps;
70 struct list_head threads;
73static inline int xnsched_tp_init_thread(
struct xnthread *thread)
80struct xnsched_tp_schedule *
81xnsched_tp_set_schedule(
struct xnsched *sched,
82 struct xnsched_tp_schedule *gps);
84void xnsched_tp_start_schedule(
struct xnsched *sched);
86void xnsched_tp_stop_schedule(
struct xnsched *sched);
88int xnsched_tp_get_partition(
struct xnsched *sched);
90struct xnsched_tp_schedule *
91xnsched_tp_get_schedule(
struct xnsched *sched);
93void xnsched_tp_put_schedule(
struct xnsched_tp_schedule *gps);
Copyright © 2011 Gilles Chanteperdrix gilles.chanteperdrix@xenomai.org.
Definition atomic.h:24
Scheduling information structure.
Definition sched.h:64