RTEMS  5.1
Data Structures | Macros | Typedefs | Functions | Variables
schedulercbs.h File Reference

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 []
 

Detailed Description

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.