RRES Module main interface header. More...
#include "rres_config.h"
#include "qos_types.h"
#include "kal_sched.h"
#include "rres_ready_queue.h"
Go to the source code of this file.
Defines | |
#define | MIN_SRV_PERIOD 1000LU |
usec. | |
#define | MIN_SRV_MAX_BUDGET 0LU |
usec. | |
#define | MIN_SRV_PERIOD_DEBUG 200000LU |
usec. | |
Functions | |
static struct task_list * | rres_find_task_list (kal_task_t *task) |
static server_t * | rres_find_by_task (kal_task_t *task) |
Return the pointer to the server the task is attached to, or NULL. | |
int | rres_init_module (void) |
Initialise rres module. | |
void | rres_cleanup_module (void) |
Cleanup rres module. | |
qos_rv | rres_create_server (server_t **new_srv, qres_time_t max_budget, qres_time_t period, unsigned long flags) |
Create a new server for task t. | |
qos_rv | rres_init_server (server_t *new_srv, qres_time_t max_budget, qres_time_t period, unsigned long flags) |
Initialize an already allocated server_t (or derived class). | |
qos_rv | rres_attach_task (server_t *srv, struct task_struct *task) |
Attach a task to an existing (possibly empty) server. | |
qos_rv | rres_detach_task (server_t *srv, struct task_struct *task) |
Detach specified task from its own RRES server. | |
qos_rv | rres_destroy_server (server_t *rres) |
Destroy the specified server. | |
qos_rv | rres_cleanup_server (server_t *rres) |
Cleanup the specified server, which must already be empty. | |
qos_rv | rres_check_destroy (server_t *srv) |
Check if server empty and, if appropriate for the server flags, destroy it. | |
server_t * | rres_find_by_id (qres_sid_t sid) |
Return the pointer to the server with identification number "id". | |
qres_sid_t | rres_get_sid (server_t *rres) |
Returns a server unique identifier. | |
qos_rv | rres_set_params (server_t *rres, qres_time_t budget, qres_time_t period) |
Set budget and period of RRES server (us). | |
qos_rv | rres_get_params (server_t *rres, qres_time_t *budget, qres_time_t *period) |
Get RRES scheduling params (us). | |
qos_rv | rres_set_budget (server_t *rres, qres_time_t budget) |
Set budget of RRES server (us). | |
static qres_time_t | rres_get_curr_budget (server_t *srv) |
Get remaining budget for the current server instance (us). | |
qres_time_t | rres_get_period (server_t *rres) |
Get RRES server period (us). | |
static qos_rv | rres_get_deadline (server_t *rres, struct timespec *p_deadline) |
Get RRES current deadline (timespec). | |
static unsigned long | rres_get_flags (server_t *rres) |
Get RRES server flags. | |
qres_time_t | rres_get_exec_time (server_t *rres) |
Get execution time since server creation (clocks). | |
server_t * | rres_get_default_server (void) |
Get pointer to default server. | |
qos_rv | rres_init_default_server (server_t *srv, qres_time_t Q, qres_time_t P, unsigned long flags) |
Initialize the default server. | |
int | rres_has_server (struct task_struct *t) |
returns true if the task is served by any server | |
int | rres_empty (server_t *srv) |
return true if the server has no task to serve | |
int | rres_running (server_t *srv) |
Check if the server is currently running. | |
static struct task_struct * | rres_any_ready_task (server_t *srv) |
Just return one of the attached ready tasks, or NULL if none exists. | |
static struct task_struct * | rres_any_blocked_task (server_t *srv) |
Just return one of the attached blocked tasks, or NULL if none exists. | |
static kal_lock_t * | rres_get_spinlock (void) |
Variables | |
spinlock_t | rres_lock |
RRES Module main interface header.
Definition in file rres_interface.h.