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>

index | next in thread | previous in thread | raw e-mail

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


home | help

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