[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 03/25] Hoist trace file and socket opening
From: |
Richard Henderson |
Subject: |
[PATCH v3 03/25] Hoist trace file and socket opening |
Date: |
Thu, 21 May 2020 19:34:18 -0700 |
We will want to share this code with --dump.
Reviewed-by: Alex Bennée <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
---
v3: Hoist socket connecting as well as trace file opening.
---
risu.c | 49 +++++++++++++++++++++++--------------------------
1 file changed, 23 insertions(+), 26 deletions(-)
diff --git a/risu.c b/risu.c
index 059348f..2f6a677 100644
--- a/risu.c
+++ b/risu.c
@@ -363,6 +363,29 @@ int main(int argc, char **argv)
}
}
+ if (trace) {
+ if (strcmp(trace_fn, "-") == 0) {
+ comm_fd = ismaster ? STDOUT_FILENO : STDIN_FILENO;
+ } else {
+ if (ismaster) {
+ comm_fd = open(trace_fn, O_WRONLY | O_CREAT, S_IRWXU);
+ } else {
+ comm_fd = open(trace_fn, O_RDONLY);
+ }
+#ifdef HAVE_ZLIB
+ gz_trace_file = gzdopen(comm_fd, ismaster ? "wb9" : "rb");
+#endif
+ }
+ } else {
+ if (ismaster) {
+ fprintf(stderr, "master port %d\n", port);
+ comm_fd = master_connect(port);
+ } else {
+ fprintf(stderr, "apprentice host %s port %d\n", hostname, port);
+ comm_fd = apprentice_connect(hostname, port);
+ }
+ }
+
imgfile = argv[optind];
if (!imgfile) {
fprintf(stderr, "Error: must specify image file name\n\n");
@@ -373,34 +396,8 @@ int main(int argc, char **argv)
load_image(imgfile);
if (ismaster) {
- if (trace) {
- if (strcmp(trace_fn, "-") == 0) {
- comm_fd = STDOUT_FILENO;
- } else {
- comm_fd = open(trace_fn, O_WRONLY | O_CREAT, S_IRWXU);
-#ifdef HAVE_ZLIB
- gz_trace_file = gzdopen(comm_fd, "wb9");
-#endif
- }
- } else {
- fprintf(stderr, "master port %d\n", port);
- comm_fd = master_connect(port);
- }
return master();
} else {
- if (trace) {
- if (strcmp(trace_fn, "-") == 0) {
- comm_fd = STDIN_FILENO;
- } else {
- comm_fd = open(trace_fn, O_RDONLY);
-#ifdef HAVE_ZLIB
- gz_trace_file = gzdopen(comm_fd, "rb");
-#endif
- }
- } else {
- fprintf(stderr, "apprentice host %s port %d\n", hostname, port);
- comm_fd = apprentice_connect(hostname, port);
- }
return apprentice();
}
}
--
2.20.1
- [PATCH v3 00/25] risu cleanups and improvements, Richard Henderson, 2020/05/21
- [PATCH v3 01/25] Use bool for tracing variables, Richard Henderson, 2020/05/21
- [PATCH v3 02/25] Unify master_fd and apprentice_fd to comm_fd, Richard Henderson, 2020/05/21
- [PATCH v3 03/25] Hoist trace file and socket opening,
Richard Henderson <=
- [PATCH v3 04/25] Adjust tracefile open for write, Richard Henderson, 2020/05/21
- [PATCH v3 05/25] Use EXIT_FAILURE, EXIT_SUCCESS, Richard Henderson, 2020/05/21
- [PATCH v3 06/25] Make some risu.c symbols static, Richard Henderson, 2020/05/21
- [PATCH v3 08/25] Add enum RisuResult, Richard Henderson, 2020/05/21
- [PATCH v3 07/25] Add enum RisuOp, Richard Henderson, 2020/05/21
- [PATCH v3 09/25] Unify i/o functions and use RisuResult, Richard Henderson, 2020/05/21
- [PATCH v3 10/25] Pass non-OK result back through siglongjmp, Richard Henderson, 2020/05/21
- [PATCH v3 11/25] Always write for --master, Richard Henderson, 2020/05/21
- [PATCH v3 12/25] Simplify syncing with master, Richard Henderson, 2020/05/21
- [PATCH v3 13/25] Split RES_MISMATCH for registers and memory, Richard Henderson, 2020/05/21