(read_memory_unsigned_integer): New function.
authorSteve Chamberlain <sac@cygnus>
Wed, 9 Jun 1993 00:52:13 +0000 (00:52 +0000)
committerSteve Chamberlain <sac@cygnus>
Wed, 9 Jun 1993 00:52:13 +0000 (00:52 +0000)
gdb/core.c

index 21aa76b48b8622e8a78903b0a5614dd0e889722a..51ffb420211148d99959ea5ae6b41b0682dc323d 100644 (file)
@@ -244,6 +244,44 @@ read_memory_integer (memaddr, len)
   error ("Cannot handle integers of %d bytes.", len);
   return -1;   /* for lint */
 }
+
+
+unsigned long
+read_memory_unsigned_integer (memaddr, len)
+     CORE_ADDR memaddr;
+     int len;
+{
+  unsigned char cbuf;
+  unsigned short sbuf;
+  unsigned int ibuf;
+  unsigned long lbuf;
+
+  if (len == sizeof (char))
+    {
+      read_memory (memaddr, &cbuf, len);
+      return cbuf;
+    }
+  if (len == sizeof (short))
+    {
+      read_memory (memaddr, (char *)&sbuf, len);
+      SWAP_TARGET_AND_HOST (&sbuf, sizeof (short));
+      return sbuf;
+    }
+  if (len == sizeof (int))
+    {
+      read_memory (memaddr, (char *)&ibuf, len);
+      SWAP_TARGET_AND_HOST (&ibuf, sizeof (int));
+      return ibuf;
+    }
+  if (len == sizeof (lbuf))
+    {
+      read_memory (memaddr, (char *)&lbuf, len);
+      SWAP_TARGET_AND_HOST (&lbuf, sizeof (lbuf));
+      return lbuf;
+    }
+  error ("Cannot handle unsigned integers of %d bytes.", len);
+  return -1;   /* for lint */
+}
 \f
 void
 _initialize_core()