X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvppinfra%2Flinux%2Fsysfs.c;h=758eaa1a86c5638041fd57e697ded0f119365a7f;hb=6db633bde1dc5f89f7c8b434dc95dc225672b277;hp=1157e4fe655d5a00a9c910e96a2279f22060bd63;hpb=ac6c528fb22d427d7beacd73c247ffd97389dbfe;p=vpp.git diff --git a/src/vppinfra/linux/sysfs.c b/src/vppinfra/linux/sysfs.c index 1157e4fe655..758eaa1a86c 100644 --- a/src/vppinfra/linux/sysfs.c +++ b/src/vppinfra/linux/sysfs.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include @@ -262,6 +263,32 @@ 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) +{ + FILE *fp; + uword *r = 0; + + fp = fopen (filename, "r"); + + if (fp != NULL) + { + u8 *buffer = 0; + vec_validate (buffer, 256 - 1); + if (fgets ((char *) buffer, 256, fp)) + { + unformat_input_t in; + unformat_init_string (&in, (char *) buffer, + strlen ((char *) buffer)); + if (unformat (&in, "%U", unformat_bitmap_list, &r) != 1) + clib_warning ("unformat_bitmap_list failed"); + unformat_free (&in); + } + vec_free (buffer); + fclose (fp); + } + return r; +} /* * fd.io coding-style-patch-verification: ON