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