Index: uspace/lib/conf/include/conf/configuration.h
===================================================================
--- uspace/lib/conf/include/conf/configuration.h	(revision 767123105f708e9f0546c5589bc0f97fe0bebc59)
+++ uspace/lib/conf/include/conf/configuration.h	(revision 2dda1d498af4053267f8bb5714b994ecc0c1fad9)
@@ -65,5 +65,6 @@
 /** Code of configuration processing error */
 typedef enum {
-	CONFIGURATION_EMISSING_ITEM = -1
+	CONFIGURATION_EMISSING_ITEM = -1,
+	CONFIGURATION_EINVAL_BOOL = -2
 } config_error_t;
 
@@ -74,4 +75,5 @@
 
 extern bool config_parse_string(const char *, void *, text_parse_t *, size_t);
+extern bool config_parse_bool(const char *, void *, text_parse_t *, size_t);
 
 #endif
Index: uspace/lib/conf/src/configuration.c
===================================================================
--- uspace/lib/conf/src/configuration.c	(revision 767123105f708e9f0546c5589bc0f97fe0bebc59)
+++ uspace/lib/conf/src/configuration.c	(revision 2dda1d498af4053267f8bb5714b994ecc0c1fad9)
@@ -126,2 +126,32 @@
 	return true;
 }
+
+/** Parse boolean value
+ *
+ * @param[out]  dst      pointer to bool
+ *
+ * @return  true   on success
+ * @return  false  on parse error
+ */
+bool config_parse_bool(const char *string, void *dst, text_parse_t *parse,
+    size_t lineno)
+{
+	bool value;
+	if (stricmp(string, "true") == 0 ||
+	    stricmp(string, "yes") == 0 ||
+	    stricmp(string, "1") == 0) {
+		value = true;
+	} else if (stricmp(string, "false") == 0 ||
+	    stricmp(string, "no") == 0 ||
+	    stricmp(string, "0") == 0) {
+		value = false;
+	} else {
+		text_parse_raise_error(parse, lineno,
+		    CONFIGURATION_EINVAL_BOOL);
+		return false;
+	}
+
+	bool *bool_dst = dst;
+	*bool_dst = value;
+	return true;
+}
