mirror of https://github.com/xqemu/xqemu.git
More consistent PAGE_xxx defines, avoid conflicting with system PAGE_xxx
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5863 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
825bb581b4
commit
8b0de438d4
14
hw/iommu.c
14
hw/iommu.c
|
@ -109,9 +109,9 @@ do { printf("IOMMU: " fmt , ##args); } while (0)
|
||||||
#define IOPTE_VALID 0x00000002 /* IOPTE is valid */
|
#define IOPTE_VALID 0x00000002 /* IOPTE is valid */
|
||||||
#define IOPTE_WAZ 0x00000001 /* Write as zeros */
|
#define IOPTE_WAZ 0x00000001 /* Write as zeros */
|
||||||
|
|
||||||
#define PAGE_SHIFT 12
|
#define IOMMU_PAGE_SHIFT 12
|
||||||
#define PAGE_SIZE (1 << PAGE_SHIFT)
|
#define IOMMU_PAGE_SIZE (1 << IOMMU_PAGE_SHIFT)
|
||||||
#define PAGE_MASK (PAGE_SIZE - 1)
|
#define IOMMU_PAGE_MASK ~(IOMMU_PAGE_SIZE - 1)
|
||||||
|
|
||||||
typedef struct IOMMUState {
|
typedef struct IOMMUState {
|
||||||
uint32_t regs[IOMMU_NREGS];
|
uint32_t regs[IOMMU_NREGS];
|
||||||
|
@ -242,7 +242,7 @@ static uint32_t iommu_page_get_flags(IOMMUState *s, target_phys_addr_t addr)
|
||||||
|
|
||||||
iopte = s->regs[IOMMU_BASE] << 4;
|
iopte = s->regs[IOMMU_BASE] << 4;
|
||||||
addr &= ~s->iostart;
|
addr &= ~s->iostart;
|
||||||
iopte += (addr >> (PAGE_SHIFT - 2)) & ~3;
|
iopte += (addr >> (IOMMU_PAGE_SHIFT - 2)) & ~3;
|
||||||
cpu_physical_memory_read(iopte, (uint8_t *)&ret, 4);
|
cpu_physical_memory_read(iopte, (uint8_t *)&ret, 4);
|
||||||
tswap32s(&ret);
|
tswap32s(&ret);
|
||||||
DPRINTF("get flags addr " TARGET_FMT_plx " => pte " TARGET_FMT_plx
|
DPRINTF("get flags addr " TARGET_FMT_plx " => pte " TARGET_FMT_plx
|
||||||
|
@ -258,7 +258,7 @@ static target_phys_addr_t iommu_translate_pa(target_phys_addr_t addr,
|
||||||
target_phys_addr_t pa;
|
target_phys_addr_t pa;
|
||||||
|
|
||||||
tmppte = pte;
|
tmppte = pte;
|
||||||
pa = ((pte & IOPTE_PAGE) << 4) + (addr & PAGE_MASK);
|
pa = ((pte & IOPTE_PAGE) << 4) + (addr & ~IOMMU_PAGE_MASK);
|
||||||
DPRINTF("xlate dva " TARGET_FMT_plx " => pa " TARGET_FMT_plx
|
DPRINTF("xlate dva " TARGET_FMT_plx " => pa " TARGET_FMT_plx
|
||||||
" (iopte = %x)\n", addr, pa, tmppte);
|
" (iopte = %x)\n", addr, pa, tmppte);
|
||||||
|
|
||||||
|
@ -285,8 +285,8 @@ void sparc_iommu_memory_rw(void *opaque, target_phys_addr_t addr,
|
||||||
target_phys_addr_t page, phys_addr;
|
target_phys_addr_t page, phys_addr;
|
||||||
|
|
||||||
while (len > 0) {
|
while (len > 0) {
|
||||||
page = addr & TARGET_PAGE_MASK;
|
page = addr & IOMMU_PAGE_MASK;
|
||||||
l = (page + TARGET_PAGE_SIZE) - addr;
|
l = (page + IOMMU_PAGE_SIZE) - addr;
|
||||||
if (l > len)
|
if (l > len)
|
||||||
l = len;
|
l = len;
|
||||||
flags = iommu_page_get_flags(opaque, page);
|
flags = iommu_page_get_flags(opaque, page);
|
||||||
|
|
Loading…
Reference in New Issue