Restore command line parsing code from qemu-0.6.1
PATCH 6/9 Restore command line parsing code from qemu-0.6.1
Restore command line parsing code from qemu-0.6.1
This enables cdrom ejection (both file based and physical i.e. /dev/cdrom)
Signed-off-by Edwin Zhai <[email protected]>
Signed-off-by Arun Sharma <[email protected]>
tools/ioemu/monitor.c +28 -4
@@ -514,21 +514,45 @@ str_allocated[nb_args] = str; add_str:if (nb_args >=MAX_ARGS ) { -#if 0 error_args: -#endif term_printf ("%s: too many arguments\n" , cmdname); goto fail; } args[nb_args++] = str; }break ; +case '-' : + { +int has_option; +/* option */ + + c = *typestr++; +if (c =='\0' ) + goto bad_type; +while (isspace (*p)) + p++; + has_option =0 ; +if (*p =='-' ) { + p++; +if (*p != c) { +term_printf ("%s: unsupported option -%c\n" , + cmdname, *p); + goto fail; + } + p++; + has_option =1 ; + } +if (nb_args >=MAX_ARGS ) + goto error_args; + args[nb_args++] = (void *)has_option; + } +break ;/* TODO: add more commands we need here to support vmx device model */ case '/' :case 'i' : -case '-' :default : -term_printf ("%s: unknown type '%c', we only support quit command now.\n" , cmdname, c); + bad_type: +term_printf ("%s: unknown type '%c',not support now.\n" , cmdname, c); goto fail; } }