summaryrefslogtreecommitdiff
path: root/sys/lib
diff options
context:
space:
mode:
authormaxv <maxv@NetBSD.org>2019-11-22 14:28:46 +0000
committermaxv <maxv@NetBSD.org>2019-11-22 14:28:46 +0000
commitafcac815722c8edda2f493fc4e8059027467883f (patch)
tree7657bfa0f7ae0d86dbf7df3792f939ab9df47824 /sys/lib
parent856d965f09fb16f5c1754d23a260d3a5e66a96c1 (diff)
Ah, strcat/strchr/strrchr are ASM functions, so instrument them.
Diffstat (limited to 'sys/lib')
-rw-r--r--sys/lib/libkern/libkern.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/sys/lib/libkern/libkern.h b/sys/lib/libkern/libkern.h
index f22bb638665..d876601de5e 100644
--- a/sys/lib/libkern/libkern.h
+++ b/sys/lib/libkern/libkern.h
@@ -1,4 +1,4 @@
-/* $NetBSD: libkern.h,v 1.134 2019/11/14 16:23:53 maxv Exp $ */
+/* $NetBSD: libkern.h,v 1.135 2019/11/22 14:28:46 maxv Exp $ */
/*-
* Copyright (c) 1992, 1993
@@ -438,13 +438,22 @@ size_t kmsan_strlen(const char *);
#endif
/* These exist in GCC 3.x, but we don't bother. */
+#if defined(_KERNEL) && defined(KMSAN)
+char *kmsan_strcat(char *, const char *);
+char *kmsan_strchr(const char *, int);
+char *kmsan_strrchr(const char *, int);
+#define strcat(d, s) kmsan_strcat(d, s)
+#define strchr(s, c) kmsan_strchr(s, c)
+#define strrchr(s, c) kmsan_strrchr(s, c)
+#else
char *strcat(char *, const char *);
+char *strchr(const char *, int);
+char *strrchr(const char *, int);
+#endif
size_t strcspn(const char *, const char *);
char *strncpy(char *, const char *, size_t);
char *strncat(char *, const char *, size_t);
int strncmp(const char *, const char *, size_t);
-char *strchr(const char *, int);
-char *strrchr(const char *, int);
char *strstr(const char *, const char *);
char *strpbrk(const char *, const char *);
size_t strspn(const char *, const char *);