DECLARE_MODULE (9)
Leading comments
Copyright (c) 2000 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 disclaim...
NAME
DECLARE_MODULE - kernel module declaration macroSYNOPSIS
In sys/param.h In sys/kernel.h In sys/module.h Fn DECLARE_MODULE name moduledata_t data sub orderDESCRIPTION
The Fn DECLARE_MODULE macro declares a generic kernel module. It is used to register the module with the system, using the Fn SYSINIT macro. Fn DECLARE_MODULE is usually used within other macros, such as DRIVER_MODULE9, DEV_MODULE9 and SYSCALL_MODULE9. Of course, it can also be called directly, for example in order to implement dynamic sysctls.The arguments it expects are:
- Fa name
- The module name, which will be used in the Fn SYSINIT call to identify the module.
- Fa data
- A Vt moduledata_t structure, which contains two main items, the official name of the module name, which will be used in the Vt module_t structure and a pointer to the event handler function of type Vt modeventhand_t .
- Fa sub
- An argument directed to the Fn SYSINIT macro. Valid values for this are contained in the Vt sysinit_sub_id enumeration (see In sys/kernel.h ) and specify the type of system startup interfaces. The DRIVER_MODULE9 macro uses a value of SI_SUB_DRIVERS here for example, since these modules contain a driver for a device. For kernel modules that are loaded at runtime, a value of SI_SUB_EXEC is common.
- Fa order
- An argument for Fn SYSINIT . It represents the KLDs order of initialization within the subsystem. Valid values are defined in the Vt sysinit_elem_order enumeration (In sys/kernel.h )
SEE ALSO
DEV_MODULE9, DRIVER_MODULE9, module(9), SYSCALL_MODULE9/usr/include/sys/kernel.h /usr/share/examples/kld