KLDLOAD(2)

NAME
kldload - load KLD files into the kernel

LIBRARY
libc

SYNOPSIS
#include <sys/linker.h>
int
kldload(const char *file);

DESCRIPTION
The kldload() system call loads a kld file specified by file into the kernel using the kernel linker (see kld(4)). The file can be specified as a full or relative path, or otherwise is searched within the module path as defined by the loader tunable and sysctl variable kern.module_path. The .ko extension for file is not mandatory.

RETURN VALUES
The kldload() system call returns the fileid of the kld file which was loaded into the kernel. If an error occurs, kldload() will return -1 and set errno to indicate the error.

ERRORS
The named file is loaded unless:

[EPERM]
    You do not have access to read the file or link it with the kernel. You should be the root user to be able to use the kld system calls.

[EFAULT]
    Bad address encountered when adding kld info into the kernel space.

[ENOMEM]
    There is no memory to load the file into the kernel.

[ENOENT]
    The file was not found.

[ENOEXEC]
    The file format of file was unrecognized.

[EEXIST]
    The supplied file has already been loaded.

SEE ALSO
kldfind(2), kldfirstmod(2), kldnext(2), kldstat(2), kldsym(2), kldunload(2), modfind(2), modfnext(2), modnext(2), modstat(2), kld(4), kldload(8)

HISTORY
The kld interface first appeared in FreeBSD 3.0.