38 lines · 958 B · C
RawDownload
/* SPDX-License-Identifier: GPL-2.0 */#ifndef _M68K_STRING_H_#define _M68K_STRING_H_ #include <linux/types.h>#include <linux/compiler.h> #define __HAVE_ARCH_STRNLENstatic inline size_t strnlen(const char *s, size_t count){	const char *sc = s; 	asm volatile ("\n"		"1:     subq.l  #1,%1\n"		"       jcs     2f\n"		"       tst.b   (%0)+\n"		"       jne     1b\n"		"       subq.l  #1,%0\n"		"2:"		: "+a" (sc), "+d" (count));	return sc - s;} #define __HAVE_ARCH_MEMMOVEextern void *memmove(void *, const void *, __kernel_size_t); extern int memcmp(const void *, const void *, __kernel_size_t);#define memcmp(d, s, n) __builtin_memcmp(d, s, n) #define __HAVE_ARCH_MEMSETextern void *memset(void *, int, __kernel_size_t);#define memset(d, c, n) __builtin_memset(d, c, n) #define __HAVE_ARCH_MEMCPYextern void *memcpy(void *, const void *, __kernel_size_t);#define memcpy(d, s, n) __builtin_memcpy(d, s, n) #endif /* _M68K_STRING_H_ */