Changeset View
Changeset View
Standalone View
Standalone View
lib/libkvm/kvm_read.3
Show All 31 Lines | |||||
.\" @(#)kvm_read.3 8.1 (Berkeley) 6/4/93 | .\" @(#)kvm_read.3 8.1 (Berkeley) 6/4/93 | ||||
.\" $FreeBSD$ | .\" $FreeBSD$ | ||||
.\" | .\" | ||||
.Dd June 4, 1993 | .Dd June 4, 1993 | ||||
.Dt KVM_READ 3 | .Dt KVM_READ 3 | ||||
.Os | .Os | ||||
.Sh NAME | .Sh NAME | ||||
.Nm kvm_read , | .Nm kvm_read , | ||||
.Nm kvm_read2 , | |||||
.Nm kvm_write | .Nm kvm_write | ||||
.Nd read or write kernel virtual memory | .Nd read or write kernel virtual memory | ||||
.Sh LIBRARY | .Sh LIBRARY | ||||
.Lb libkvm | .Lb libkvm | ||||
.Sh SYNOPSIS | .Sh SYNOPSIS | ||||
.In kvm.h | .In kvm.h | ||||
.Ft ssize_t | .Ft ssize_t | ||||
.Fn kvm_read "kvm_t *kd" "unsigned long addr" "void *buf" "size_t nbytes" | .Fn kvm_read "kvm_t *kd" "unsigned long addr" "void *buf" "size_t nbytes" | ||||
.Ft ssize_t | .Ft ssize_t | ||||
.Fn kvm_read2 "kvm_t *kd" "kvaddr_t addr" "void *buf" "size_t nbytes" | |||||
.Ft ssize_t | |||||
.Fn kvm_write "kvm_t *kd" "unsigned long addr" "const void *buf" "size_t nbytes" | .Fn kvm_write "kvm_t *kd" "unsigned long addr" "const void *buf" "size_t nbytes" | ||||
.Sh DESCRIPTION | .Sh DESCRIPTION | ||||
The | The | ||||
.Fn kvm_read | .Fn kvm_read , | ||||
.Fn kvm_read2 , | |||||
and | and | ||||
.Fn kvm_write | .Fn kvm_write | ||||
functions are used to read and write kernel virtual memory (or a crash | functions are used to read and write kernel virtual memory (or a crash | ||||
dump file). | dump file). | ||||
See | See | ||||
.Fn kvm_open 3 | .Fn kvm_open 3 | ||||
or | |||||
.Fn kvm_openfiles 3 | |||||
for information regarding opening kernel virtual memory and crash dumps. | for information regarding opening kernel virtual memory and crash dumps. | ||||
.Pp | .Pp | ||||
The | The | ||||
.Fn kvm_read | .Fn kvm_read | ||||
function transfers | and | ||||
.Fn kvm_read2 | |||||
functions transfer | |||||
.Fa nbytes | .Fa nbytes | ||||
bytes of data from | bytes of data from | ||||
the kernel space address | the kernel space address | ||||
.Fa addr | .Fa addr | ||||
to | to | ||||
.Fa buf . | .Fa buf . | ||||
Conversely, | Conversely, | ||||
.Fn kvm_write | .Fn kvm_write | ||||
transfers data from | transfers data from | ||||
.Fa buf | .Fa buf | ||||
to | to | ||||
.Fa addr . | .Fa addr . | ||||
Unlike their SunOS counterparts, these functions cannot be used to | Unlike their SunOS counterparts, these functions cannot be used to | ||||
read or write process address spaces. | read or write process address spaces. | ||||
.Pp | |||||
The | |||||
.Fn kvm_read2 | |||||
function uses a different type | |||||
.Pq Vt kvaddr_t | |||||
for the | |||||
.Fa addr | |||||
argument to allow use of addresses larger than | |||||
.Dv ULONG_MAX | |||||
when examining non-native kernel images. | |||||
.Sh RETURN VALUES | .Sh RETURN VALUES | ||||
Upon success, the number of bytes actually transferred is returned. | Upon success, the number of bytes actually transferred is returned. | ||||
Otherwise, -1 is returned. | Otherwise, -1 is returned. | ||||
.Sh SEE ALSO | .Sh SEE ALSO | ||||
.Xr kvm 3 , | .Xr kvm 3 , | ||||
.Xr kvm_close 3 , | .Xr kvm_close 3 , | ||||
.Xr kvm_getargv 3 , | .Xr kvm_getargv 3 , | ||||
.Xr kvm_getenvv 3 , | .Xr kvm_getenvv 3 , | ||||
.Xr kvm_geterr 3 , | .Xr kvm_geterr 3 , | ||||
.Xr kvm_getprocs 3 , | .Xr kvm_getprocs 3 , | ||||
.Xr kvm_nlist 3 , | .Xr kvm_nlist 3 , | ||||
.Xr kvm_open 3 , | .Xr kvm_open 3 , | ||||
.Xr kvm_openfiles 3 | .Xr kvm_openfiles 3 |