![]() |
RTEMS
5.1
|
Thread manipulation for the CBS scheduler. More...
#include <rtems/score/chain.h>
#include <rtems/score/priority.h>
#include <rtems/score/scheduler.h>
#include <rtems/score/rbtree.h>
#include <rtems/score/scheduleredf.h>
#include <rtems/rtems/signal.h>
#include <rtems/rtems/timer.h>
#include <rtems/score/thread.h>
Go to the source code of this file.
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) |
Unblocks a thread. More... | |
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) |
Releases a job. More... | |
void | _Scheduler_CBS_Cancel_job (const Scheduler_Control *scheduler, Thread_Control *the_thread, Priority_Node *priority_node, Thread_queue_Context *queue_context) |
Cancels a job. More... | |
int | _Scheduler_CBS_Initialize (void) |
_Scheduler_CBS_Initialize More... | |
int | _Scheduler_CBS_Attach_thread (Scheduler_CBS_Server_id server_id, rtems_id task_id) |
Attaches a task to an already existing server. More... | |
int | _Scheduler_CBS_Detach_thread (Scheduler_CBS_Server_id server_id, rtems_id task_id) |
Detaches from the CBS Server. More... | |
int | _Scheduler_CBS_Cleanup (void) |
Cleans up 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) |
Creates a new server with specified parameters. More... | |
int | _Scheduler_CBS_Destroy_server (Scheduler_CBS_Server_id server_id) |
Detaches all tasks from a server and destroys it. More... | |
int | _Scheduler_CBS_Get_approved_budget (Scheduler_CBS_Server_id server_id, time_t *approved_budget) |
Retrieves the approved budget. More... | |
int | _Scheduler_CBS_Get_remaining_budget (Scheduler_CBS_Server_id server_id, time_t *remaining_budget) |
Retrieves 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) |
Gets relative time info. More... | |
int | _Scheduler_CBS_Get_parameters (Scheduler_CBS_Server_id server_id, Scheduler_CBS_Parameters *params) |
Retrieves CBS scheduling parameters. More... | |
int | _Scheduler_CBS_Get_server_id (rtems_id task_id, Scheduler_CBS_Server_id *server_id) |
Gets a thread server id. More... | |
int | _Scheduler_CBS_Set_parameters (Scheduler_CBS_Server_id server_id, Scheduler_CBS_Parameters *parameters) |
Sets 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. More... | |
Variables | |
const uint32_t | _Scheduler_CBS_Maximum_servers |
Scheduler_CBS_Server | _Scheduler_CBS_Server_list [] |
Thread manipulation for the CBS scheduler.
This include file contains all the constants and structures associated with the manipulation of threads for the CBS scheduler.