LCOV - code coverage report
Current view: top level - include/linux - linkmode.h (source / functions) Hit Total Coverage
Test: gcov_data_raspi2_qemu_modules_combined.info Lines: 2 9 22.2 %
Date: 2020-09-30 20:25:01 Functions: 0 1 0.0 %
Branches: 40 44 90.9 %

           Branch data     Line data    Source code
       1                 :            : #ifndef __LINKMODE_H
       2                 :            : #define __LINKMODE_H
       3                 :            : 
       4                 :            : #include <linux/bitmap.h>
       5                 :            : #include <linux/ethtool.h>
       6                 :            : #include <uapi/linux/ethtool.h>
       7                 :            : 
       8                 :            : static inline void linkmode_zero(unsigned long *dst)
       9                 :            : {
      10                 :            :         bitmap_zero(dst, __ETHTOOL_LINK_MODE_MASK_NBITS);
      11                 :            : }
      12                 :            : 
      13                 :            : static inline void linkmode_copy(unsigned long *dst, const unsigned long *src)
      14                 :            : {
      15                 :            :         bitmap_copy(dst, src, __ETHTOOL_LINK_MODE_MASK_NBITS);
      16                 :            : }
      17                 :            : 
      18                 :            : static inline void linkmode_and(unsigned long *dst, const unsigned long *a,
      19                 :            :                                 const unsigned long *b)
      20                 :            : {
      21                 :          0 :         bitmap_and(dst, a, b, __ETHTOOL_LINK_MODE_MASK_NBITS);
      22                 :            : }
      23                 :            : 
      24                 :            : static inline void linkmode_or(unsigned long *dst, const unsigned long *a,
      25                 :            :                                 const unsigned long *b)
      26                 :            : {
      27                 :          0 :         bitmap_or(dst, a, b, __ETHTOOL_LINK_MODE_MASK_NBITS);
      28                 :            : }
      29                 :            : 
      30                 :            : static inline bool linkmode_empty(const unsigned long *src)
      31                 :            : {
      32                 :          0 :         return bitmap_empty(src, __ETHTOOL_LINK_MODE_MASK_NBITS);
      33                 :            : }
      34                 :            : 
      35                 :            : static inline int linkmode_andnot(unsigned long *dst, const unsigned long *src1,
      36                 :            :                                   const unsigned long *src2)
      37                 :            : {
      38                 :            :         return bitmap_andnot(dst, src1, src2,  __ETHTOOL_LINK_MODE_MASK_NBITS);
      39                 :            : }
      40                 :            : 
      41                 :            : static inline void linkmode_set_bit(int nr, volatile unsigned long *addr)
      42                 :            : {
      43                 :            :         __set_bit(nr, addr);
      44                 :            : }
      45                 :            : 
      46                 :            : static inline void linkmode_set_bit_array(const int *array, int array_size,
      47                 :            :                                           unsigned long *addr)
      48                 :            : {
      49                 :            :         int i;
      50                 :            : 
      51   [ #  #  +  +  :      27068 :         for (i = 0; i < array_size; i++)
          +  +  +  +  +  
          +  +  +  +  +  
          +  +  +  +  +  
          +  +  +  +  +  
          +  +  +  +  +  
          +  +  +  +  +  
          +  +  +  +  +  
                +  +  + ]
      52                 :      27068 :                 linkmode_set_bit(array[i], addr);
      53                 :            : }
      54                 :            : 
      55                 :            : static inline void linkmode_clear_bit(int nr, volatile unsigned long *addr)
      56                 :            : {
      57                 :            :         __clear_bit(nr, addr);
      58                 :            : }
      59                 :            : 
      60                 :          0 : static inline void linkmode_mod_bit(int nr, volatile unsigned long *addr,
      61                 :            :                                     int set)
      62                 :            : {
      63         [ #  # ]:          0 :         if (set)
      64                 :            :                 linkmode_set_bit(nr, addr);
      65                 :            :         else
      66                 :            :                 linkmode_clear_bit(nr, addr);
      67                 :          0 : }
      68                 :            : 
      69                 :            : static inline void linkmode_change_bit(int nr, volatile unsigned long *addr)
      70                 :            : {
      71                 :            :         __change_bit(nr, addr);
      72                 :            : }
      73                 :            : 
      74                 :            : static inline int linkmode_test_bit(int nr, volatile unsigned long *addr)
      75                 :            : {
      76                 :            :         return test_bit(nr, addr);
      77                 :            : }
      78                 :            : 
      79                 :            : static inline int linkmode_equal(const unsigned long *src1,
      80                 :            :                                  const unsigned long *src2)
      81                 :            : {
      82                 :          0 :         return bitmap_equal(src1, src2, __ETHTOOL_LINK_MODE_MASK_NBITS);
      83                 :            : }
      84                 :            : 
      85                 :            : #endif /* __LINKMODE_H */

Generated by: LCOV version 1.14