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