--- zzzz-none-000/linux-4.4.60/arch/mips/include/asm/string.h 2017-04-08 07:53:53.000000000 +0000 +++ dragonfly-4020-701/linux-4.4.60/arch/mips/include/asm/string.h 2018-11-08 13:36:17.000000000 +0000 @@ -133,11 +133,44 @@ #define __HAVE_ARCH_MEMSET extern void *memset(void *__s, int __c, size_t __count); +#define memset(__s, __c, len) \ +({ \ + size_t __len = (len); \ + void *__ret; \ + if (__builtin_constant_p(len) && __len >= 64) \ + __ret = memset((__s), (__c), __len); \ + else \ + __ret = __builtin_memset((__s), (__c), __len); \ + __ret; \ +}) #define __HAVE_ARCH_MEMCPY extern void *memcpy(void *__to, __const__ void *__from, size_t __n); +#define memcpy(dst, src, len) \ +({ \ + size_t __len = (len); \ + void *__ret; \ + if (__builtin_constant_p(len) && __len >= 64) \ + __ret = memcpy((dst), (src), __len); \ + else \ + __ret = __builtin_memcpy((dst), (src), __len); \ + __ret; \ +}) #define __HAVE_ARCH_MEMMOVE extern void *memmove(void *__dest, __const__ void *__src, size_t __n); +#define memmove(dst, src, len) \ +({ \ + size_t __len = (len); \ + void *__ret; \ + if (__builtin_constant_p(len) && __len >= 64) \ + __ret = memmove((dst), (src), __len); \ + else \ + __ret = __builtin_memmove((dst), (src), __len); \ + __ret; \ +}) + +#define __HAVE_ARCH_MEMCMP +#define memcmp(src1, src2, len) __builtin_memcmp((src1), (src2), (len)) #endif /* _ASM_STRING_H */