00001 #define QOS_DEBUG_LEVEL QOS_LEVEL_DEBUG
00002 #include <linux/aquosa/qos_debug.h>
00003 #include <linux/aquosa/qos_ul_other.h>
00004
00005 int main() {
00006 qos_log_debug("obtained %lu, expected %lu",
00007 (long unsigned) ul_shl_div(0x7FFFul, 16, 0x20000ul),
00008 0x3FFFul);
00009 qos_chk_exit(ul_shl_div(0x7FFFul, 16, 0x20000ul) == 0x3FFFul);
00010 qos_chk_exit(ul_shl_div(0x80002244ul, 16, 0x20000ul) == 0x40001122ul);
00011 qos_chk_exit(ul_shl_div(0x84210002ul, 16, 0x20000ul) == 0x42108001ul);
00012
00013 qos_chk_exit(ul_shl_ceil(0x00007FFFul, 16, 0x10000ul) == 0x00007FFFul);
00014 qos_log_debug("7fff << 16 ceil 20000 = %lx",
00015 (long unsigned) ul_shl_ceil(0x00007FFFul, 16, 0x20000ul));
00016 qos_chk_exit(ul_shl_ceil(0x00007FFFul, 16, 0x20000ul) == 0x00004000ul);
00017 qos_chk_exit(ul_shl_ceil(0x00010001ul, 16, 0x20000ul) == 0x00008001ul);
00018 qos_chk_exit(ul_shl_ceil(0x00010001ul, 16, 0x20000ul) == 0x00008001ul);
00019
00020 qos_chk_exit(ul_mul_shr(0x10000ul, 0x1ul, 16) == 0x1ul);
00021 qos_chk_exit(ul_mul_shr(0x10000, 0x10000, 16) == 0x10000ul);
00022 qos_chk_exit(ul_mul_shr(0x40002244ul, 0x20000ul, 16) == 0x80004488ul);
00023 qos_chk_exit(ul_mul_shr(0x44010101ul, 0x20000ul, 16) == 0x88020202ul);
00024
00025 qos_chk_exit(ul_mul_div(0x10000ul, 0x1ul, 0x10000ul) == 0x1ul);
00026 qos_chk_exit(ul_mul_div(0x10000, 0x10000, 0x10000ul) == 0x10000ul);
00027 qos_chk_exit(ul_mul_div(0x40002244ul, 0x20000ul, 0x10000ul) == 0x80004488ul);
00028 qos_chk_exit(ul_mul_div(0x44010101ul, 0x20000ul, 0x10000ul) == 0x88020202ul);
00029 qos_chk_exit(ul_mul_div(0xCC886622ul, 0x44444444ul, 0x88888888ul)
00030 == 0x66443311ul);
00031
00032 return 0;
00033 }