[funini.com] -> [kei@sodan] -> Kernel Reading

root/lib/int_sqrt.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. int_sqrt


#include <linux/kernel.h>
#include <linux/module.h>

/**
 * int_sqrt - rough approximation to sqrt
 * @x: integer of which to calculate the sqrt
 *
 * A very rough approximation to the sqrt() function.
 */
unsigned long int_sqrt(unsigned long x)
{
        unsigned long op, res, one;

        op = x;
        res = 0;

        one = 1UL << (BITS_PER_LONG - 2);
        while (one > op)
                one >>= 2;

        while (one != 0) {
                if (op >= res + one) {
                        op = op - (res + one);
                        res = res +  2 * one;
                }
                res /= 2;
                one /= 4;
        }
        return res;
}
EXPORT_SYMBOL(int_sqrt);

/* [<][>][^][v][top][bottom][index][help] */

[funini.com] -> [kei@sodan] -> Kernel Reading