2012-01-26 15:27:00 +04:00
|
|
|
#ifndef __CR_NS_H__
|
|
|
|
#define __CR_NS_H__
|
2012-06-19 15:53:00 +04:00
|
|
|
|
2013-05-18 04:00:05 +04:00
|
|
|
#include "files.h"
|
2012-06-19 15:53:00 +04:00
|
|
|
|
2013-01-15 23:24:01 +04:00
|
|
|
struct ns_desc {
|
2013-05-15 00:37:44 +04:00
|
|
|
unsigned int cflag;
|
|
|
|
char *str;
|
2013-05-20 13:30:17 +04:00
|
|
|
size_t len;
|
2013-01-15 23:24:01 +04:00
|
|
|
};
|
|
|
|
|
2014-03-11 19:18:00 +04:00
|
|
|
struct ns_id {
|
|
|
|
unsigned int kid;
|
|
|
|
unsigned int id;
|
|
|
|
pid_t pid;
|
|
|
|
struct ns_desc *nd;
|
|
|
|
struct ns_id *next;
|
2014-04-21 18:23:20 +04:00
|
|
|
futex_t created; /* boolean */
|
2014-03-11 19:18:00 +04:00
|
|
|
};
|
|
|
|
extern struct ns_id *ns_ids;
|
|
|
|
|
2013-05-20 13:30:17 +04:00
|
|
|
#define NS_DESC_ENTRY(_cflag, _str) \
|
|
|
|
{ \
|
|
|
|
.cflag = _cflag, \
|
|
|
|
.str = _str, \
|
|
|
|
.len = sizeof(_str) - 1, \
|
|
|
|
}
|
|
|
|
|
2013-05-18 04:00:05 +04:00
|
|
|
extern bool check_ns_proc(struct fd_link *link);
|
|
|
|
|
2013-05-15 00:37:44 +04:00
|
|
|
extern struct ns_desc pid_ns_desc;
|
2013-05-20 13:30:17 +04:00
|
|
|
extern struct ns_desc user_ns_desc;
|
2013-05-15 00:37:44 +04:00
|
|
|
extern unsigned long current_ns_mask;
|
|
|
|
|
2013-06-14 00:11:08 +04:00
|
|
|
extern const struct fdtype_ops nsfile_dump_ops;
|
2013-08-21 03:52:18 +04:00
|
|
|
extern struct collect_image_info nsfile_cinfo;
|
2013-05-18 04:00:05 +04:00
|
|
|
|
2013-11-15 14:04:48 +04:00
|
|
|
extern int dump_namespaces(struct pstree_item *item, unsigned int ns_flags);
|
|
|
|
extern int prepare_namespace(struct pstree_item *item, unsigned long clone_flags);
|
|
|
|
extern int try_show_namespaces(int pid);
|
2013-05-15 00:37:44 +04:00
|
|
|
|
2013-11-15 14:04:48 +04:00
|
|
|
extern int switch_ns(int pid, struct ns_desc *nd, int *rst);
|
|
|
|
extern int restore_ns(int rst, struct ns_desc *nd);
|
2012-12-25 22:40:24 +04:00
|
|
|
|
2013-11-15 14:04:48 +04:00
|
|
|
extern int dump_task_ns_ids(struct pstree_item *);
|
2014-04-21 18:23:14 +04:00
|
|
|
extern int rst_add_ns_id(unsigned int id, pid_t pid, struct ns_desc *nd);
|
|
|
|
extern struct ns_id *lookup_ns_by_id(unsigned int id, struct ns_desc *nd);
|
|
|
|
|
2014-01-30 13:48:00 +04:00
|
|
|
extern int gen_predump_ns_mask(void);
|
2013-01-18 13:18:33 +04:00
|
|
|
|
2012-12-25 22:40:24 +04:00
|
|
|
#endif /* __CR_NS_H__ */
|