Lines Matching defs:gic
824 static void test_sysreg_array(int gic, const struct sr_def *sr, int nr,
844 ret = __kvm_has_device_attr(gic, KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS,
849 ret = __kvm_device_attr_get(gic, KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS,
851 TEST_ASSERT(ret == 0 || !check(gic, &sr[i], "read"), "%s unreadable", sr[i].name);
852 ret = __kvm_device_attr_set(gic, KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS,
854 TEST_ASSERT(ret == 0 || !check(gic, &sr[i], "write"), "%s unwritable", sr[i].name);
858 static u8 get_ctlr_pribits(int gic)
864 ret = __kvm_device_attr_get(gic, KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS,
874 static int check_unaccessible_el1_regs(int gic, const struct sr_def *sr, const char *what)
879 if (get_ctlr_pribits(gic) >= 6)
886 if (get_ctlr_pribits(gic) == 7)
897 static u8 get_vtr_pribits(int gic)
903 ret = __kvm_device_attr_get(gic, KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS,
913 static int check_unaccessible_el2_regs(int gic, const struct sr_def *sr, const char *what)
918 if (get_vtr_pribits(gic) >= 6)
925 if (get_vtr_pribits(gic) == 7)
942 int gic;
955 gic = kvm_create_device(vm, KVM_DEV_TYPE_ARM_VGIC_V3);
956 TEST_ASSERT(gic >= 0, "No GIC???");
958 kvm_device_attr_set(gic, KVM_DEV_ARM_VGIC_GRP_CTRL,
961 test_sysreg_array(gic, sysregs_el1, ARRAY_SIZE(sysregs_el1), check_unaccessible_el1_regs);
963 test_sysreg_array(gic, sysregs_el2, ARRAY_SIZE(sysregs_el2), check_unaccessible_el2_regs);
967 close(gic);