#ifndef ROS_INC_STRING_H
#define ROS_INC_STRING_H

#include <ros/common.h>

int	strlen(const char *s);
int	strnlen(const char *s, size_t size);
char *strstr(char *s1, char *s2);

/* 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);
*/
char *strncpy(char *dst, const char *src, size_t size);
size_t	strlcpy(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 *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(void* mem, int chr, int len);

void *memfind(const void *s, int c, size_t len);

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);


/* In arch/support64.S */
void bcopy(const void *src, void *dst, size_t len);

#ifdef CONFIG_RISCV
#warning Implement bcopy
#endif

#endif /* ROS_INC_STRING_H */
