Commit Graph

20 Commits

Author SHA1 Message Date
christos
b8c5a24416 add a function to report the name of the file kvm_open{,.files} is using. 2011-09-12 21:11:31 +00:00
jym
8bb0c87c7e Define KREAD() inside kvm_private.h, for reusability. 2010-09-26 22:28:05 +00:00
jym
962a341df6 Change kvm_pa2off() and kvm_kvatop() prototypes (private to kvm(3)):
-int     _kvm_kvatop(kvm_t *, u_long, u_long *);
-off_t   _kvm_pa2off(kvm_t *, u_long);
+int     _kvm_kvatop(kvm_t *, vaddr_t, paddr_t *);
+off_t   _kvm_pa2off(kvm_t *, paddr_t);

Basically, use vaddr_t for VA and paddr_t for PA. In addition, for variables
representing addresses, use paddr_t or vaddr_t, depending on the context.

For most arches, vaddr_t and paddr_t are equivalent to unsigned long. However,
the change was needed for exotic situations, like i386 PAE, were unsigned long
is not suitable for PA which are 64 bits long. As this required a complete
change of the function prototypes, all arches had to be adapted accordingly.

Core files from before this commit should still work with the new code; I did
not see any direct dependency between core's structure and kvatop/pa2off.

The change was compile tested for all arches, as it impacts all of them.

See also:

http://mail-index.netbsd.org/current-users/2010/09/07/msg014249.html
2010-09-20 23:23:16 +00:00
jym
6dc46b923b Ansify and KNF all functions within kvm(3). No objection on current-users@.
Used as ground for u_long => vaddr_t/paddr_t replacements in kvm(3)
private functions.

Compile tested for all arches. See also:

http://mail-index.netbsd.org/current-users/2010/09/07/msg014249.html
2010-09-19 02:07:00 +00:00
ad
a7a2d171df Handle reading from raw disk devices. 2008-01-15 13:57:41 +00:00
christos
0213791d0c 1. Eliminate some unnecessary to kvm_{m,re}alloc.
2. Don't malloc/free procbase/procbase2/lwpbase continuously. Keep track
   of the size, and only do it if necessary.
3. Write a macro to malloc/realloc and set the size of members so that it
   is done correctly. Previous open coded version in kvm_file.c always
   set the length, which is incorrect.
4. Remove bogus check against INT_MAX.
5. use NULL to initialize pointers instead of 0.
2006-02-16 20:48:42 +00:00
agc
eb7c1594f1 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22280, verified by myself.
2003-08-07 16:42:00 +00:00
wiz
b976c55907 Consistently spell "crash dump" as two separate words. From jmc@openbsd. 2003-05-16 10:24:55 +00:00
ragge
f08d6eb0c9 Make the kvm routines use /dev/ksyms to get the kernel namelist.
If it fails, use /netbsd instead.
2003-05-11 13:37:34 +00:00
thorpej
c62a74e6d5 Merge the nathanw_sa branch. 2003-01-18 10:32:11 +00:00
sommerfeld
f9d3ae0fbb format-string audit cleanups 2000-10-04 16:11:27 +00:00
simonb
a9f690ae2a Add kvm interface to the new sysctls:
kvm_getproc2() -> sysctl(KERN_PROC2)
	kvm_getargv2() -> sysctl(KERN_PROC_ARGS, KERN_PROC_ARGV)
	kvm_getenvv2() -> sysctl(KERN_PROC_ARGS, KERN_PROC_ENV)
Add new KVM_NO_FILES flag to kvm_open*() - set up enough state to
use the above calls without having to open any kernel files.

XXX: kvm_getprocs.3 and kvm_open.3 to be updated soon.
2000-05-26 02:42:21 +00:00
gwr
c3d6f42b55 Add the members: usrstack, min_uva, max_uva to struct __kvm
and declare the function _kvm_mdopen() that initializes them.
1997-08-12 16:27:01 +00:00
gwr
82118b75d6 Allow more flexibility in the format of cpu_kcore_hdr_t and isolate
the knowledge of that struct in the machine-dependent module.
1996-05-05 04:31:59 +00:00
thorpej
346e67f879 RCS id police. 1996-03-18 22:33:07 +00:00
leo
9c2128ecdd New libkvm/savecore implementation. With the following differences:
1) savecore will not access the dump or live-kernel directly. It
        will always use the kvm-functions. Allowing it to work on kernels
        that don't have a 1-1 PA-VA mapping.
     2) the kvm-lib has some additional functions to accomplish 1
          - kvm_dump_mkheader()
          - kvm_dump_wrtheader()
          - kvm_dump_inval()
     3) the file formats of the dump generated by the kernel and the dump
        generated by savecore have been changed. The file format now looks
        like the format produced for 'normal' core dumps.
Ports not yet supporting the new kvm-format will be using libkvm.old/
savecore.old for the time being.
1996-03-16 10:23:29 +00:00
mycroft
6506fa2b16 Use the new ps_strings format. Find the arguments using their
addresses in the argv array, rather than guessing based on the location
of NULs.
1995-05-16 14:21:08 +00:00
mycroft
c304971439 Eliminate _kvm_uvatop(), in favor of using the machine-independent VM structures. 1995-01-09 08:59:25 +00:00
mycroft
b707f8aa13 Move the swap page buffer into struct __kvm. Cache the page size during
kvm_open().  Fix an existing memory leak.
1994-09-18 01:52:01 +00:00
cgd
0215cc7d1f new libkvm 1994-05-09 03:15:36 +00:00