summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenoit Dejean <bdejean@gmail.com>2015-07-20 23:42:23 +0200
committerBenoƮt Dejean <bdejean@gmail.com>2015-08-08 10:56:24 +0200
commitd3a247a60f6d747575ecd3455027c50ba09da550 (patch)
treebb4ad3bd16b825c4903b5e1c3157ec5428a14f0d
parent45c8452140e65d3f677db0c99d097e02c8a9a6f3 (diff)
downloadlibgtop-d3a247a60f6d747575ecd3455027c50ba09da550.tar.gz
Don't include the ':' in smaps keys.
Regenerate the hashtable.
-rw-r--r--sysdeps/linux/procmap.c2
-rw-r--r--sysdeps/linux/procmap_smaps.c108
-rw-r--r--sysdeps/linux/procmap_smaps.gperf12
3 files changed, 60 insertions, 62 deletions
diff --git a/sysdeps/linux/procmap.c b/sysdeps/linux/procmap.c
index c5e38b6b..8cc37eb7 100644
--- a/sysdeps/linux/procmap.c
+++ b/sysdeps/linux/procmap.c
@@ -98,7 +98,7 @@ parse_smaps(glibtop_map_entry *entry, const char* line)
if ((colon = is_smap_value(line)) == NULL)
return FALSE;
- len = colon - line + 1;
+ len = colon - line;
smap = _glibtop_find_smap(line, len);
// g_debug("smap %s -> %p", line, smap);
diff --git a/sysdeps/linux/procmap_smaps.c b/sysdeps/linux/procmap_smaps.c
index eba91054..7a496ac4 100644
--- a/sysdeps/linux/procmap_smaps.c
+++ b/sysdeps/linux/procmap_smaps.c
@@ -1,7 +1,3 @@
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
/* ANSI-C code produced by gperf version 3.0.3 */
/* Command-line: gperf sysdeps/linux/procmap_smaps.gperf */
/* Computed positions: -k'9' */
@@ -42,12 +38,13 @@
#line 14 "sysdeps/linux/procmap_smaps.gperf"
struct smap_value { int name; ptrdiff_t offset; };
#include <string.h>
+#include <stddef.h>
#define TOTAL_KEYWORDS 6
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 14
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 19
+#define MIN_WORD_LENGTH 3
+#define MAX_WORD_LENGTH 13
+#define MIN_HASH_VALUE 3
+#define MAX_HASH_VALUE 18
/* maximum key range = 16, duplicates = 0 */
#ifdef __GNUC__
@@ -62,32 +59,32 @@ hash (register const char *str, register unsigned int len)
{
static const unsigned char asso_values[] =
{
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 5, 0, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 5, 20, 20, 0, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 5, 0, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 5, 19, 19, 0, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19
};
register int hval = len;
@@ -101,6 +98,7 @@ hash (register const char *str, register unsigned int len)
case 6:
case 5:
case 4:
+ case 3:
break;
}
return hval;
@@ -108,21 +106,21 @@ hash (register const char *str, register unsigned int len)
struct stringpool_t
{
- char stringpool_str4[sizeof("Rss:")];
- char stringpool_str5[sizeof("Size:")];
- char stringpool_str13[sizeof("Shared_Clean:")];
- char stringpool_str14[sizeof("Private_Dirty:")];
- char stringpool_str18[sizeof("Shared_Dirty:")];
- char stringpool_str19[sizeof("Private_Clean:")];
+ char stringpool_str3[sizeof("Rss")];
+ char stringpool_str4[sizeof("Size")];
+ char stringpool_str12[sizeof("Shared_Clean")];
+ char stringpool_str13[sizeof("Private_Dirty")];
+ char stringpool_str17[sizeof("Shared_Dirty")];
+ char stringpool_str18[sizeof("Private_Clean")];
};
static const struct stringpool_t stringpool_contents =
{
- "Rss:",
- "Size:",
- "Shared_Clean:",
- "Private_Dirty:",
- "Shared_Dirty:",
- "Private_Clean:"
+ "Rss",
+ "Size",
+ "Shared_Clean",
+ "Private_Dirty",
+ "Shared_Dirty",
+ "Private_Clean"
};
#define stringpool ((const char *) &stringpool_contents)
#ifdef __GNUC__
@@ -137,26 +135,26 @@ _glibtop_find_smap (register const char *str, register unsigned int len)
{
static const unsigned char lengthtable[] =
{
- 0, 0, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 13,
- 14, 0, 0, 0, 13, 14
+ 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 12, 13,
+ 0, 0, 0, 12, 13
};
static const struct smap_value wordlist[] =
{
- {-1}, {-1}, {-1}, {-1},
+ {-1}, {-1}, {-1},
#line 18 "sysdeps/linux/procmap_smaps.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str4, SMAP_OFFSET(rss)},
+ {offsetof(struct stringpool_t, stringpool_str3), SMAP_OFFSET(rss)},
#line 21 "sysdeps/linux/procmap_smaps.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str5, SMAP_OFFSET(size)},
+ {offsetof(struct stringpool_t, stringpool_str4), SMAP_OFFSET(size)},
{-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
#line 19 "sysdeps/linux/procmap_smaps.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, SMAP_OFFSET(shared_clean)},
+ {offsetof(struct stringpool_t, stringpool_str12), SMAP_OFFSET(shared_clean)},
#line 17 "sysdeps/linux/procmap_smaps.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, SMAP_OFFSET(private_dirty)},
+ {offsetof(struct stringpool_t, stringpool_str13), SMAP_OFFSET(private_dirty)},
{-1}, {-1}, {-1},
#line 20 "sysdeps/linux/procmap_smaps.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, SMAP_OFFSET(shared_dirty)},
+ {offsetof(struct stringpool_t, stringpool_str17), SMAP_OFFSET(shared_dirty)},
#line 16 "sysdeps/linux/procmap_smaps.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, SMAP_OFFSET(private_clean)}
+ {offsetof(struct stringpool_t, stringpool_str18), SMAP_OFFSET(private_clean)}
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
diff --git a/sysdeps/linux/procmap_smaps.gperf b/sysdeps/linux/procmap_smaps.gperf
index 98a7df09..035e26d8 100644
--- a/sysdeps/linux/procmap_smaps.gperf
+++ b/sysdeps/linux/procmap_smaps.gperf
@@ -13,9 +13,9 @@
%}
struct smap_value { int name; ptrdiff_t offset; };
%%
-Private_Clean:, SMAP_OFFSET(private_clean)
-Private_Dirty:, SMAP_OFFSET(private_dirty)
-Rss:, SMAP_OFFSET(rss)
-Shared_Clean:, SMAP_OFFSET(shared_clean)
-Shared_Dirty:, SMAP_OFFSET(shared_dirty)
-Size:, SMAP_OFFSET(size)
+Private_Clean, SMAP_OFFSET(private_clean)
+Private_Dirty, SMAP_OFFSET(private_dirty)
+Rss, SMAP_OFFSET(rss)
+Shared_Clean, SMAP_OFFSET(shared_clean)
+Shared_Dirty, SMAP_OFFSET(shared_dirty)
+Size, SMAP_OFFSET(size)