1*f005ef32Sjsg /* SPDX-License-Identifier: MIT */ 2*f005ef32Sjsg /* 3*f005ef32Sjsg * Copyright © 2023 Intel Corporation 4*f005ef32Sjsg */ 5*f005ef32Sjsg 6*f005ef32Sjsg #ifndef INTEL_TLB_H 7*f005ef32Sjsg #define INTEL_TLB_H 8*f005ef32Sjsg 9*f005ef32Sjsg #include <linux/seqlock.h> 10*f005ef32Sjsg #include <linux/types.h> 11*f005ef32Sjsg 12*f005ef32Sjsg #include "intel_gt_types.h" 13*f005ef32Sjsg 14*f005ef32Sjsg void intel_gt_invalidate_tlb_full(struct intel_gt *gt, u32 seqno); 15*f005ef32Sjsg 16*f005ef32Sjsg void intel_gt_init_tlb(struct intel_gt *gt); 17*f005ef32Sjsg void intel_gt_fini_tlb(struct intel_gt *gt); 18*f005ef32Sjsg intel_gt_tlb_seqno(const struct intel_gt * gt)19*f005ef32Sjsgstatic inline u32 intel_gt_tlb_seqno(const struct intel_gt *gt) 20*f005ef32Sjsg { 21*f005ef32Sjsg return seqprop_sequence(>->tlb.seqno); 22*f005ef32Sjsg } 23*f005ef32Sjsg intel_gt_next_invalidate_tlb_full(const struct intel_gt * gt)24*f005ef32Sjsgstatic inline u32 intel_gt_next_invalidate_tlb_full(const struct intel_gt *gt) 25*f005ef32Sjsg { 26*f005ef32Sjsg return intel_gt_tlb_seqno(gt) | 1; 27*f005ef32Sjsg } 28*f005ef32Sjsg 29*f005ef32Sjsg #endif /* INTEL_TLB_H */ 30