4.115
Last change
on this file since 82db8e56 was
82db8e56,
checked in by Joel Sherrill <joel.sherrill@…>, on 09/15/11 at 15:49:32
|
2011-09-15 Petr Benes <benesp16@…>
PR 1906/cpukit
- sapi/Makefile.am, sapi/preinstall.am, sapi/include/confdefs.h,
score/Makefile.am, score/preinstall.am: Add the CBS (Constant
Bandwidth Server) scheduler. This is a complex scheduling policy
built atop of the EDF scheduler. Unlike other schedulers, this one
provides a user API and handles not only deadlines of tasks but also
claimed budget per period. The main aim of the scheduler is isolation
of tasks so that each task is guaranteed to meet all deadlines
regardless of how other tasks behave.
- sapi/include/rtems/cbs.h, sapi/inline/rtems/cbs.inl,
score/include/rtems/score/schedulercbs.h, score/src/schedulercbs.c,
score/src/schedulercbsattachthread.c,
score/src/schedulercbscleanup.c,
score/src/schedulercbscreateserver.c,
score/src/schedulercbsdestroyserver.c,
score/src/schedulercbsdetachthread.c,
score/src/schedulercbsgetapprovedbudget.c,
score/src/schedulercbsgetexecutiontime.c,
score/src/schedulercbsgetparameters.c,
score/src/schedulercbsgetremainingbudget.c,
score/src/schedulercbsgetserverid.c,
score/src/schedulercbsreleasejob.c,
score/src/schedulercbssetparameters.c,
score/src/schedulercbsunblock.c: New files.
|
-
Property mode set to
100644
|
File size:
857 bytes
|
Line | |
---|
1 | /* |
---|
2 | * Copyright (C) 2011 Petr Benes. |
---|
3 | * Copyright (C) 2011 On-Line Applications Research Corporation (OAR). |
---|
4 | * |
---|
5 | * The license and distribution terms for this file may be |
---|
6 | * found in the file LICENSE in this distribution or at |
---|
7 | * http://www.rtems.com/license/LICENSE. |
---|
8 | * |
---|
9 | * $Id$ |
---|
10 | */ |
---|
11 | |
---|
12 | #if HAVE_CONFIG_H |
---|
13 | #include "config.h" |
---|
14 | #endif |
---|
15 | |
---|
16 | #include <rtems/system.h> |
---|
17 | #include <rtems/config.h> |
---|
18 | #include <rtems/score/scheduler.h> |
---|
19 | #include <rtems/score/schedulercbs.h> |
---|
20 | |
---|
21 | int _Scheduler_CBS_Get_server_id ( |
---|
22 | rtems_id task_id, |
---|
23 | Scheduler_CBS_Server_id *server_id |
---|
24 | ) |
---|
25 | { |
---|
26 | unsigned int i; |
---|
27 | for ( i = 0; i<_Scheduler_CBS_Maximum_servers; i++ ) { |
---|
28 | if ( _Scheduler_CBS_Server_list[i] && |
---|
29 | _Scheduler_CBS_Server_list[i]->task_id == task_id ) { |
---|
30 | *server_id = i; |
---|
31 | return SCHEDULER_CBS_OK; |
---|
32 | } |
---|
33 | } |
---|
34 | return SCHEDULER_CBS_ERROR_NOSERVER; |
---|
35 | } |
---|
Note: See
TracBrowser
for help on using the repository browser.