commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

hurd-l4/laden ia32-cmain.c kip-fixup.c output.c


From: Marcus Brinkmann
Subject: hurd-l4/laden ia32-cmain.c kip-fixup.c output.c
Date: Sun, 07 Sep 2003 15:49:02 -0400

CVSROOT:        /cvsroot/hurd
Module name:    hurd-l4
Branch:         
Changes by:     Marcus Brinkmann <address@hidden>       03/09/07 15:49:01

Modified files:
        laden          : ia32-cmain.c kip-fixup.c output.c 

Log message:
        Fix 64bit output.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd-l4/laden/ia32-cmain.c.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd-l4/laden/kip-fixup.c.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd-l4/laden/output.c.diff?tr1=1.1&tr2=1.2&r1=text&r2=text

Patches:
Index: hurd-l4/laden/ia32-cmain.c
diff -u hurd-l4/laden/ia32-cmain.c:1.2 hurd-l4/laden/ia32-cmain.c:1.3
--- hurd-l4/laden/ia32-cmain.c:1.2      Wed Sep  3 21:29:35 2003
+++ hurd-l4/laden/ia32-cmain.c  Sun Sep  7 15:49:01 2003
@@ -152,10 +152,8 @@
           (uint32_t) mmap < mbi->mmap_addr + mbi->mmap_length;
           mmap = (memory_map_t *) ((uint32_t) mmap
                                    + mmap->size + sizeof (mmap->size)))
-       debug ("Memory Map %i: Type %i, Base 0x%x%x, Length 0x%x%x\n",
-              nr++, mmap->type, mmap->base_addr >> 32,
-              mmap->base_addr & ((1ULL << 32) - 1),
-              mmap->length >> 32, mmap->length & ((1ULL << 32) - 1));
+       debug ("Memory Map %i: Type %i, Base 0x%llx, Length 0x%llx\n",
+              nr++, mmap->type, mmap->base_addr, mmap->length);
     }
 }
 
@@ -231,8 +229,8 @@
 
          if (mmap->base_addr & ((1 << 10) - 1)
              || mmap->length & ((1 << 10) - 1))
-           panic ("Memory region (0x%x - 0x%x) is unaligned",
-                  (uint32_t) mmap->base_addr, (uint32_t) end);
+           panic ("Memory region (0x%llx - 0x%llx) is unaligned",
+                  mmap->base_addr, end);
 
          add_memory_map ((uint32_t) mmap->base_addr, (uint32_t) end,
                          mmap->type == 1
Index: hurd-l4/laden/kip-fixup.c
diff -u hurd-l4/laden/kip-fixup.c:1.2 hurd-l4/laden/kip-fixup.c:1.3
--- hurd-l4/laden/kip-fixup.c:1.2       Wed Sep  3 21:29:35 2003
+++ hurd-l4/laden/kip-fixup.c   Sun Sep  7 15:49:01 2003
@@ -71,9 +71,10 @@
 
   kip->memory_info.nr = memory_map_size;
   for (nr = 0; nr < memory_map_size; nr++)
-    debug ("Memory Map %i: Type %i/%i, Low 0x%x, High 0x%x\n",
+    debug ("Memory Map %i: Type %i/%i, Low 0x%llx, High 0x%llx\n",
           nr + 1, memory_map[nr].type, memory_map[nr].subtype,
-          memory_map[nr].low << 10, memory_map[nr].high << 10);
+          (unsigned long long) (memory_map[nr].low << 10),
+          (unsigned long long) (memory_map[nr].high << 10));
 
   /* Load the boot info into the KIP.  */
   kip->boot_info = boot_info;
Index: hurd-l4/laden/output.c
diff -u hurd-l4/laden/output.c:1.1 hurd-l4/laden/output.c:1.2
--- hurd-l4/laden/output.c:1.1  Sat Jul 26 13:26:09 2003
+++ hurd-l4/laden/output.c      Sun Sep  7 15:49:01 2003
@@ -83,18 +83,12 @@
 
 
 static void
-print_nr (long long nr, int base)
+print_nr (unsigned long long nr, int base)
 {
   static char *digits = "0123456789abcdef";
   char str[30];
   int i = 0;
 
-  if (nr < 0)
-    {
-      putchar ('-');
-      nr = -nr;
-    }
-
   do
     {
       str[i++] = digits[nr % base];
@@ -108,6 +102,23 @@
 }
   
 
+static void
+print_signed_nr (long long nr, int base)
+{
+  unsigned long long unr;
+
+  if (nr < 0)
+    {
+      putchar ('-');
+      unr = -nr;
+    }
+  else
+    unr = nr;
+
+  print_nr (unr, base);
+}
+  
+
 void
 printf (const char *fmt, ...)
 {
@@ -132,6 +143,49 @@
          p++;
          break;
 
+       case 'l':
+         p++;
+         if (*p != 'l')
+           {
+             putchar ('%');
+             putchar ('l');
+             putchar (*(p++));
+             continue;
+           }
+         p++;
+         switch (*p)
+           {
+           case 'o':
+             print_nr (va_arg (ap, unsigned long long), 8);
+             p++;
+             break;
+
+           case 'd':
+           case 'i':
+             print_signed_nr (va_arg (ap, long long), 10);
+             p++;
+             break;
+
+           case 'x':
+           case 'X':
+             print_nr (va_arg (ap, unsigned long long), 16);
+             p++;
+             break;
+
+           case 'u':
+             print_nr (va_arg (ap, unsigned long long), 10);
+             p++;
+             break;
+
+           default:
+             putchar ('%');
+             putchar ('l');
+             putchar ('l');
+             putchar (*(p++));
+             break;
+           }
+         break;
+
        case 'o':
          print_nr (va_arg (ap, unsigned int), 8);
          p++;
@@ -139,7 +193,7 @@
 
        case 'd':
        case 'i':
-         print_nr (va_arg (ap, int), 10);
+         print_signed_nr (va_arg (ap, int), 10);
          p++;
          break;
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]