blob: 98228134597ed2fa940fb7866197224ea682fb17 [file] [log] [blame] [view] [raw]
. @(#)kmed.1 $Revision$ $Date$
.TH KMED 1 "$Revision$ $Date$"
.SH NAME
kmed \- Example of a remote kme daemon
.SH SYNOPSIS
.TP 7
\fBkmed
\fB[\-c\ \fRcorefile\fB]
\fB[\-e\ \fRendian\fB]
\fB[\-r]
\fB[\-U\ \fRport\fB]
\fB[\-D\ \fRdebug\fB]
.SH DESCRIPTION
\fIKmed\fR is an example of a remote daemon for \fIkme(1)\fP.
\fIKmed\fR communicates with \fIkme\fP over a socket using a simple
custom UDP protocol called \fBRW\fP (for read-write). The example
version of kmed is useful as-is for many debugging situations.
kmed, however, may require customization in order to provide access
to some types of hardware.
.PP
Command line options include:
.TP 15n
.BI \-c \ corefile(s)
A colon-separated list of pathname(s) or device names which the
remote kme will be given access to. An unadorned pathname will
be accessed using open(), close(), lseek(), read(), and write().
Two alternative syntaxes are available for corefile, and both allow
access to the corefile by using mmap() to map the corefile into
the kmed process. Mmap() is very useful when you want to access
the /dev/mem special file on Linux.
A fixed mmap()ing is selected with the syntax: device,offset,size.
In this case, size bytes at offset from the start of the
device special file are mmap()ed. This is useful if you want to access
just a small region of a special device file.
A floating mmap()ing is selected with the syntax: device,1,size.
In this case, size bytes are mmap()ed, but the offset of the mmap()
will be determined based on the addresses that kme requests. The
offset may change over and over depending on what kme needs. This
is useful if you want to access into a potentially large area of
a special device file. Howver, there may be performance implications
if the addresses that kme needs bounce all over the place. A well
designed kme_defs file and kme display can minimize this problem.
The default for corefile is \fI/dev/kmem\fR.
.TP
.BI \-e \ endian
Unfortunately, the original RW protocol was designed eons ago with
no consideration
given to the endianess of the protocol. This can cause problems
when kme and kmed are running on computers with different endianess.
The endian option can be set to 0 (as-is), 1 (big-endian), or 2 (auto detect).
The default is to autodetect the endianess, and this usually works.
.TP
.BI \-r
Open the corefile(s) for read access only. The default is to open the
corefile(s) for both read and write access.
.TP
.BI \-U \ port
The UDP port number to use for communications with kme. The default is
port 2773.
.TP
.BI \-D \ level
Set the debug output level for debugging kmed itself.
The default is 0 (no debugging output).
.SH "SEE ALSO"
kme(1)