FreeCalypso > hg > fc-tourmaline
annotate helpers/cfg-hdr-gen.c @ 223:740a8e8fc9d7
startup sync logic rework for the new PWON button boot scheme
Previously we added logic to the MMI task to hold off PEI init until
R2D is running, and then extended that condition to wait for FCHG
init too. However, the dependencies of MMI upon R2D and FCHG don't
start until mmiInit(), and that call is driven by Switch_ON() code,
hence the wait for R2D and FCHG init can be made in that code path
instead of the MMI task. Furthermore, with our new way of signaling
PWON button boot to MMI, we need a new wait to ensure that the MMI
task is up - previously this assurance was provided by the wait for
Kp pointers to be set.
Solution: revert our previous PEI init hold-off additions to MMI,
add a new flag indicating MMI task init done, and put the combined
wait for all needed conditions into our new PWON button boot code
in power.c.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 27 Apr 2021 06:24:52 +0000 |
parents | 1fb47f5b597a |
children |
rev | line source |
---|---|
9
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This helper program generates the set of *.cfg header files, based on a |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * template file and environment variables for the non-constant settings. |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 */ |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 #include <stdio.h> |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #include <stdlib.h> |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 #include <unistd.h> |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 #include <ctype.h> |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #include <string.h> |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 #include <strings.h> |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 char *infname; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 FILE *inf, *outf; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 char include_guard_symbol[32]; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 char linebuf[256]; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 int lineno; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 make_include_guard_symbol(fname) |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 char *fname; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 { |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 char *sp, *dp; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 int c; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 sp = fname; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 dp = include_guard_symbol; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 *dp++ = '_'; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 *dp++ = '_'; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 while (c = *sp++) { |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 if (islower(c)) |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 c = toupper(c); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 else if (c == '.') |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 c = '_'; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 *dp++ = c; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 } |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 *dp++ = '_'; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 *dp++ = '_'; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 *dp = '\0'; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 } |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 close_output() |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 { |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 if (outf) { |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 fprintf(outf, "#endif /* %s */\n", include_guard_symbol); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 fclose(outf); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 outf = 0; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 } |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 } |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 bracket_line() |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 { |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 char *cp; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 close_output(); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 cp = index(linebuf+1, ']'); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 if (!cp) { |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 fprintf(stderr, "%s line %d: unterminated bracket line\n", |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 infname, lineno); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 exit(1); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 } |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 *cp = '\0'; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 outf = fopen(linebuf+1, "w"); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 if (!outf) { |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 perror(linebuf+1); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 exit(1); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 } |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 make_include_guard_symbol(linebuf+1); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 fprintf(outf, "#ifndef %s\n", include_guard_symbol); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 fprintf(outf, "#define %s\n", include_guard_symbol); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 } |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 process_line() |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 { |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 char *cp, *symbol, *value; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 if (linebuf[0] == '[') |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 return bracket_line(); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 for (cp = linebuf; isspace(*cp); cp++) |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 ; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 if (*cp == '\0' || *cp == '#') |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 return; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 for (symbol = cp; *cp && !isspace(*cp); cp++) |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 ; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 if (!*cp) { |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 inv: fprintf(stderr, "%s line %d: expected two fields\n", |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 infname, lineno); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 exit(1); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 } |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 *cp++ = '\0'; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 while (isspace(*cp)) |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 cp++; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 if (*cp == '\0' || *cp == '#') |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 goto inv; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 for (value = cp; *cp && !isspace(*cp); cp++) |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 ; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 if (*cp) |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 *cp++ = '\0'; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 while (isspace(*cp)) |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 cp++; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 if (*cp != '\0' && *cp != '#') |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 goto inv; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 if (!strcmp(value, "var")) { |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 value = getenv(symbol); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 if (!value) { |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 fprintf(stderr, |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 "%s line %d: no environment variable named %s\n", |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 infname, lineno, symbol); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 exit(1); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 } |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 } |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 if (!outf) { |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 fprintf(stderr, "%s line %d: no open output file\n", |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 infname, lineno); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 exit(1); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 } |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 fprintf(outf, "#define %s %s\n", symbol, value); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 } |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 main(argc, argv) |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 char **argv; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 { |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 if (argc != 3) { |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 fprintf(stderr, "usage: %s template-file output-dir\n", |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 argv[0]); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 exit(1); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 } |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 infname = argv[1]; |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 inf = fopen(infname, "r"); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 if (!inf) { |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 perror(infname); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 exit(1); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 } |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 if (chdir(argv[2]) < 0) { |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 perror(argv[2]); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 exit(1); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 } |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 for (lineno = 1; fgets(linebuf, sizeof linebuf, inf); lineno++) |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 process_line(); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 close_output(); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 exit(0); |
1fb47f5b597a
helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 } |