提交 5a6d8815 编写于 作者: M Mark McLoughlin

net: factor tap_read_packet() out of tap_send()

Move portability clutter out into its own function.
Signed-off-by: NMark McLoughlin <markmc@redhat.com>
上级 b8e8af38
......@@ -951,21 +951,31 @@ static void tap_receive(void *opaque, const uint8_t *buf, int size)
}
}
static void tap_send(void *opaque)
{
TAPState *s = opaque;
uint8_t buf[4096];
int size;
#ifdef __sun__
static ssize_t tap_read_packet(int tapfd, uint8_t *buf, int maxlen)
{
struct strbuf sbuf;
int f = 0;
sbuf.maxlen = sizeof(buf);
sbuf.maxlen = maxlen;
sbuf.buf = (char *)buf;
size = getmsg(s->fd, NULL, &sbuf, &f) >=0 ? sbuf.len : -1;
return getmsg(tapfd, NULL, &sbuf, &f) >= 0 ? sbuf.len : -1;
}
#else
size = read(s->fd, buf, sizeof(buf));
static ssize_t tap_read_packet(int tapfd, uint8_t *buf, int maxlen)
{
return read(tapfd, buf, maxlen);
}
#endif
static void tap_send(void *opaque)
{
TAPState *s = opaque;
uint8_t buf[4096];
int size;
size = tap_read_packet(s->fd, buf, sizeof(buf));
if (size > 0) {
qemu_send_packet(s->vc, buf, size);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册