]> git.proxmox.com Git - mirror_lxcfs.git/blobdiff - bindings.h
support /sys/devices/system/cpu/online
[mirror_lxcfs.git] / bindings.h
index 20df78cf0872a21a9e8c13d95759bc7aacba182c..fdda2070df9592e25643c6098ab0c31e88b3adb6 100644 (file)
@@ -2,11 +2,45 @@
 #define __LXCFS_BINDINGS_H
 
 #include "macro.h"
+#include "sysfs_fuse.h"
 
 /* directory under which we mount the controllers - /run/lxcfs/controllers */
 #define BASEDIR RUNTIME_PATH "/lxcfs/controllers"
 #define ROOTDIR RUNTIME_PATH "/lxcfs/root"
 
+/* Maximum number for 64 bit integer is a string with 21 digits: 2^64 - 1 = 21 */
+#define LXCFS_NUMSTRLEN64 21
+
+/* Reserve buffer size to account for file size changes. */
+#define BUF_RESERVE_SIZE 512
+
+enum lxcfs_virt_t {
+       LXC_TYPE_CGDIR,
+       LXC_TYPE_CGFILE,
+       LXC_TYPE_PROC_MEMINFO,
+       LXC_TYPE_PROC_CPUINFO,
+       LXC_TYPE_PROC_UPTIME,
+       LXC_TYPE_PROC_STAT,
+       LXC_TYPE_PROC_DISKSTATS,
+       LXC_TYPE_PROC_SWAPS,
+       LXC_TYPE_PROC_LOADAVG,
+       LXC_TYPE_SYS_DEVICES,
+       LXC_TYPE_SYS_DEVICES_SYSTEM,
+       LXC_TYPE_SYS_DEVICES_SYSTEM_CPU,
+       LXC_TYPE_SYS_DEVICES_SYSTEM_CPU_ONLINE,
+};
+
+struct file_info {
+       char *controller;
+       char *cgroup;
+       char *file;
+       int type;
+       char *buf;  // unused as of yet
+       int buflen;
+       int size; //actual data size
+       int cached;
+};
+
 struct lxcfs_opts {
        bool swap_off;
 };
@@ -39,4 +73,14 @@ extern int proc_access(const char *path, int mask);
 extern pthread_t load_daemon(int load_use);
 extern int stop_load_daemon(pthread_t pid);
 
+extern pid_t lookup_initpid_in_store(pid_t qpid);
+extern char *get_pid_cgroup(pid_t pid, const char *contrl);
+extern int read_file(const char *path, char *buf, size_t size,
+                    struct file_info *d);
+extern void prune_init_slice(char *cg);
+extern char *get_cpuset(const char *cg);
+extern bool use_cpuview(const char *cg);
+extern int max_cpu_count(const char *cg);
+extern void do_release_file_info(struct fuse_file_info *fi);
+
 #endif /* __LXCFS_BINDINGS_H */