Added support for multiboot protocol command line extraction
[akaros.git] / kern / include / string.h
1 #ifndef ROS_INC_STRING_H
2 #define ROS_INC_STRING_H
3
4 #include <ros/common.h>
5
6 int     strlen(const char *s);
7 int     strnlen(const char *s, size_t size);
8 char *strstr(const char *s1, const char *s2);
9
10 /* zra : These aren't being used, and they are dangerous, so I'm rm'ing them
11 STRING  strcpy(STRING dst, const STRING src);
12 STRING  strcat(STRING dst, const STRING src);
13 */
14 char *strncpy(char *dst, const char *src, size_t size);
15 size_t  strlcpy(char *dst, const char *src, size_t size);
16 size_t  strlcat(char *dst, const char *src, size_t size);
17 int     strcmp(const char *s1, const char *s2);
18 int     strncmp(const char *s1, const char *s2, size_t size);
19 int cistrcmp(char *s1, char *s2);
20 char *strchr(const char *s, char c);
21 char *strrchr(const char *s, char c);
22 char *strfind(const char *s, char c);
23
24 void *memset(void* p, int what, size_t sz);
25 int   memcmp(const void* s1, const void* s2, size_t sz);
26 void *memcpy(void* dst, const void* src, size_t sz);
27 void *memmove(void *dst, const void* src, size_t sz);
28 void *memchr(void* mem, int chr, int len);
29
30 void *memfind(const void *s, int c, size_t len);
31
32 long    strtol(const char *s, char **endptr, int base);
33 unsigned long strtoul(const char *s, char **endptr, int base);
34 int     atoi(const char*s);
35 int sigchecksum(void *address, int length);
36 void *sigscan(uint8_t *address, int length, char *signature);
37
38
39 /* In arch/support64.S */
40 void bcopy(const void *src, void *dst, size_t len);
41
42 #ifdef CONFIG_RISCV
43 #warning Implement bcopy
44 #endif
45
46 #endif /* ROS_INC_STRING_H */