NAME¶
kldsym
—
look up address by symbol name in a KLD
LIBRARY¶
Standard C Library (libc, -lc)
SYNOPSIS¶
#include
<sys/param.h>
#include
<sys/linker.h>
int
kldsym
(
int
fileid,
int
command,
void
*data);
DESCRIPTION¶
The
kldsym
() system call returns the address
of the symbol specified in
data in the module
specified by
fileid. If
fileid is 0, all loaded modules are searched.
Currently, the only
command implemented is
KLDSYM_LOOKUP
.
The
data argument is of the following
structure:
struct kld_sym_lookup {
int version; /* sizeof(struct kld_sym_lookup) */
char *symname; /* Symbol name we are looking up */
u_long symvalue;
size_t symsize;
};
The
version member is to be set by the code
calling
kldsym
() to
sizeof
(
struct
kld_sym_lookup). The next two members,
version and
symname, are specified by the user. The last
two,
symvalue and
symsize, are filled in by
kldsym
() and contain the address associated
with
symname and the size of the data it
points to, respectively.
RETURN VALUES¶
The
kldsym
() function returns the
value 0 if successful; otherwise the value -1 is returned and
the global variable
errno is set to indicate
the error.
ERRORS¶
The
kldsym
() system call will fail if:
- [
EINVAL
]
- Invalid value in data->version or
command.
- [
ENOENT
]
- The fileid argument is invalid, or the
specified symbol could not be found.
SEE ALSO¶
kldfind(2),
kldfirstmod(2),
kldload(2),
kldnext(2),
kldunload(2),
modfind(2),
modnext(2),
modstat(2),
kld(4)
HISTORY¶
The
kldsym
() system call first appeared in
FreeBSD 3.0.