Index: uspace/libc/generic/string.c
===================================================================
--- uspace/libc/generic/string.c	(revision df4ed852a2d1b242f9bdce0a873009a2cb77cec7)
+++ uspace/libc/generic/string.c	(revision df24ec3c3a1cd6ffd5c6b43561155da6c89e4c25)
@@ -103,4 +103,19 @@
 }
 
+/** Compare two memory areas.
+ *
+ * @param s1	Pointer to the first area to compare.
+ * @param s2	Pointer to the second area to compare.
+ * @param len	Size of the first area in bytes. Both areas must have the same
+ *		length.
+ * @return	If len is 0, return zero. If the areas match, return zero.
+ *		Otherwise return non-zero.
+ */
+int bcmp(const char *s1, const char *s2, size_t len)
+{
+	for (; len && *s1++ == *s2++; len--)
+		;
+	return len;
+}
 
 /** Count the number of characters in the string, not including terminating 0.
Index: uspace/libc/include/string.h
===================================================================
--- uspace/libc/include/string.h	(revision df4ed852a2d1b242f9bdce0a873009a2cb77cec7)
+++ uspace/libc/include/string.h	(revision df24ec3c3a1cd6ffd5c6b43561155da6c89e4c25)
@@ -44,4 +44,6 @@
 void * memmove(void *dest, const void *src, size_t n);
 
+int bcmp(const char *s1, const char *s2, size_t n);
+
 int strcmp(const char *, const char *);
 
