kernel/dsched: Add a version parameter to the DSCHED_POLICY_MODULE macro.
authorSascha Wildner <saw@online.de>
Tue, 7 Aug 2012 01:31:59 +0000 (03:31 +0200)
committerSascha Wildner <saw@online.de>
Tue, 7 Aug 2012 01:31:59 +0000 (03:31 +0200)
share/man/man9/dsched.9
sys/kern/dsched/as/as.c
sys/kern/dsched/bfq/bfq.c
sys/kern/dsched/fq/fq_core.c
sys/sys/dsched.h

index 5d61aa9..fa0c610 100644 (file)
@@ -29,7 +29,7 @@
 .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd September 29, 2010
+.Dd August 7, 2012
 .Dt DSCHED 9
 .Os
 .Sh NAME
@@ -82,7 +82,7 @@ Functions:
 .Fn dsched_unregister "struct dsched_policy *d_policy"
 .Pp
 Macros:
-.Fn DSCHED_POLICY_MODULE "name" "modeventhand_t evh"
+.Fn DSCHED_POLICY_MODULE "name" "modeventhand_t evh" "version"
 .Fn DSCHED_DISK_CTX_LOCK "struct dsched_disk_ctx *diskctx"
 .Fn DSCHED_DISK_CTX_UNLOCK "struct dsched_disk_ctx *diskctx"
 .Fn DSCHED_THREAD_IO_LOCK "struct dsched_thread_io *tdio"
@@ -113,7 +113,7 @@ To create a new dsched policy
 .Sq foo
 the following is required:
 .Bd -literal
-DSCHED_POLICY_MODULE(dsched_foo, foo_mod_handler);
+DSCHED_POLICY_MODULE(dsched_foo, foo_mod_handler, 1);
 
 struct dsched_policy dsched_foo_policy = {
        .name = "foo",
@@ -300,6 +300,10 @@ policy with
 on load and to unregister it using
 .Fn dsched_unregister
 when it is unloaded.
+.Fa version
+is the version number of the module (see
+.Xr MODULE_VERSION 9
+for more information).
 .Pp
 The
 .Fn dsched_strategy_async
index 0f3d51f..d388f78 100644 (file)
@@ -287,4 +287,4 @@ as_mod_handler(module_t mod, int type, void *unused)
        return 0;
 
 }
-DSCHED_POLICY_MODULE(dsched_as, as_mod_handler);
+DSCHED_POLICY_MODULE(dsched_as, as_mod_handler, 1);
index d9d29b6..5d04988 100644 (file)
@@ -1379,4 +1379,4 @@ bfq_sysctl_auto_max_budget_handler(SYSCTL_HANDLER_ARGS)
        return error;
 }
 
-DSCHED_POLICY_MODULE(dsched_bfq, bfq_mod_handler);
+DSCHED_POLICY_MODULE(dsched_bfq, bfq_mod_handler, 1);
index 195d7a2..01657f6 100644 (file)
@@ -427,4 +427,4 @@ fq_mod_handler(module_t mod, int type, void *unused)
        return 0;
 }
 
-DSCHED_POLICY_MODULE(dsched_fq, fq_mod_handler);
+DSCHED_POLICY_MODULE(dsched_fq, fq_mod_handler, 1);
index 199c5d9..e254a31 100644 (file)
@@ -237,13 +237,14 @@ TAILQ_HEAD(dsched_policy_head, dsched_policy);
 #define DSCHED_THREAD_IO_MAX_SZ                384
 #define DSCHED_DISK_CTX_MAX_SZ         1024
 
-#define DSCHED_POLICY_MODULE(name, evh)                                        \
+#define DSCHED_POLICY_MODULE(name, evh, version)                       \
 static moduledata_t name##_mod = {                                     \
     #name,                                                             \
     evh,                                                               \
     NULL                                                               \
 };                                                                     \
-DECLARE_MODULE(name, name##_mod, SI_SUB_PRE_DRIVERS, SI_ORDER_MIDDLE)
+DECLARE_MODULE(name, name##_mod, SI_SUB_PRE_DRIVERS, SI_ORDER_MIDDLE); \
+MODULE_VERSION(name, version)
 
 void   dsched_disk_create_callback(struct disk *dp, const char *head_name, int unit);
 void   dsched_disk_update_callback(struct disk *dp, struct disk_info *info);