diff --git a/sys/vfs/devfs/devfs_rules.h b/sys/vfs/devfs/devfs_rules.h
index 33fe50a..a8ced4f 100644
--- a/sys/vfs/devfs/devfs_rules.h
+++ b/sys/vfs/devfs/devfs_rules.h
@@ -46,14 +46,14 @@
 struct devfs_rule {
 	u_long	rule_type;
 
-	char	*mntpoint;
-	u_char	mntpointlen;
+	const char *mntpoint;
+	size_t	mntpointlen;
 
-	char	*name;
-	u_char	namlen;
+	const char *name;
+	size_t	namlen;
 
-	char	*linkname;
-	u_char	linknamlen;
+	const char *linkname;
+	size_t	linknamlen;
 
 
 	u_long	dev_type;	/* Type of device to which the rule applies */
diff --git a/usr.sbin/devfsctl/devfsctl.c b/usr.sbin/devfsctl/devfsctl.c
index 4095bc5..f73f0f5 100644
--- a/usr.sbin/devfsctl/devfsctl.c
+++ b/usr.sbin/devfsctl/devfsctl.c
@@ -39,6 +39,7 @@
 
 #include <vfs/devfs/devfs_rules.h>
 
+#include <ctype.h>
 #include <err.h>
 #include <fcntl.h>
 #include <grp.h>
@@ -127,8 +128,8 @@ syntax_error(const char *fmt, ...)
 	va_start(ap, fmt);
 	vsnprintf(buf, sizeof(buf), fmt, ap);
 	va_end(ap);
-	errx(1, "%s: syntax error on line %d: %s\n",file_stack[line_stack_depth],
-			line_stack[line_stack_depth], buf);
+	errx(1, "%s: syntax error on line %d: %s\n",
+	    file_stack[line_stack_depth], line_stack[line_stack_depth], buf);
 }
 
 static int
@@ -210,7 +211,7 @@ parser_group(char **tokens)
 		} else {
 			if (k >= gid->listsize-1 ) {
 				gid->list = realloc(gid->list,
-						2*gid->listsize*sizeof(struct groupdevid *));
+				    2*gid->listsize*sizeof(struct groupdevid *));
 				gid->listsize *= 2;
 			}
 
@@ -300,10 +301,10 @@ get_id(const char *name)
 		id = get_group(name+1, 0);
 		if (id == NULL)
 			syntax_error("unknown group name '%s', you "
-					"have to use the 'group' verb first.", name+1);
-	}
-	else
+			    "have to use the 'group' verb first.", name+1);
+	} else {
 		id = new_id(name, 0);
+	}
 
 	return id;
 }
@@ -356,16 +357,29 @@ dump_config_entry(struct rule *rule, struct groupdevid *id)
 	int i;
 
 	switch (rule->type) {
-	case rPERM: printf("perm "); break;
-	case rLINK: printf("link "); break;
-	case rHIDE: printf("hide "); break;
-	case rSHOW: printf("show "); break;
-	default: errx(1, "invalid rule type");
+	case rPERM:
+		printf("perm ");
+		break;
+	case rLINK:
+		printf("link ");
+		break;
+	case rHIDE:
+		printf("hide ");
+		break;
+	case rSHOW:
+		printf("show ");
+		break;
+	default:
+		errx(1, "invalid rule type");
 	}
 
 	switch (id->type) {
-	case isGROUP: printf("@"); /* FALLTHROUGH */
-	case isNAME: printf("%s", id->name); break;
+	case isGROUP:
+		printf("@");
+		/* FALLTHROUGH */
+	case isNAME:
+		printf("%s", id->name);
+		break;
 	case isTYPE:
 		for (i = 0; devtypes[i].name != NULL; i++) {
 			if (devtypes[i].value == id->devtype) {
@@ -374,7 +388,8 @@ dump_config_entry(struct rule *rule, struct groupdevid *id)
 			}
 		}
 		break;
-	default: errx(1, "invalid id type %d", id->type);
+	default:
+		errx(1, "invalid id type %d", id->type);
 	}
 
 	switch (rule->type) {
@@ -383,14 +398,14 @@ dump_config_entry(struct rule *rule, struct groupdevid *id)
 		grp = getgrgid(rule->gid);
 		if (pwd && grp) {
 			printf(" %s:%s 0%.03o",
-				   pwd->pw_name,
-				   grp->gr_name,
-				   rule->mode);
+			    pwd->pw_name,
+			    grp->gr_name,
+			    rule->mode);
 		} else {
 			printf(" %d:%d 0%.03o",
-				   rule->uid,
-				   rule->gid,
-				   rule->mode);
+			    rule->uid,
+			    rule->gid,
+			    rule->mode);
 		}
 		break;
 	case rLINK:
@@ -539,7 +554,7 @@ rule_check_num_args(char **tokens, int num)
 }
 
 int
-read_config(char *name)
+read_config(const char *name)
 {
 	FILE *fd;
 
@@ -662,24 +677,12 @@ static void
 usage(void)
 {
 	fprintf(stderr,
-		"Usage: devfsctl <commands> [options]\n"
-		"Valid commands are:\n"
-		" -a\n"
-		"\t Loads all read rules into the kernel and applies them\n"
-		" -c\n"
-		"\t Clears all rules stored in the kernel but does not reset the nodes\n"
-		" -d\n"
-		"\t Dumps the rules that have been loaded to the screen to verify syntax\n"
-		" -r\n"
-		"\t Resets all devfs_nodes but does not clear the rules stored\n"
-		"\n"
-		"Valid options and its arguments are:\n"
-		" -f <config_file>\n"
-		"\t Specifies the configuration file to be used\n"
-		" -m <mount_point>\n"
-		"\t Specifies a mount point to which the command will apply. Defaults to *\n"
-		);
-
+	    "usage:\n"
+	    "devfsctl -a -f file [-m mount_point]\n"
+	    "devfsctl -d -f file\n"
+	    "devfsctl -c [-m mount_point]\n"
+	    "devfsctl -r [-m mount_point]\n"
+	    "devfsctl -h\n");
 	exit(1);
 }
 
@@ -709,7 +712,6 @@ int main(int argc, char *argv[])
 			dflag = 1;
 			break;
 		case 'h':
-		case '?':
 		default:
 			usage();
 			/* NOT REACHED */
diff --git a/usr.sbin/devfsctl/devfsctl.h b/usr.sbin/devfsctl/devfsctl.h
index b437d6b..6a544e6 100644
--- a/usr.sbin/devfsctl/devfsctl.h
+++ b/usr.sbin/devfsctl/devfsctl.h
@@ -46,8 +46,7 @@ struct rule {
 	TAILQ_ENTRY(rule) link;
 };
 
-typedef int (rule_iterate_callback_t)(struct rule *rule,
-		struct groupdevid *id);
+typedef int (rule_iterate_callback_t)(struct rule *, struct groupdevid *);
 typedef int (rule_parser_t)(char **);
 
 struct groupdevid *new_id(const char *, int);
@@ -57,6 +56,6 @@ struct rule *new_rule(int, struct groupdevid *);
 void add_rule(struct rule *);
 int rule_apply(void);
 void dump_config(void);
-int read_config(char *);
-int syntax_error(const char *fmt, ...);
+int read_config(const char *);
+int syntax_error(const char *, ...);
 #endif
