00001 #ifndef __QRES_LIB_H__
00002 #define __QRES_LIB_H__
00003
00004 #include <linux/aquosa/qos_types.h>
00005 #include <linux/aquosa/qos_debug.h>
00006
00007 #include <linux/aquosa/qres_gw.h>
00008
00044 qos_rv qres_init(void);
00045
00049 qos_rv qres_cleanup(void);
00050
00081 qos_rv qres_create_server(qres_params_t * p_params, qres_sid_t *p_sid);
00082
00096 qos_rv qres_attach_thread(qres_sid_t server_id, pid_t pid, tid_t tid);
00097
00108 qos_rv qres_detach_thread(qres_sid_t sid, pid_t pid, tid_t tid);
00109
00122 qos_rv qres_destroy_server(qres_sid_t sid);
00123
00127 qos_rv qres_get_sid(pid_t pid, tid_t tid, qres_sid_t *p_sid);
00128
00130 qos_rv qres_set_bandwidth(qres_sid_t sid, qos_bw_t bw);
00131
00143 qos_rv qres_get_params(qres_sid_t sid, qres_params_t *p_params);
00144
00146 qos_rv qres_set_params(qres_sid_t sid, qres_params_t * p_params);
00147
00149 qos_rv qres_get_bandwidth(qres_sid_t sid, float *bw);
00150
00152 qos_rv qres_module_exists ();
00153
00177 qos_rv qres_get_exec_time(qres_sid_t sid, qres_time_t *exec_time, qres_atime_t *abs_time);
00178
00180 qos_rv qres_get_curr_budget(qres_sid_t sid, qres_time_t *curr_budget);
00181
00187 qos_rv qres_get_next_budget(qres_sid_t sid, qres_time_t *next_budget);
00188
00199 qos_rv qres_get_appr_budget(qres_sid_t sid, qres_time_t *appr_budget);
00200
00202 qos_rv qres_get_deadline(qres_sid_t sid, struct timespec *p_deadline);
00203
00205 qos_rv qres_set_weight(qres_sid_t sid, unsigned int weight);
00206
00208 qos_rv qres_get_weight(qres_sid_t sid, unsigned int *p_weight);
00209
00222 qos_rv qres_get_servers(qres_sid_t *sids, size_t *p_num_sids);
00223
00226 #endif