Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DEV_MODULE(9)	       FreeBSD Kernel Developer's Manual	 DEV_MODULE(9)

NAME
     DEV_MODULE	-- device driver module	declaration macro

SYNOPSIS
     #include <sys/param.h>
     #include <sys/kernel.h>
     #include <sys/module.h>
     #include <sys/conf.h>

     DEV_MODULE(name, modeventhand_t evh, void *arg);

DESCRIPTION
     The DEV_MODULE() macro declares a device driver kernel module.  It	fills
     in	a moduledata_t structure and then calls	DECLARE_MODULE() with the cor-
     rect args,	where name is the name of the module and evh (with its argu-
     ment arg) is the event handler for	the module (refer to DECLARE_MODULE(9)
     for more information).  The event handler is supposed to create the
     device with make_dev() on load and	to destroy it when it is unloaded
     using destroy_dev().

EXAMPLES
     #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);

SEE ALSO
     DECLARE_MODULE(9),	destroy_dev(9),	make_dev(9), module(9)

AUTHORS
     This manual page was written by Alexander Langer <alex@FreeBSD.org>.

FreeBSD	11.1			March 11, 2001			  FreeBSD 11.1

NAME | SYNOPSIS | DESCRIPTION | EXAMPLES | SEE ALSO | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=DEV_MODULE&sektion=9&manpath=FreeBSD+6.1-RELEASE>

home | help