45#include <bits/attribs.h>
82#if defined(__DOXYGEN__)
90 + (((x) & 017) == 0) \
91 + (((x) & 037) == 0) \
92 + (((x) & 077) == 0) \
93 + (((x) & 0177) == 0) \
94 + (((x) & 0377) == 0) \
95 + (((x) & 0777) == 0) \
96 + (((x) & 01777) == 0) \
97 + (((x) & 03777) == 0) \
98 + (((x) & 07777) == 0) \
99 + (((x) & 017777) == 0) \
100 + (((x) & 037777) == 0) \
101 + (((x) & 077777) == 0) \
102 - (((x) & 0177777) == 0) * 16)
117extern int ffs(
int __val) __ATTR_CONST__;
123extern int ffsl(
long __val) __ATTR_CONST__;
129__extension__
extern int ffsll(
long long __val) __ATTR_CONST__;
142extern void *
memccpy(
void *,
const void *,
int,
size_t);
154extern void *
memchr(
const void *,
int,
size_t) __ATTR_PURE__;
172extern int memcmp(
const void *,
const void *,
size_t) __ATTR_PURE__;
183extern void *
memcpy(
void *,
const void *,
size_t);
195extern void *
memmem(
const void *,
size_t,
const void *,
size_t) __ATTR_PURE__;
205extern void *
memmove(
void *,
const void *,
size_t);
217extern void *
memrchr(
const void *,
int,
size_t) __ATTR_PURE__;
240extern char *
strcat(
char *,
const char *);
253extern char *
strchr(
const char *,
int) __ATTR_PURE__;
255extern __ATTR_ALWAYS_INLINE__ __ATTR_GNU_INLINE__
256char *
strchr(
const char *__hay,
int __val)
258 register char *__r24 __asm(
"24");
259 register int __r22 __asm(
"22") = __val;
260 __asm (
"%~call strchr"
261 :
"=r" (__r24) :
"0" (__hay),
"r" (__r22) :
"30",
"31");
289extern int strcmp(
const char *,
const char *) __ATTR_PURE__;
304extern char *
strcpy(
char *,
const char *);
321extern char *
stpcpy(
char *,
const char *);
336extern int strcasecmp(
const char *,
const char *) __ATTR_PURE__;
349extern char *
strcasestr(
const char *,
const char *) __ATTR_PURE__;
360extern size_t strcspn(
const char *__s,
const char *__reject) __ATTR_PURE__;
380extern char *
strdup(
const char *s1);
396extern char *
strndup(
const char *s,
size_t n);
409extern size_t strlcat(
char *,
const char *,
size_t);
420extern size_t strlcpy(
char *,
const char *,
size_t);
431extern size_t strlen(
const char *) __ATTR_PURE__;
454extern char *
strncat(
char *,
const char *,
size_t);
466extern int strncmp(
const char *,
const char *,
size_t) __ATTR_PURE__;
481extern char *
strncpy(
char *,
const char *,
size_t);
496extern int strncasecmp(
const char *,
const char *,
size_t) __ATTR_PURE__;
510extern size_t strnlen(
const char *,
size_t) __ATTR_PURE__;
523extern char *
strpbrk(
const char *__s,
const char *__accept) __ATTR_PURE__;
537extern char *
strrchr(
const char *,
int) __ATTR_PURE__;
565extern char *
strsep(
char **,
const char *);
576extern size_t strspn(
const char *__s,
const char *__accept) __ATTR_PURE__;
589extern char *
strstr(
const char *,
const char *) __ATTR_PURE__;
608extern char *
strtok(
char *,
const char *);
625extern char *
strtok_r(
char *,
const char *,
char **);
642extern int strcoll(
const char *s1,
const char *s2);
643extern char *strerror(
int errnum);
644extern size_t strxfrm(
char *dest,
const char *src,
size_t n);
647extern __ATTR_ALWAYS_INLINE__ __ATTR_GNU_INLINE__
648size_t strlen(
const char *__s)
650 if (__builtin_constant_p (__builtin_strlen (__s)))
652 return __builtin_strlen (__s);
656 register const char *__r24 __asm(
"24") = __s;
657 register size_t __res __asm(
"24");
658 __asm (
"%~call %x2" :
"=r" (__res) :
"r" (__r24),
"i" (
strlen)
659 :
"30",
"31",
"memory");
665extern __ATTR_ALWAYS_INLINE__ __ATTR_GNU_INLINE__
666char*
strcpy(
char *__x,
const char *__z)
669 __asm
volatile (
"%~call __strcpy"
670 :
"+x" (__x),
"+z" (__z) ::
"memory");
674extern __ATTR_ALWAYS_INLINE__ __ATTR_GNU_INLINE__
675char*
stpcpy(
char *__x,
const char *__z)
677 __asm
volatile (
"%~call __strcpy"
678 :
"+x" (__x),
"+z" (__z) ::
"memory");
683extern __ATTR_ALWAYS_INLINE__ __ATTR_GNU_INLINE__
684int strcmp(
const char *__x,
const char *__z)
686 register int __ret __asm(
"24");
687 __asm (
"%~call __strcmp"
688 :
"=r" (__ret),
"+x" (__x),
"+z" (__z) ::
"memory");
int strncasecmp(const char *, const char *, size_t)
Compare two strings ignoring case.
void * memchr(const void *, int, size_t)
Scan memory for a character.
int memcmp(const void *, const void *, size_t)
Compare memory areas.
char * strlwr(char *)
Convert a string to lower case.
char * strstr(const char *, const char *)
Locate a substring.
char * strcat(char *, const char *)
Concatenate two strings.
size_t strlen(const char *)
Calculate the length of a string.
int strcmp(const char *, const char *)
Compare two strings.
char * strchrnul(const char *, int)
char * strpbrk(const char *__s, const char *__accept)
char * strrchr(const char *, int)
Locate character in string.
char * strcpy(char *, const char *)
Copy a string.
void * memcpy(void *, const void *, size_t)
Copy a memory area.
size_t strlcat(char *, const char *, size_t)
Concatenate two strings.
Definition: strlcat.c:49
size_t strlcpy(char *, const char *, size_t)
Copy a string.
Definition: strlcpy.c:48
char * strtok(char *, const char *)
Parses the string s into tokens.
Definition: strtok.c:39
int strncmp(const char *, const char *, size_t)
Compare two strings.
char * strncpy(char *, const char *, size_t)
Copy a string.
char * strdup(const char *s1)
Duplicate a string.
Definition: strdup.c:35
void * memmove(void *, const void *, size_t)
Copy memory area.
void * memccpy(void *, const void *, int, size_t)
Copy memory area.
void * memset(void *, int, size_t)
Fill memory with a constant byte.
int strcasecmp(const char *, const char *)
Compare two strings ignoring case.
char * strchr(const char *, int)
Locate character in string.
char * strupr(char *)
Convert a string to upper case.
int ffs(int __val)
This function finds the first (least significant) bit set in the input value.
char * strtok_r(char *, const char *, char **)
Parses string into tokens.
void * memrchr(const void *, int, size_t)
char * stpcpy(char *, const char *)
Copy a string.
void * memmem(const void *, size_t, const void *, size_t)
char * strcasestr(const char *, const char *)
int ffsl(long __val)
Same as ffs(), for an argument of type long.
char * strrev(char *)
Reverse a string.
size_t strcspn(const char *__s, const char *__reject)
int ffsll(long long __val)
Same as ffs(), for an argument of type long long.
size_t strnlen(const char *, size_t)
Determine the length of a fixed-size string.
size_t strspn(const char *__s, const char *__accept)
char * strndup(const char *s, size_t n)
Duplicate a string.
Definition: strndup.c:32
char * strncat(char *, const char *, size_t)
Concatenate two strings.
char * strsep(char **, const char *)
Parse a string into tokens.