cregit-Linux how code gets into the kernel

Release 4.18 lib/int_sqrt.c

Directory: lib
// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2013 Davidlohr Bueso <davidlohr.bueso@hp.com>
 *
 *  Based on the shift-and-subtract algorithm for computing integer
 *  square root from Guy L. Steele.
 */

#include <linux/kernel.h>
#include <linux/export.h>
#include <linux/bitops.h>

/**
 * int_sqrt - computes the integer square root
 * @x: integer of which to calculate the sqrt
 *
 * Computes: floor(sqrt(x))
 */

unsigned long int_sqrt(unsigned long x) { unsigned long b, m, y = 0; if (x <= 1) return x; m = 1UL << (__fls(x) & ~1UL); while (m != 0) { b = y + m; y >>= 1; if (x >= b) { x -= b; y += m; } m >>= 2; } return y; }

Contributors

PersonTokensPropCommitsCommitProp
Andrew Morton3541.67%120.00%
Davidlohr Bueso A3541.67%120.00%
Peter Zijlstra1214.29%240.00%
Peter Williams22.38%120.00%
Total84100.00%5100.00%

EXPORT_SYMBOL(int_sqrt); #if BITS_PER_LONG < 64 /** * int_sqrt64 - strongly typed int_sqrt function when minimum 64 bit input * is expected. * @x: 64bit integer of which to calculate the sqrt */
u32 int_sqrt64(u64 x) { u64 b, m, y = 0; if (x <= ULONG_MAX) return int_sqrt((unsigned long) x); m = 1ULL << (fls64(x) & ~1ULL); while (m != 0) { b = y + m; y >>= 1; if (x >= b) { x -= b; y += m; } m >>= 2; } return y; }

Contributors

PersonTokensPropCommitsCommitProp
Crt Mori88100.00%1100.00%
Total88100.00%1100.00%

EXPORT_SYMBOL(int_sqrt64); #endif

Overall Contributors

PersonTokensPropCommitsCommitProp
Crt Mori10150.00%111.11%
Andrew Morton4522.28%111.11%
Davidlohr Bueso A3617.82%111.11%
Peter Zijlstra167.92%333.33%
Peter Williams20.99%111.11%
Greg Kroah-Hartman10.50%111.11%
Paul Gortmaker10.50%111.11%
Total202100.00%9100.00%
Directory: lib
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.