RTEMS CPU Kit with SuperCore
4.11.2
|
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 |
This structure handles server parameters. More... | |
struct | Scheduler_CBS_Server |
This structure represents a time server. More... | |
struct | Scheduler_CBS_Node |
This structure handles CBS specific data of a thread. More... | |
Macros | |
#define | SCHEDULER_CBS_ENTRY_POINTS |
Entry points for the Constant Bandwidth Server Scheduler. More... | |
#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 |
Server id. More... | |
typedef void(* | Scheduler_CBS_Budget_overrun) (Scheduler_CBS_Server_id server_id) |
Callback function invoked when a budget overrun of a task occurs. More... | |
Functions | |
Scheduler_Void_or_thread | _Scheduler_CBS_Unblock (const Scheduler_Control *scheduler, Thread_Control *the_thread) |
Unblocks a thread from the queue. More... | |
void | _Scheduler_CBS_Release_job (const Scheduler_Control *scheduler, Thread_Control *the_thread, uint32_t length) |
Called when a new job of task is released. 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) |
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, Thread_Control *the_thread) |
Initializes a CBS specific scheduler node of the_thread. | |
Variables | |
const uint32_t | _Scheduler_CBS_Maximum_servers |
Maximum number of simultaneous servers. More... | |
Scheduler_CBS_Server | _Scheduler_CBS_Server_list [] |
List of servers. More... | |
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.