Date: Tue, 17 Nov 2015 10:04:35 -0600 From: Justin Hibbits <chmeeedalf@gmail.com> To: Benjamin Kaduk <kaduk@mit.edu> Cc: Warner Losh <imp@bsdimp.com>, FreeBSD Current <freebsd-current@freebsd.org> Subject: Re: CFT: uintmax_t rman Message-ID: <CAHSQbTAwqJ8J-8KRS3j2epbn8oUB7=MROHHYs3um3zuOQEpNdw@mail.gmail.com> In-Reply-To: <alpine.GSO.1.10.1511161923000.26829@multics.mit.edu> References: <75C2B97F-3C5E-49E3-A584-DE84463889FC@gmail.com> <0F3B8FF2-E54E-446F-8D4E-415A1111EF4D@bsdimp.com> <alpine.GSO.1.10.1511161923000.26829@multics.mit.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Nov 16, 2015 at 6:25 PM, Benjamin Kaduk <kaduk@mit.edu> wrote: > On Mon, 16 Nov 2015, Warner Losh wrote: > >> > >> > On Nov 15, 2015, at 9:13 PM, Justin Hibbits <chmeeedalf@gmail.com> wro= te: >> > >> > (Attempted to send this yesterday, but appears it didn't go through. = Apologies if it really did go through). >> > >> > As part of a project getting FreeBSD on the Freescale P5020 SoC, I inc= reased the width of resources, from u_long(32 bits on 32-bit archs, 64 bits= on 64-bit archs) to uintmax_t (currently 64 bits on all archs). I have it= working on PowerPC, but have not tested it on any other architecture, I ha= ve no other systems to test it with, so I need help. This passes a tinderb= ox build. I need this tested on other archs, the more the better, especial= ly i386, including PAE. >> > >> > It should be effectively a no-op on most architectures, especially 64-= bit archs, though there were some checks I found in x86 code clamping addre= ss checks to under 4GB, commented as necessary purely for rman. If this is= n't the case, and we can't yet handle the checks being removed, they can go= in, but that needs testing. It should apply cleanly to recent head. >> >> I like the idea. There=E2=80=99s nothing offensive enough in the diffs t= o comment upon here (though I suppose I could see a few spots one could qui= bble over if one were so inclined). >> >> I wonder, though, why not make its own typedef, even if it is just >> =E2=80=98typedef man_res_t uintmax_t;=E2=80=99 in the rman headers? > > Channeling my inner bde (maybe?), the typedef is probably helpful, but > uintmax_t seems less so. uintmax_t has no guaranteed ABI, so a > fixed-width type like uint64_t seems beter, assuming that uintmax_t is > currently uint64_t everywhere (which I think is the case but did not > verify). > > -Ben I'm not opposed to a typedef for this, bde suggested I just use straight uintmax_t, so it's a good starting point for wider testing. I'm fine with anything as long as it's guaranteed to be the largest integer size (uintmax_t guarantees that, so any typedef of that is sufficient for me). Any name suggestions are appreciated, but what I want more than that right now is testing. Hammer the hell out of this on as wide a variety of platforms as anyone can, to make sure it doesn't break in odd cases. If typedefs are desired, it's no more work than a simple sed plus a single added line. If this breaks anything, that's the bigger problem. - Justin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAHSQbTAwqJ8J-8KRS3j2epbn8oUB7=MROHHYs3um3zuOQEpNdw>