cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

int_pow.c (629B)


      1// SPDX-License-Identifier: GPL-2.0
      2/*
      3 * An integer based power function
      4 *
      5 * Derived from drivers/video/backlight/pwm_bl.c
      6 */
      7
      8#include <linux/export.h>
      9#include <linux/math.h>
     10#include <linux/types.h>
     11
     12/**
     13 * int_pow - computes the exponentiation of the given base and exponent
     14 * @base: base which will be raised to the given power
     15 * @exp: power to be raised to
     16 *
     17 * Computes: pow(base, exp), i.e. @base raised to the @exp power
     18 */
     19u64 int_pow(u64 base, unsigned int exp)
     20{
     21	u64 result = 1;
     22
     23	while (exp) {
     24		if (exp & 1)
     25			result *= base;
     26		exp >>= 1;
     27		base *= base;
     28	}
     29
     30	return result;
     31}
     32EXPORT_SYMBOL_GPL(int_pow);