Rev 2936 | Rev 2938 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2936 | Rev 2937 | ||
---|---|---|---|
Line 43... | Line 43... | ||
43 | #include "cons.h" |
43 | #include "cons.h" |
44 | #include "include/arch.h" |
44 | #include "include/arch.h" |
45 | #include "cmd.h" |
45 | #include "cmd.h" |
46 | 46 | ||
47 | static void cmd_break(int argc, char *argv[]); |
47 | static void cmd_break(int argc, char *argv[]); |
- | 48 | static void cmd_ct(int argc, char *argv[]); |
|
48 | void cmd_go(int argc, char *argv[]); |
49 | static void cmd_go(int argc, char *argv[]); |
49 | void cmd_help(int argc, char *argv[]); |
50 | void cmd_help(int argc, char *argv[]); |
- | 51 | static void cmd_pwt(int argc, char *argv[]); |
|
50 | static void cmd_read(int argc, char *argv[]); |
52 | static void cmd_read(int argc, char *argv[]); |
- | 53 | static void cmd_step(int argc, char *argv[]); |
|
- | 54 | static void cmd_threads(int argc, char *argv[]); |
|
51 | static void cmd_quit(int argc, char *argv[]); |
55 | static void cmd_quit(int argc, char *argv[]); |
52 | 56 | ||
53 | volatile bool quit = false; |
57 | volatile bool quit = false; |
54 | 58 | ||
55 | cmd_desc_t cmd_table[] = { |
59 | cmd_desc_t cmd_table[] = { |
56 | { 1, "break", cmd_break }, |
60 | { 1, "break", cmd_break }, |
- | 61 | { 1, "ct", cmd_ct }, |
|
57 | { 0, "go", cmd_go }, |
62 | { 0, "go", cmd_go }, |
58 | { 0, "help", cmd_help }, |
63 | { 0, "help", cmd_help }, |
- | 64 | { 0, "pwt", cmd_pwt }, |
|
59 | { 2, "read", cmd_read }, |
65 | { 2, "read", cmd_read }, |
- | 66 | { 0, "threads", cmd_threads }, |
|
60 | { 0, "quit", cmd_quit }, |
67 | { 0, "quit", cmd_quit }, |
61 | { -1, NULL, NULL } |
68 | { -1, NULL, NULL } |
62 | }; |
69 | }; |
63 | 70 | ||
64 | static void cmd_break(int argc, char *argv[]) |
71 | static void cmd_break(int argc, char *argv[]) |
Line 70... | Line 77... | ||
70 | 77 | ||
71 | cons_printf("You requested a breakpoint at 0x%x\n", addr); |
78 | cons_printf("You requested a breakpoint at 0x%x\n", addr); |
72 | arch_breakpoint_add(addr); |
79 | arch_breakpoint_add(addr); |
73 | } |
80 | } |
74 | 81 | ||
- | 82 | static void cmd_ct(int argc, char *argv[]) |
|
- | 83 | { |
|
- | 84 | int i; |
|
- | 85 | int tid; |
|
- | 86 | ||
- | 87 | (void)argc; |
|
- | 88 | tid = strtoul(argv[1], NULL, 0); |
|
- | 89 | ||
- | 90 | for (i = 0; i < n_threads; ++i) { |
|
- | 91 | if (thread_id[i] == tid) break; |
|
- | 92 | } |
|
- | 93 | ||
- | 94 | if (thread_id[i] == tid) { |
|
- | 95 | cons_printf("changed working thread to: %d [hash 0x%x]\n", |
|
- | 96 | thread_id[cwt], thread_hash[cwt]); |
|
- | 97 | } else { |
|
- | 98 | cons_printf("no such thread\n"); |
|
- | 99 | } |
|
- | 100 | } |
|
- | 101 | ||
- | 102 | ||
75 | void cmd_go(int argc, char *argv[]) |
103 | void cmd_go(int argc, char *argv[]) |
76 | { |
104 | { |
77 | fcv_broadcast(&go_cv); |
105 | fcv_broadcast(&go_cv); |
78 | } |
106 | } |
79 | 107 | ||
Line 133... | Line 161... | ||
133 | addr += to_read; |
161 | addr += to_read; |
134 | length -= to_read; |
162 | length -= to_read; |
135 | } |
163 | } |
136 | } |
164 | } |
137 | 165 | ||
- | 166 | void cmd_step(int argc, char *argv[]) |
|
- | 167 | { |
|
- | 168 | fcv_broadcast(&go_cv); |
|
- | 169 | } |
|
- | 170 | ||
- | 171 | void cmd_pwt(int argc, char *argv[]) |
|
- | 172 | { |
|
- | 173 | (void)argc; (void)argv; |
|
- | 174 | cons_printf("working thread: %d [hash 0x%x]\n", thread_id[cwt], |
|
- | 175 | thread_hash[cwt]); |
|
- | 176 | } |
|
- | 177 | ||
- | 178 | void cmd_threads(int argc, char *argv[]) |
|
- | 179 | { |
|
- | 180 | int i; |
|
- | 181 | ||
- | 182 | (void)argc; (void)argv; |
|
- | 183 | for (i = 0; i < n_threads; ++i) { |
|
- | 184 | cons_printf("%d [hash 0x%x]\n", thread_id[i], thread_hash[i]); |
|
- | 185 | } |
|
- | 186 | } |
|
- | 187 | ||
138 | 188 | ||
139 | static void cmd_quit(int argc, char *argv[]) |
189 | static void cmd_quit(int argc, char *argv[]) |
140 | { |
190 | { |
141 | (void)argc; (void)argv; |
191 | (void)argc; (void)argv; |
142 | quit = true; |
192 | quit = true; |