Home | History | Annotate | Download | only in libkvm
History log of /src/lib/libkvm/kvm_x86_64.c
RevisionDateAuthorComments
 1.13  10-Jan-2022  christos Get rid of usrstack/USRSTACK. Document that the old version of getargv is
broken because of ASLR.
 1.12  25-Apr-2020  maxv Switch to the new PTE naming. The old naming is now unused, remove it.
 1.11  08-Mar-2020  chs use a binary search in _kvm_pa2off(). this helps a lot for sparse dumps,
which can have millions of memory segments.
 1.10  19-Feb-2014  dsl branches: 1.10.26; 1.10.28;
Remove the #include <sys/user.h> from all of libkvm.
sys/user.h is a stub that just #includes sys/pcb.h.
There are no 'struct pcb' anywhere in here, so I'm extremely doubtful
any of the builds will fail.
OTOH it might be relying on a header that pcb.h includes.
In any case i386 and amd64 build.
 1.9  10-Jan-2012  chs branches: 1.9.6;
fix handling of large pages.
 1.8  20-Sep-2010  jym branches: 1.8.6;
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
 1.7  19-Sep-2010  jym 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
 1.6  15-Jan-2008  ad Handle reading from raw disk devices.
 1.5  04-Aug-2005  fvdl branches: 1.5.10;
Fix parsing the page tables.
 1.4  07-Aug-2003  agc branches: 1.4.4; 1.4.6;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.3  05-Jun-2002  fvdl kva -> physaddr translation through pagetable walking; for crash dumps
(as yet untested).
 1.2  05-Aug-2001  matt branches: 1.2.2;
Don't include <machine/pmap.h> and <machine/vmparam.h> if _KERNEL isn't
defined. Include them explicitly in the few kvm_arch.c that need them.
 1.1  19-Jun-2001  fvdl Add (mostly stub) x86-64 kvm stuff. Needs work.
 1.2.2.2  19-Dec-2002  thorpej Sync with HEAD.
 1.2.2.1  05-Aug-2001  thorpej file kvm_x86_64.c was added on branch nathanw_sa on 2002-12-19 02:26:25 +0000
 1.4.6.1  06-Nov-2005  tron Pull up following revision(s) (requested by chs in ticket #934):
lib/libkvm/kvm_x86_64.c: revision 1.5
Fix parsing the page tables.
 1.4.4.1  06-Nov-2005  riz Pull up following revision(s) (requested by chs in ticket #5969):
lib/libkvm/kvm_x86_64.c: revision 1.5
Fix parsing the page tables.
 1.5.10.1  23-Mar-2008  matt sync with HEAD
 1.8.6.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.8.6.1  17-Apr-2012  yamt sync with head
 1.9.6.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.10.28.1  08-Mar-2020  martin Pull up following revision(s) (requested by chs in ticket #763):

lib/libkvm/kvm.c: revision 1.105
lib/libkvm/kvm_x86_64.c: revision 1.11

only do bounce buffering for character devices.

use a binary search in _kvm_pa2off(). this helps a lot for sparse dumps,
which can have millions of memory segments.
 1.10.26.1  08-Apr-2020  martin Merge changes from current as of 20200406

RSS XML Feed