diff options
Diffstat (limited to 'src/vppinfra/linux/sysfs.c')
-rw-r--r-- | src/vppinfra/linux/sysfs.c | 46 |
1 files changed, 14 insertions, 32 deletions
diff --git a/src/vppinfra/linux/sysfs.c b/src/vppinfra/linux/sysfs.c index 758eaa1a86c..61ee6378c8c 100644 --- a/src/vppinfra/linux/sysfs.c +++ b/src/vppinfra/linux/sysfs.c @@ -70,7 +70,7 @@ clib_sysfs_read (char *file_name, char *fmt, ...) return clib_error_return_unix (0, "read `%s'", file_name); } - _vec_len (s) = sz; + vec_set_len (s, sz); unformat_init_vector (&input, s); va_list va; @@ -87,32 +87,6 @@ clib_sysfs_read (char *file_name, char *fmt, ...) return 0; } -__clib_export u8 * -clib_sysfs_link_to_name (char *link) -{ - char *p, buffer[64]; - unformat_input_t in; - u8 *s = 0; - int r; - - r = readlink (link, buffer, sizeof (buffer) - 1); - - if (r < 0) - return 0; - - buffer[r] = 0; - p = strrchr (buffer, '/'); - - if (!p) - return 0; - - unformat_init_string (&in, p + 1, strlen (p + 1)); - if (unformat (&in, "%s", &s) != 1) - clib_unix_warning ("no string?"); - unformat_free (&in); - - return s; -} clib_error_t * clib_sysfs_set_nr_hugepages (int numa_node, int log2_page_size, int nr) @@ -154,7 +128,7 @@ clib_sysfs_set_nr_hugepages (int numa_node, int log2_page_size, int nr) goto done; } - _vec_len (p) -= 1; + vec_dec_len (p, 1); p = format (p, "/hugepages/hugepages-%ukB/nr_hugepages%c", page_size, 0); clib_sysfs_write ((char *) p, "%d", nr); @@ -207,7 +181,7 @@ clib_sysfs_get_xxx_hugepages (char *type, int numa_node, goto done; } - _vec_len (p) -= 1; + vec_dec_len (p, 1); p = format (p, "/hugepages/hugepages-%ukB/%s_hugepages%c", page_size, type, 0); error = clib_sysfs_read ((char *) p, "%d", val); @@ -263,13 +237,21 @@ clib_sysfs_prealloc_hugepages (int numa_node, int log2_page_size, int nr) return clib_sysfs_set_nr_hugepages (numa_node, log2_page_size, n + needed); } -__clib_export uword * -clib_sysfs_list_to_bitmap (char *filename) +__clib_export clib_bitmap_t * +clib_sysfs_read_bitmap (char *fmt, ...) { FILE *fp; uword *r = 0; + va_list va; + u8 *filename; + + va_start (va, fmt); + filename = va_format (0, fmt, &va); + va_end (va); + vec_add1 (filename, 0); - fp = fopen (filename, "r"); + fp = fopen ((char *) filename, "r"); + vec_free (filename); if (fp != NULL) { |