mirror of https://github.com/xemu-project/xemu.git
sun4m_iommu: remove legacy sparc_iommu_memory_rw() function
With the switch to the IOMMU memory region and DMA API, this is no longer required. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
This commit is contained in:
parent
c413e9a426
commit
3cc71c7992
|
@ -321,39 +321,6 @@ static IOMMUTLBEntry sun4m_translate_iommu(IOMMUMemoryRegion *iommu,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sparc_iommu_memory_rw(void *opaque, hwaddr addr,
|
|
||||||
uint8_t *buf, int len, int is_write)
|
|
||||||
{
|
|
||||||
int l;
|
|
||||||
uint32_t flags;
|
|
||||||
hwaddr page, phys_addr;
|
|
||||||
|
|
||||||
while (len > 0) {
|
|
||||||
page = addr & IOMMU_PAGE_MASK;
|
|
||||||
l = (page + IOMMU_PAGE_SIZE) - addr;
|
|
||||||
if (l > len)
|
|
||||||
l = len;
|
|
||||||
flags = iommu_page_get_flags(opaque, page);
|
|
||||||
if (!(flags & IOPTE_VALID)) {
|
|
||||||
iommu_bad_addr(opaque, page, is_write);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
phys_addr = iommu_translate_pa(addr, flags);
|
|
||||||
if (is_write) {
|
|
||||||
if (!(flags & IOPTE_WRITE)) {
|
|
||||||
iommu_bad_addr(opaque, page, is_write);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
cpu_physical_memory_write(phys_addr, buf, l);
|
|
||||||
} else {
|
|
||||||
cpu_physical_memory_read(phys_addr, buf, l);
|
|
||||||
}
|
|
||||||
len -= l;
|
|
||||||
buf += l;
|
|
||||||
addr += l;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static const VMStateDescription vmstate_iommu = {
|
static const VMStateDescription vmstate_iommu = {
|
||||||
.name ="iommu",
|
.name ="iommu",
|
||||||
.version_id = 2,
|
.version_id = 2,
|
||||||
|
|
|
@ -29,22 +29,6 @@ typedef struct IOMMUState {
|
||||||
uint32_t version;
|
uint32_t version;
|
||||||
} IOMMUState;
|
} IOMMUState;
|
||||||
|
|
||||||
void sparc_iommu_memory_rw(void *opaque, hwaddr addr,
|
|
||||||
uint8_t *buf, int len, int is_write);
|
|
||||||
static inline void sparc_iommu_memory_read(void *opaque,
|
|
||||||
hwaddr addr,
|
|
||||||
uint8_t *buf, int len)
|
|
||||||
{
|
|
||||||
sparc_iommu_memory_rw(opaque, addr, buf, len, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void sparc_iommu_memory_write(void *opaque,
|
|
||||||
hwaddr addr,
|
|
||||||
uint8_t *buf, int len)
|
|
||||||
{
|
|
||||||
sparc_iommu_memory_rw(opaque, addr, buf, len, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* sparc32_dma.c */
|
/* sparc32_dma.c */
|
||||||
#include "hw/sparc/sparc32_dma.h"
|
#include "hw/sparc/sparc32_dma.h"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue