intel_iommu.c (206d0c24361a083fbdcb2cc86fb75dc8b7f251a2) intel_iommu.c (fb9f592623b0f9bb82a88d68d7921fb581918ef5)
1/*
2 * QEMU emulation of an Intel IOMMU (VT-d)
3 * (DMA Remapping device)
4 *
5 * Copyright (C) 2013 Knut Omang, Oracle <knut.omang@oracle.com>
6 * Copyright (C) 2014 Le Tan, <tamlokveer@gmail.com>
7 *
8 * This program is free software; you can redistribute it and/or modify

--- 2439 unchanged lines hidden (view full) ---

2448static void vtd_realize(DeviceState *dev, Error **errp)
2449{
2450 PCMachineState *pcms = PC_MACHINE(qdev_get_machine());
2451 PCIBus *bus = pcms->bus;
2452 IntelIOMMUState *s = INTEL_IOMMU_DEVICE(dev);
2453 X86IOMMUState *x86_iommu = X86_IOMMU_DEVICE(dev);
2454
2455 VTD_DPRINTF(GENERAL, "");
1/*
2 * QEMU emulation of an Intel IOMMU (VT-d)
3 * (DMA Remapping device)
4 *
5 * Copyright (C) 2013 Knut Omang, Oracle <knut.omang@oracle.com>
6 * Copyright (C) 2014 Le Tan, <tamlokveer@gmail.com>
7 *
8 * This program is free software; you can redistribute it and/or modify

--- 2439 unchanged lines hidden (view full) ---

2448static void vtd_realize(DeviceState *dev, Error **errp)
2449{
2450 PCMachineState *pcms = PC_MACHINE(qdev_get_machine());
2451 PCIBus *bus = pcms->bus;
2452 IntelIOMMUState *s = INTEL_IOMMU_DEVICE(dev);
2453 X86IOMMUState *x86_iommu = X86_IOMMU_DEVICE(dev);
2454
2455 VTD_DPRINTF(GENERAL, "");
2456 x86_iommu->type = TYPE_INTEL;
2456 memset(s->vtd_as_by_bus_num, 0, sizeof(s->vtd_as_by_bus_num));
2457 memory_region_init_io(&s->csrmem, OBJECT(s), &vtd_mem_ops, s,
2458 "intel_iommu", DMAR_REG_SIZE);
2459 sysbus_init_mmio(SYS_BUS_DEVICE(s), &s->csrmem);
2460 /* No corresponding destroy */
2461 s->iotlb = g_hash_table_new_full(vtd_uint64_hash, vtd_uint64_equal,
2462 g_free, g_free);
2463 s->vtd_as_by_busptr = g_hash_table_new_full(vtd_uint64_hash, vtd_uint64_equal,

--- 43 unchanged lines hidden ---
2457 memset(s->vtd_as_by_bus_num, 0, sizeof(s->vtd_as_by_bus_num));
2458 memory_region_init_io(&s->csrmem, OBJECT(s), &vtd_mem_ops, s,
2459 "intel_iommu", DMAR_REG_SIZE);
2460 sysbus_init_mmio(SYS_BUS_DEVICE(s), &s->csrmem);
2461 /* No corresponding destroy */
2462 s->iotlb = g_hash_table_new_full(vtd_uint64_hash, vtd_uint64_equal,
2463 g_free, g_free);
2464 s->vtd_as_by_busptr = g_hash_table_new_full(vtd_uint64_hash, vtd_uint64_equal,

--- 43 unchanged lines hidden ---