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 }