On Wed, 3 Jul 2013, Mark Kettenis wrote:
> > diff --git sys/arch/i386/i386/db_interface.c 
> > sys/arch/i386/i386/db_interface.c
> > index 85c1ff5..c75fd89 100644
> > --- sys/arch/i386/i386/db_interface.c
> > +++ sys/arch/i386/i386/db_interface.c
> > @@ -197,11 +197,11 @@ db_sysregs_cmd(db_expr_t addr, int have_addr, 
> > db_expr_t count, char *modif)
> >     uint16_t ldtr, tr;
> >  
> >     __asm__ __volatile__("sidt %0" : "=m" (idtr));
> > -   db_printf("idtr:   0x%08x/%04x\n",
> > +   db_printf("idtr:   0x%08x/%04llx\n",
> >         (unsigned int)(idtr >> 16), idtr & 0xffff);
> >  
> >     __asm__ __volatile__("sgdt %0" : "=m" (gdtr));
> > -   db_printf("gdtr:   0x%08x/%04x\n",
> > +   db_printf("gdtr:   0x%08x/%04llx\n",
> >         (unsigned int)(gdtr >> 16), gdtr & 0xffff);
> 
> This is a tad bit inconsistent.  I'd either use %llx for both values
> and get rid of the cast, or use %x and use a cast in both cases.

Like this?

--- sys/arch/i386/i386/db_interface.c
+++ sys/arch/i386/i386/db_interface.c
@@ -197,12 +197,10 @@ db_sysregs_cmd(db_expr_t addr, int have_addr, db_expr_t 
count, char *modif)
        uint16_t ldtr, tr;
 
        __asm__ __volatile__("sidt %0" : "=m" (idtr));
-       db_printf("idtr:   0x%08x/%04x\n",
-           (unsigned int)(idtr >> 16), idtr & 0xffff);
+       db_printf("idtr:   0x%08llx/%04llx\n", idtr >> 16, idtr & 0xffff);
 
        __asm__ __volatile__("sgdt %0" : "=m" (gdtr));
-       db_printf("gdtr:   0x%08x/%04x\n",
-           (unsigned int)(gdtr >> 16), gdtr & 0xffff);
+       db_printf("gdtr:   0x%08llx/%04llx\n", gdtr >> 16, gdtr & 0xffff);
 
        __asm__ __volatile__("sldt %0" : "=g" (ldtr));
        db_printf("ldtr:   0x%04x\n", ldtr);

Reply via email to