Correct PPTP server firewall rules chain.
[tomato/davidwu.git] / release / src / router / dropbear / libtommath / bn_mp_count_bits.c
blobff4db22a0190ebbabf668d8524a14e81b2373a23
1 #include <tommath.h>
2 #ifdef BN_MP_COUNT_BITS_C
3 /* LibTomMath, multiple-precision integer library -- Tom St Denis
5 * LibTomMath is a library that provides multiple-precision
6 * integer arithmetic as well as number theoretic functionality.
8 * The library was designed directly after the MPI library by
9 * Michael Fromberger but has been written from scratch with
10 * additional optimizations in place.
12 * The library is free for all purposes without any express
13 * guarantee it works.
15 * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.com
18 /* returns the number of bits in an int */
19 int
20 mp_count_bits (mp_int * a)
22 int r;
23 mp_digit q;
25 /* shortcut */
26 if (a->used == 0) {
27 return 0;
30 /* get number of digits and add that */
31 r = (a->used - 1) * DIGIT_BIT;
33 /* take the last digit and count the bits in it */
34 q = a->dp[a->used - 1];
35 while (q > ((mp_digit) 0)) {
36 ++r;
37 q >>= ((mp_digit) 1);
39 return r;
41 #endif
43 /* $Source: /cvs/libtom/libtommath/bn_mp_count_bits.c,v $ */
44 /* $Revision: 1.3 $ */
45 /* $Date: 2006/03/31 14:18:44 $ */