Subversion Repositories HelenOS

Rev

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;