On 22/06/21 19:57, Sean Christopherson wrote:
+static inline bool is_##reg##_##name(struct kvm_mmu *mmu) \
What do you think about calling these is_mmu_##name? The point of having these helpers is that the register doesn't count, and they return the effective value (e.g. false in most EPT cases).
Paolo
+{ \ + return !!(mmu->mmu_role. base_or_ext . reg##_##name); \ +} +BUILD_MMU_ROLE_ACCESSOR(ext, cr0, pg); +BUILD_MMU_ROLE_ACCESSOR(base, cr0, wp); +BUILD_MMU_ROLE_ACCESSOR(ext, cr4, pse); +BUILD_MMU_ROLE_ACCESSOR(ext, cr4, pae); +BUILD_MMU_ROLE_ACCESSOR(ext, cr4, smep); +BUILD_MMU_ROLE_ACCESSOR(ext, cr4, smap); +BUILD_MMU_ROLE_ACCESSOR(ext, cr4, pke); +BUILD_MMU_ROLE_ACCESSOR(ext, cr4, la57); +BUILD_MMU_ROLE_ACCESSOR(base, efer, nx); + struct kvm_mmu_role_regs vcpu_to_role_regs(struct kvm_vcpu *vcpu)