19#ifndef _COBALT_KERNEL_SCHED_SPORADIC_H
20#define _COBALT_KERNEL_SCHED_SPORADIC_H
22#ifndef _COBALT_KERNEL_SCHED_H
23#error "please don't include cobalt/kernel/sched-sporadic.h directly"
31#ifdef CONFIG_XENO_OPT_SCHED_SPORADIC
33#define XNSCHED_SPORADIC_MIN_PRIO 1
34#define XNSCHED_SPORADIC_MAX_PRIO 255
35#define XNSCHED_SPORADIC_NR_PRIO \
36 (XNSCHED_SPORADIC_MAX_PRIO - XNSCHED_SPORADIC_MIN_PRIO + 1)
38extern struct xnsched_class xnsched_class_sporadic;
40struct xnsched_sporadic_repl {
45struct xnsched_sporadic_data {
46 xnticks_t resume_date;
51 struct xntimer repl_timer;
52 struct xntimer drop_timer;
53 struct xnsched_sporadic_repl repl_data[CONFIG_XENO_OPT_SCHED_SPORADIC_MAXREPL];
54 struct xnsched_sporadic_param param;
55 struct xnthread *thread;
58struct xnsched_sporadic {
59#ifdef CONFIG_XENO_OPT_DEBUG_COBALT
60 unsigned long drop_retries;
64static inline int xnsched_sporadic_init_thread(
struct xnthread *thread)