00001 #ifndef __MOVAVG_H__ 00002 #define __MOVAVG_H__ 00003 00004 #include <linux/aquosa/qmgr_base.h> 00005 #include <linux/aquosa/qos_queue.h> 00006 00017 #define MAX_FORGET_F 32768 00019 #define MAX_FORGET_F_BITS 15 00020 00022 typedef struct movavg_params_struct { 00023 qmgr_pred_params_t base; 00024 int sample_size; 00025 int forget_f; 00026 } movavg_params_t; 00027 00029 typedef struct movavg_struct { 00030 qmgr_pred_t base; 00031 qos_queue_t queue; 00032 int sample_size; 00033 qres_time_t sum; 00034 int forget_f; 00035 int forget_f_N; 00036 } movavg_t; 00037 00039 qos_rv movavg_register(void); 00040 00048 qos_rv movavg_init(void *self, void *params); 00049 00051 qos_rv movavg_final(qmgr_pred_t *self); 00052 00060 qos_rv movavg_add_sample(qmgr_pred_t *pred, qres_time_t new_sample); 00061 00062 qres_time_t movavg_get_exp_value(qmgr_pred_t *pred); 00063 00064 qos_rv movavg_add_sample_ff(qmgr_pred_t *pred, qres_time_t new_sample); 00065 qres_time_t movavg_get_exp_value_ff(qmgr_pred_t *pred); 00066 00069 #endif