diff options
author | Benoît Dejean <benoit@placenet.org> | 2006-09-11 17:47:51 +0000 |
---|---|---|
committer | Benoît Dejean <bdejean@src.gnome.org> | 2006-09-11 17:47:51 +0000 |
commit | 5982287f48056853b8de51ded0267295d8032899 (patch) | |
tree | 5fac0f95a38cacd3cac4c99bbf6106b7bfe8e4c3 | |
parent | 24f5bb1e2221283d2b3cb0d83672f33d9700c346 (diff) | |
download | libgtop-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/ChangeLog | 8 | ||||
-rw-r--r-- | sysdeps/linux/procmap.c | 18 |
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) |