Loading net/core/pktgen.c +0 −94 Original line number Diff line number Diff line Loading @@ -397,62 +397,6 @@ struct pktgen_thread { #define REMOVE 1 #define FIND 0 /* This code works around the fact that do_div cannot handle two 64-bit numbers, and regular 64-bit division doesn't work on x86 kernels. --Ben */ #define PG_DIV 0 /* This was emailed to LMKL by: Chris Caputo <ccaputo@alt.net> * Function copied/adapted/optimized from: * * nemesis.sourceforge.net/browse/lib/static/intmath/ix86/intmath.c.html * * Copyright 1994, University of Cambridge Computer Laboratory * All Rights Reserved. * */ static inline s64 divremdi3(s64 x, s64 y, int type) { u64 a = (x < 0) ? -x : x; u64 b = (y < 0) ? -y : y; u64 res = 0, d = 1; if (b > 0) { while (b < a) { b <<= 1; d <<= 1; } } do { if (a >= b) { a -= b; res += d; } b >>= 1; d >>= 1; } while (d); if (PG_DIV == type) { return (((x ^ y) & (1ll << 63)) == 0) ? res : -(s64) res; } else { return ((x & (1ll << 63)) == 0) ? a : -(s64) a; } } /* End of hacks to deal with 64-bit math on x86 */ /** Convert to milliseconds */ static inline __u64 tv_to_ms(const struct timeval *tv) { __u64 ms = tv->tv_usec / 1000; ms += (__u64) tv->tv_sec * (__u64) 1000; return ms; } /** Convert to micro-seconds */ static inline __u64 tv_to_us(const struct timeval *tv) { Loading @@ -461,39 +405,6 @@ static inline __u64 tv_to_us(const struct timeval *tv) return us; } static inline __u64 pg_div(__u64 n, __u32 base) { __u64 tmp = n; do_div(tmp, base); /* printk("pktgen: pg_div, n: %llu base: %d rv: %llu\n", n, base, tmp); */ return tmp; } static inline __u64 pg_div64(__u64 n, __u64 base) { __u64 tmp = n; /* * How do we know if the architecture we are running on * supports division with 64 bit base? * */ #if defined(__sparc_v9__) || defined(__powerpc64__) || defined(__alpha__) || defined(__x86_64__) || defined(__ia64__) do_div(tmp, base); #else tmp = divremdi3(n, base, PG_DIV); #endif return tmp; } static inline __u64 getCurMs(void) { struct timeval tv; do_gettimeofday(&tv); return tv_to_ms(&tv); } static inline __u64 getCurUs(void) { struct timeval tv; Loading @@ -501,11 +412,6 @@ static inline __u64 getCurUs(void) return tv_to_us(&tv); } static inline __u64 tv_diff(const struct timeval *a, const struct timeval *b) { return tv_to_us(a) - tv_to_us(b); } /* old include end */ static char version[] __initdata = VERSION; Loading Loading
net/core/pktgen.c +0 −94 Original line number Diff line number Diff line Loading @@ -397,62 +397,6 @@ struct pktgen_thread { #define REMOVE 1 #define FIND 0 /* This code works around the fact that do_div cannot handle two 64-bit numbers, and regular 64-bit division doesn't work on x86 kernels. --Ben */ #define PG_DIV 0 /* This was emailed to LMKL by: Chris Caputo <ccaputo@alt.net> * Function copied/adapted/optimized from: * * nemesis.sourceforge.net/browse/lib/static/intmath/ix86/intmath.c.html * * Copyright 1994, University of Cambridge Computer Laboratory * All Rights Reserved. * */ static inline s64 divremdi3(s64 x, s64 y, int type) { u64 a = (x < 0) ? -x : x; u64 b = (y < 0) ? -y : y; u64 res = 0, d = 1; if (b > 0) { while (b < a) { b <<= 1; d <<= 1; } } do { if (a >= b) { a -= b; res += d; } b >>= 1; d >>= 1; } while (d); if (PG_DIV == type) { return (((x ^ y) & (1ll << 63)) == 0) ? res : -(s64) res; } else { return ((x & (1ll << 63)) == 0) ? a : -(s64) a; } } /* End of hacks to deal with 64-bit math on x86 */ /** Convert to milliseconds */ static inline __u64 tv_to_ms(const struct timeval *tv) { __u64 ms = tv->tv_usec / 1000; ms += (__u64) tv->tv_sec * (__u64) 1000; return ms; } /** Convert to micro-seconds */ static inline __u64 tv_to_us(const struct timeval *tv) { Loading @@ -461,39 +405,6 @@ static inline __u64 tv_to_us(const struct timeval *tv) return us; } static inline __u64 pg_div(__u64 n, __u32 base) { __u64 tmp = n; do_div(tmp, base); /* printk("pktgen: pg_div, n: %llu base: %d rv: %llu\n", n, base, tmp); */ return tmp; } static inline __u64 pg_div64(__u64 n, __u64 base) { __u64 tmp = n; /* * How do we know if the architecture we are running on * supports division with 64 bit base? * */ #if defined(__sparc_v9__) || defined(__powerpc64__) || defined(__alpha__) || defined(__x86_64__) || defined(__ia64__) do_div(tmp, base); #else tmp = divremdi3(n, base, PG_DIV); #endif return tmp; } static inline __u64 getCurMs(void) { struct timeval tv; do_gettimeofday(&tv); return tv_to_ms(&tv); } static inline __u64 getCurUs(void) { struct timeval tv; Loading @@ -501,11 +412,6 @@ static inline __u64 getCurUs(void) return tv_to_us(&tv); } static inline __u64 tv_diff(const struct timeval *a, const struct timeval *b) { return tv_to_us(a) - tv_to_us(b); } /* old include end */ static char version[] __initdata = VERSION; Loading