RTEMS CPU Kit with SuperCore  4.11.2
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>
Include dependency graph for schedulercbs.h:
This graph shows which files directly or indirectly include this file:

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...
 

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.