Xenomai API  2.6.5
Real-time scheduler services.
Collaboration diagram for Real-time scheduler services.:

Files

file  sched.h
 Scheduler interface header.
 
file  sched-idle.c
 Idle scheduling class implementation (i.e. Linux placeholder).
 
file  sched-rt.c
 Common real-time scheduling class implementation (FIFO + RR)
 
file  sched-sporadic.c
 POSIX SCHED_SPORADIC scheduling class.
 
file  sched-tp.c
 Temporal partitioning (typical of IMA systems).
 
file  sched.c
 

Data Structures

struct  xnsched
 Scheduling information structure. More...
 

Macros

#define XNKCOUT   0x80000000
 
#define XNINTCK   0x40000000
 
#define XNINSW   0x20000000
 
#define XNRESCHED   0x10000000
 
#define XNHTICK   0x00008000
 
#define XNINIRQ   0x00004000
 
#define XNHDEFER   0x00002000
 
#define XNINLOCK   0x00001000
 
#define XNRPICK   0x80000000
 

Typedefs

typedef struct xnsched xnsched_t
 Scheduling information structure.
 

Functions

static void xnsched_rotate (struct xnsched *sched, struct xnsched_class *sched_class, const union xnsched_policy_param *sched_param)
 Rotate a scheduler runqueue. More...
 

Detailed Description

Real-time pod services.

Macro Definition Documentation

#define XNHDEFER   0x00002000

Host tick deferred

Referenced by xntimer_tick_aperiodic().

#define XNHTICK   0x00008000

Host tick pending

Referenced by xntimer_tick_aperiodic().

#define XNINIRQ   0x00004000

In IRQ handling context

Referenced by xnpod_schedule().

#define XNINLOCK   0x00001000

Scheduler locked

Referenced by xnpod_delete_thread(), xnpod_schedule(), and xnpod_suspend_thread().

#define XNINSW   0x20000000

In context switch

Referenced by xnpod_delete_thread(), and xnpod_schedule().

#define XNINTCK   0x40000000

In master tick handler context

Referenced by xntimer_tick_aperiodic().

#define XNKCOUT   0x80000000

Sched callout context

Referenced by xnpod_schedule().

#define XNRESCHED   0x10000000

Needs rescheduling

Referenced by xnpod_schedule().

#define XNRPICK   0x80000000

Check RPI state

Function Documentation

void xnsched_rotate ( struct xnsched sched,
struct xnsched_class *  sched_class,
const union xnsched_policy_param *  param 
)
inlinestatic

Rotate a scheduler runqueue.

The specified scheduling class is requested to rotate its runqueue for the given scheduler. Rotation is performed according to the scheduling parameter specified by sched_param.

Note
The nucleus supports round-robin scheduling for the members of the RT class.
Parameters
schedThe per-CPU scheduler hosting the target scheduling class.
sched_classThe scheduling class which should rotate its runqueue.
paramThe scheduling parameter providing rotation information to the specified scheduling class.

Environments:

This service should be called from:

  • Kernel-based task
  • Interrupt service routine
  • User-space task (primary mode only)

Rescheduling: never.