![]() |
RTEMS
5.0.0
|
Files | |
| file | schedulercbsimpl.h |
| CBS Scheduler Implementation. | |
Data Structures | |
| struct | Scheduler_CBS_Parameters |
| struct | Scheduler_CBS_Server |
| struct | Scheduler_CBS_Node |
Macros | |
| #define | SCHEDULER_CBS_MAXIMUM_PRIORITY SCHEDULER_EDF_MAXIMUM_PRIORITY |
| #define | SCHEDULER_CBS_ENTRY_POINTS |
| #define | SCHEDULER_CBS_OK 0 |
| #define | SCHEDULER_CBS_ERROR_GENERIC -16 |
| #define | SCHEDULER_CBS_ERROR_NO_MEMORY -17 |
| #define | SCHEDULER_CBS_ERROR_INVALID_PARAMETER -18 |
| #define | SCHEDULER_CBS_ERROR_UNAUTHORIZED -19 |
| #define | SCHEDULER_CBS_ERROR_UNIMPLEMENTED -20 |
| #define | SCHEDULER_CBS_ERROR_MISSING_COMPONENT -21 |
| #define | SCHEDULER_CBS_ERROR_INCONSISTENT_STATE -22 |
| #define | SCHEDULER_CBS_ERROR_SYSTEM_OVERLOAD -23 |
| #define | SCHEDULER_CBS_ERROR_INTERNAL_ERROR -24 |
| #define | SCHEDULER_CBS_ERROR_NOT_FOUND -25 |
| #define | SCHEDULER_CBS_ERROR_FULL -26 |
| #define | SCHEDULER_CBS_ERROR_EMPTY -27 |
| #define | SCHEDULER_CBS_ERROR_NOSERVER SCHEDULER_CBS_ERROR_NOT_FOUND |
Typedefs | |
| typedef uint32_t | Scheduler_CBS_Server_id |
| typedef void(* | Scheduler_CBS_Budget_overrun) (Scheduler_CBS_Server_id server_id) |
Functions | |
| void | _Scheduler_CBS_Unblock (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node) |
| void | _Scheduler_CBS_Release_job (const Scheduler_Control *scheduler, Thread_Control *the_thread, Priority_Node *priority_node, uint64_t deadline, Thread_queue_Context *queue_context) |
| void | _Scheduler_CBS_Cancel_job (const Scheduler_Control *scheduler, Thread_Control *the_thread, Priority_Node *priority_node, Thread_queue_Context *queue_context) |
| int | _Scheduler_CBS_Initialize (void) |
| _Scheduler_CBS_Initialize More... | |
| int | _Scheduler_CBS_Attach_thread (Scheduler_CBS_Server_id server_id, rtems_id task_id) |
| Attach a task to an already existing server. More... | |
| int | _Scheduler_CBS_Detach_thread (Scheduler_CBS_Server_id server_id, rtems_id task_id) |
| Detach from the CBS Server. More... | |
| int | _Scheduler_CBS_Cleanup (void) |
| Cleanup resources associated to the CBS Library. More... | |
| int | _Scheduler_CBS_Create_server (Scheduler_CBS_Parameters *params, Scheduler_CBS_Budget_overrun budget_overrun_callback, rtems_id *server_id) |
| Create a new server with specified parameters. More... | |
| int | _Scheduler_CBS_Destroy_server (Scheduler_CBS_Server_id server_id) |
| Detach all tasks from a server and destroy it. More... | |
| int | _Scheduler_CBS_Get_approved_budget (Scheduler_CBS_Server_id server_id, time_t *approved_budget) |
| Retrieve the approved budget. More... | |
| int | _Scheduler_CBS_Get_remaining_budget (Scheduler_CBS_Server_id server_id, time_t *remaining_budget) |
| Retrieve remaining budget for the current server instance. More... | |
| int | _Scheduler_CBS_Get_execution_time (Scheduler_CBS_Server_id server_id, time_t *exec_time, time_t *abs_time) |
| Get relative time info. More... | |
| int | _Scheduler_CBS_Get_parameters (Scheduler_CBS_Server_id server_id, Scheduler_CBS_Parameters *params) |
| Retrieve CBS scheduling parameters. More... | |
| int | _Scheduler_CBS_Get_server_id (rtems_id task_id, Scheduler_CBS_Server_id *server_id) |
| Get a thread server id. More... | |
| int | _Scheduler_CBS_Set_parameters (Scheduler_CBS_Server_id server_id, Scheduler_CBS_Parameters *parameters) |
| Set parameters for CBS scheduling. More... | |
| void | _Scheduler_CBS_Budget_callout (Thread_Control *the_thread) |
| Invoked when a limited time quantum is exceeded. More... | |
| void | _Scheduler_CBS_Node_initialize (const Scheduler_Control *scheduler, Scheduler_Node *node, Thread_Control *the_thread, Priority_Control priority) |
| Initializes a CBS specific scheduler node of the_thread. | |
| RTEMS_INLINE_ROUTINE Scheduler_CBS_Node * | _Scheduler_CBS_Thread_get_node (Thread_Control *the_thread) |
| RTEMS_INLINE_ROUTINE Scheduler_CBS_Node * | _Scheduler_CBS_Node_downcast (Scheduler_Node *node) |
Variables | |
| const uint32_t | _Scheduler_CBS_Maximum_servers |
| Scheduler_CBS_Server | _Scheduler_CBS_Server_list [] |
| #define SCHEDULER_CBS_ENTRY_POINTS |
Entry points for the Constant Bandwidth Server Scheduler.
| typedef void(* Scheduler_CBS_Budget_overrun) (Scheduler_CBS_Server_id server_id) |
Callback function invoked when a budget overrun of a task occurs.
| typedef uint32_t Scheduler_CBS_Server_id |
Server id.
| int _Scheduler_CBS_Attach_thread | ( | Scheduler_CBS_Server_id | server_id, |
| rtems_id | task_id | ||
| ) |
Attach a task to an already existing server.
Attach a task to an already existing server.
| status | code. |
| void _Scheduler_CBS_Budget_callout | ( | Thread_Control * | the_thread | ) |
Invoked when a limited time quantum is exceeded.
This routine is invoked when a limited time quantum is exceeded.
| int _Scheduler_CBS_Cleanup | ( | void | ) |
Cleanup resources associated to the CBS Library.
Cleanup resources associated to the CBS Library.
| status | code. |
| int _Scheduler_CBS_Create_server | ( | Scheduler_CBS_Parameters * | params, |
| Scheduler_CBS_Budget_overrun | budget_overrun_callback, | ||
| rtems_id * | server_id | ||
| ) |
Create a new server with specified parameters.
Create a new server with specified parameters.
| status | code. |
| int _Scheduler_CBS_Destroy_server | ( | Scheduler_CBS_Server_id | server_id | ) |
Detach all tasks from a server and destroy it.
Detach all tasks from a server and destroy it.
| [in] | server_id | is the ID of the server |
| status | code. |
| int _Scheduler_CBS_Detach_thread | ( | Scheduler_CBS_Server_id | server_id, |
| rtems_id | task_id | ||
| ) |
Detach from the CBS Server.
Detach from the CBS Server.
| status | code. |
| int _Scheduler_CBS_Get_approved_budget | ( | Scheduler_CBS_Server_id | server_id, |
| time_t * | approved_budget | ||
| ) |
Retrieve the approved budget.
Retrieve the budget that has been approved for the subsequent server instances.
| status | code. |
| int _Scheduler_CBS_Get_execution_time | ( | Scheduler_CBS_Server_id | server_id, |
| time_t * | exec_time, | ||
| time_t * | abs_time | ||
| ) |
Get relative time info.
Retrieve time info relative to server_id. The server status code is returned.
| [in] | server_id | is the server to get the status code from. |
| [in] | exec_time | is the execution time. |
| [in] | abs_time | is not apparently used. |
| status | code. |
| int _Scheduler_CBS_Get_parameters | ( | Scheduler_CBS_Server_id | server_id, |
| Scheduler_CBS_Parameters * | params | ||
| ) |
Retrieve CBS scheduling parameters.
Retrieve CBS scheduling parameters.
| status | code. |
| int _Scheduler_CBS_Get_remaining_budget | ( | Scheduler_CBS_Server_id | server_id, |
| time_t * | remaining_budget | ||
| ) |
Retrieve remaining budget for the current server instance.
Retrieve remaining budget for the current server instance.
| status | code. |
| int _Scheduler_CBS_Get_server_id | ( | rtems_id | task_id, |
| Scheduler_CBS_Server_id * | server_id | ||
| ) |
Get a thread server id.
Get a thread server id, or SCHEDULER_CBS_ERROR_NOT_FOUND if it is not attached to any server.
| status | code. |
| int _Scheduler_CBS_Initialize | ( | void | ) |
_Scheduler_CBS_Initialize
Initializes the CBS library.
| status | code. |
| int _Scheduler_CBS_Set_parameters | ( | Scheduler_CBS_Server_id | server_id, |
| Scheduler_CBS_Parameters * | parameters | ||
| ) |
Set parameters for CBS scheduling.
Change CBS scheduling parameters.
| [in] | server_id | is the ID of the server. |
| [in] | parameters | are the parameters to set. |
| status | code. |
| const uint32_t _Scheduler_CBS_Maximum_servers |
Maximum number of simultaneous servers.
| Scheduler_CBS_Server _Scheduler_CBS_Server_list[] |
List of servers. The Scheduler_CBS_Server is the index to the array of pointers to _Scheduler_CBS_Server_list.
1.8.13