Function nix::kmod::init_module

source ·
pub fn init_module(module_image: &[u8], param_values: &CStr) -> Result<()>
Expand description

Loads a kernel module from a buffer.

It loads an ELF image into kernel space, performs any necessary symbol relocations, initializes module parameters to values provided by the caller, and then runs the module’s init function.

This function requires CAP_SYS_MODULE privilege.

The module_image argument points to a buffer containing the binary image to be loaded. The buffer should contain a valid ELF image built for the running kernel.

The param_values argument is a string containing space-delimited specifications of the values for module parameters. Each of the parameter specifications has the form:

name[=value[,value...]]

§Example

use std::fs::File;
use std::io::Read;
use std::ffi::CString;
use nix::kmod::init_module;

let mut f = File::open("mykernel.ko").unwrap();
let mut contents: Vec<u8> = Vec::new();
f.read_to_end(&mut contents).unwrap();
init_module(&mut contents, &CString::new("who=Rust when=Now,12").unwrap()).unwrap();

See man init_module(2) for more information.