aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/lib/api/fs/fs.c13
-rw-r--r--tools/lib/api/fs/fs.h1
2 files changed, 14 insertions, 0 deletions
diff --git a/tools/lib/api/fs/fs.c b/tools/lib/api/fs/fs.c
index b8d0df8878d1..65d9be3f9887 100644
--- a/tools/lib/api/fs/fs.c
+++ b/tools/lib/api/fs/fs.c
@@ -184,3 +184,16 @@ int filename__read_int(const char *filename, int *value)
184 close(fd); 184 close(fd);
185 return err; 185 return err;
186} 186}
187
188int sysctl__read_int(const char *sysctl, int *value)
189{
190 char path[PATH_MAX];
191 const char *procfs = procfs__mountpoint();
192
193 if (!procfs)
194 return -1;
195
196 snprintf(path, sizeof(path), "%s/sys/%s", procfs, sysctl);
197
198 return filename__read_int(path, value);
199}
diff --git a/tools/lib/api/fs/fs.h b/tools/lib/api/fs/fs.h
index 4d0aef6e7163..6caa2bbc6cec 100644
--- a/tools/lib/api/fs/fs.h
+++ b/tools/lib/api/fs/fs.h
@@ -13,4 +13,5 @@ const char *sysfs__mountpoint(void);
13const char *procfs__mountpoint(void); 13const char *procfs__mountpoint(void);
14 14
15int filename__read_int(const char *filename, int *value); 15int filename__read_int(const char *filename, int *value);
16int sysctl__read_int(const char *sysctl, int *value);
16#endif /* __API_FS__ */ 17#endif /* __API_FS__ */