Added annotations to i386/pmap.c i386/kdebug.c and i386/cpuinfo.c
[akaros.git] / kern / include / string.h
1 #ifndef ROS_INC_STRING_H
2 #define ROS_INC_STRING_H
3
4 #include <arch/types.h>
5
6 #define STRING char *NTS NONNULL
7 #define STRBUF(n) char *NT COUNT(n) NONNULL
8
9 int     strlen(const STRING s);
10 int     strnlen(const STRBUF(size) s, size_t size);
11 char *  strcpy(STRING dst, const STRING src);
12 char *  strcat(char *dst, const char *src);
13 char *  strncpy(STRBUF(size) dst, const STRING src, size_t size);
14 size_t  strlcpy(STRBUF(size-1) dst, const STRING src, size_t size);
15 int     strcmp(const STRING s1, const STRING s2);
16 int     strncmp(const STRING s1, const STRING s2, size_t size);
17 char *  strchr(const STRING s, char c);
18 char *  strfind(const STRING s, char c);
19
20 void *  memset(void *COUNT(len) dst, int c, size_t len);
21 void *  memcpy(void *COUNT(len) dst, const void *COUNT(len) src, size_t len);
22 void *  memmove(void *COUNT(len) dst, const void *COUNT(len) src, size_t len);
23 int     memcmp(const void *COUNT(len) s1, const void *COUNT(len) s2, size_t len);
24 void *  memfind(const void *COUNT(len) s, int c, size_t len);
25
26 long    strtol(const char *s, char **endptr, int base);
27
28 #endif /* not ROS_INC_STRING_H */