root/arch/c6x/include/asm/checksum.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. csum_tcpudp_nofold

   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  *  Copyright (C) 2011 Texas Instruments Incorporated
   4  *  Author: Mark Salter <msalter@redhat.com>
   5  */
   6 #ifndef _ASM_C6X_CHECKSUM_H
   7 #define _ASM_C6X_CHECKSUM_H
   8 
   9 static inline __wsum
  10 csum_tcpudp_nofold(__be32 saddr, __be32 daddr, __u32 len,
  11                    __u8 proto, __wsum sum)
  12 {
  13         unsigned long long tmp;
  14 
  15         asm ("add     .d1   %1,%5,%1\n"
  16              "|| addu .l1   %3,%4,%0\n"
  17              "addu    .l1   %2,%0,%0\n"
  18 #ifndef CONFIG_CPU_BIG_ENDIAN
  19              "|| shl  .s1   %1,8,%1\n"
  20 #endif
  21              "addu    .l1   %1,%0,%0\n"
  22              "add     .l1   %P0,%p0,%2\n"
  23              : "=&a"(tmp), "+a"(len), "+a"(sum)
  24              : "a" (saddr), "a" (daddr), "a" (proto));
  25         return sum;
  26 }
  27 #define csum_tcpudp_nofold csum_tcpudp_nofold
  28 
  29 #include <asm-generic/checksum.h>
  30 
  31 #endif /* _ASM_C6X_CHECKSUM_H */

/* [<][>][^][v][top][bottom][index][help] */