Subversion Repositories HelenOS

Rev

Rev 1695 | Rev 1712 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1695 Rev 1702
Line 24... Line 24...
24
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
 */
27
 */
28
 
28
 
-
 
29
 /** @addtogroup genericconsole
-
 
30
 * @{
-
 
31
 */
-
 
32
 
29
/**
33
/**
30
 * @file    cmd.c
34
 * @file    cmd.c
31
 * @brief   Kernel console command wrappers.
35
 * @brief   Kernel console command wrappers.
32
 *
36
 *
33
 * This file is meant to contain all wrapper functions for
37
 * This file is meant to contain all wrapper functions for
Line 58... Line 62...
58
#include <proc/scheduler.h>
62
#include <proc/scheduler.h>
59
#include <proc/thread.h>
63
#include <proc/thread.h>
60
#include <proc/task.h>
64
#include <proc/task.h>
61
#include <ipc/ipc.h>
65
#include <ipc/ipc.h>
62
 
66
 
63
/** Data and methods for 'help' command. */
67
/* Data and methods for 'help' command. */
64
static int cmd_help(cmd_arg_t *argv);
68
static int cmd_help(cmd_arg_t *argv);
65
static cmd_info_t help_info = {
69
static cmd_info_t help_info = {
66
    .name = "help",
70
    .name = "help",
67
    .description = "List of supported commands.",
71
    .description = "List of supported commands.",
68
    .func = cmd_help,
72
    .func = cmd_help,
Line 81... Line 85...
81
    .description ="Return console back to userspace.",
85
    .description ="Return console back to userspace.",
82
    .func = cmd_continue,
86
    .func = cmd_continue,
83
    .argc = 0
87
    .argc = 0
84
};
88
};
85
 
89
 
86
/** Data and methods for 'description' command. */
90
/* Data and methods for 'description' command. */
87
static int cmd_desc(cmd_arg_t *argv);
91
static int cmd_desc(cmd_arg_t *argv);
88
static void desc_help(void);
92
static void desc_help(void);
89
static char desc_buf[MAX_CMDLINE+1];
93
static char desc_buf[MAX_CMDLINE+1];
90
static cmd_arg_t desc_argv = {
94
static cmd_arg_t desc_argv = {
91
    .type = ARG_TYPE_STRING,
95
    .type = ARG_TYPE_STRING,
Line 99... Line 103...
99
    .func = cmd_desc,
103
    .func = cmd_desc,
100
    .argc = 1,
104
    .argc = 1,
101
    .argv = &desc_argv
105
    .argv = &desc_argv
102
};
106
};
103
 
107
 
104
/** Data and methods for 'symaddr' command. */
108
/* Data and methods for 'symaddr' command. */
105
static int cmd_symaddr(cmd_arg_t *argv);
109
static int cmd_symaddr(cmd_arg_t *argv);
106
static char symaddr_buf[MAX_CMDLINE+1];
110
static char symaddr_buf[MAX_CMDLINE+1];
107
static cmd_arg_t symaddr_argv = {
111
static cmd_arg_t symaddr_argv = {
108
    .type = ARG_TYPE_STRING,
112
    .type = ARG_TYPE_STRING,
109
    .buffer = symaddr_buf,
113
    .buffer = symaddr_buf,
Line 135... Line 139...
135
    .func = cmd_set4,
139
    .func = cmd_set4,
136
    .argc = 2,
140
    .argc = 2,
137
    .argv = set4_argv
141
    .argv = set4_argv
138
};
142
};
139
 
143
 
140
/** Data and methods for 'call0' command. */
144
/* Data and methods for 'call0' command. */
141
static char call0_buf[MAX_CMDLINE+1];
145
static char call0_buf[MAX_CMDLINE+1];
142
static char carg1_buf[MAX_CMDLINE+1];
146
static char carg1_buf[MAX_CMDLINE+1];
143
static char carg2_buf[MAX_CMDLINE+1];
147
static char carg2_buf[MAX_CMDLINE+1];
144
static char carg3_buf[MAX_CMDLINE+1];
148
static char carg3_buf[MAX_CMDLINE+1];
145
 
149
 
Line 155... Line 159...
155
    .func = cmd_call0,
159
    .func = cmd_call0,
156
    .argc = 1,
160
    .argc = 1,
157
    .argv = &call0_argv
161
    .argv = &call0_argv
158
};
162
};
159
 
163
 
160
/** Data and methods for 'call1' command. */
164
/* Data and methods for 'call1' command. */
161
static int cmd_call1(cmd_arg_t *argv);
165
static int cmd_call1(cmd_arg_t *argv);
162
static cmd_arg_t call1_argv[] = {
166
static cmd_arg_t call1_argv[] = {
163
    {
167
    {
164
        .type = ARG_TYPE_STRING,
168
        .type = ARG_TYPE_STRING,
165
        .buffer = call0_buf,
169
        .buffer = call0_buf,
Line 177... Line 181...
177
    .func = cmd_call1,
181
    .func = cmd_call1,
178
    .argc = 2,
182
    .argc = 2,
179
    .argv = call1_argv
183
    .argv = call1_argv
180
};
184
};
181
 
185
 
182
/** Data and methods for 'call2' command. */
186
/* Data and methods for 'call2' command. */
183
static int cmd_call2(cmd_arg_t *argv);
187
static int cmd_call2(cmd_arg_t *argv);
184
static cmd_arg_t call2_argv[] = {
188
static cmd_arg_t call2_argv[] = {
185
    {
189
    {
186
        .type = ARG_TYPE_STRING,
190
        .type = ARG_TYPE_STRING,
187
        .buffer = call0_buf,
191
        .buffer = call0_buf,
Line 204... Line 208...
204
    .func = cmd_call2,
208
    .func = cmd_call2,
205
    .argc = 3,
209
    .argc = 3,
206
    .argv = call2_argv
210
    .argv = call2_argv
207
};
211
};
208
 
212
 
209
/** Data and methods for 'call3' command. */
213
/* Data and methods for 'call3' command. */
210
static int cmd_call3(cmd_arg_t *argv);
214
static int cmd_call3(cmd_arg_t *argv);
211
static cmd_arg_t call3_argv[] = {
215
static cmd_arg_t call3_argv[] = {
212
    {
216
    {
213
        .type = ARG_TYPE_STRING,
217
        .type = ARG_TYPE_STRING,
214
        .buffer = call0_buf,
218
        .buffer = call0_buf,
Line 237... Line 241...
237
    .func = cmd_call3,
241
    .func = cmd_call3,
238
    .argc = 4,
242
    .argc = 4,
239
    .argv = call3_argv
243
    .argv = call3_argv
240
};
244
};
241
 
245
 
242
/** Data and methods for 'halt' command. */
246
/* Data and methods for 'halt' command. */
243
static int cmd_halt(cmd_arg_t *argv);
247
static int cmd_halt(cmd_arg_t *argv);
244
static cmd_info_t halt_info = {
248
static cmd_info_t halt_info = {
245
    .name = "halt",
249
    .name = "halt",
246
    .description = "Halt the kernel.",
250
    .description = "Halt the kernel.",
247
    .func = cmd_halt,
251
    .func = cmd_halt,
248
    .argc = 0
252
    .argc = 0
249
};
253
};
250
 
254
 
251
/** Data and methods for 'tlb' command. */
255
/* Data and methods for 'tlb' command. */
252
static int cmd_tlb(cmd_arg_t *argv);
256
static int cmd_tlb(cmd_arg_t *argv);
253
cmd_info_t tlb_info = {
257
cmd_info_t tlb_info = {
254
    .name = "tlb",
258
    .name = "tlb",
255
    .description = "Print TLB of current processor.",
259
    .description = "Print TLB of current processor.",
256
    .help = NULL,
260
    .help = NULL,
Line 290... Line 294...
290
    .description = "List slab caches.",
294
    .description = "List slab caches.",
291
    .func = cmd_slabs,
295
    .func = cmd_slabs,
292
    .argc = 0
296
    .argc = 0
293
};
297
};
294
 
298
 
295
/** Data and methods for 'zones' command */
299
/* Data and methods for 'zones' command */
296
static int cmd_zones(cmd_arg_t *argv);
300
static int cmd_zones(cmd_arg_t *argv);
297
static cmd_info_t zones_info = {
301
static cmd_info_t zones_info = {
298
    .name = "zones",
302
    .name = "zones",
299
    .description = "List of memory zones.",
303
    .description = "List of memory zones.",
300
    .func = cmd_zones,
304
    .func = cmd_zones,
301
    .argc = 0
305
    .argc = 0
302
};
306
};
303
 
307
 
304
/** Data and methods for 'ipc_task' command */
308
/* Data and methods for 'ipc_task' command */
305
static int cmd_ipc_task(cmd_arg_t *argv);
309
static int cmd_ipc_task(cmd_arg_t *argv);
306
static cmd_arg_t ipc_task_argv = {
310
static cmd_arg_t ipc_task_argv = {
307
    .type = ARG_TYPE_INT,
311
    .type = ARG_TYPE_INT,
308
};
312
};
309
static cmd_info_t ipc_task_info = {
313
static cmd_info_t ipc_task_info = {
Line 312... Line 316...
312
    .func = cmd_ipc_task,
316
    .func = cmd_ipc_task,
313
    .argc = 1,
317
    .argc = 1,
314
    .argv = &ipc_task_argv
318
    .argv = &ipc_task_argv
315
};
319
};
316
 
320
 
317
/** Data and methods for 'zone' command */
321
/* Data and methods for 'zone' command */
318
static int cmd_zone(cmd_arg_t *argv);
322
static int cmd_zone(cmd_arg_t *argv);
319
static cmd_arg_t zone_argv = {
323
static cmd_arg_t zone_argv = {
320
    .type = ARG_TYPE_INT,
324
    .type = ARG_TYPE_INT,
321
};
325
};
322
 
326
 
Line 326... Line 330...
326
    .func = cmd_zone,
330
    .func = cmd_zone,
327
    .argc = 1,
331
    .argc = 1,
328
    .argv = &zone_argv
332
    .argv = &zone_argv
329
};
333
};
330
 
334
 
331
/** Data and methods for 'cpus' command. */
335
/* Data and methods for 'cpus' command. */
332
static int cmd_cpus(cmd_arg_t *argv);
336
static int cmd_cpus(cmd_arg_t *argv);
333
cmd_info_t cpus_info = {
337
cmd_info_t cpus_info = {
334
    .name = "cpus",
338
    .name = "cpus",
335
    .description = "List all processors.",
339
    .description = "List all processors.",
336
    .help = NULL,
340
    .help = NULL,
337
    .func = cmd_cpus,
341
    .func = cmd_cpus,
338
    .argc = 0,
342
    .argc = 0,
339
    .argv = NULL
343
    .argv = NULL
340
};
344
};
341
 
345
 
342
/** Data and methods for 'version' command. */
346
/* Data and methods for 'version' command. */
343
static int cmd_version(cmd_arg_t *argv);
347
static int cmd_version(cmd_arg_t *argv);
344
cmd_info_t version_info = {
348
cmd_info_t version_info = {
345
    .name = "version",
349
    .name = "version",
346
    .description = "Print version information.",
350
    .description = "Print version information.",
347
    .help = NULL,
351
    .help = NULL,
Line 797... Line 801...
797
    printf("The kernel will now relinquish the console.\n");
801
    printf("The kernel will now relinquish the console.\n");
798
    printf("Use userspace controls to redraw the screen.\n");
802
    printf("Use userspace controls to redraw the screen.\n");
799
    arch_release_console();
803
    arch_release_console();
800
    return 1;
804
    return 1;
801
}
805
}
-
 
806
 
-
 
807
 /** @}
-
 
808
 */
-
 
809