-#ifndef ROS_INC_STRING_H
-#define ROS_INC_STRING_H
+#pragma once
#include <ros/common.h>
-#define STRING char *NTS
-#define STRBUF(n) char *NT COUNT(n)
+int strlen(const char *s);
+int strnlen(const char *s, size_t size);
+char *strstr(const char *s1, const char *s2);
-int strlen(const STRING s);
-int strnlen(const STRBUF(size) s, size_t size);
/* zra : These aren't being used, and they are dangerous, so I'm rm'ing them
STRING strcpy(STRING dst, const STRING src);
STRING strcat(STRING dst, const STRING src);
*/
-STRING strncpy(STRBUF(size) dst, const STRING src, size_t size);
-size_t strlcpy(STRBUF(size-1) dst, const STRING src, size_t size);
-int strcmp(const STRING s1, const STRING s2);
-int strncmp(const STRING s1, const STRING s2, size_t size);
-STRING strchr(const STRING s, char c);
-STRING strfind(const STRING s, char c);
+char *strncpy(char *dst, const char *src, size_t size);
+size_t strlcpy(char *dst, const char *src, size_t size);
+size_t strlcat(char *dst, const char *src, size_t size);
+int strcmp(const char *s1, const char *s2);
+int strncmp(const char *s1, const char *s2, size_t size);
+int cistrcmp(char *s1, char *s2);
+char *strchr(const char *s, char c);
+char *strrchr(const char *s, char c);
+char *strfind(const char *s, char c);
-void * (DMEMSET(1, 2, 3) memset)(void* p, int what, size_t sz);
-int (DMEMCMP(1, 2, 3) memcmp)(const void* s1, const void* s2, size_t sz);
-void * (DMEMCPY(1, 2, 3) memcpy)(void* dst, const void* src, size_t sz);
-void * (DMEMCPY(1, 2, 3) memmove)(void *dst, const void* src, size_t sz);
-void * memchr(void* mem, int chr, int len);
+void *memset(void* p, int what, size_t sz);
+int memcmp(const void* s1, const void* s2, size_t sz);
+void *memcpy(void* dst, const void* src, size_t sz);
+void *memmove(void *dst, const void* src, size_t sz);
+void *memchr(const void *mem, int chr, int len);
-void *BND(s,s+len) memfind(const void *COUNT(len) s, int c, size_t len);
+void *memfind(const void *s, int c, size_t len);
-long strtol(const char *NTS s, char **endptr, int base);
-int atoi(const char*NTS s);
+long strtol(const char *s, char **endptr, int base);
+unsigned long strtoul(const char *s, char **endptr, int base);
+int atoi(const char*s);
+int sigchecksum(void *address, int length);
+void *sigscan(uint8_t *address, int length, char *signature);
-#endif /* not ROS_INC_STRING_H */
+
+/* In arch/support64.S */
+void bcopy(const void *src, void *dst, size_t len);
+
+#ifdef CONFIG_RISCV
+#warning Implement bcopy
+#endif