LCOV - code coverage report
Current view: top level - arch/x86/include/uapi/asm - swab.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 2 50.0 %
Date: 2023-04-06 08:38:28 Functions: 0 0 -

          Line data    Source code
       1             : /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
       2             : #ifndef _ASM_X86_SWAB_H
       3             : #define _ASM_X86_SWAB_H
       4             : 
       5             : #include <linux/types.h>
       6             : #include <linux/compiler.h>
       7             : 
       8             : static inline __attribute_const__ __u32 __arch_swab32(__u32 val)
       9             : {
      10           0 :         asm("bswapl %0" : "=r" (val) : "0" (val));
      11             :         return val;
      12             : }
      13             : #define __arch_swab32 __arch_swab32
      14             : 
      15             : static inline __attribute_const__ __u64 __arch_swab64(__u64 val)
      16             : {
      17             : #ifdef __i386__
      18             :         union {
      19             :                 struct {
      20             :                         __u32 a;
      21             :                         __u32 b;
      22             :                 } s;
      23             :                 __u64 u;
      24             :         } v;
      25             :         v.u = val;
      26             :         asm("bswapl %0 ; bswapl %1 ; xchgl %0,%1"
      27             :             : "=r" (v.s.a), "=r" (v.s.b)
      28             :             : "0" (v.s.a), "1" (v.s.b));
      29             :         return v.u;
      30             : #else /* __i386__ */
      31        2751 :         asm("bswapq %0" : "=r" (val) : "0" (val));
      32             :         return val;
      33             : #endif
      34             : }
      35             : #define __arch_swab64 __arch_swab64
      36             : 
      37             : #endif /* _ASM_X86_SWAB_H */

Generated by: LCOV version 1.14