svn commit: r211221 - head/usr.sbin/acpi/acpidump

John Baldwin jhb at FreeBSD.org
Thu Aug 12 17:45:57 UTC 2010


Dag-Erling Smørgrav wrote:
> John Baldwin <jhb at FreeBSD.org> writes:
>> Dag-Erling Smørgrav <des at 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


More information about the svn-src-head mailing list