annotate loadtools/secondprog.c @ 619:f82551c77e58

libserial-newlnx: ASYNC_LOW_LATENCY patch reverted Reports from Das Signal indicate that loadtools performance on Debian is about the same as on Slackware, and that including or omitting the ASYNC_LOW_LATENCY patch from Serg makes no difference. Because the patch in question does not appear to be necessary, it is being reverted until and unless someone other than Serg reports an actual real-world system on which loadtools operation times are slowed compared to the Mother's Slackware reference and on which Slackware-like performance can be restored by setting the ASYNC_LOW_LATENCY flag.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 27 Feb 2020 01:09:48 +0000
parents 064d4eedb3a6
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
204
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * This module contains the code for passing the serial channel to a
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * second program, used by fc-iram and fc-xram.
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 */
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 #include <stdio.h>
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #include <stdlib.h>
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 #include <unistd.h>
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 extern char **passon_argv;
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 extern int passon_argc;
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 exec_2nd_prog()
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 {
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 char **execp_argv;
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 char **sp, **dp;
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 extern int target_fd;
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 char desc_arg[16];
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 sprintf(desc_arg, "-d%d", target_fd);
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 execp_argv = (char **) malloc(sizeof(char *) * (passon_argc + 2));
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 if (!execp_argv) {
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 perror("malloc argv for execvp");
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 exit(1);
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 }
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 sp = passon_argv;
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 dp = execp_argv;
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 *dp++ = *sp++;
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 *dp++ = desc_arg;
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 while (*sp)
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 *dp++ = *sp++;
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 *dp = NULL;
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 execvp(execp_argv[0], execp_argv);
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 fprintf(stderr, "Unable to execvp %s\n", passon_argv[0]);
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 exit(1);
064d4eedb3a6 loadtools: second program invokation support added to fc-iram like in fc-xram
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 }