diff options
author | alex <alex@FreeBSD.org> | 2001-03-11 17:30:08 +0000 |
---|---|---|
committer | alex <alex@FreeBSD.org> | 2001-03-11 17:30:08 +0000 |
commit | 085bf061f4a31f74f526a820fce3707829403c9b (patch) | |
tree | 950f704aff65cdb4a4abc94fc7e681d9fd719aad /share/man/man9/DEV_MODULE.9 | |
parent | 7620114ca978cd5e885fe35d08606a698c51d9e1 (diff) | |
download | FreeBSD-src-085bf061f4a31f74f526a820fce3707829403c9b.zip FreeBSD-src-085bf061f4a31f74f526a820fce3707829403c9b.tar.gz |
Add a manpage for the DEV_MODULE kernel macro.
Diffstat (limited to 'share/man/man9/DEV_MODULE.9')
-rw-r--r-- | share/man/man9/DEV_MODULE.9 | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/share/man/man9/DEV_MODULE.9 b/share/man/man9/DEV_MODULE.9 new file mode 100644 index 0000000..a173cd3 --- /dev/null +++ b/share/man/man9/DEV_MODULE.9 @@ -0,0 +1,103 @@ +.\" -*- nroff -*- +.\" +.\" Copyright (c) 2001 Alexander Langer +.\" +.\" All rights reserved. +.\" +.\" This program is free software. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd March 11, 2001 +.Dt DEV_MODULE 9 +.Os +.Sh NAME +.Nm DEV_MODULE +.Nd device driver module declaration macro +.Sh SYNOPSIS +.Fd #include <sys/module.h> +.Fd #include <sys/conf.h> +.Fn DEV_MODULE "name" "modeventhand_t evh" "void *arg" +.Sh DESCRIPTION +The +.Fn DEV_MODULE +macro declares a device driver kernel module. +It fills in a +.Vt moduledata_t +structure and then calls +.Fn DECLARE_MODULE +with the correct args, where +.Fa name +is the name of the module and +.Fa evh +(with its argument +.Fa arg ) +is the event handler for the module (refer to +.Xr DECLARE_MODULE 9 +for more information). +The event handler is supposed to create the device with +.Fn make_dev +on load and to destroy it when it is unloaded using +.Fn destroy_dev . +.Sh EXAMPLES +.Bd -literal +#include <sys/module.h> +#include <sys/conf.h> + +static struct cdevsw foo_devsw = { ... }; + +static dev_t sdev; + +static int +foo_load(module_t mod, int cmd, void *arg) +{ + int err = 0; + + switch (cmd) { + case MOD_LOAD: + sdev = make_dev(&foo_devsw, 0, UID_ROOT, GID_WHEEL, 0600, "foo"); + break; /* Success*/ + + case MOD_UNLOAD: + case MOD_SHUTDOWN: + destroy_dev(sdev); + break; /* Success*/ + + default: + err = EINVAL; + break; + } + + return(err); +} + +DEV_MODULE(foo, foo_load, NULL); +.Ed +.Sh SEE ALSO +.Xr module 9 , +.Xr DECLARE_MODULE 9 , +.Xr make_dev 9 , +.Xr destroy_dev 9 +.Sh AUTHORS +This manual page was written by +.An Alexander Langer Aq alex@FreeBSD.org . |