rres.h File Reference

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

Detailed Description

Internal resource reservation header file.

Exports resource reservation function to other files in rres component

Definition in file rres.h.

Generated on Mon Aug 2 22:39:17 2010 for qosres by  doxygen 1.6.3