Dag-Erling Smørgrav wrote:
John Baldwin <j...@freebsd.org> writes:
Dag-Erling Smørgrav <d...@des.no> writes:
Slightly better:

        printf("\tClass %u Base Address 0x%jx Length %ju\n\n",
            (unsigned int)tcpa->platform_class, (uintmax_t)paddr, 
(uintmax_t)len);

but it would probably be easier to define paddr and len as unsigned long
long instead of the misspelled u_int64_t, and use %llx and %llu.
Depends.  If the table defines a field to be a 64-bit integer, it is
better to use an explicitly-64-bit integer type such as uint64_t
rather than assuming that 'long long' is 64-bit.

Actually, paddr and len are a memory address and an object size,
respectively, so the logical thing would be to use uintptr_t and size_t
with uintmax_t casts...

Except that physical addresses do not always fit in uintptr_t on i386 (think PAE with 36-bit physical addresses and 32-bit uintptr_t, same for the length). If they truly were a size_t you could use %z without a uintmax_t cast.

--
John Baldwin
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to