mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2024-12-24 00:25:42 +00:00
target-arm: Reindent ancient page-table-walk code
A few of the oldest parts of the page-table-walk code have broken indent (either hardcoded tabs or two-spaces). Reindent these sections. For ease of review, this patch does not touch the brace style and so is a whitespace-only change. Backports commit 554b0b09aec4579c8164f363b18a263150e91a2c from qemu
This commit is contained in:
parent
0046642958
commit
11c6c143d7
|
@ -4180,55 +4180,55 @@ static inline int check_ap(CPUARMState *env, ARMMMUIdx mmu_idx,
|
||||||
int ap, int domain_prot,
|
int ap, int domain_prot,
|
||||||
int access_type)
|
int access_type)
|
||||||
{
|
{
|
||||||
int prot_ro;
|
int prot_ro;
|
||||||
bool is_user = regime_is_user(env, mmu_idx);
|
bool is_user = regime_is_user(env, mmu_idx);
|
||||||
|
|
||||||
if (domain_prot == 3) {
|
if (domain_prot == 3) {
|
||||||
return PAGE_READ | PAGE_WRITE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (access_type == 1)
|
|
||||||
prot_ro = 0;
|
|
||||||
else
|
|
||||||
prot_ro = PAGE_READ;
|
|
||||||
|
|
||||||
switch (ap) {
|
|
||||||
case 0:
|
|
||||||
if (arm_feature(env, ARM_FEATURE_V7)) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (access_type == 1)
|
|
||||||
return 0;
|
|
||||||
switch (regime_sctlr(env, mmu_idx) & (SCTLR_S | SCTLR_R)) {
|
|
||||||
case SCTLR_S:
|
|
||||||
return is_user ? 0 : PAGE_READ;
|
|
||||||
case SCTLR_R:
|
|
||||||
return PAGE_READ;
|
|
||||||
default:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
case 1:
|
|
||||||
return is_user ? 0 : PAGE_READ | PAGE_WRITE;
|
|
||||||
case 2:
|
|
||||||
if (is_user)
|
|
||||||
return prot_ro;
|
|
||||||
else
|
|
||||||
return PAGE_READ | PAGE_WRITE;
|
|
||||||
case 3:
|
|
||||||
return PAGE_READ | PAGE_WRITE;
|
return PAGE_READ | PAGE_WRITE;
|
||||||
case 4: /* Reserved. */
|
}
|
||||||
return 0;
|
|
||||||
case 5:
|
if (access_type == 1)
|
||||||
return is_user ? 0 : prot_ro;
|
prot_ro = 0;
|
||||||
case 6:
|
else
|
||||||
return prot_ro;
|
prot_ro = PAGE_READ;
|
||||||
case 7:
|
|
||||||
if (!arm_feature (env, ARM_FEATURE_V6K))
|
switch (ap) {
|
||||||
return 0;
|
case 0:
|
||||||
return prot_ro;
|
if (arm_feature(env, ARM_FEATURE_V7)) {
|
||||||
default:
|
return 0;
|
||||||
abort();
|
}
|
||||||
}
|
if (access_type == 1)
|
||||||
|
return 0;
|
||||||
|
switch (regime_sctlr(env, mmu_idx) & (SCTLR_S | SCTLR_R)) {
|
||||||
|
case SCTLR_S:
|
||||||
|
return is_user ? 0 : PAGE_READ;
|
||||||
|
case SCTLR_R:
|
||||||
|
return PAGE_READ;
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
case 1:
|
||||||
|
return is_user ? 0 : PAGE_READ | PAGE_WRITE;
|
||||||
|
case 2:
|
||||||
|
if (is_user)
|
||||||
|
return prot_ro;
|
||||||
|
else
|
||||||
|
return PAGE_READ | PAGE_WRITE;
|
||||||
|
case 3:
|
||||||
|
return PAGE_READ | PAGE_WRITE;
|
||||||
|
case 4: /* Reserved. */
|
||||||
|
return 0;
|
||||||
|
case 5:
|
||||||
|
return is_user ? 0 : prot_ro;
|
||||||
|
case 6:
|
||||||
|
return prot_ro;
|
||||||
|
case 7:
|
||||||
|
if (!arm_feature (env, ARM_FEATURE_V6K))
|
||||||
|
return 0;
|
||||||
|
return prot_ro;
|
||||||
|
default:
|
||||||
|
abort();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool get_level1_table_address(CPUARMState *env, ARMMMUIdx mmu_idx,
|
static bool get_level1_table_address(CPUARMState *env, ARMMMUIdx mmu_idx,
|
||||||
|
@ -4306,13 +4306,13 @@ static int get_phys_addr_v5(CPUARMState *env, uint32_t address, int access_type,
|
||||||
*page_size = 1024 * 1024;
|
*page_size = 1024 * 1024;
|
||||||
} else {
|
} else {
|
||||||
/* Lookup l2 entry. */
|
/* Lookup l2 entry. */
|
||||||
if (type == 1) {
|
if (type == 1) {
|
||||||
/* Coarse pagetable. */
|
/* Coarse pagetable. */
|
||||||
table = (desc & 0xfffffc00) | ((address >> 10) & 0x3fc);
|
table = (desc & 0xfffffc00) | ((address >> 10) & 0x3fc);
|
||||||
} else {
|
} else {
|
||||||
/* Fine pagetable. */
|
/* Fine pagetable. */
|
||||||
table = (desc & 0xfffff000) | ((address >> 8) & 0xffc);
|
table = (desc & 0xfffff000) | ((address >> 8) & 0xffc);
|
||||||
}
|
}
|
||||||
desc = ldl_phys(cs->as, table);
|
desc = ldl_phys(cs->as, table);
|
||||||
switch (desc & 3) {
|
switch (desc & 3) {
|
||||||
case 0: /* Page translation fault. */
|
case 0: /* Page translation fault. */
|
||||||
|
@ -4329,17 +4329,17 @@ static int get_phys_addr_v5(CPUARMState *env, uint32_t address, int access_type,
|
||||||
*page_size = 0x1000;
|
*page_size = 0x1000;
|
||||||
break;
|
break;
|
||||||
case 3: /* 1k page. */
|
case 3: /* 1k page. */
|
||||||
if (type == 1) {
|
if (type == 1) {
|
||||||
if (arm_feature(env, ARM_FEATURE_XSCALE)) {
|
if (arm_feature(env, ARM_FEATURE_XSCALE)) {
|
||||||
phys_addr = (desc & 0xfffff000) | (address & 0xfff);
|
phys_addr = (desc & 0xfffff000) | (address & 0xfff);
|
||||||
} else {
|
} else {
|
||||||
/* Page translation fault. */
|
/* Page translation fault. */
|
||||||
code = 7;
|
code = 7;
|
||||||
goto do_fault;
|
goto do_fault;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
phys_addr = (desc & 0xfffffc00) | (address & 0x3ff);
|
phys_addr = (desc & 0xfffffc00) | (address & 0x3ff);
|
||||||
}
|
}
|
||||||
ap = (desc >> 4) & 3;
|
ap = (desc >> 4) & 3;
|
||||||
*page_size = 0x400;
|
*page_size = 0x400;
|
||||||
break;
|
break;
|
||||||
|
@ -4734,18 +4734,18 @@ static int get_phys_addr_mpu(CPUARMState *env, uint32_t address,
|
||||||
|
|
||||||
*phys_ptr = address;
|
*phys_ptr = address;
|
||||||
for (n = 7; n >= 0; n--) {
|
for (n = 7; n >= 0; n--) {
|
||||||
base = env->cp15.c6_region[n];
|
base = env->cp15.c6_region[n];
|
||||||
if ((base & 1) == 0)
|
if ((base & 1) == 0)
|
||||||
continue;
|
continue;
|
||||||
mask = 1 << ((base >> 1) & 0x1f);
|
mask = 1 << ((base >> 1) & 0x1f);
|
||||||
/* Keep this shift separate from the above to avoid an
|
/* Keep this shift separate from the above to avoid an
|
||||||
(undefined) << 32. */
|
(undefined) << 32. */
|
||||||
mask = (mask << 1) - 1;
|
mask = (mask << 1) - 1;
|
||||||
if (((base ^ address) & ~mask) == 0)
|
if (((base ^ address) & ~mask) == 0)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (n < 0)
|
if (n < 0)
|
||||||
return 2;
|
return 2;
|
||||||
|
|
||||||
if (access_type == 2) {
|
if (access_type == 2) {
|
||||||
mask = env->cp15.pmsav5_insn_ap;
|
mask = env->cp15.pmsav5_insn_ap;
|
||||||
|
@ -4755,31 +4755,31 @@ static int get_phys_addr_mpu(CPUARMState *env, uint32_t address,
|
||||||
mask = (mask >> (n * 4)) & 0xf;
|
mask = (mask >> (n * 4)) & 0xf;
|
||||||
switch (mask) {
|
switch (mask) {
|
||||||
case 0:
|
case 0:
|
||||||
return 1;
|
|
||||||
case 1:
|
|
||||||
if (is_user)
|
|
||||||
return 1;
|
|
||||||
*prot = PAGE_READ | PAGE_WRITE;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
*prot = PAGE_READ;
|
|
||||||
if (!is_user)
|
|
||||||
*prot |= PAGE_WRITE;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
*prot = PAGE_READ | PAGE_WRITE;
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
if (is_user)
|
|
||||||
return 1;
|
return 1;
|
||||||
*prot = PAGE_READ;
|
case 1:
|
||||||
break;
|
if (is_user)
|
||||||
|
return 1;
|
||||||
|
*prot = PAGE_READ | PAGE_WRITE;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
*prot = PAGE_READ;
|
||||||
|
if (!is_user)
|
||||||
|
*prot |= PAGE_WRITE;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
*prot = PAGE_READ | PAGE_WRITE;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
if (is_user)
|
||||||
|
return 1;
|
||||||
|
*prot = PAGE_READ;
|
||||||
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
*prot = PAGE_READ;
|
*prot = PAGE_READ;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* Bad permission. */
|
/* Bad permission. */
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
*prot |= PAGE_EXEC;
|
*prot |= PAGE_EXEC;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue