X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_pmd_xenvirt%2Frte_eth_xenvirt.c;h=891cb58b4c9afca50109ae000666ea4de7785ede;hb=08b563ffb19d8baf59dd84200f25bc85031d18a7;hp=da121990e5d0831cccc1c7ab74c77cbf3469974b;hpb=c738c6a644e5a07fa98ede668775c08ec5321273;p=dpdk.git diff --git a/lib/librte_pmd_xenvirt/rte_eth_xenvirt.c b/lib/librte_pmd_xenvirt/rte_eth_xenvirt.c index da121990e5..891cb58b4c 100644 --- a/lib/librte_pmd_xenvirt/rte_eth_xenvirt.c +++ b/lib/librte_pmd_xenvirt/rte_eth_xenvirt.c @@ -1,13 +1,13 @@ /*- * BSD LICENSE - * + * * Copyright(c) 2010-2014 Intel Corporation. All rights reserved. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright @@ -17,7 +17,7 @@ * * Neither the name of Intel Corporation nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR @@ -53,6 +53,7 @@ #include #include #include +#include #include #include @@ -80,7 +81,7 @@ rte_rxmbuf_alloc(struct rte_mempool *mp) struct rte_mbuf *m; m = __rte_mbuf_raw_alloc(mp); - __rte_mbuf_sanity_check_raw(m, RTE_MBUF_PKT, 0); + __rte_mbuf_sanity_check_raw(m, 0); return m; } @@ -108,12 +109,12 @@ eth_xenvirt_rx(void *q, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) for (i = 0; i < num ; i ++) { rxm = rx_pkts[i]; PMD_RX_LOG(DEBUG, "packet len:%d\n", len[i]); - rxm->pkt.next = NULL; - rxm->pkt.data = (char *)rxm->buf_addr + RTE_PKTMBUF_HEADROOM; - rxm->pkt.data_len = (uint16_t)(len[i] - sizeof(struct virtio_net_hdr)); - rxm->pkt.nb_segs = 1; - rxm->pkt.in_port = pi->port_id; - rxm->pkt.pkt_len = (uint32_t)(len[i] - sizeof(struct virtio_net_hdr)); + rxm->next = NULL; + rxm->data_off = RTE_PKTMBUF_HEADROOM; + rxm->data_len = (uint16_t)(len[i] - sizeof(struct virtio_net_hdr)); + rxm->nb_segs = 1; + rxm->port = pi->port_id; + rxm->pkt_len = (uint32_t)(len[i] - sizeof(struct virtio_net_hdr)); } /* allocate new mbuf for the used descriptor */ while (likely(!virtqueue_full(rxvq))) { @@ -122,7 +123,7 @@ eth_xenvirt_rx(void *q, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) break; } if (unlikely(virtqueue_enqueue_recv_refill(rxvq, new_mbuf))) { - rte_pktmbuf_free_seg(new_mbuf); + rte_pktmbuf_free_seg(new_mbuf); break; } } @@ -210,8 +211,8 @@ gntalloc_vring_flag(int vtidx) } *(uint8_t *)ptr = MAP_FLAG; - rte_snprintf(val_str, sizeof(val_str), "%u", gref_tmp); - rte_snprintf(key_str, sizeof(key_str), + snprintf(val_str, sizeof(val_str), "%u", gref_tmp); + snprintf(key_str, sizeof(key_str), DPDK_XENSTORE_PATH"%d"VRING_FLAG_STR, vtidx); xenstore_write(key_str, val_str); } @@ -229,10 +230,10 @@ dev_start_notify(int vtidx) RTE_LOG(INFO, PMD, "%s: virtio %d is started\n", __func__, vtidx); gntalloc_vring_flag(vtidx); - rte_snprintf(key_str, sizeof(key_str), "%s%s%d", + snprintf(key_str, sizeof(key_str), "%s%s%d", DPDK_XENSTORE_PATH, EVENT_TYPE_START_STR, vtidx); - rte_snprintf(val_str, sizeof(val_str), "1"); + snprintf(val_str, sizeof(val_str), "1"); xenstore_write(key_str, val_str); } @@ -258,11 +259,11 @@ update_mac_address(struct ether_addr *mac_addrs, int vtidx) RTE_LOG(ERR, PMD, "%s: NULL pointer mac specified\n", __func__); return -1; } - rv = rte_snprintf(key_str, sizeof(key_str), + rv = snprintf(key_str, sizeof(key_str), DPDK_XENSTORE_PATH"%d_ether_addr", vtidx); if (rv == -1) return rv; - rv = rte_snprintf(val_str, sizeof(val_str), "%02x:%02x:%02x:%02x:%02x:%02x", + rv = snprintf(val_str, sizeof(val_str), "%02x:%02x:%02x:%02x:%02x:%02x", mac_addrs->addr_bytes[0], mac_addrs->addr_bytes[1], mac_addrs->addr_bytes[2], @@ -418,9 +419,9 @@ gntalloc_vring_create(int queue_type, uint32_t size, int vtidx) } if (queue_type == VTNET_RQ) - rv = rte_snprintf(key_str, sizeof(key_str), DPDK_XENSTORE_PATH"%d"RXVRING_XENSTORE_STR, vtidx); - else - rv = rte_snprintf(key_str, sizeof(key_str), DPDK_XENSTORE_PATH"%d"TXVRING_XENSTORE_STR, vtidx); + rv = snprintf(key_str, sizeof(key_str), DPDK_XENSTORE_PATH"%d"RXVRING_XENSTORE_STR, vtidx); + else + rv = snprintf(key_str, sizeof(key_str), DPDK_XENSTORE_PATH"%d"TXVRING_XENSTORE_STR, vtidx); if (rv == -1 || xenstore_write(key_str, val_str) == -1) { gntfree(va, size, start_index); va = NULL; @@ -448,7 +449,7 @@ virtio_queue_setup(struct rte_eth_dev *dev, int queue_type) /* Allocate memory for virtqueue. */ if (queue_type == VTNET_RQ) { - rte_snprintf(vq_name, sizeof(vq_name), "port%d_rvq", + snprintf(vq_name, sizeof(vq_name), "port%d_rvq", dev->data->port_id); vq = rte_zmalloc(vq_name, sizeof(struct virtqueue) + vq_size * sizeof(struct vq_desc_extra), CACHE_LINE_SIZE); @@ -458,7 +459,7 @@ virtio_queue_setup(struct rte_eth_dev *dev, int queue_type) } memcpy(vq->vq_name, vq_name, sizeof(vq->vq_name)); } else if(queue_type == VTNET_TQ) { - rte_snprintf(vq_name, sizeof(vq_name), "port%d_tvq", + snprintf(vq_name, sizeof(vq_name), "port%d_tvq", dev->data->port_id); vq = rte_zmalloc(vq_name, sizeof(struct virtqueue) + vq_size * sizeof(struct vq_desc_extra), CACHE_LINE_SIZE); @@ -483,10 +484,10 @@ virtio_queue_setup(struct rte_eth_dev *dev, int queue_type) memset(vq->vq_ring_virt_mem, 0, vq->vq_ring_size); vr = &vq->vq_ring; vring_init(vr, vq_size, vq->vq_ring_virt_mem, vq->vq_alignment); - /* - * Locally maintained last consumed index, this idex trails - * vq_ring.used->idx. - */ + /* + * Locally maintained last consumed index, this idex trails + * vq_ring.used->idx. + */ vq->vq_used_cons_idx = 0; vq->vq_desc_head_idx = 0; vq->vq_free_cnt = vq->vq_nentries; @@ -541,7 +542,7 @@ static struct eth_dev_ops ops = { }; -static int +static int rte_eth_xenvirt_parse_args(struct xenvirt_dict *dict, const char *name, const char *params) { @@ -646,7 +647,7 @@ eth_dev_xenvirt_create(const char *name, const char *params, goto err; /* reserve an ethdev entry */ - eth_dev = rte_eth_dev_allocate(); + eth_dev = rte_eth_dev_allocate(name); if (eth_dev == NULL) goto err; @@ -705,14 +706,10 @@ rte_pmd_xenvirt_devinit(const char *name, const char *params) return 0; } -static struct rte_vdev_driver pmd_xenvirt_drv = { +static struct rte_driver pmd_xenvirt_drv = { .name = "eth_xenvirt", + .type = PMD_VDEV, .init = rte_pmd_xenvirt_devinit, }; -__attribute__((constructor)) -static void -rte_pmd_xenvirt_init(void) -{ - rte_eal_vdev_driver_register(&pmd_xenvirt_drv); -} +PMD_REGISTER_DRIVER(pmd_xenvirt_drv);