make 'P' format portable; move to port/print.c from k10/archk10.c Reference: /n/atom/patch/applied2013/fmtpport Date: Tue Sep 17 01:36:38 CES 2013 Signed-off-by: quanstro@quanstro.net --- /sys/src/nix/k10/archk10.c Tue Sep 17 01:36:18 2013 +++ /sys/src/nix/k10/archk10.c Tue Sep 17 01:36:20 2013 @@ -153,24 +153,6 @@ } int -fmtP(Fmt* f) -{ - uintmem pa; - - pa = va_arg(f->args, uintmem); - - if(sizeof(uintmem) <= 4 /* || (pa & ~(uintmem)0xffffffff) == 0 */){ - if(f->flags & FmtSharp) - return fmtprint(f, "%#.8ux", (u32int)pa); - return fmtprint(f, "%ud", (u32int)pa); - } - - if(f->flags & FmtSharp) - return fmtprint(f, "%#.16llux", (u64int)pa); - return fmtprint(f, "%llud", (u64int)pa); -} - -int fmtR(Fmt* f) { u64int r; @@ -184,9 +166,9 @@ static int fmtW(Fmt *f) { - u64int va; + uintptr va; - va = va_arg(f->args, u64int); + va = va_arg(f->args, uintptr); return fmtprint(f, "%#llux=0x[%llux][%llux][%llux][%llux][%llux]", va, PTLX(va, 3), PTLX(va, 2), PTLX(va, 1), PTLX(va, 0), va & ((1<args, uintmem); + + if(sizeof(uintmem) <= 4 /* || (pa & ~(uintmem)0xffffffff) == 0 */){ + if(f->flags & FmtSharp) + return fmtprint(f, "%#.8ux", (u32int)pa); + return fmtprint(f, "%ud", (u32int)pa); + } + + if(f->flags & FmtSharp) + return fmtprint(f, "%#.16llux", (u64int)pa); + return fmtprint(f, "%llud", (u64int)pa); +} + void fmtinit(void) { + fmtinstall('P', fmtP); quotefmtinstall(); archfmtinstall(); }