diff options
| author | jnemeth <jnemeth@NetBSD.org> | 2010-10-25 22:41:42 +0000 |
|---|---|---|
| committer | jnemeth <jnemeth@NetBSD.org> | 2010-10-25 22:41:42 +0000 |
| commit | 6e39448e16b88c18fffcb8bdcef42736d758d888 (patch) | |
| tree | 266bc3ccbea53e9bc4fd974d76b5c2824b5a3c09 /sys/modules/example | |
| parent | 5d63576039debcfc8c20e4fad8e70d54c49dd318 (diff) | |
Revert most of previous:
- props being NULL is NOT an error and is a condition that all modules
must be prepared to handle
- having this module bomb out for spurious reasons makes this module
difficult to use for testing things
- keep comment update
- keep some KNF
- add a notice for the case when props is NULL
Diffstat (limited to 'sys/modules/example')
| -rw-r--r-- | sys/modules/example/example.c | 50 |
1 files changed, 22 insertions, 28 deletions
diff --git a/sys/modules/example/example.c b/sys/modules/example/example.c index d02b4d50c0e..2f926b209d3 100644 --- a/sys/modules/example/example.c +++ b/sys/modules/example/example.c @@ -1,4 +1,4 @@ -/* $NetBSD: example.c,v 1.6 2010/06/22 18:30:20 rmind Exp $ */ +/* $NetBSD: example.c,v 1.7 2010/10/25 22:41:42 jnemeth Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: example.c,v 1.6 2010/06/22 18:30:20 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: example.c,v 1.7 2010/10/25 22:41:42 jnemeth Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -41,59 +41,53 @@ __KERNEL_RCSID(0, "$NetBSD: example.c,v 1.6 2010/06/22 18:30:20 rmind Exp $"); MODULE(MODULE_CLASS_MISC, example, NULL); -static int +static +void handle_props(prop_dictionary_t props) { const char *msg; prop_string_t str; - if (props == NULL) - return EINVAL; - - str = prop_dictionary_get(props, "msg"); - if (str == NULL) { - printf("The 'msg' property was not given.\n"); - return EINVAL; + if (props != NULL) { + str = prop_dictionary_get(props, "msg"); + } else { + printf("No property dictionary was provided.\n"); + str = NULL; } - - if (prop_object_type(str) != PROP_TYPE_STRING) { + if (str == NULL) + printf("The 'msg' property was not given.\n"); + else if (prop_object_type(str) != PROP_TYPE_STRING) printf("The 'msg' property is not a string.\n"); - return EINVAL; + else { + msg = prop_string_cstring_nocopy(str); + if (msg == NULL) + printf("Failed to process the 'msg' property.\n"); + else + printf("The 'msg' property is: %s\n", msg); } - - msg = prop_string_cstring_nocopy(str); - if (msg == NULL) { - printf("Failed to process the 'msg' property.\n"); - } else { - printf("The 'msg' property is: %s\n", msg); - } - return 0; } static int example_modcmd(modcmd_t cmd, void *arg) { - int error; switch (cmd) { case MODULE_CMD_INIT: printf("Example module loaded.\n"); - error = handle_props(arg); + handle_props(arg); break; case MODULE_CMD_FINI: printf("Example module unloaded.\n"); - error = 0; break; case MODULE_CMD_STAT: printf("Example module status queried.\n"); - error = ENOTTY; - break; + return ENOTTY; default: - error = ENOTTY; + return ENOTTY; } - return error; + return 0; } |
