getksym(2)getksym(2)NAMEgetksym() - get information for local and global kernel symbols
SYNOPSIS
#include <sys/types.h>
#include <sys/ksym.h>
#include <elf.h>
#include <elf_parisc.h> /* For STT_PARISC_MILLI on PA-RISC */
int getksym(char * symname, char * modname, uint64_t *value,
uint64_t *info);
DESCRIPTION
There are two ways that can be used to retrieve kernel symbol informa‐
tion. As detailed below, if symname is provided and value is set to
zero, attempts to retrieve the value of the symbol; if a non-zero value
is provided, the associated symbol name is retrieved.
given a symname, looks for global or and local symbols of that name in
the symbol table of the static kernel and all currently loaded kernel
modules. If it finds a match, returns the value associated with that
symbol (typically its address) in the space pointed to by value, and
the type of that symbol in the space pointed to by info.
NOTE: If there are two symbols (a local and a global symbol) with the
same name, returns the first symbol that it finds with that name, which
will be the local symbol.
The types returned are:
unknown type
text symbol (typically function)
PA-RISC millicode function (PA-RISC only)
data symbol
section symbol
The symbol name can be no more than characters. If modname is set to
the name (basename only) of a dynamically loaded module, then the
search for the symbol name will only be in that module. If modname is
NULL, then the search order for the symbol name will be the static ker‐
nel followed by each of the currently loaded modules in the order in
which they were loaded. The module name can be no more than charac‐
ters.
If both a non-zero value and a symname are provided, the behavior of is
undefined. If a zero value and an empty or NULL symname is provided,
the behavior of is undefined.
If is given a valid non-zero address in the statically configured ker‐
nel or one of the currently loaded modules in the space pointed to by
value, it will return, in the space pointed to by symname, the name of
the symbol whose value is the closest one less than or equal to the
given value and, in space pointed to by info, the difference between
the address given and the value of the symbol found.
NOTE: If two symbols (an symbol and an symbol) have the same address,
returns the symbol.
The space pointed to by symname must be at least characters long.
RETURN VALUE
returns upon successful completion. If an error occurs, a value of is
returned and is set to indicate the error.
ERRORS
fails if one or more of the following are true:
modname
does not represent a currently loaded module.
modname
is greater than MODMAXNAMELEN characters long, or symname
is greater than MAXSYMNMLEN characters long.
The symbol name given is not found, or the value given is not a
currently
valid address.
EXAMPLES
The following code sequence and call to obtains a symbol name (and an
offset) given an address.
The following code sequence and call to obtains an address given a sym‐
bol name.
SEE ALSOkmem(7).
getksym(2)