diff options
author | 2017-05-23 17:55:06 +0000 | |
---|---|---|
committer | 2017-05-23 17:55:06 +0000 | |
commit | 0f6296e038b5c299654d596026e7bee5aa723e56 (patch) | |
tree | a51b545d58c8128abfd6caa9ca43d32343011f62 /qemu/hw/usb/libhw.c | |
parent | c4d68bc45aa6aa8b7fe39bce206cb17c2cb2d365 (diff) | |
parent | bb756eebdac6fd24e8919e2c43f7d2c8c4091f59 (diff) |
Merge "Adding qemu as a submodule of KVMFORNFV"
Diffstat (limited to 'qemu/hw/usb/libhw.c')
-rw-r--r-- | qemu/hw/usb/libhw.c | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/qemu/hw/usb/libhw.c b/qemu/hw/usb/libhw.c deleted file mode 100644 index 73cdf0c97..000000000 --- a/qemu/hw/usb/libhw.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * QEMU USB emulation, libhw bits. - * - * 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 "qemu/osdep.h" -#include "qemu-common.h" -#include "hw/hw.h" -#include "hw/usb.h" -#include "sysemu/dma.h" - -int usb_packet_map(USBPacket *p, QEMUSGList *sgl) -{ - DMADirection dir = (p->pid == USB_TOKEN_IN) ? - DMA_DIRECTION_FROM_DEVICE : DMA_DIRECTION_TO_DEVICE; - void *mem; - int i; - - for (i = 0; i < sgl->nsg; i++) { - dma_addr_t base = sgl->sg[i].base; - dma_addr_t len = sgl->sg[i].len; - - while (len) { - dma_addr_t xlen = len; - mem = dma_memory_map(sgl->as, base, &xlen, dir); - if (!mem) { - goto err; - } - if (xlen > len) { - xlen = len; - } - qemu_iovec_add(&p->iov, mem, xlen); - len -= xlen; - base += xlen; - } - } - return 0; - -err: - usb_packet_unmap(p, sgl); - return -1; -} - -void usb_packet_unmap(USBPacket *p, QEMUSGList *sgl) -{ - DMADirection dir = (p->pid == USB_TOKEN_IN) ? - DMA_DIRECTION_FROM_DEVICE : DMA_DIRECTION_TO_DEVICE; - int i; - - for (i = 0; i < p->iov.niov; i++) { - dma_memory_unmap(sgl->as, p->iov.iov[i].iov_base, - p->iov.iov[i].iov_len, dir, - p->iov.iov[i].iov_len); - } -} |