LCOV - code coverage report
Current view: top level - lib - clz_ctz.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 8 0.0 %
Date: 2015-04-12 14:34:49 Functions: 0 4 0.0 %

          Line data    Source code
       1             : /*
       2             :  * lib/clz_ctz.c
       3             :  *
       4             :  * Copyright (C) 2013 Chanho Min <chanho.min@lge.com>
       5             :  *
       6             :  * This program is free software; you can redistribute it and/or modify
       7             :  * it under the terms of the GNU General Public License version 2 as
       8             :  * published by the Free Software Foundation.
       9             :  * The functions in this file aren't called directly, but are required by
      10             :  * GCC builtins such as __builtin_ctz, and therefore they can't be removed
      11             :  * despite appearing unreferenced in kernel source.
      12             :  *
      13             :  * __c[lt]z[sd]i2 can be overridden by linking arch-specific versions.
      14             :  */
      15             : 
      16             : #include <linux/export.h>
      17             : #include <linux/kernel.h>
      18             : 
      19             : int __weak __ctzsi2(int val);
      20           0 : int __weak __ctzsi2(int val)
      21             : {
      22           0 :         return __ffs(val);
      23             : }
      24             : EXPORT_SYMBOL(__ctzsi2);
      25             : 
      26             : int __weak __clzsi2(int val);
      27           0 : int __weak __clzsi2(int val)
      28             : {
      29           0 :         return 32 - fls(val);
      30             : }
      31             : EXPORT_SYMBOL(__clzsi2);
      32             : 
      33             : int __weak __clzdi2(long val);
      34             : int __weak __ctzdi2(long val);
      35             : #if BITS_PER_LONG == 32
      36             : 
      37           0 : int __weak __clzdi2(long val)
      38             : {
      39           0 :         return 32 - fls((int)val);
      40             : }
      41             : EXPORT_SYMBOL(__clzdi2);
      42             : 
      43           0 : int __weak __ctzdi2(long val)
      44             : {
      45           0 :         return __ffs((u32)val);
      46             : }
      47             : EXPORT_SYMBOL(__ctzdi2);
      48             : 
      49             : #elif BITS_PER_LONG == 64
      50             : 
      51             : int __weak __clzdi2(long val)
      52             : {
      53             :         return 64 - fls64((u64)val);
      54             : }
      55             : EXPORT_SYMBOL(__clzdi2);
      56             : 
      57             : int __weak __ctzdi2(long val)
      58             : {
      59             :         return __ffs64((u64)val);
      60             : }
      61             : EXPORT_SYMBOL(__ctzdi2);
      62             : 
      63             : #else
      64             : #error BITS_PER_LONG not 32 or 64
      65             : #endif

Generated by: LCOV version 1.11