瀏覽代碼

libc: Cleanup remaining files

The existing files had some style problems that this patch fixes.

Change-Id: I794e0d96e52f8da0ffa0d70a41f36c4432b4e563
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
Antonio Nino Diaz 5 年之前
父節點
當前提交
4661abc7c4
共有 11 個文件被更改,包括 123 次插入116 次删除
  1. 1 4
      lib/libc/abort.c
  2. 3 3
      lib/libc/assert.c
  3. 5 1
      lib/libc/libc.mk
  4. 0 97
      lib/libc/mem.c
  5. 20 0
      lib/libc/memchr.c
  6. 24 0
      lib/libc/memcmp.c
  7. 18 0
      lib/libc/memcpy.c
  8. 31 0
      lib/libc/memmove.c
  9. 17 0
      lib/libc/memset.c
  10. 1 6
      lib/libc/putchar.c
  11. 3 5
      lib/libc/puts.c

+ 1 - 4
lib/libc/abort.c

@@ -7,10 +7,7 @@
 #include <debug.h>
 #include <stdlib.h>
 
-/*
- * This is a basic implementation. This could be improved.
- */
-void abort (void)
+void abort(void)
 {
 	ERROR("ABORT\n");
 	panic();

+ 3 - 3
lib/libc/assert.c

@@ -10,9 +10,9 @@
 #include <platform.h>
 
 /*
-* Only print the output if PLAT_LOG_LEVEL_ASSERT is higher or equal to
-* LOG_LEVEL_INFO, which is the default value for builds with DEBUG=1.
-*/
+ * Only print the output if PLAT_LOG_LEVEL_ASSERT is higher or equal to
+ * LOG_LEVEL_INFO, which is the default value for builds with DEBUG=1.
+ */
 
 #if PLAT_LOG_LEVEL_ASSERT >= LOG_LEVEL_VERBOSE
 void __assert(const char *file, unsigned int line, const char *assertion)

+ 5 - 1
lib/libc/libc.mk

@@ -8,7 +8,11 @@ LIBC_SRCS	:=	$(addprefix lib/libc/,	\
 			abort.c				\
 			assert.c			\
 			exit.c				\
-			mem.c				\
+			memchr.c			\
+			memcmp.c			\
+			memcpy.c			\
+			memmove.c			\
+			memset.c			\
 			printf.c			\
 			putchar.c			\
 			puts.c				\

+ 0 - 97
lib/libc/mem.c

@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <stddef.h> /* size_t */
-
-/*
- * Fill @count bytes of memory pointed to by @dst with @val
- */
-void *memset(void *dst, int val, size_t count)
-{
-	char *ptr = dst;
-
-	while (count--)
-		*ptr++ = val;
-
-	return dst;
-}
-
-/*
- * Compare @len bytes of @s1 and @s2
- */
-int memcmp(const void *s1, const void *s2, size_t len)
-{
-	const unsigned char *s = s1;
-	const unsigned char *d = s2;
-	unsigned char sc;
-	unsigned char dc;
-
-	while (len--) {
-		sc = *s++;
-		dc = *d++;
-		if (sc - dc)
-			return (sc - dc);
-	}
-
-	return 0;
-}
-
-/*
- * Copy @len bytes from @src to @dst
- */
-void *memcpy(void *dst, const void *src, size_t len)
-{
-	const char *s = src;
-	char *d = dst;
-
-	while (len--)
-		*d++ = *s++;
-
-	return dst;
-}
-
-/*
- * Move @len bytes from @src to @dst
- */
-void *memmove(void *dst, const void *src, size_t len)
-{
-	/*
-	 * The following test makes use of unsigned arithmetic overflow to
-	 * more efficiently test the condition !(src <= dst && dst < str+len).
-	 * It also avoids the situation where the more explicit test would give
-	 * incorrect results were the calculation str+len to overflow (though
-	 * that issue is probably moot as such usage is probably undefined
-	 * behaviour and a bug anyway.
-	 */
-	if ((size_t)dst - (size_t)src >= len) {
-		/* destination not in source data, so can safely use memcpy */
-		return memcpy(dst, src, len);
-	} else {
-		/* copy backwards... */
-		const char *end = dst;
-		const char *s = (const char *)src + len;
-		char *d = (char *)dst + len;
-		while (d != end)
-			*--d = *--s;
-	}
-	return dst;
-}
-
-/*
- * Scan @len bytes of @src for value @c
- */
-void *memchr(const void *src, int c, size_t len)
-{
-	const char *s = src;
-
-	while (len--) {
-		if (*s == c)
-			return (void *) s;
-		s++;
-	}
-
-	return NULL;
-}

+ 20 - 0
lib/libc/memchr.c

@@ -0,0 +1,20 @@
+/*
+ * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <stddef.h>
+
+void *memchr(const void *src, int c, size_t len)
+{
+	const char *s = src;
+
+	while (len--) {
+		if (*s == c)
+			return (void *) s;
+		s++;
+	}
+
+	return NULL;
+}

+ 24 - 0
lib/libc/memcmp.c

@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <stddef.h>
+
+int memcmp(const void *s1, const void *s2, size_t len)
+{
+	const unsigned char *s = s1;
+	const unsigned char *d = s2;
+	unsigned char sc;
+	unsigned char dc;
+
+	while (len--) {
+		sc = *s++;
+		dc = *d++;
+		if (sc - dc)
+			return (sc - dc);
+	}
+
+	return 0;
+}

+ 18 - 0
lib/libc/memcpy.c

@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <stddef.h>
+
+void *memcpy(void *dst, const void *src, size_t len)
+{
+	const char *s = src;
+	char *d = dst;
+
+	while (len--)
+		*d++ = *s++;
+
+	return dst;
+}

+ 31 - 0
lib/libc/memmove.c

@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <string.h>
+
+void *memmove(void *dst, const void *src, size_t len)
+{
+	/*
+	 * The following test makes use of unsigned arithmetic overflow to
+	 * more efficiently test the condition !(src <= dst && dst < str+len).
+	 * It also avoids the situation where the more explicit test would give
+	 * incorrect results were the calculation str+len to overflow (though
+	 * that issue is probably moot as such usage is probably undefined
+	 * behaviour and a bug anyway.
+	 */
+	if ((size_t)dst - (size_t)src >= len) {
+		/* destination not in source data, so can safely use memcpy */
+		return memcpy(dst, src, len);
+	} else {
+		/* copy backwards... */
+		const char *end = dst;
+		const char *s = (const char *)src + len;
+		char *d = (char *)dst + len;
+		while (d != end)
+			*--d = *--s;
+	}
+	return dst;
+}

+ 17 - 0
lib/libc/memset.c

@@ -0,0 +1,17 @@
+/*
+ * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <stddef.h>
+
+void *memset(void *dst, int val, size_t count)
+{
+	char *ptr = dst;
+
+	while (count--)
+		*ptr++ = val;
+
+	return dst;
+}

+ 1 - 6
lib/libc/putchar.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -7,11 +7,6 @@
 #include <stdio.h>
 #include <console.h>
 
-/* Putchar() should either return the character printed or EOF in case of error.
- * Our current console_putc() function assumes success and returns the
- * character. Write all other printing functions in terms of putchar(), if
- * possible, so they all benefit when this is improved.
- */
 int putchar(int c)
 {
 	int res;

+ 3 - 5
lib/libc/puts.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -9,15 +9,13 @@
 int puts(const char *s)
 {
 	int count = 0;
-	while(*s) {
+
+	while (*s) {
 		if (putchar(*s++) == EOF)
 			return EOF;
 		count++;
 	}
 
-	/* According to the puts(3) manpage, the function should write a
-	 * trailing newline.
-	 */
 	if (putchar('\n') == EOF)
 		return EOF;