cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

fs.h (1804B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef __API_FS__
      3#define __API_FS__
      4
      5#include <stdbool.h>
      6#include <unistd.h>
      7
      8/*
      9 * On most systems <limits.h> would have given us this, but  not on some systems
     10 * (e.g. GNU/Hurd).
     11 */
     12#ifndef PATH_MAX
     13#define PATH_MAX 4096
     14#endif
     15
     16#define FS(name)				\
     17	const char *name##__mountpoint(void);	\
     18	const char *name##__mount(void);	\
     19	bool name##__configured(void);		\
     20
     21/*
     22 * The xxxx__mountpoint() entry points find the first match mount point for each
     23 * filesystems listed below, where xxxx is the filesystem type.
     24 *
     25 * The interface is as follows:
     26 *
     27 * - If a mount point is found on first call, it is cached and used for all
     28 *   subsequent calls.
     29 *
     30 * - If a mount point is not found, NULL is returned on first call and all
     31 *   subsequent calls.
     32 */
     33FS(sysfs)
     34FS(procfs)
     35FS(debugfs)
     36FS(tracefs)
     37FS(hugetlbfs)
     38FS(bpf_fs)
     39
     40#undef FS
     41
     42
     43int cgroupfs_find_mountpoint(char *buf, size_t maxlen, const char *subsys);
     44
     45int filename__read_int(const char *filename, int *value);
     46int filename__read_ull(const char *filename, unsigned long long *value);
     47int filename__read_xll(const char *filename, unsigned long long *value);
     48int filename__read_str(const char *filename, char **buf, size_t *sizep);
     49
     50int filename__write_int(const char *filename, int value);
     51
     52int procfs__read_str(const char *entry, char **buf, size_t *sizep);
     53
     54int sysctl__read_int(const char *sysctl, int *value);
     55int sysfs__read_int(const char *entry, int *value);
     56int sysfs__read_ull(const char *entry, unsigned long long *value);
     57int sysfs__read_xll(const char *entry, unsigned long long *value);
     58int sysfs__read_str(const char *entry, char **buf, size_t *sizep);
     59int sysfs__read_bool(const char *entry, bool *value);
     60
     61int sysfs__write_int(const char *entry, int value);
     62#endif /* __API_FS__ */