gbdk-2020 | GameBoy Development Kit |
| download: https://git.y1.nz/archives/gbdk.tar.gz | |
| README | Files | Log | Refs | LICENSE |
gbdk-lib/include/asm/z80/string.h
1 /** @file string.h
2 Generic string functions.
3 */
4 #ifndef STRING_INCLUDE
5 #define STRING_INCLUDE
6
7 #include <types.h>
8
9 /** Copies the string pointed to by __src__ (including the terminating
10 `\0' character) to the array pointed to by __dest__.
11
12 The strings may not overlap, and the destination string dest must
13 be large enough to receive the copy.
14
15 @param dest Array to copy into
16 @param src Array to copy from
17
18 @return A pointer to dest
19 */
20 char *strcpy(char *dest, const char *src) OLDCALL;
21
22 /** Compares strings
23
24 @param s1 First string to compare
25 @param s2 Second string to compare
26
27 Returns:
28 \li > 0 if __s1__ > __s2__
29 \li 0 if __s1__ == __s2__
30 \li < 0 if __s1__ < __s2__
31 */
32 int strcmp(const char *s1, const char *s2);
33
34 /** Copies n bytes from memory area src to memory area dest.
35
36 The memory areas may not overlap.
37
38 @param dest Buffer to copy into
39 @param src Buffer to copy from
40 @param len Number of Bytes to copy
41 */
42 void *memcpy(void *dest, const void *src, size_t len);
43
44 /** Copies n bytes from memory area src to memory area dest, areas may overlap
45 */
46 void *memmove (void *dest, const void *src, size_t n) OLDCALL;
47
48 /** Fills the memory region __s__ with __n__ bytes using value __c__
49
50 @param s Buffer to fill
51 @param c char value to fill with (truncated from int)
52 @param n Number of bytes to fill
53 */
54 void *memset (void *s, int c, size_t n) Z88DK_CALLEE;
55
56 /** Reverses the characters in a string
57
58 @param s Pointer to string to reverse.
59
60 For example 'abcdefg' will become 'gfedcba'.
61
62 Banked as the string must be modifiable.
63
64 Returns: Pointer to __s__
65 */
66 char *reverse(char *s) NONBANKED;
67
68 /** Concatenate Strings. Appends string __s2__ to the end of string __s1__
69
70 @param s1 String to append onto
71 @param s2 String to copy from
72
73 For example 'abc' and 'def' will become 'abcdef'.
74
75 String __s1__ must be large enough to store both __s1__ and __s2__.
76
77 Returns: Pointer to __s1__
78 */
79 char *strcat(char *s1, const char *s2) NONBANKED;
80
81 /** Calculates the length of a string
82
83 @param s String to calculate length of
84
85 Returns: Length of string not including the terminating `\0' character.
86 */
87 int strlen(const char *s) OLDCALL;
88
89 /**Concatenate at most __n__ characters from string __s2__ onto the end of __s1__.
90
91 @param s1 String to append onto
92 @param s2 String to copy from
93 @param n Max number of characters to copy from __s2__
94
95 String __s1__ must be large enough to store both __s1__ and __n__ characters of __s2__
96
97 Returns: Pointer to __s1__
98 */
99 char *strncat(char *s1, const char *s2, int n) NONBANKED;
100
101 /** Compare strings (at most n characters):
102
103 @param s1 First string to compare
104 @param s2 Second string to compare
105 @param n Max number of characters to compare
106
107 Returns:
108 \li > 0 if __s1__ > __s2__
109 \li 0 if __s1__ == __s2__
110 \li < 0 if __s1__ < __s2__
111 */
112 int strncmp(const char *s1, const char *s2, int n) NONBANKED;
113
114 /** Copy __n__ characters from string __s2__ to __s1__
115
116
117 @param s1 String to copy into
118 @param s2 String to copy from
119 @param n Max number of characters to copy from __s2__
120
121 If __s2__ is shorter than __n__, the remaining
122 bytes in __s1__ are filled with \0.
123
124 Warning: If there is no \0 in the first __n__ bytes of __s2__ then __s1__
125 will not be null terminated.
126
127 Returns: Pointer to __s1__
128 */
129 char *strncpy(char *s1, const char *s2, int n) NONBANKED;
130
131 /** Compares buffers
132
133 @param buf1 First buffer to compare
134 @param buf2 Second buffer to compare
135 @param count Buffer length
136
137 Returns:
138 \li > 0 if __buf1__ > __buf2__
139 \li 0 if __buf1__ == __buf2__
140 \li < 0 if __buf1__ < __buf2__
141 */
142 int memcmp(const void *buf1, const void *buf2, size_t count) Z88DK_CALLEE;
143
144 #endif
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.