diff options
Diffstat (limited to 'arch/s390/lib/string.c')
-rw-r--r-- | arch/s390/lib/string.c | 56 |
1 files changed, 5 insertions, 51 deletions
diff --git a/arch/s390/lib/string.c b/arch/s390/lib/string.c index 846ec64ab2c9..b647d5ff0ad9 100644 --- a/arch/s390/lib/string.c +++ b/arch/s390/lib/string.c | |||
@@ -43,11 +43,7 @@ static inline char *__strnend(const char *s, size_t n) | |||
43 | */ | 43 | */ |
44 | size_t strlen(const char *s) | 44 | size_t strlen(const char *s) |
45 | { | 45 | { |
46 | #if __GNUC__ < 4 | ||
47 | return __strend(s) - s; | 46 | return __strend(s) - s; |
48 | #else | ||
49 | return __builtin_strlen(s); | ||
50 | #endif | ||
51 | } | 47 | } |
52 | EXPORT_SYMBOL(strlen); | 48 | EXPORT_SYMBOL(strlen); |
53 | 49 | ||
@@ -73,7 +69,6 @@ EXPORT_SYMBOL(strnlen); | |||
73 | */ | 69 | */ |
74 | char *strcpy(char *dest, const char *src) | 70 | char *strcpy(char *dest, const char *src) |
75 | { | 71 | { |
76 | #if __GNUC__ < 4 | ||
77 | register int r0 asm("0") = 0; | 72 | register int r0 asm("0") = 0; |
78 | char *ret = dest; | 73 | char *ret = dest; |
79 | 74 | ||
@@ -82,9 +77,6 @@ char *strcpy(char *dest, const char *src) | |||
82 | : "+&a" (dest), "+&a" (src) : "d" (r0) | 77 | : "+&a" (dest), "+&a" (src) : "d" (r0) |
83 | : "cc", "memory" ); | 78 | : "cc", "memory" ); |
84 | return ret; | 79 | return ret; |
85 | #else | ||
86 | return __builtin_strcpy(dest, src); | ||
87 | #endif | ||
88 | } | 80 | } |
89 | EXPORT_SYMBOL(strcpy); | 81 | EXPORT_SYMBOL(strcpy); |
90 | 82 | ||
@@ -106,7 +98,7 @@ size_t strlcpy(char *dest, const char *src, size_t size) | |||
106 | if (size) { | 98 | if (size) { |
107 | size_t len = (ret >= size) ? size-1 : ret; | 99 | size_t len = (ret >= size) ? size-1 : ret; |
108 | dest[len] = '\0'; | 100 | dest[len] = '\0'; |
109 | __builtin_memcpy(dest, src, len); | 101 | memcpy(dest, src, len); |
110 | } | 102 | } |
111 | return ret; | 103 | return ret; |
112 | } | 104 | } |
@@ -124,8 +116,8 @@ EXPORT_SYMBOL(strlcpy); | |||
124 | char *strncpy(char *dest, const char *src, size_t n) | 116 | char *strncpy(char *dest, const char *src, size_t n) |
125 | { | 117 | { |
126 | size_t len = __strnend(src, n) - src; | 118 | size_t len = __strnend(src, n) - src; |
127 | __builtin_memset(dest + len, 0, n - len); | 119 | memset(dest + len, 0, n - len); |
128 | __builtin_memcpy(dest, src, len); | 120 | memcpy(dest, src, len); |
129 | return dest; | 121 | return dest; |
130 | } | 122 | } |
131 | EXPORT_SYMBOL(strncpy); | 123 | EXPORT_SYMBOL(strncpy); |
@@ -171,7 +163,7 @@ size_t strlcat(char *dest, const char *src, size_t n) | |||
171 | if (len >= n) | 163 | if (len >= n) |
172 | len = n - 1; | 164 | len = n - 1; |
173 | dest[len] = '\0'; | 165 | dest[len] = '\0'; |
174 | __builtin_memcpy(dest, src, len); | 166 | memcpy(dest, src, len); |
175 | } | 167 | } |
176 | return res; | 168 | return res; |
177 | } | 169 | } |
@@ -194,7 +186,7 @@ char *strncat(char *dest, const char *src, size_t n) | |||
194 | char *p = __strend(dest); | 186 | char *p = __strend(dest); |
195 | 187 | ||
196 | p[len] = '\0'; | 188 | p[len] = '\0'; |
197 | __builtin_memcpy(p, src, len); | 189 | memcpy(p, src, len); |
198 | return dest; | 190 | return dest; |
199 | } | 191 | } |
200 | EXPORT_SYMBOL(strncat); | 192 | EXPORT_SYMBOL(strncat); |
@@ -348,41 +340,3 @@ void *memscan(void *s, int c, size_t n) | |||
348 | return (void *) ret; | 340 | return (void *) ret; |
349 | } | 341 | } |
350 | EXPORT_SYMBOL(memscan); | 342 | EXPORT_SYMBOL(memscan); |
351 | |||
352 | /** | ||
353 | * memcpy - Copy one area of memory to another | ||
354 | * @dest: Where to copy to | ||
355 | * @src: Where to copy from | ||
356 | * @n: The size of the area. | ||
357 | * | ||
358 | * returns a pointer to @dest | ||
359 | */ | ||
360 | void *memcpy(void *dest, const void *src, size_t n) | ||
361 | { | ||
362 | return __builtin_memcpy(dest, src, n); | ||
363 | } | ||
364 | EXPORT_SYMBOL(memcpy); | ||
365 | |||
366 | /** | ||
367 | * memset - Fill a region of memory with the given value | ||
368 | * @s: Pointer to the start of the area. | ||
369 | * @c: The byte to fill the area with | ||
370 | * @n: The size of the area. | ||
371 | * | ||
372 | * returns a pointer to @s | ||
373 | */ | ||
374 | void *memset(void *s, int c, size_t n) | ||
375 | { | ||
376 | char *xs; | ||
377 | |||
378 | if (c == 0) | ||
379 | return __builtin_memset(s, 0, n); | ||
380 | |||
381 | xs = (char *) s; | ||
382 | if (n > 0) | ||
383 | do { | ||
384 | *xs++ = c; | ||
385 | } while (--n > 0); | ||
386 | return s; | ||
387 | } | ||
388 | EXPORT_SYMBOL(memset); | ||