Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Jul 2008 03:18:20 +1000 (EST)
From:      Bruce Evans <brde@optusnet.com.au>
To:        Alfred Perlstein <alfred@FreeBSD.org>
Cc:        Marcel Moolenaar <xcllnt@mac.com>, freebsd-arch@FreeBSD.org
Subject:   Re: RFC: cross-libkvm/libthread_db/proc_service
Message-ID:  <20080723025519.F18257@delplex.bde.org>
In-Reply-To: <20080721214104.GF76659@elvis.mu.org>
References:  <34889018-8358-46AC-897E-32767FB84E14@mac.com> <200807211049.47579.jhb@freebsd.org> <Pine.GSO.4.64.0807211659450.2608@sea.ntplx.net> <20080721214104.GF76659@elvis.mu.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 21 Jul 2008, Alfred Perlstein wrote:

> Isn't it a bit strange to export 64bit pointers to 32 bit userspace?

Only for pointers in kernel objects, and I think the proposed change
doesn't touch that.

kvm_read() doesn't use pointers for kernel addresses.  It uses unsigned
longs.  But even uintmax_t is not enough in general, since the application
uintmax_t might be too small to represent a kernel pointer.  The type
used shouldn't be fixed-width, but typedefed in an MD way like vm_offset_t.
vm_offset_t gives the correct integral type to use for (mapped) kernel
addresses and related compat_fewer_bit[s] type[s] are needed in userland.
It would probably be too hard to support the general case which requires
the compat types to be arrays or structs.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080723025519.F18257>