[CRIU] [PATCH 2/6] ext: Sweep external resources code into separate files.
Pavel Emelyanov
xemul at virtuozzo.com
Tue Sep 20 06:26:15 PDT 2016
Signed-off-by: Pavel Emelyanov <xemul at virtuozzo.com>
---
criu/Makefile.crtools | 1 +
criu/cr-service.c | 1 +
criu/crtools.c | 14 +-------------
criu/external.c | 42 ++++++++++++++++++++++++++++++++++++++++++
criu/files-reg.c | 1 +
criu/files.c | 24 ------------------------
criu/include/cr_options.h | 7 -------
criu/include/external.h | 11 +++++++++++
criu/include/files.h | 2 --
criu/mount.c | 1 +
criu/tty.c | 1 +
11 files changed, 59 insertions(+), 46 deletions(-)
create mode 100644 criu/external.c
create mode 100644 criu/include/external.h
diff --git a/criu/Makefile.crtools b/criu/Makefile.crtools
index 52c00ec..98d9764 100644
--- a/criu/Makefile.crtools
+++ b/criu/Makefile.crtools
@@ -1,5 +1,6 @@
ccflags-y += -iquote criu/$(ARCH)
obj-y += action-scripts.o
+obj-y += external.o
obj-y += aio.o
obj-y += bfd.o
obj-y += bitmap.o
diff --git a/criu/cr-service.c b/criu/cr-service.c
index 2cb6f83..460680b 100644
--- a/criu/cr-service.c
+++ b/criu/cr-service.c
@@ -17,6 +17,7 @@
#include "crtools.h"
#include "cr_options.h"
+#include "external.h"
#include "util.h"
#include "log.h"
#include "cpu.h"
diff --git a/criu/crtools.c b/criu/crtools.c
index fe3c5a0..6c3c3b5 100644
--- a/criu/crtools.c
+++ b/criu/crtools.c
@@ -24,6 +24,7 @@
#include "compiler.h"
#include "crtools.h"
#include "cr_options.h"
+#include "external.h"
#include "sockets.h"
#include "files.h"
#include "sk-inet.h"
@@ -193,19 +194,6 @@ static size_t parse_size(char *optarg)
return (size_t)atol(optarg);
}
-int add_external(char *key)
-{
- struct external *ext;
-
- ext = xmalloc(sizeof(*ext));
- if (!ext)
- return -1;
- ext->id = key;
- list_add(&ext->node, &opts.external);
-
- return 0;
-}
-
bool deprecated_ok(char *what)
{
if (opts.deprecated_ok)
diff --git a/criu/external.c b/criu/external.c
new file mode 100644
index 0000000..bb7ef06
--- /dev/null
+++ b/criu/external.c
@@ -0,0 +1,42 @@
+#include "list.h"
+#include "cr_options.h"
+#include "xmalloc.h"
+#include "external.h"
+
+int add_external(char *key)
+{
+ struct external *ext;
+
+ ext = xmalloc(sizeof(*ext));
+ if (!ext)
+ return -1;
+ ext->id = key;
+ list_add(&ext->node, &opts.external);
+
+ return 0;
+}
+
+bool external_lookup_id(char *id)
+{
+ struct external *ext;
+
+ list_for_each_entry(ext, &opts.external, node)
+ if (!strcmp(ext->id, id))
+ return true;
+ return false;
+}
+
+char *external_lookup_by_key(char *key)
+{
+ struct external *ext;
+ int len = strlen(key);
+
+ list_for_each_entry(ext, &opts.external, node) {
+ if (strncmp(ext->id, key, len))
+ continue;
+ if (ext->id[len] == ':')
+ return ext->id + len + 1;
+ }
+ return NULL;
+}
+
diff --git a/criu/files-reg.c b/criu/files-reg.c
index b91a2c3..7817fb4 100644
--- a/criu/files-reg.c
+++ b/criu/files-reg.c
@@ -28,6 +28,7 @@
#include "proc_parse.h"
#include "pstree.h"
#include "fault-injection.h"
+#include "external.h"
#include "protobuf.h"
#include "images/regfile.pb-c.h"
diff --git a/criu/files.c b/criu/files.c
index 7e7e3a5..2dbbf5a 100644
--- a/criu/files.c
+++ b/criu/files.c
@@ -1649,30 +1649,6 @@ int inherit_fd_fini()
return 0;
}
-bool external_lookup_id(char *id)
-{
- struct external *ext;
-
- list_for_each_entry(ext, &opts.external, node)
- if (!strcmp(ext->id, id))
- return true;
- return false;
-}
-
-char *external_lookup_by_key(char *key)
-{
- struct external *ext;
- int len = strlen(key);
-
- list_for_each_entry(ext, &opts.external, node) {
- if (strncmp(ext->id, key, len))
- continue;
- if (ext->id[len] == ':')
- return ext->id + len + 1;
- }
- return NULL;
-}
-
int open_transport_socket()
{
int sock;
diff --git a/criu/include/cr_options.h b/criu/include/cr_options.h
index ba5c23f..7711a7a 100644
--- a/criu/include/cr_options.h
+++ b/criu/include/cr_options.h
@@ -47,11 +47,6 @@ struct irmap_path_opt {
struct irmap *ir;
};
-struct external {
- struct list_head node;
- char *id;
-};
-
struct cr_options {
int final_state;
char *show_dump_file;
@@ -127,6 +122,4 @@ extern struct cr_options opts;
extern void init_opts(void);
-extern int add_external(char *key);
-
#endif /* __CR_OPTIONS_H__ */
diff --git a/criu/include/external.h b/criu/include/external.h
new file mode 100644
index 0000000..d343732
--- /dev/null
+++ b/criu/include/external.h
@@ -0,0 +1,11 @@
+#ifndef __CR_EXTERNAL_H__
+#define __CR_EXTERNAL_H__
+struct external {
+ struct list_head node;
+ char *id;
+};
+
+extern int add_external(char *key);
+extern bool external_lookup_id(char *id);
+extern char *external_lookup_by_key(char *id);
+#endif
diff --git a/criu/include/files.h b/criu/include/files.h
index 7513b21..c073c03 100644
--- a/criu/include/files.h
+++ b/criu/include/files.h
@@ -191,9 +191,7 @@ extern void inherit_fd_log(void);
extern int inherit_fd_resolve_clash(int fd);
extern int inherit_fd_fini(void);
-extern bool external_lookup_id(char *id);
extern int inherit_fd_lookup_id(char *id);
-extern char *external_lookup_by_key(char *id);
extern bool inherited_fd(struct file_desc *, int *fdp);
diff --git a/criu/mount.c b/criu/mount.c
index 615a71a..6e98f1e 100644
--- a/criu/mount.c
+++ b/criu/mount.c
@@ -30,6 +30,7 @@
#include "path.h"
#include "autofs.h"
#include "files-reg.h"
+#include "external.h"
#include "images/mnt.pb-c.h"
#include "images/binfmt-misc.pb-c.h"
diff --git a/criu/tty.c b/criu/tty.c
index 8090e22..d1fc671 100644
--- a/criu/tty.c
+++ b/criu/tty.c
@@ -28,6 +28,7 @@
#include "file-ids.h"
#include "files-reg.h"
#include "namespaces.h"
+#include "external.h"
#include "protobuf.h"
#include "images/tty.pb-c.h"
--
2.5.0
More information about the CRIU
mailing list