From c5ebf9c12e07efd9ba9871d30f8ca3e6e108ffc1 Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Sun, 19 Dec 1999 13:04:51 +0000 Subject: [PATCH] *** empty log message *** --- sysdeps/kernel/procmap.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/sysdeps/kernel/procmap.c b/sysdeps/kernel/procmap.c index ca4287d3..010fafa2 100644 --- a/sysdeps/kernel/procmap.c +++ b/sysdeps/kernel/procmap.c @@ -35,7 +35,9 @@ static const unsigned long _glibtop_sysdeps_proc_map = static const unsigned long _glibtop_sysdeps_map_entry = (1L << GLIBTOP_MAP_ENTRY_START) + (1L << GLIBTOP_MAP_ENTRY_END) + -(1L << GLIBTOP_MAP_ENTRY_OFFSET) + (1L << GLIBTOP_MAP_ENTRY_PERM) + +(1L << GLIBTOP_MAP_ENTRY_OFFSET) + (1L << GLIBTOP_MAP_ENTRY_PERM); + +static const unsigned long _glibtop_sysdeps_map_entry_vmfile = (1L << GLIBTOP_MAP_ENTRY_INODE) + (1L << GLIBTOP_MAP_ENTRY_DEVICE) + (1L << GLIBTOP_MAP_ENTRY_FILENAME); @@ -100,16 +102,20 @@ glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf, pid_t pid) if (!(maps [i].header.perm & LIBGTOP_VM_MAYSHARE)) retval [i].perm |= GLIBTOP_MAP_PERM_PRIVATE; - retval [i].device = maps [i].header.device; - retval [i].inode = maps [i].header.inode; - - filename = maps [i].filename; - filename += maps [i].header.filename_offset; - - strncpy (retval [i].filename, filename, GLIBTOP_MAP_FILENAME_LEN); - retval [i].filename [GLIBTOP_MAP_FILENAME_LEN-1] = '\0'; - retval [i].flags = _glibtop_sysdeps_map_entry; + + if (maps [i].header.device || maps [i].header.inode) { + retval [i].device = maps [i].header.device; + retval [i].inode = maps [i].header.inode; + + filename = maps [i].filename; + filename += maps [i].header.filename_offset; + + strncpy (retval [i].filename, filename, GLIBTOP_MAP_FILENAME_LEN); + retval [i].filename [GLIBTOP_MAP_FILENAME_LEN-1] = '\0'; + + retval [i].flags |= _glibtop_sysdeps_map_entry_vmfile; + } } /* Free map entries. */