Machinekit

Machinekit

rtapi_module_param

NAME

rtapi_module_param — Specifying module parameters

SYNTAX

RTAPI_MP_INT(var, description)

RTAPI_MP_LONG(var, description)

RTAPI_MP_STRING(var, description)

RTAPI_MP_ARRAY_INT(var, num, description)

RTAPI_MP_ARRAY_LONG(var, num, description)

RTAPI_MP_ARRAY_STRING(var, num, description)

MODULE_LICENSE(license)

MODULE_AUTHOR(author)

MODULE_DESCRIPTION(description)

EXPORT_FUNCTION(function)

ARGUMENTS

var
The variable where the parameter should be stored

description
A short description of the parameter or module

num
The maximum number of values for an array parameter

license
The license of the module, for instance "GPL"

author
The author of the module

function
The pointer to the function to be exported

DESCRIPTION

These macros are portable ways to declare kernel module parameters.
They must be used in the global scope, and are not followed by a terminating semicolon.
They must be used after the associated variable or function has been defined.

NOTES

EXPORT_FUNCTION makes a symbol available for use by a subsequently loaded component.
It is unrelated to hal functions, which are described in hal_export_funct

Note
module params are persistant for the life of the module.
This does not cause problems with standard kernel modules, which are intended to be created and loaded once only.
When using instantiated components, a module param needs to be zeroed or nulled after the value is extracted by the component instance.
Otherwise, when the next instantiation of the component is created, that same value will be passed to it, unless explicitly set in the invocation.

Interpretation of license strings

MODULE_LICENSE follows the kernel’s definition of license strings.
Notably, "GPL" indicates "GNU Public License v2 or later". (emphasis ours).

It is still good practice to include a license block which indicates the author, copyright date, and disclaimer of warranty as recommended by the GNU GPL.

(Yes, license should be spelt licence. Blame the US 'dumb down' of English grammar)

REALTIME CONSIDERATIONS

Not available in userspace code.