diff packages/cygmon/current/misc/bsp/common/syscall.c @ 112:02ea4320376c ecos-sw-2000-07-21

Merge from eCos master repository on 2000-07-21-21:01:39-BST
author jlarmour
date Fri, 21 Jul 2000 21:34:11 +0000
parents 435cced73e2f
children e0c0827131d1
line wrap: on
line diff
--- a/packages/cygmon/current/misc/bsp/common/syscall.c
+++ b/packages/cygmon/current/misc/bsp/common/syscall.c
@@ -172,6 +172,32 @@ int
 	*(bsp_shared_t **)arg1 = bsp_shared_data;
 	break;
 
+      case SYS_meminfo:
+        {
+          // Return the top and size of memory.
+          struct bsp_mem_info      mem;
+          int                      i;
+          unsigned long            u, totmem, topmem, numbanks;
+
+          i = totmem = topmem = numbanks = 0;
+          while (bsp_sysinfo(BSP_INFO_MEMORY, i++, &mem) == 0)
+            {
+              if (mem.kind == BSP_MEM_RAM)
+                {
+                  numbanks++;
+                  totmem += mem.nbytes;
+                  u = (unsigned long)mem.virt_start + mem.nbytes;
+                  if (u > topmem)
+                    topmem = u;
+                }
+            }
+          *(unsigned long *)arg1 = totmem;
+          *(unsigned long *)arg2 = topmem;
+          *retval = numbanks;
+        }
+        return 1;
+        break;
+
       default:
 	return 0;
     }