xref: /freebsd/lib/libsys/kldload.2 (revision a3cefe7f2b4df0f70ff92d4570ce18e517af43ec)
1.\"
2.\" Copyright (c) 1999 Chris Costello
3.\" All rights reserved.
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
8.\" 1. Redistributions of source code must retain the above copyright
9.\"    notice, this list of conditions and the following disclaimer.
10.\" 2. Redistributions in binary form must reproduce the above copyright
11.\"    notice, this list of conditions and the following disclaimer in the
12.\"    documentation and/or other materials provided with the distribution.
13.\"
14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24.\" SUCH DAMAGE.
25.\"
26.Dd March 26, 2026
27.Dt KLDLOAD 2
28.Os
29.Sh NAME
30.Nm kldload
31.Nd load KLD files into the kernel
32.Sh LIBRARY
33.Lb libc
34.Sh SYNOPSIS
35.In sys/linker.h
36.Ft int
37.Fn kldload "const char *file"
38.Sh DESCRIPTION
39The
40.Fn kldload
41system call
42loads a kld file specified by
43.Fa file
44into the kernel using the kernel linker (see
45.Xr kld 4 ) .
46The
47.Fa file
48can be specified as a full or relative path, or otherwise is searched
49within the module path as defined by the
50loader tunable and sysctl variable
51.Va kern.module_path .
52The .ko
53extension for
54.Fa file
55is not mandatory.
56.Sh RETURN VALUES
57The
58.Fn kldload
59system call
60returns the fileid of the kld file which was loaded into the kernel.
61If an error occurs,
62.Fn kldload
63will return -1 and set
64.Va errno
65to indicate the error.
66.Sh ERRORS
67The named file is loaded unless:
68.Bl -tag -width Er
69.It Bq Er EPERM
70You do not have access to read the file or link it with the kernel.
71You should be the root user to be able to use the
72.Nm kld
73system calls.
74.It Bq Er EFAULT
75Bad address encountered when adding kld info into the kernel space.
76.It Bq Er ENOMEM
77There is no memory to load the file into the kernel.
78.It Bq Er ENOENT
79The file was not found.
80.It Bq Er ENOEXEC
81The file format of
82.Fa file
83was unrecognized.
84.It Bq Er EEXIST
85The supplied
86.Fa file
87has already been loaded.
88.El
89.Sh SEE ALSO
90.Xr kldfind 2 ,
91.Xr kldfirstmod 2 ,
92.Xr kldnext 2 ,
93.Xr kldstat 2 ,
94.Xr kldsym 2 ,
95.Xr kldunload 2 ,
96.Xr modfind 2 ,
97.Xr modfnext 2 ,
98.Xr modnext 2 ,
99.Xr modstat 2 ,
100.Xr kld 4 ,
101.Xr kldload 8
102.Sh HISTORY
103The
104.Nm kld
105interface first appeared in
106.Fx 3.0 .
107