[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 04/41] Introduce get_next_param_value
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] [PATCH 04/41] Introduce get_next_param_value |
Date: |
Wed, 24 Jun 2009 14:42:28 +0200 |
User-agent: |
StGIT/0.14.3 |
In order to parse multiple instances of the same param=value pair,
introduce get_next_param_value which can pass back to string parsing
position after reading a parameter value.
Signed-off-by: Jan Kiszka <address@hidden>
---
sysemu.h | 2 ++
vl.c | 17 +++++++++++++----
2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/sysemu.h b/sysemu.h
index d77de09..fafb231 100644
--- a/sysemu.h
+++ b/sysemu.h
@@ -273,6 +273,8 @@ 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);
diff --git a/vl.c b/vl.c
index 60a00e1..77e4779 100644
--- a/vl.c
+++ b/vl.c
@@ -1812,20 +1812,23 @@ static int socket_init(void)
}
#endif
-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)
{
const char *p;
char option[128];
- p = str;
+ p = *pstr;
for(;;) {
p = get_opt_name(option, sizeof(option), p, '=');
if (*p != '=')
break;
p++;
if (!strcmp(tag, option)) {
- (void)get_opt_value(buf, buf_size, p);
+ *pstr = get_opt_value(buf, buf_size, p);
+ if (**pstr == ',') {
+ (*pstr)++;
+ }
return strlen(buf);
} else {
p = get_opt_value(NULL, 0, p);
@@ -1837,6 +1840,12 @@ int get_param_value(char *buf, int buf_size,
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)
{
- [Qemu-devel] [PATCH 39/41] net: Provide VLAN client lookup helper, (continued)
- [Qemu-devel] [PATCH 39/41] net: Provide VLAN client lookup helper, Jan Kiszka, 2009/06/24
- [Qemu-devel] [PATCH 40/41] slirp: Make hostfwd_add/remove multi-instance-aware, Jan Kiszka, 2009/06/24
- [Qemu-devel] [PATCH 37/41] slirp: Improve error handling in slirp_smb, Jan Kiszka, 2009/06/24
- [Qemu-devel] [PATCH 38/41] slirp: Enable multi-instance support for the smb service, Jan Kiszka, 2009/06/24
- [Qemu-devel] Re: [PATCH 00/41] Slirp Fixes and Enhancements - Reloaded, Anthony Liguori, 2009/06/24
- [Qemu-devel] [PATCH 30/41] slirp: Drop link_up checks from if_output and slirp_socket_can_recv, Jan Kiszka, 2009/06/24
- [Qemu-devel] [PATCH 22/41] slirp: tftp: Refactor tftp_handle_rrq, Jan Kiszka, 2009/06/24
- [Qemu-devel] [PATCH 05/41] slirp: Move smb, redir, tftp and bootp parameters and -net channel, Jan Kiszka, 2009/06/24
- [Qemu-devel] [PATCH 16/41] slirp: Drop dead code, Jan Kiszka, 2009/06/24
- [Qemu-devel] [PATCH 14/41] slirp: Mark sockets of incoming TCP connections, Jan Kiszka, 2009/06/24
- [Qemu-devel] [PATCH 04/41] Introduce get_next_param_value,
Jan Kiszka <=
- [Qemu-devel] [PATCH 18/41] slirp: Cleanup and basic reanimation of debug code, Jan Kiszka, 2009/06/24
- [Qemu-devel] [PATCH 06/41] slirp: Rework internal configuration, Jan Kiszka, 2009/06/24