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; |