> >> am currently checking that for all architectures except i386, > >> sizeof(paddr_t) == sizeof(u_long). > > > > sparc and 32 bit sparc64 kernels use 64 bit paddr_t. there are some > > mips ports that do too. you can't assume the above equality at all, > > not since "paddr_t" was introduced a decade+ ago. > > Eeek. I can't see how I can fix that then. Would it be acceptable to say > "the affected functions are private to kvm(3), so don't bother with this > anyway?"
kvm is about as special case as we get in userland. > >> - i386 will use 64 bits paddr_t for kvm(3), so we will have to discuss > on > z> how to make it work without too much fuzz with pre-64 bits i386 dumps. > > > > i think this seems the sanest way. make userland see the 64 bit > > definition in all cases, and have the libkvm code DTRT. > > Thing is, kvm(3) has two functions (kvm_kvatop and kvm_pa2off) that use > PAs internally and assume they are unsigned long. I can't move i386 to 64 > bits PA without having to tweak kvm_private.h prototypes, which will affect > all ports in turn. > > IMHO, the path of least resistance would be to move to paddr_t. i think that this sounds sane. > It is only there for convenience, eg. when someone wants to know easily if > its system is running under PAE. ok. .mrg.