aboutsummaryrefslogtreecommitdiff
path: root/src/include/string.h
blob: 5f5aecb92a8bf8f4e59d3aacb954c0c947e8223c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#ifndef _STRING_H
#define _STRING_H

/** @file
 *
 * String functions
 *
 */

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );

#include <stddef.h>

extern void * generic_memset ( void *dest, int character,
			       size_t len ) __nonnull;
extern void * generic_memcpy ( void *dest, const void *src,
			       size_t len ) __nonnull;
extern void * generic_memcpy_reverse ( void *dest, const void *src,
				       size_t len ) __nonnull;
extern void * generic_memmove ( void *dest, const void *src,
				size_t len ) __nonnull;

#include <bits/string.h>

/* Architecture-specific code is expected to provide these functions,
 * but may instead explicitly choose to use the generic versions.
 */
void * memset ( void *dest, int character, size_t len ) __nonnull;
void * memcpy ( void *dest, const void *src, size_t len ) __nonnull;
void * memmove ( void *dest, const void *src, size_t len ) __nonnull;

extern int __pure memcmp ( const void *first, const void *second,
			   size_t len ) __nonnull;
extern void * __pure memchr ( const void *src, int character,
			      size_t len ) __nonnull;
extern void * memswap ( void *dest, void *src, size_t len ) __nonnull;
extern int __pure strcmp ( const char *first, const char *second ) __nonnull;
extern int __pure strncmp ( const char *first, const char *second,
			    size_t max ) __nonnull;
extern size_t __pure strlen ( const char *src ) __nonnull;
extern size_t __pure strnlen ( const char *src, size_t max ) __nonnull;
extern char * __pure strchr ( const char *src, int character ) __nonnull;
extern char * __pure strrchr ( const char *src, int character ) __nonnull;
extern char * __pure strstr ( const char *haystack,
			      const char *needle ) __nonnull;
extern char * strcpy ( char *dest, const char *src ) __nonnull;
extern char * strncpy ( char *dest, const char *src, size_t max ) __nonnull;
extern char * strcat ( char *dest, const char *src ) __nonnull;
extern char * __malloc strdup ( const char *src ) __nonnull;
extern char * __malloc strndup ( const char *src, size_t max ) __nonnull;
extern char * __pure strpbrk ( const char *string,
			       const char *delim ) __nonnull;
extern char * strsep ( char **string, const char *delim ) __nonnull;

extern char * __pure strerror ( int errno );

#endif /* _STRING_H */