Lines Matching +full:copy +full:- +full:item

4  * Copyright (c) 2003-2004 Fabrice Bellard
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
27 #include "hw/qdev-core.h"
28 #include "monitor-internal.h"
32 #include "qemu/config-file.h"
38 #include "system/block-backend.h"
46 monitor_suspend(&mon->common); in monitor_command_cb()
48 monitor_resume(&mon->common); in monitor_command_cb()
53 if (!mon->rs) { in monitor_read_command()
57 readline_start(mon->rs, "(qemu) ", 0, monitor_command_cb, NULL); in monitor_read_command()
59 readline_show_prompt(mon->rs); in monitor_read_command()
66 if (mon->rs) { in monitor_read_password()
67 readline_start(mon->rs, "Password: ", 1, readline_func, opaque); in monitor_read_password()
71 monitor_printf(&mon->common, in monitor_read_password()
73 return -ENOTTY; in monitor_read_password()
92 return -1; in get_str()
115 if ((q - buf) < buf_size - 1) { in get_str()
119 if ((q - buf) < buf_size - 1) { in get_str()
132 if ((q - buf) < buf_size - 1) { in get_str()
201 return -1; in parse_cmdline()
209 if (!cmd->flags) { in cmd_can_preconfig()
213 return strchr(cmd->flags, 'p'); in cmd_can_preconfig()
235 monitor_printf(mon, "%s %s -- %s\n", cmd->name, cmd->params, cmd->help); in help_cmd_dump_one()
247 for (cmd = cmds; cmd->name != NULL; cmd++) { in help_cmd_dump()
254 for (cmd = cmds; cmd->name != NULL; cmd++) { in help_cmd_dump()
255 if (hmp_compare_cmd(args[arg_index], cmd->name) && in help_cmd_dump()
257 if (cmd->sub_table) { in help_cmd_dump()
259 help_cmd_dump(mon, cmd->sub_table, in help_cmd_dump()
284 const QEMULogItem *item; in hmp_help_cmd() local
286 monitor_printf(mon, "%-15s %s\n", "none", "remove all logs"); in hmp_help_cmd()
287 for (item = qemu_log_items; item->mask != 0; item++) { in hmp_help_cmd()
288 monitor_printf(mon, "%-15s %s\n", item->name, item->help); in hmp_help_cmd()
348 case '-': in expr_unary()
350 n = -expr_unary(mon); in expr_unary()
387 if ((q - buf) < sizeof(buf) - 1) { in expr_unary()
496 if (op != '+' && op != '-') { in expr_sum()
504 val -= val2; in expr_sum()
515 return -1; in get_expr()
534 return -1; in get_double()
536 if (d != d || d - d != 0) { in get_double()
539 return -1; in get_double()
547 * Store the command-name in cmdname, and return a pointer to
567 len = p - pstart; in get_command_name()
568 if (len > nlen - 1) { in get_command_name()
569 len = nlen - 1; in get_command_name()
594 len = p - type; in key_get_info()
611 option[0] = '-'; in is_valid_option()
624 for (cmd = disp_table; cmd->name != NULL; cmd++) { in search_dispatch_table()
625 if (hmp_compare_cmd(cmdname, cmd->name)) { in search_dispatch_table()
641 * the command is found in a sub-command table.
648 Monitor *mon = &hmp_mon->common; in monitor_parse_command()
662 (int)(p - cmdp_start), cmdp_start); in monitor_parse_command()
668 (int)(p - cmdp_start), cmdp_start); in monitor_parse_command()
679 if (cmd->sub_table != NULL && *p != '\0') { in monitor_parse_command()
680 return monitor_parse_command(hmp_mon, cmdp_start, cmdp, cmd->sub_table); in monitor_parse_command()
704 typestr = cmd->args_type; in monitor_parse_arguments()
734 cmd->name); in monitor_parse_arguments()
738 cmd->name); in monitor_parse_arguments()
741 monitor_printf(mon, "%s: string expected\n", cmd->name); in monitor_parse_arguments()
755 if (!opts_list || opts_list->desc->name) { in monitor_parse_arguments()
789 count = count * 10 + (*p - '0'); in monitor_parse_arguments()
793 size = -1; in monitor_parse_arguments()
794 format = -1; in monitor_parse_arguments()
836 /* for 'i', not specifying a size gives -1 as size */ in monitor_parse_arguments()
849 size = -1; in monitor_parse_arguments()
888 /* Check if 'i' is greater than 32-bit */ in monitor_parse_arguments()
890 monitor_printf(mon, "\'%s\' has failed: ", cmd->name); in monitor_parse_arguments()
891 monitor_printf(mon, "integer is for 32-bit values\n"); in monitor_parse_arguments()
972 if (p - beg == 2 && !memcmp(beg, "on", p - beg)) { in monitor_parse_arguments()
974 } else if (p - beg == 3 && !memcmp(beg, "off", p - beg)) { in monitor_parse_arguments()
983 case '-': in monitor_parse_arguments()
997 if (*p == '-') { in monitor_parse_arguments()
1001 monitor_printf(mon, "%s: unsupported option -%c\n", in monitor_parse_arguments()
1002 cmd->name, *p); in monitor_parse_arguments()
1019 monitor_printf(mon, "%s: value expected for -%c\n", in monitor_parse_arguments()
1020 cmd->name, *tmp); in monitor_parse_arguments()
1052 cmd->name); in monitor_parse_arguments()
1061 monitor_printf(mon, "%s: unknown type '%c'\n", cmd->name, c); in monitor_parse_arguments()
1073 cmd->name); in monitor_parse_arguments()
1095 monitor_puts(mon, info->human_readable_text); in hmp_info_human_readable_text()
1102 if (cmd->cmd_info_hrt) { in handle_hmp_command_exec()
1104 cmd->cmd_info_hrt); in handle_hmp_command_exec()
1106 cmd->cmd(mon, qdict); in handle_hmp_command_exec()
1120 handle_hmp_command_exec(data->mon, data->cmd, data->qdict); in handle_hmp_command_co()
1122 data->done = true; in handle_hmp_command_co()
1138 if (!cmd->cmd && !cmd->cmd_info_hrt) { in handle_hmp_command()
1140 monitor_printf(&mon->common, "Command \"%.*s\" is not available.\n", in handle_hmp_command()
1141 (int)(cmdline - cmd_start), cmd_start); in handle_hmp_command()
1145 qdict = monitor_parse_arguments(&mon->common, &cmdline, cmd); in handle_hmp_command()
1147 while (cmdline > cmd_start && qemu_isspace(cmdline[-1])) { in handle_hmp_command()
1148 cmdline--; in handle_hmp_command()
1150 monitor_printf(&mon->common, "Try \"help %.*s\" for more information\n", in handle_hmp_command()
1151 (int)(cmdline - cmd_start), cmd_start); in handle_hmp_command()
1155 if (!cmd->coroutine) { in handle_hmp_command()
1156 /* old_mon is non-NULL when called from qmp_human_monitor_command() */ in handle_hmp_command()
1157 Monitor *old_mon = monitor_set_cur(qemu_coroutine_self(), &mon->common); in handle_hmp_command()
1158 handle_hmp_command_exec(&mon->common, cmd, qdict); in handle_hmp_command()
1162 .mon = &mon->common, in handle_hmp_command()
1168 monitor_set_cur(co, &mon->common); in handle_hmp_command()
1186 len = p - pstart; in cmd_completion()
1187 if (len > sizeof(cmd) - 2) { in cmd_completion()
1188 len = sizeof(cmd) - 2; in cmd_completion()
1192 readline_add_completion_of(mon->rs, name, cmd); in cmd_completion()
1215 input_path_len = p - input + 1; in file_completion()
1217 if (input_path_len > sizeof(path) - 1) { in file_completion()
1218 input_path_len = sizeof(path) - 1; in file_completion()
1235 if (strcmp(d->d_name, ".") == 0 || strcmp(d->d_name, "..") == 0) { in file_completion()
1239 if (strstart(d->d_name, file_prefix, NULL)) { in file_completion()
1242 pstrcpy(file + input_path_len, sizeof(file) - input_path_len, in file_completion()
1243 d->d_name); in file_completion()
1252 readline_add_completion(mon->rs, file); in file_completion()
1282 readline_set_completion_index(mon->rs, strlen(cmdname)); in monitor_find_completion_by_table()
1283 for (cmd = cmd_table; cmd->name != NULL; cmd++) { in monitor_find_completion_by_table()
1285 cmd_completion(mon, cmdname, cmd->name); in monitor_find_completion_by_table()
1290 for (cmd = cmd_table; cmd->name != NULL; cmd++) { in monitor_find_completion_by_table()
1291 if (hmp_compare_cmd(args[0], cmd->name) && in monitor_find_completion_by_table()
1296 if (!cmd->name) { in monitor_find_completion_by_table()
1300 if (cmd->sub_table) { in monitor_find_completion_by_table()
1302 monitor_find_completion_by_table(mon, cmd->sub_table, in monitor_find_completion_by_table()
1303 &args[1], nb_args - 1); in monitor_find_completion_by_table()
1306 if (cmd->command_completion) { in monitor_find_completion_by_table()
1307 cmd->command_completion(mon->rs, nb_args, args[nb_args - 1]); in monitor_find_completion_by_table()
1311 ptype = next_arg_type(cmd->args_type); in monitor_find_completion_by_table()
1312 for (i = 0; i < nb_args - 2; i++) { in monitor_find_completion_by_table()
1320 str = args[nb_args - 1]; in monitor_find_completion_by_table()
1322 while (*ptype == '-' && old_ptype != ptype) { in monitor_find_completion_by_table()
1329 readline_set_completion_index(mon->rs, strlen(str)); in monitor_find_completion_by_table()
1334 readline_set_completion_index(mon->rs, strlen(str)); in monitor_find_completion_by_table()
1336 readline_add_completion_of(mon->rs, str, blk_name(blk)); in monitor_find_completion_by_table()
1341 if (!strcmp(cmd->name, "help|?")) { in monitor_find_completion_by_table()
1343 &args[1], nb_args - 1); in monitor_find_completion_by_table()
1369 if (len > 0 && qemu_isspace(cmdline[len - 1])) { in monitor_find_completion()
1388 if (mon->rs) { in monitor_read()
1390 readline_handle_byte(mon->rs, buf[i]); in monitor_read()
1393 if (size == 0 || buf[size - 1] != 0) { in monitor_read()
1394 monitor_printf(&mon->common, "corrupted command\n"); in monitor_read()
1407 qemu_mutex_lock(&mon->mon_lock); in monitor_event()
1408 if (mon->mux_out) { in monitor_event()
1409 mon->mux_out = 0; in monitor_event()
1412 qemu_mutex_unlock(&mon->mon_lock); in monitor_event()
1416 qemu_mutex_lock(&mon->mon_lock); in monitor_event()
1417 if (!mon->mux_out) { in monitor_event()
1418 if (mon->reset_seen && !mon->suspend_cnt) { in monitor_event()
1424 mon->mux_out = 1; in monitor_event()
1426 qemu_mutex_unlock(&mon->mon_lock); in monitor_event()
1430 monitor_printf(mon, "QEMU %s monitor - type 'help' for more " in monitor_event()
1432 qemu_mutex_lock(&mon->mon_lock); in monitor_event()
1433 mon->reset_seen = 1; in monitor_event()
1434 if (!mon->mux_out) { in monitor_event()
1435 /* Suspend-resume forces the prompt to be printed. */ in monitor_event()
1439 qemu_mutex_unlock(&mon->mon_lock); in monitor_event()
1463 monitor_vprintf(&mon->common, fmt, ap); in monitor_readline_printf()
1470 monitor_flush(&mon->common); in monitor_readline_flush()
1477 if (!qemu_chr_fe_init(&mon->common.chr, chr, errp)) { in monitor_init_hmp()
1482 monitor_data_init(&mon->common, false, false, false); in monitor_init_hmp()
1484 mon->use_readline = use_readline; in monitor_init_hmp()
1485 if (mon->use_readline) { in monitor_init_hmp()
1486 mon->rs = readline_init(monitor_readline_printf, in monitor_init_hmp()
1493 qemu_chr_fe_set_handlers(&mon->common.chr, monitor_can_read, monitor_read, in monitor_init_hmp()
1494 monitor_event, NULL, &mon->common, NULL, true); in monitor_init_hmp()
1495 monitor_list_append(&mon->common); in monitor_init_hmp()