[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 34/44] net: move parse_macaddr() to net/util.[ch]
From: |
Mark McLoughlin |
Subject: |
[Qemu-devel] [PATCH 34/44] net: move parse_macaddr() to net/util.[ch] |
Date: |
Wed, 25 Nov 2009 18:49:27 +0000 |
Signed-off-by: Mark McLoughlin <address@hidden>
---
Makefile | 2 +-
net.c | 35 ++---------------------------------
net/util.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
net/util.h | 32 ++++++++++++++++++++++++++++++++
4 files changed, 95 insertions(+), 34 deletions(-)
create mode 100644 net/util.c
create mode 100644 net/util.h
diff --git a/Makefile b/Makefile
index 6ed4bf8..b18bba9 100644
--- a/Makefile
+++ b/Makefile
@@ -99,7 +99,7 @@ block-nested-$(CONFIG_CURL) += curl.o
block-obj-y += $(addprefix block/, $(block-nested-y))
net-obj-y = net.o
-net-nested-y = queue.o checksum.o
+net-nested-y = queue.o checksum.o util.o
net-nested-y += socket.o
net-nested-y += dump.o
net-nested-$(CONFIG_POSIX) += tap.o
diff --git a/net.c b/net.c
index 7195827..cca008a 100644
--- a/net.c
+++ b/net.c
@@ -30,6 +30,7 @@
#include "net/dump.h"
#include "net/slirp.h"
#include "net/vde.h"
+#include "net/util.h"
#include "monitor.h"
#include "sysemu.h"
#include "qemu-common.h"
@@ -69,38 +70,6 @@ static void hex_dump(FILE *f, const uint8_t *buf, int size)
}
#endif
-static int parse_macaddr(uint8_t *macaddr, const char *p)
-{
- int i;
- char *last_char;
- long int offset;
-
- errno = 0;
- offset = strtol(p, &last_char, 0);
- if (0 == errno && '\0' == *last_char &&
- offset >= 0 && offset <= 0xFFFFFF) {
- macaddr[3] = (offset & 0xFF0000) >> 16;
- macaddr[4] = (offset & 0xFF00) >> 8;
- macaddr[5] = offset & 0xFF;
- return 0;
- } else {
- for(i = 0; i < 6; i++) {
- macaddr[i] = strtol(p, (char **)&p, 16);
- if (i == 5) {
- if (*p != '\0')
- return -1;
- } else {
- if (*p != ':' && *p != '-')
- return -1;
- p++;
- }
- }
- return 0;
- }
-
- return -1;
-}
-
static int get_str_sep(char *buf, int buf_size, const char **pp, int sep)
{
const char *p, *p1;
@@ -858,7 +827,7 @@ static int net_init_nic(QemuOpts *opts,
nd->macaddr[5] = 0x56 + idx;
if (qemu_opt_get(opts, "macaddr") &&
- parse_macaddr(nd->macaddr, qemu_opt_get(opts, "macaddr")) < 0) {
+ net_parse_macaddr(nd->macaddr, qemu_opt_get(opts, "macaddr")) < 0) {
qemu_error("invalid syntax for ethernet address\n");
return -1;
}
diff --git a/net/util.c b/net/util.c
new file mode 100644
index 0000000..1e9afbc
--- /dev/null
+++ b/net/util.c
@@ -0,0 +1,60 @@
+/*
+ * QEMU System Emulator
+ *
+ * Copyright (c) 2003-2008 Fabrice Bellard
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include "net/util.h"
+#include <errno.h>
+#include <stdlib.h>
+
+int net_parse_macaddr(uint8_t *macaddr, const char *p)
+{
+ int i;
+ char *last_char;
+ long int offset;
+
+ errno = 0;
+ offset = strtol(p, &last_char, 0);
+ if (errno == 0 && *last_char == '\0' &&
+ offset >= 0 && offset <= 0xFFFFFF) {
+ macaddr[3] = (offset & 0xFF0000) >> 16;
+ macaddr[4] = (offset & 0xFF00) >> 8;
+ macaddr[5] = offset & 0xFF;
+ return 0;
+ }
+
+ for (i = 0; i < 6; i++) {
+ macaddr[i] = strtol(p, (char **)&p, 16);
+ if (i == 5) {
+ if (*p != '\0') {
+ return -1;
+ }
+ } else {
+ if (*p != ':' && *p != '-') {
+ return -1;
+ }
+ p++;
+ }
+ }
+
+ return 0;
+}
diff --git a/net/util.h b/net/util.h
new file mode 100644
index 0000000..10c7da9
--- /dev/null
+++ b/net/util.h
@@ -0,0 +1,32 @@
+/*
+ * QEMU System Emulator
+ *
+ * Copyright (c) 2003-2008 Fabrice Bellard
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef QEMU_NET_UTIL_H
+#define QEMU_NET_UTIL_H
+
+#include <stdint.h>
+
+int net_parse_macaddr(uint8_t *macaddr, const char *p);
+
+#endif /* QEMU_NET_UTIL_H */
--
1.6.5.2
- [Qemu-devel] [PATCH 02/44] net: move vde code from net.c to net/vde.c, (continued)
- [Qemu-devel] [PATCH 02/44] net: move vde code from net.c to net/vde.c, Mark McLoughlin, 2009/11/25
- [Qemu-devel] [PATCH 04/44] net: move dump backend code from net.c to net/dump.c, Mark McLoughlin, 2009/11/25
- [Qemu-devel] [PATCH 09/44] net: introduce qemu_new_net_client(), Mark McLoughlin, 2009/11/25
- [Qemu-devel] [PATCH 06/44] net: remove NICInfo::vc, Mark McLoughlin, 2009/11/25
- [Qemu-devel] [PATCH 10/44] qdev: move DO_UPCAST() into osdep.h, Mark McLoughlin, 2009/11/25
- [Qemu-devel] [PATCH 11/44] net: convert tap to NetClientInfo, Mark McLoughlin, 2009/11/25
- [Qemu-devel] [PATCH 28/44] net: convert mipsnet to NICState, Mark McLoughlin, 2009/11/25
- [Qemu-devel] [PATCH 17/44] net: introduce NICState and qemu_new_nic(), Mark McLoughlin, 2009/11/25
- [Qemu-devel] [PATCH 34/44] net: move parse_macaddr() to net/util.[ch],
Mark McLoughlin <=
- [Qemu-devel] [PATCH 35/44] net: convert xen to NICState, Mark McLoughlin, 2009/11/25
- [Qemu-devel] [PATCH 22/44] net: convert pcnet to NICState, Mark McLoughlin, 2009/11/25
- [Qemu-devel] [PATCH 12/44] net: convert tap-win32 to NetClientInfo, Mark McLoughlin, 2009/11/25
- [Qemu-devel] [PATCH 21/44] net: convert ne2000 to NICState, Mark McLoughlin, 2009/11/25
- [Qemu-devel] [PATCH 07/44] net: remove NICInfo::private, Mark McLoughlin, 2009/11/25
- [Qemu-devel] [PATCH 05/44] net: clean up includes in net.c, Mark McLoughlin, 2009/11/25
- [Qemu-devel] [PATCH 13/44] net: convert slirp to NetClientInfo, Mark McLoughlin, 2009/11/25
- [Qemu-devel] [PATCH 26/44] net: convert LAN9118 to NICState, Mark McLoughlin, 2009/11/25
- [Qemu-devel] [PATCH 39/44] net: fix qemu_announce_self(), Mark McLoughlin, 2009/11/25
- [Qemu-devel] [PATCH 41/44] net: fix TAP networking on host kernels without IFF_VNET_HDR support, Mark McLoughlin, 2009/11/25