access_rw
{ SYS_DESC(SYS_VBAR_EL1), access_rw, reset_val, VBAR_EL1, 0 },
EL2_REG(SCTLR_EL2, access_rw, reset_val, SCTLR_EL2_RES1),
EL2_REG(ACTLR_EL2, access_rw, reset_val, 0),
EL2_REG(CPTR_EL2, access_rw, reset_val, CPTR_NVHE_EL2_RES1),
EL2_REG(TTBR0_EL2, access_rw, reset_val, 0),
EL2_REG(TTBR1_EL2, access_rw, reset_val, 0),
EL2_REG(TCR_EL2, access_rw, reset_val, TCR_EL2_RES1),
EL2_REG_FILTERED(TCR2_EL2, access_rw, reset_val, TCR2_EL2_RES1,
EL2_REG(AFSR0_EL2, access_rw, reset_val, 0),
EL2_REG(AFSR1_EL2, access_rw, reset_val, 0),
EL2_REG(HPFAR_EL2, access_rw, reset_val, 0),
EL2_REG(MAIR_EL2, access_rw, reset_val, 0),
EL2_REG_FILTERED(PIRE0_EL2, access_rw, reset_val, 0,
EL2_REG_FILTERED(PIR_EL2, access_rw, reset_val, 0,
EL2_REG_FILTERED(POR_EL2, access_rw, reset_val, 0,
EL2_REG(AMAIR_EL2, access_rw, reset_val, 0),
EL2_REG(VBAR_EL2, access_rw, reset_val, 0),
EL2_REG(CONTEXTIDR_EL2, access_rw, reset_val, 0),
EL2_REG(TPIDR_EL2, access_rw, reset_val, 0),
EL2_REG(CNTHCTL_EL2, access_rw, reset_val, 0),
access_rw(vcpu, p, r);
} access_rw;
&cmd->access_rw.iova);
ucmd, cmd->id, cmd->access_rw.iova,
cmd->access_rw.length,
u64_to_user_ptr(cmd->access_rw.uptr),
cmd->access_rw.flags);
.access_rw = { .uptr = (uintptr_t)tmp },
for (access_cmd.access_rw.iova = iova + PAGE_SIZE - 50;
access_cmd.access_rw.iova < iova + PAGE_SIZE + 50;
access_cmd.access_rw.iova++) {
for (access_cmd.access_rw.length = 1;
access_cmd.access_rw.length < sizeof(tmp);
access_cmd.access_rw.length++) {
access_cmd.access_rw.flags = def_flags;
memcmp(buffer + (access_cmd.access_rw.iova -
tmp, access_cmd.access_rw.length));
access_cmd.access_rw.flags = def_flags |
memcmp(buffer + (access_cmd.access_rw.iova -
tmp, access_cmd.access_rw.length));
access_cmd.access_rw.iova = iova;
access_cmd.access_rw.length = BUFFER_SIZE;
access_cmd.access_rw.flags = def_flags;
access_cmd.access_rw.uptr = (uintptr_t)tmp2;
ASSERT_EQ(0, memcmp(buffer, tmp2, access_cmd.access_rw.length));
TEST_F(iommufd_ioas, access_rw)
TEST_FAIL_NTH(basic_fail_nth, access_rw)
.access_rw = { .iova = iova,
access_cmd.access_rw.flags = MOCK_ACCESS_RW_WRITE;
access_cmd.access_rw.flags = MOCK_ACCESS_RW_SLOW_PATH;
access_cmd.access_rw.flags = MOCK_ACCESS_RW_SLOW_PATH |
.access_rw = { .iova = iova,