Internal resource reservation header file. More...
#include "rres_config.h"
#include "rres_interface.h"
#include "qos_types.h"
#include "qos_memory.h"
#include "qos_list.h"
#include <linux/aquosa/kal_generic.h>
#include <linux/aquosa/rres_time.h>
Go to the source code of this file.
Defines | |
#define | for_each_srv(srv, head, list_field, pos) |
Macro used by for_each_*_server to iterate over a server list. | |
#define | for_each_srv_safe(srv, head, list_field, pos, postmp) |
Macro used against removal risks to iterate over the server list. | |
#define | for_each_server(srv, pos) for_each_srv((srv), &server_list, slist, (pos)) |
Iterate over all servers in the system. | |
#define | for_each_server_safe(srv, pos, tmppos) for_each_srv_safe((srv), &server_list, slist, (pos), (tmppos)) |
Iterate over all servers in the system - safe against removal. | |
#define | get_task_entry(h) list_entry((h), struct task_list, others) |
Return the ponter to task_list referred by (h). | |
#define | for_each_ready_task_in_server(__srv, t, pos) |
Loop on all tasks in a server (do not modify the list). | |
#define | for_each_blocked_task_in_server(__srv, t, pos) |
#define | for_each_ready_task_in_server_safe(__srv, t, __pos, __tmp) |
Loop on all tasks in a server. | |
#define | for_each_blocked_task_in_server_safe(__srv, t, __pos, __tmp) |
Functions | |
qos_rv | rres_init (void) |
Initialise server lists, timers, and algorithm related data, then call rres_schedule(). | |
qos_rv | rres_cleanup (void) |
Destroy all servers in the system. | |
qos_rv | rres_cleanup_default_server_nosched (server_t *srv) |
Detach all the tasks served by the default server and cleanup the server. | |
qos_rv | rres_detach_task_nosched (server_t *srv, struct task_struct *task) |
qos_rv | rres_move_nosched (server_t *new_srv, struct task_struct *task) |
Move into the specified server the specified task. | |
void | rres_schedule (void) |
Activate the server due to a new job arrival or add a pending request of activation if already active. | |
void | recharge (server_t *srv) |
Recharge the budget and update the deadline to the old value plus the server period. | |
void | recharge_reset_from_now (server_t *srv) |
recharge the budget and set the deadline to the actual time plus the server period | |
qos_rv | rres_on_task_block (struct task_struct *task) |
qos_rv | rres_on_task_unblock (struct task_struct *task) |
static qos_bool_t | is_in_default_server (struct task_struct *t) |
Check if the task is served by the default server. | |
static qos_bool_t | is_default_server (server_t *srv) |
It returns true if the server is the default server. | |
void | rres_stop (server_t *srv) |
Stop all tasks handled by the server. | |
void | rres_dispatch (server_t *srv) |
Dispatch (force scheduling) of all tasks handled by the server. | |
void | stop_task_safe (server_t *srv, struct task_struct *task) |
void | dispatch_task_safe (server_t *srv, struct task_struct *task) |
Variables | |
spinlock_t generic_scheduler_lock | __cacheline_aligned |
used for spinlock on hook handlers and timer handler | |
struct list_head | server_list |
list of the servers | |
kal_time_t | last_update_time |
time of last budget updating |
Internal resource reservation header file.
Exports resource reservation function to other files in rres component
Definition in file rres.h.