kmem(7)kmem(7)NAMEkmem - perform I/O on kernel memory, based on symbol name
SYNOPSISDESCRIPTION
When used with a valid file descriptor for (kmemfd), can be used to
manipulate kernel memory. The specifics of this manipulation depend on
the command given as follows:
Read mirk_buflen bytes of kernel memory starting at
the address for mirk_symname into mirk_buf.
rks is a pointer to a structure, defined
below.
Indirect read. Read bytes of kernel memory starting at the
address for mirk_symname and use that as the
address from which to read mirk_buflen bytes
of kernel memory into mirk_buf. rks is a
pointer to a structure.
Write mirk_buflen bytes from mirk_buf into kernel
memory starting at the address for mirk_sym‐
name. rks is a pointer to a structure.
Indirect write. Read bytes of kernel memory starting at the
address for mirk_symname and use that as the
kernel memory address into which mirk_buflen
bytes from mirk_buf are written. rks is a
pointer to a structure.
Increase the hold count by one for the dynamically loaded module whose
name is given by
rks, a pointer to a character string, thereby
preventing its unloading.
Decrease the hold count by one for the dynamically loaded module whose
name is given by
rks, a pointer to a character string. If the
count is thereby reduced to 0, the module
becomes a candidate for unloading.
The definition is:
RETURN VALUE
returns one of the following values:
Successful completion.
Failure.
is set to indicate the error.
ERRORS
In addition to the values described in ioctl(2), the also sets to one
of the following values if the corresponding condition is detected.
modname does not represent a currently loaded module or this is
an and the hold count is already 0.
kmemfd open on wrong minor device (i.e., not
kmemfd open for reading and this is an
symname not found.
modname is greater than characters long, or symname is greater
that characters long.
SEE ALSOgetksym(2), ioctl(2), ioctl(5).
kmem(7)