00001
00007 #ifndef __QOS_L_OTHER_H__
00008 #define __QOS_L_OTHER_H__
00009
00010 #include <linux/types.h>
00011
00029 #ifndef __KERNEL__
00030 #define l_shl_div(num, SHF, den) ((__s32) ((((__s64) ((__s32)(num))) << (SHF)) / ((__s32)(den))))
00031 #else
00032 #define l_shl_div(num, SHF, den) ({ \
00033 __s64 result = ((__s64)(num)) << (SHF); \
00034 do_div(result, (den)); \
00035 result; \
00036 })
00037 #endif
00038
00054 #ifndef __KERNEL__
00055 #define l_mul_div(x, num, den) ((__s32) (((__s64) ((__s32)(x))) * ((__s32)(num)) / ((__s32)(den))))
00056 #else
00057 #define l_mul_div(x, num, den) ({ \
00058 __s64 result = ((__s64)(x)) * (num); \
00059 do_div(result, (den)); \
00060 result; \
00061 })
00062 #endif
00063
00083 #define l_mul_shr(x, y, SHF) ((__s32) ((((__s64) ((__s32)(x))) * ((__s32)(y))) >> (SHF)))
00084
00085 #endif