00001 #define QOS_DEBUG_LEVEL QOS_LEVEL_DEBUG
00002 #include <linux/aquosa/qos_debug.h>
00003 #include <linux/aquosa/qos_types.h>
00004 #include <aquosa/qres_lib.h>
00005
00006 void test(qres_time_t Q, qres_time_t Q_min, qres_time_t P) {
00007 qos_log_debug("(Q, Q_min, P): (" QRES_TIME_FMT ", " QRES_TIME_FMT ", " QRES_TIME_FMT ")", Q, Q_min, P);
00008 qos_bw_t bw_min;
00009
00010
00011
00012
00013 bw_min = r2bw_ceil(Q_min, P);
00014 qos_log_debug("bw_min=%g", bw_min / (double) (1ul<<QOS_BW_BITS));
00015
00016
00017 Q_min = bw2Q(bw_min, P);
00018 Q = bw2Q(r2bw_ceil(Q, P), P);
00019 qos_log_debug("Rounded (Q, Q_min, P): (" QRES_TIME_FMT ", " QRES_TIME_FMT ", " QRES_TIME_FMT ")", Q, Q_min, P);
00020 }
00021
00022 int main() {
00023 test(10, 0, 20);
00024 test(10000, 0, 20000);
00025 test(19999, 0, 20000);
00026 return 0;
00027 }