man.bsd.lv manual page server

Manual Page Search Parameters

KVM_READ(3) Library Functions Manual KVM_READ(3)

kvm_read, kvm_readstr, kvm_writeread or write kernel virtual memory

library “libkvm”

#include <sys/types.h>
#include <kvm.h>

ssize_t
kvm_read(kvm_t *kd, unsigned long addr, void *buf, size_t nbytes);

char *
kvm_readstr(kvm_t *kd, unsigned long addr, char *buf, size_t *len);

ssize_t
kvm_write(kvm_t *kd, unsigned long addr, const void *buf, size_t nbytes);

The (), kvm_readstr() and kvm_write() functions are used to read and write kernel virtual memory (or a crash dump file). See (3) or (3) for information regarding opening kernel virtual memory and crash dumps.

The () function transfers nbytes bytes of data from the kernel space address addr to buf. Conversely, () transfers data from buf to addr. Unlike their SunOS counterparts, these functions cannot be used to read or write process address spaces.

The () 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 interpret 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)

January 8, 2006 DragonFly-5.6.1