Date: Thu, 12 Aug 2010 13:45:54 -0400 From: John Baldwin <jhb@FreeBSD.org> To: =?UTF-8?B?RGFnLUVybGluZyBTbcO4cmdyYXY=?= <des@des.no> Cc: svn-src-head@freebsd.org, Takanori Watanabe <takawata@FreeBSD.org>, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r211221 - head/usr.sbin/acpi/acpidump Message-ID: <4C643352.5010508@FreeBSD.org> In-Reply-To: <868w4bda7e.fsf@ds4.des.no> References: <201008121358.o7CDwk0d098768@svn.freebsd.org> <86pqxn50vr.fsf@ds4.des.no> <4C6414A7.6020306@FreeBSD.org> <868w4bda7e.fsf@ds4.des.no>
next in thread | previous in thread | raw e-mail | index | archive | help
Dag-Erling Smørgrav wrote: > John Baldwin <jhb@FreeBSD.org> writes: >> Dag-Erling Smørgrav <des@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4C643352.5010508>