Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 667 → Rev 668

/kernel/trunk/generic/src/console/cmd.c
48,6 → 48,7
 
#include <mm/tlb.h>
#include <arch/mm/tlb.h>
#include <mm/frame.h>
 
/** Data and methods for 'help' command. */
static int cmd_help(cmd_arg_t *argv);
119,6 → 120,7
};
 
 
 
/** Data and methods for 'call0' command. */
static char call0_buf[MAX_CMDLINE+1];
static char carg1_buf[MAX_CMDLINE+1];
241,6 → 243,36
.argv = NULL
};
 
 
/** Data and methods for 'zones' command */
static int cmd_zones(cmd_arg_t *argv);
static cmd_info_t zones_info = {
.name = "zones",
.description = "List of memory zones.",
.func = cmd_zones,
.argc = 0
};
 
/** Data and methods for 'zone' command */
static int cmd_zone(cmd_arg_t *argv);
static char zone_buf[MAX_CMDLINE+1];
static cmd_arg_t zone_argv = {
.type = ARG_TYPE_INT,
.buffer = zone_buf,
.len = sizeof(zone_buf)
};
 
 
static cmd_info_t zone_info = {
.name = "zone",
.description = "Show memory zone structure.",
.func = cmd_zone,
.argc = 1,
.argv = &zone_argv
};
 
 
 
/** Initialize command info structure.
*
* @param cmd Command info structure.
298,6 → 330,16
cmd_initialize(&ptlb_info);
if (!cmd_register(&ptlb_info))
panic("could not register command %s\n", ptlb_info.name);
 
cmd_initialize(&zones_info);
if (!cmd_register(&zones_info))
panic("could not register command %s\n", zones_info.name);
 
cmd_initialize(&zone_info);
if (!cmd_register(&zone_info))
panic("could not register command %s\n", zone_info.name);
 
 
}
 
 
533,3 → 575,14
return 1;
}
 
 
int cmd_zones(cmd_arg_t * argv) {
printf("Zones listing not implemented\n");
return 1;
}
int cmd_zone(cmd_arg_t * argv) {
printf("Zone details not implemented\n");
return 1;
}
 
/kernel/trunk/generic/src/console/kconsole.c
471,6 → 471,7
cmd_info_t *cmd = NULL;
link_t *cur;
int i;
int error = 0;
if (!parse_argument(cmdline, len, &start, &end)) {
/* Command line did not contain alphanumeric word. */
520,6 → 521,7
return NULL;
}
error = 0;
switch (cmd->argv[i].type) {
case ARG_TYPE_STRING:
buf = cmd->argv[i].buffer;
529,7 → 531,7
case ARG_TYPE_INT:
if (parse_int_arg(cmdline+start, end-start+1,
&cmd->argv[i].intval))
return NULL;
error = 1;
break;
case ARG_TYPE_VAR:
if (start != end && cmdline[start] == '"' && cmdline[end] == '"') {
544,17 → 546,22
cmd->argv[i].vartype = ARG_TYPE_INT;
else {
printf("Unrecognized variable argument.\n");
return NULL;
error = 1;
}
break;
case ARG_TYPE_INVALID:
default:
printf("invalid argument type\n");
return NULL;
error = 1;
break;
}
}
if (error) {
spinlock_unlock(&cmd->lock);
return NULL;
}
start = end + 1;
if (parse_argument(cmdline, len, &start, &end)) {
printf("Too many arguments.\n");