]>
Commit | Line | Data |
---|---|---|
3b5a3233 CB |
1 | #ifndef __LXCFS_BINDINGS_H |
2 | #define __LXCFS_BINDINGS_H | |
3 | ||
17e0e368 | 4 | #include "macro.h" |
71f17cd2 | 5 | #include "sysfs_fuse.h" |
17e0e368 | 6 | |
237e200e | 7 | /* directory under which we mount the controllers - /run/lxcfs/controllers */ |
cc97d34c | 8 | #define BASEDIR RUNTIME_PATH "/lxcfs/controllers" |
8cb31294 | 9 | #define ROOTDIR RUNTIME_PATH "/lxcfs/root" |
237e200e | 10 | |
71f17cd2 YB |
11 | /* Maximum number for 64 bit integer is a string with 21 digits: 2^64 - 1 = 21 */ |
12 | #define LXCFS_NUMSTRLEN64 21 | |
13 | ||
14 | /* Reserve buffer size to account for file size changes. */ | |
15 | #define BUF_RESERVE_SIZE 512 | |
16 | ||
17 | enum lxcfs_virt_t { | |
18 | LXC_TYPE_CGDIR, | |
19 | LXC_TYPE_CGFILE, | |
20 | LXC_TYPE_PROC_MEMINFO, | |
21 | LXC_TYPE_PROC_CPUINFO, | |
22 | LXC_TYPE_PROC_UPTIME, | |
23 | LXC_TYPE_PROC_STAT, | |
24 | LXC_TYPE_PROC_DISKSTATS, | |
25 | LXC_TYPE_PROC_SWAPS, | |
26 | LXC_TYPE_PROC_LOADAVG, | |
27 | LXC_TYPE_SYS_DEVICES, | |
28 | LXC_TYPE_SYS_DEVICES_SYSTEM, | |
29 | LXC_TYPE_SYS_DEVICES_SYSTEM_CPU, | |
30 | LXC_TYPE_SYS_DEVICES_SYSTEM_CPU_ONLINE, | |
31 | }; | |
32 | ||
33 | struct file_info { | |
34 | char *controller; | |
35 | char *cgroup; | |
36 | char *file; | |
37 | int type; | |
38 | char *buf; // unused as of yet | |
39 | int buflen; | |
40 | int size; //actual data size | |
41 | int cached; | |
42 | }; | |
43 | ||
7e60aa1b | 44 | struct lxcfs_opts { |
45 | bool swap_off; | |
46 | }; | |
47 | ||
237e200e SH |
48 | extern int cg_write(const char *path, const char *buf, size_t size, off_t offset, |
49 | struct fuse_file_info *fi); | |
50 | extern int cg_mkdir(const char *path, mode_t mode); | |
51 | extern int cg_chown(const char *path, uid_t uid, gid_t gid); | |
52 | extern int cg_rmdir(const char *path); | |
53 | extern int cg_chmod(const char *path, mode_t mode); | |
54 | extern int cg_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, | |
55 | struct fuse_file_info *fi); | |
56 | extern int cg_releasedir(const char *path, struct fuse_file_info *fi); | |
57 | extern int cg_release(const char *path, struct fuse_file_info *fi); | |
58 | extern int cg_read(const char *path, char *buf, size_t size, off_t offset, | |
59 | struct fuse_file_info *fi); | |
60 | extern int cg_opendir(const char *path, struct fuse_file_info *fi); | |
61 | extern int cg_getattr(const char *path, struct stat *sb); | |
62 | extern int cg_open(const char *path, struct fuse_file_info *fi); | |
bddbb106 | 63 | extern int cg_access(const char *path, int mode); |
237e200e SH |
64 | |
65 | extern int proc_getattr(const char *path, struct stat *sb); | |
66 | extern int proc_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, | |
67 | struct fuse_file_info *fi); | |
68 | extern int proc_release(const char *path, struct fuse_file_info *fi); | |
69 | extern int proc_open(const char *path, struct fuse_file_info *fi); | |
70 | extern int proc_read(const char *path, char *buf, size_t size, off_t offset, | |
71 | struct fuse_file_info *fi); | |
bddbb106 | 72 | extern int proc_access(const char *path, int mask); |
6db4f7a3 | 73 | extern pthread_t load_daemon(int load_use); |
a83618e2 | 74 | extern int stop_load_daemon(pthread_t pid); |
3b5a3233 | 75 | |
71f17cd2 YB |
76 | extern pid_t lookup_initpid_in_store(pid_t qpid); |
77 | extern char *get_pid_cgroup(pid_t pid, const char *contrl); | |
78 | extern int read_file(const char *path, char *buf, size_t size, | |
79 | struct file_info *d); | |
80 | extern void prune_init_slice(char *cg); | |
81 | extern char *get_cpuset(const char *cg); | |
82 | extern bool use_cpuview(const char *cg); | |
83 | extern int max_cpu_count(const char *cg); | |
84 | extern void do_release_file_info(struct fuse_file_info *fi); | |
1e14fd04 | 85 | extern int cpu_number_in_cpuset(const char *cpuset); |
71f17cd2 | 86 | |
17e0e368 | 87 | #endif /* __LXCFS_BINDINGS_H */ |