/******************************************************************************
 * Copyright (c) 2011 IBM Corporation
 * All rights reserved.
 * This program and the accompanying materials
 * are made available under the terms of the BSD License
 * which accompanies this distribution, and is available at
 * http://www.opensource.org/licenses/bsd-license.php
 *
 * Contributors:
 *     IBM Corporation - initial implementation
 *****************************************************************************/

#ifndef VIRTIO_NET_H
#define VIRTIO_NET_H

#include <netdriver.h>
#include "virtio.h"

#define RX_QUEUE_SIZE		128
#define BUFFER_ENTRY_SIZE	1514

enum {
	VQ_RX = 0,	/* Receive Queue */
	VQ_TX = 1,	/* Transmit Queue */
};

struct virtio_net {
	net_driver_t driver;
	struct virtio_device vdev;
	struct vqs vq_rx;
	struct vqs vq_tx;
};

/* VIRTIO_NET Feature bits */
#define VIRTIO_NET_F_MAC       (1 << 5)

extern struct virtio_net *virtionet_open(struct virtio_device *dev);
extern void virtionet_close(struct virtio_net *vnet);
extern int virtionet_read(struct virtio_net *vnet, char *buf, int len);
extern int virtionet_write(struct virtio_net *vnet, char *buf, int len);

#endif
