summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenoît Dejean <benoit@placenet.org>2006-09-11 17:47:51 +0000
committerBenoît Dejean <bdejean@src.gnome.org>2006-09-11 17:47:51 +0000
commit5982287f48056853b8de51ded0267295d8032899 (patch)
tree5fac0f95a38cacd3cac4c99bbf6106b7bfe8e4c3
parent24f5bb1e2221283d2b3cb0d83672f33d9700c346 (diff)
downloadlibgtop-5982287f48056853b8de51ded0267295d8032899.tar.gz
Fixed parsing s?maps on 64bit kernel. Closes #355290. Removed useless
2006-09-11 Benoît Dejean <benoit@placenet.org> * procmap.c: (glibtop_get_proc_map_s): Fixed parsing s?maps on 64bit kernel. Closes #355290. Removed useless casts.
-rw-r--r--sysdeps/linux/ChangeLog8
-rw-r--r--sysdeps/linux/procmap.c18
2 files changed, 16 insertions, 10 deletions
diff --git a/sysdeps/linux/ChangeLog b/sysdeps/linux/ChangeLog
index aebcc3d9..90927f2d 100644
--- a/sysdeps/linux/ChangeLog
+++ b/sysdeps/linux/ChangeLog
@@ -1,3 +1,11 @@
+2006-09-11 Benoît Dejean <benoit@placenet.org>
+
+ * procmap.c: (glibtop_get_proc_map_s):
+
+ Fixed parsing s?maps on 64bit kernel.
+ Closes #355290.
+ Removed useless casts.
+
2006-08-10 Benoît Dejean <benoit@placenet.org>
* open.c: (glibtop_open_s):
diff --git a/sysdeps/linux/procmap.c b/sysdeps/linux/procmap.c
index ff810f36..18b8bec9 100644
--- a/sysdeps/linux/procmap.c
+++ b/sysdeps/linux/procmap.c
@@ -38,9 +38,7 @@
#define SMAPS_FILE "/proc/%u/smaps"
-#define PROC_MAPS_FORMAT ((sizeof(void*) == 8) \
-? "%16lx-%16lx %4c %16lx %02hx:%02hx %lu%*[ ]%[^\n]\n" \
-: "%08lx-%08lx %4c %08lx %02hx:%02hx %lu%*[ ]%[^\n]\n")
+#define PROC_MAPS_FORMAT "%16llx-%16llx %4c %16llx %02hx:%02hx %llu%*[ ]%[^\n]\n"
static const unsigned long _glibtop_sysdeps_proc_map =
@@ -161,7 +159,7 @@ glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf, pid_t pid)
guint len;
unsigned short dev_major, dev_minor;
- unsigned long start, end, offset, inode;
+ guint64 start, end, offset, inode;
char flags[4];
char filename [GLIBTOP_MAP_FILENAME_LEN+1];
@@ -206,12 +204,12 @@ glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf, pid_t pid)
entry = &g_array_index(entry_list, glibtop_map_entry, len);
entry->flags = _glibtop_sysdeps_map_entry;
- entry->start = (guint64) start;
- entry->end = (guint64) end;
- entry->offset = (guint64) offset;
- entry->perm = (guint64) perm;
- entry->device = (guint64) MKDEV(dev_major, dev_minor);
- entry->inode = (guint64) inode;
+ entry->start = start;
+ entry->end = end;
+ entry->offset = offset;
+ entry->perm = perm;
+ entry->device = MKDEV(dev_major, dev_minor);
+ entry->inode = inode;
g_strlcpy(entry->filename, filename, sizeof entry->filename);
if (has_smaps)