Index: boot/generic/include/errno.h
===================================================================
--- boot/generic/include/errno.h	(revision 3fea75289c10d725fe81e0e0e160535d3f80e6f6)
+++ boot/generic/include/errno.h	(revision d066259279e2e85ad364d7828aa3db232f394ec4)
@@ -40,4 +40,6 @@
 #define EOVERFLOW  -16  /* The result does not fit its size. */
 
+typedef int errno_t;
+
 #endif
 
Index: boot/generic/include/str.h
===================================================================
--- boot/generic/include/str.h	(revision 3fea75289c10d725fe81e0e0e160535d3f80e6f6)
+++ boot/generic/include/str.h	(revision d066259279e2e85ad364d7828aa3db232f394ec4)
@@ -1,4 +1,6 @@
 /*
- * Copyright (c) 2010 Martin Decky
+ * Copyright (c) 2001-2004 Jakub Jermar
+ * Copyright (c) 2005 Martin Decky
+ * Copyright (c) 2011 Oleg Romanenko
  * All rights reserved.
  *
@@ -33,25 +35,26 @@
 #define BOOT_STR_H_
 
+#include <errno.h>
 #include <stdbool.h>
 #include <stddef.h>
 
-/**< Common Unicode characters */
-#define U_SPECIAL  '?'
+/* Common Unicode characters */
+#define U_SPECIAL      '?'
 
-/**< No size limit constant */
+/** No size limit constant */
 #define STR_NO_LIMIT  ((size_t) -1)
 
-extern wchar_t str_decode(const char *, size_t *, size_t);
-extern int chr_encode(wchar_t, char *, size_t *, size_t);
+extern wchar_t str_decode(const char *str, size_t *offset, size_t sz);
+extern errno_t chr_encode(wchar_t ch, char *str, size_t *offset, size_t sz);
 
-extern size_t str_size(const char *);
-extern size_t str_lsize(const char *, size_t);
-extern size_t str_length(const char *);
+extern size_t str_size(const char *str);
+extern size_t str_lsize(const char *str, size_t max_len);
+extern size_t str_length(const char *str);
 
-extern bool ascii_check(wchar_t);
-extern bool chr_check(wchar_t);
+extern bool ascii_check(wchar_t ch);
+extern bool chr_check(wchar_t ch);
 
-extern int str_cmp(const char *, const char *);
-extern void str_cpy(char *, size_t, const char *);
+extern int str_cmp(const char *s1, const char *s2);
+extern void str_cpy(char *dest, size_t size, const char *src);
 
 #endif
Index: boot/generic/src/str.c
===================================================================
--- boot/generic/src/str.c	(revision 3fea75289c10d725fe81e0e0e160535d3f80e6f6)
+++ boot/generic/src/str.c	(revision d066259279e2e85ad364d7828aa3db232f394ec4)
@@ -1,4 +1,8 @@
 /*
  * Copyright (c) 2001-2004 Jakub Jermar
+ * Copyright (c) 2005 Martin Decky
+ * Copyright (c) 2008 Jiri Svoboda
+ * Copyright (c) 2011 Martin Sucha
+ * Copyright (c) 2011 Oleg Romanenko
  * All rights reserved.
  *
@@ -98,9 +102,10 @@
  */
 
+#include <str.h>
+
 #include <errno.h>
 #include <stdbool.h>
 #include <stddef.h>
 #include <stdint.h>
-#include <str.h>
 
 /** Check the condition if wchar_t is signed */
@@ -208,5 +213,5 @@
  *         code was invalid.
  */
-int chr_encode(const wchar_t ch, char *str, size_t *offset, size_t size)
+errno_t chr_encode(const wchar_t ch, char *str, size_t *offset, size_t size)
 {
 	if (*offset >= size)
@@ -392,5 +397,5 @@
 			return 1;
 
-		if ((c1 == 0) || (c2 == 0))
+		if (c1 == 0 || c2 == 0)
 			break;
 	}
