kldsym(2)
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(structkld_sym_lookup) */
char *symname; /* Symbol name we arelooking 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 sym
- bol could not be found.
SEE ALSO
- kldfind(2), kldfirstmod(2), kldload(2), kldnext(2), kldun
- load(2),
modfind(2), modnext(2), modstat(2), kld(4)
HISTORY
- The kldsym() system call first appeared in FreeBSD 3.0.
- BSD July 26, 2001