blob: f72d435564bba23bf5d5f79fd41a1fb456fa43b0 [file] [log] [blame]
/******************************************************************************
* 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