move parser functions from vl.c to qemu-option.c
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
3b0ba92793
commit
62c5802efd
@ -85,6 +85,70 @@ const char *get_opt_value(char *buf, int buf_size, const char *p)
|
|||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int get_next_param_value(char *buf, int buf_size,
|
||||||
|
const char *tag, const char **pstr)
|
||||||
|
{
|
||||||
|
const char *p;
|
||||||
|
char option[128];
|
||||||
|
|
||||||
|
p = *pstr;
|
||||||
|
for(;;) {
|
||||||
|
p = get_opt_name(option, sizeof(option), p, '=');
|
||||||
|
if (*p != '=')
|
||||||
|
break;
|
||||||
|
p++;
|
||||||
|
if (!strcmp(tag, option)) {
|
||||||
|
*pstr = get_opt_value(buf, buf_size, p);
|
||||||
|
if (**pstr == ',') {
|
||||||
|
(*pstr)++;
|
||||||
|
}
|
||||||
|
return strlen(buf);
|
||||||
|
} else {
|
||||||
|
p = get_opt_value(NULL, 0, p);
|
||||||
|
}
|
||||||
|
if (*p != ',')
|
||||||
|
break;
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int get_param_value(char *buf, int buf_size,
|
||||||
|
const char *tag, const char *str)
|
||||||
|
{
|
||||||
|
return get_next_param_value(buf, buf_size, tag, &str);
|
||||||
|
}
|
||||||
|
|
||||||
|
int check_params(char *buf, int buf_size,
|
||||||
|
const char * const *params, const char *str)
|
||||||
|
{
|
||||||
|
const char *p;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
p = str;
|
||||||
|
while (*p != '\0') {
|
||||||
|
p = get_opt_name(buf, buf_size, p, '=');
|
||||||
|
if (*p != '=') {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
p++;
|
||||||
|
for (i = 0; params[i] != NULL; i++) {
|
||||||
|
if (!strcmp(params[i], buf)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (params[i] == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
p = get_opt_value(NULL, 0, p);
|
||||||
|
if (*p != ',') {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Searches an option list for an option with the given name
|
* Searches an option list for an option with the given name
|
||||||
*/
|
*/
|
||||||
|
@ -46,6 +46,12 @@ typedef struct QEMUOptionParameter {
|
|||||||
|
|
||||||
const char *get_opt_name(char *buf, int buf_size, const char *p, char delim);
|
const char *get_opt_name(char *buf, int buf_size, const char *p, char delim);
|
||||||
const char *get_opt_value(char *buf, int buf_size, const char *p);
|
const char *get_opt_value(char *buf, int buf_size, const char *p);
|
||||||
|
int get_next_param_value(char *buf, int buf_size,
|
||||||
|
const char *tag, const char **pstr);
|
||||||
|
int get_param_value(char *buf, int buf_size,
|
||||||
|
const char *tag, const char *str);
|
||||||
|
int check_params(char *buf, int buf_size,
|
||||||
|
const char * const *params, const char *str);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
8
sysemu.h
8
sysemu.h
@ -3,6 +3,7 @@
|
|||||||
/* Misc. things related to the system emulator. */
|
/* Misc. things related to the system emulator. */
|
||||||
|
|
||||||
#include "qemu-common.h"
|
#include "qemu-common.h"
|
||||||
|
#include "qemu-option.h"
|
||||||
#include "sys-queue.h"
|
#include "sys-queue.h"
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
@ -276,13 +277,6 @@ void do_usb_add(Monitor *mon, const char *devname);
|
|||||||
void do_usb_del(Monitor *mon, const char *devname);
|
void do_usb_del(Monitor *mon, const char *devname);
|
||||||
void usb_info(Monitor *mon);
|
void usb_info(Monitor *mon);
|
||||||
|
|
||||||
int get_param_value(char *buf, int buf_size,
|
|
||||||
const char *tag, const char *str);
|
|
||||||
int get_next_param_value(char *buf, int buf_size,
|
|
||||||
const char *tag, const char **pstr);
|
|
||||||
int check_params(char *buf, int buf_size,
|
|
||||||
const char * const *params, const char *str);
|
|
||||||
|
|
||||||
void register_devices(void);
|
void register_devices(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
64
vl.c
64
vl.c
@ -1599,70 +1599,6 @@ static int socket_init(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int get_next_param_value(char *buf, int buf_size,
|
|
||||||
const char *tag, const char **pstr)
|
|
||||||
{
|
|
||||||
const char *p;
|
|
||||||
char option[128];
|
|
||||||
|
|
||||||
p = *pstr;
|
|
||||||
for(;;) {
|
|
||||||
p = get_opt_name(option, sizeof(option), p, '=');
|
|
||||||
if (*p != '=')
|
|
||||||
break;
|
|
||||||
p++;
|
|
||||||
if (!strcmp(tag, option)) {
|
|
||||||
*pstr = get_opt_value(buf, buf_size, p);
|
|
||||||
if (**pstr == ',') {
|
|
||||||
(*pstr)++;
|
|
||||||
}
|
|
||||||
return strlen(buf);
|
|
||||||
} else {
|
|
||||||
p = get_opt_value(NULL, 0, p);
|
|
||||||
}
|
|
||||||
if (*p != ',')
|
|
||||||
break;
|
|
||||||
p++;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int get_param_value(char *buf, int buf_size,
|
|
||||||
const char *tag, const char *str)
|
|
||||||
{
|
|
||||||
return get_next_param_value(buf, buf_size, tag, &str);
|
|
||||||
}
|
|
||||||
|
|
||||||
int check_params(char *buf, int buf_size,
|
|
||||||
const char * const *params, const char *str)
|
|
||||||
{
|
|
||||||
const char *p;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
p = str;
|
|
||||||
while (*p != '\0') {
|
|
||||||
p = get_opt_name(buf, buf_size, p, '=');
|
|
||||||
if (*p != '=') {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
p++;
|
|
||||||
for (i = 0; params[i] != NULL; i++) {
|
|
||||||
if (!strcmp(params[i], buf)) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (params[i] == NULL) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
p = get_opt_value(NULL, 0, p);
|
|
||||||
if (*p != ',') {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
p++;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/***********************************************************/
|
/***********************************************************/
|
||||||
/* Bluetooth support */
|
/* Bluetooth support */
|
||||||
static int nb_hcis;
|
static int nb_hcis;
|
||||||
|
Loading…
Reference in New Issue
Block a user