Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tools lib api fs: Add helper to read string from procfs file

To read things like /proc/self/comm.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Milian Wolff <milian.wolff@kdab.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-ztpkbmseidt0hq2psr46o0h9@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

+15
+13
tools/lib/api/fs/fs.c
··· 351 351 return err; 352 352 } 353 353 354 + int procfs__read_str(const char *entry, char **buf, size_t *sizep) 355 + { 356 + char path[PATH_MAX]; 357 + const char *procfs = procfs__mountpoint(); 358 + 359 + if (!procfs) 360 + return -1; 361 + 362 + snprintf(path, sizeof(path), "%s/%s", procfs, entry); 363 + 364 + return filename__read_str(path, buf, sizep); 365 + } 366 + 354 367 int sysfs__read_ull(const char *entry, unsigned long long *value) 355 368 { 356 369 char path[PATH_MAX];
+2
tools/lib/api/fs/fs.h
··· 29 29 int filename__read_ull(const char *filename, unsigned long long *value); 30 30 int filename__read_str(const char *filename, char **buf, size_t *sizep); 31 31 32 + int procfs__read_str(const char *entry, char **buf, size_t *sizep); 33 + 32 34 int sysctl__read_int(const char *sysctl, int *value); 33 35 int sysfs__read_int(const char *entry, int *value); 34 36 int sysfs__read_ull(const char *entry, unsigned long long *value);