RTEMS 6.1-rc6
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Functions | Variables

This header file provides interfaces of the Constant Bandwidth Server (CBS) Scheduler which are used by the implementation and the Application Configuration. 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.
 
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.
 
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.
 
int _Scheduler_CBS_Initialize (void)
 _Scheduler_CBS_Initialize
 
int _Scheduler_CBS_Attach_thread (Scheduler_CBS_Server_id server_id, rtems_id task_id)
 Attaches a task to an already existing server.
 
int _Scheduler_CBS_Detach_thread (Scheduler_CBS_Server_id server_id, rtems_id task_id)
 Detaches from the CBS Server.
 
int _Scheduler_CBS_Cleanup (void)
 Cleans up resources associated to the CBS Library.
 
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.
 
int _Scheduler_CBS_Destroy_server (Scheduler_CBS_Server_id server_id)
 Detaches all tasks from a server and destroys it.
 
int _Scheduler_CBS_Get_approved_budget (Scheduler_CBS_Server_id server_id, time_t *approved_budget)
 Retrieves the approved budget.
 
int _Scheduler_CBS_Get_remaining_budget (Scheduler_CBS_Server_id server_id, time_t *remaining_budget)
 Retrieves remaining budget for the current server instance.
 
int _Scheduler_CBS_Get_execution_time (Scheduler_CBS_Server_id server_id, time_t *exec_time, time_t *abs_time)
 Gets relative time info.
 
int _Scheduler_CBS_Get_parameters (Scheduler_CBS_Server_id server_id, Scheduler_CBS_Parameters *params)
 Retrieves CBS scheduling parameters.
 
int _Scheduler_CBS_Get_server_id (rtems_id task_id, Scheduler_CBS_Server_id *server_id)
 Gets a thread server id.
 
int _Scheduler_CBS_Set_parameters (Scheduler_CBS_Server_id server_id, Scheduler_CBS_Parameters *parameters)
 Sets parameters for CBS scheduling.
 
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.
 

Variables

const uint32_t _Scheduler_CBS_Maximum_servers
 
Scheduler_CBS_Server _Scheduler_CBS_Server_list []
 
const Thread_CPU_budget_operations _Scheduler_CBS_Budget
 These are the CBS CPU budget operations.
 

Detailed Description

This header file provides interfaces of the Constant Bandwidth Server (CBS) Scheduler which are used by the implementation and the Application Configuration.