ksyms - kernel symbol table device
pseudo-device ksyms [count]
The /dev/ksyms device masquerades as an OpenBSD native executable (a.out
or ELF, depending on the platform) with the symbols from the
running kernel
as its symbol segment. Use of /dev/ksyms requires that
the boot
loader preserve the kernel symbols and place them at the end
of the kernel's
address space.
The /dev/ksyms device is used to look up the symbol table
name list from
the running kernel. Because it represents the running kernel it is guaranteed
to always be up to date even if the kernel file has
been changed
(or is even non-existent). It is most useful when used in
conjunction
with nlist(3) or the kvm(3) routines (note that kvm_open(3)
and
kvm_openfiles(3) will try /dev/ksyms automatically if the
first parameter
to them is the NULL pointer).
/dev/ksyms
An open of /dev/ksyms will fail if:
[EPERM] An open was attempted with write permissions.
[ENXIO] No kernel symbols were saved by the boot loader (usually
because they were removed with strip(1)), or
the kernel has
been compiled without a ``pseudo-device
ksyms'' line.
kvm(3), nlist(3)
The /dev/ksyms device appeared in OpenBSD 2.4.
It is not possible to mmap(2) /dev/ksyms because the boot
loader does not
load the symbol table onto a page boundary (so it is not
page aligned).
If all the boot loaders were fixed, mmap(2) support would be
trivial.
OpenBSD 3.6 August 24, 1998
[ Back ] |