LCOV - code coverage report
Current view: top level - include/linux - linkmode.h (source / functions) Hit Total Coverage
Test: combined.info Lines: 23 38 60.5 %
Date: 2022-04-01 14:35:51 Functions: 2 2 100.0 %
Branches: 5 13 38.5 %

           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                 :          0 : static inline void linkmode_zero(unsigned long *dst)
       9                 :            : {
      10         [ #  # ]:          0 :         bitmap_zero(dst, __ETHTOOL_LINK_MODE_MASK_NBITS);
      11                 :          0 : }
      12                 :            : 
      13                 :        105 : static inline void linkmode_copy(unsigned long *dst, const unsigned long *src)
      14                 :            : {
      15   [ -  -  -  -  :         84 :         bitmap_copy(dst, src, __ETHTOOL_LINK_MODE_MASK_NBITS);
                -  -  + ]
      16                 :          0 : }
      17                 :            : 
      18                 :         21 : static inline void linkmode_and(unsigned long *dst, const unsigned long *a,
      19                 :            :                                 const unsigned long *b)
      20                 :            : {
      21                 :         21 :         bitmap_and(dst, a, b, __ETHTOOL_LINK_MODE_MASK_NBITS);
      22                 :          0 : }
      23                 :            : 
      24                 :          0 : 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                 :          0 : 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                 :       1638 : static inline void linkmode_set_bit(int nr, volatile unsigned long *addr)
      42                 :            : {
      43                 :         42 :         __set_bit(nr, addr);
      44                 :        147 : }
      45                 :            : 
      46                 :        441 : static inline void linkmode_set_bit_array(const int *array, int array_size,
      47                 :            :                                           unsigned long *addr)
      48                 :            : {
      49                 :        441 :         int i;
      50                 :            : 
      51         [ +  + ]:       1911 :         for (i = 0; i < array_size; i++)
      52                 :       1470 :                 linkmode_set_bit(array[i], addr);
      53                 :        441 : }
      54                 :            : 
      55                 :        693 : static inline void linkmode_clear_bit(int nr, volatile unsigned long *addr)
      56                 :            : {
      57                 :          0 :         __clear_bit(nr, addr);
      58                 :        693 : }
      59                 :            : 
      60                 :        819 : static inline void linkmode_mod_bit(int nr, volatile unsigned long *addr,
      61                 :            :                                     int set)
      62                 :            : {
      63         [ +  + ]:        819 :         if (set)
      64                 :        126 :                 linkmode_set_bit(nr, addr);
      65                 :            :         else
      66                 :        693 :                 linkmode_clear_bit(nr, addr);
      67                 :        819 : }
      68                 :            : 
      69                 :          0 : static inline void linkmode_change_bit(int nr, volatile unsigned long *addr)
      70                 :            : {
      71                 :          0 :         __change_bit(nr, addr);
      72                 :          0 : }
      73                 :            : 
      74                 :        315 : static inline int linkmode_test_bit(int nr, volatile unsigned long *addr)
      75                 :            : {
      76                 :        273 :         return test_bit(nr, addr);
      77                 :            : }
      78                 :            : 
      79                 :          0 : 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                 :         42 : static inline int linkmode_subset(const unsigned long *src1,
      86                 :            :                                   const unsigned long *src2)
      87                 :            : {
      88                 :         42 :         return bitmap_subset(src1, src2, __ETHTOOL_LINK_MODE_MASK_NBITS);
      89                 :            : }
      90                 :            : 
      91                 :            : #endif /* __LINKMODE_H */

Generated by: LCOV version 1.14