DragonFly On-Line Manual Pages
KVM_READ(3) DragonFly Library Functions Manual KVM_READ(3)
kvm_read, kvm_readstr, kvm_write -- read or write kernel virtual memory
Kernel Data Access Library (libkvm, -lkvm)
kvm_read(kvm_t *kd, unsigned long addr, void *buf, size_t nbytes);
kvm_readstr(kvm_t *kd, unsigned long addr, char *buf, size_t *len);
kvm_write(kvm_t *kd, unsigned long addr, const void *buf, size_t nbytes);
The kvm_read(), kvm_readstr() and kvm_write() functions are used to read
and write kernel virtual memory (or a crash dump file). See kvm_open(3)
or kvm_openfiles(3) for information regarding opening kernel virtual mem-
ory and crash dumps.
The kvm_read() function transfers nbytes bytes of data from the kernel
space address addr to buf. Conversely, kvm_write() transfers data from
buf to addr. Unlike their SunOS counterparts, these functions cannot be
used to read or write process address spaces.
The kvm_readstr() function exists for convenience to read NUL terminated
strings from the kernel address space. If buf is NULL, kvm_readstr()
will allocate a sufficiently large buffer, which needs to be deallocated
via free(3) by the caller. If len is not NULL, kvm_readstr() will inter-
pret the value it is pointing to as the size of buf and will store the
size of the complete string at addr. Note that if only buf is too small
to hold the complete string, kvm_readstr() will return NULL but set len
to the size needed.
For kvm_read() and kvm_write() the number of bytes actually transferred
is returned, if the request was successful. Otherwise, -1 is returned.
For kvm_readstr() NULL is returned on failure. Upon success, the address
of the string is returned, which will be buf if this was supplied.
kvm(3), kvm_close(3), kvm_getargv(3), kvm_getenvv(3), kvm_geterr(3),
kvm_getprocs(3), kvm_nlist(3), kvm_open(3), kvm_openfiles(3)
DragonFly 4.3 January 8, 2006 DragonFly 4.3