00001 #ifndef __USERPRED_H__ 00002 #define __USERPRED_H__ 00003 00004 #include <linux/aquosa/qmgr_base.h> 00005 #include <linux/aquosa/qos_queue.h> 00006 00017 typedef struct userpred_params_struct { 00018 qmgr_pred_params_t base; 00019 void *opaque; 00020 qos_rv (*add_sample)(void *opaque, qres_time_t last_sample); 00022 qos_rv (*skip_sample)(void *opaque); 00023 qres_time_t (*get_exp_value)(void *opaque); 00024 } userpred_params_t; 00025 00027 typedef struct userpred_struct { 00028 qmgr_pred_t base; 00029 void *opaque; 00030 qos_rv (*add_sample)(void *opaque, qres_time_t last_sample); 00032 qos_rv (*skip_sample)(void *opaque); 00033 qres_time_t (*get_exp_value)(void *opaque); 00034 } userpred_t; 00035 00037 qos_rv userpred_register(void); 00038 00046 qos_rv userpred_init(void *self, void *params); 00047 00049 qos_rv userpred_final(qmgr_pred_t *self); 00050 00058 qos_rv userpred_add_sample(qmgr_pred_t *pred, qres_time_t new_sample); 00059 00060 qres_time_t userpred_get_exp_value(qmgr_pred_t *pred); 00061 00064 #endif