Line data Source code
1 : /* SPDX-License-Identifier: GPL-2.0 */ 2 : #ifndef __ASM_GENERIC_MMU_CONTEXT_H 3 : #define __ASM_GENERIC_MMU_CONTEXT_H 4 : 5 : /* 6 : * Generic hooks to implement no-op functionality. 7 : */ 8 : 9 : struct task_struct; 10 : struct mm_struct; 11 : 12 : /* 13 : * enter_lazy_tlb - Called when "tsk" is about to enter lazy TLB mode. 14 : * 15 : * @mm: the currently active mm context which is becoming lazy 16 : * @tsk: task which is entering lazy tlb 17 : * 18 : * tsk->mm will be NULL 19 : */ 20 : #ifndef enter_lazy_tlb 21 : static inline void enter_lazy_tlb(struct mm_struct *mm, 22 : struct task_struct *tsk) 23 : { 24 : } 25 : #endif 26 : 27 : /** 28 : * init_new_context - Initialize context of a new mm_struct. 29 : * @tsk: task struct for the mm 30 : * @mm: the new mm struct 31 : * @return: 0 on success, -errno on failure 32 : */ 33 : #ifndef init_new_context 34 : static inline int init_new_context(struct task_struct *tsk, 35 : struct mm_struct *mm) 36 : { 37 : return 0; 38 : } 39 : #endif 40 : 41 : /** 42 : * destroy_context - Undo init_new_context when the mm is going away 43 : * @mm: old mm struct 44 : */ 45 : #ifndef destroy_context 46 : static inline void destroy_context(struct mm_struct *mm) 47 : { 48 : } 49 : #endif 50 : 51 : /** 52 : * activate_mm - called after exec switches the current task to a new mm, to switch to it 53 : * @prev_mm: previous mm of this task 54 : * @next_mm: new mm 55 : */ 56 : #ifndef activate_mm 57 : static inline void activate_mm(struct mm_struct *prev_mm, 58 : struct mm_struct *next_mm) 59 : { 60 15447192 : switch_mm(prev_mm, next_mm, current); 61 : } 62 : #endif 63 : 64 : /** 65 : * dectivate_mm - called when an mm is released after exit or exec switches away from it 66 : * @tsk: the task 67 : * @mm: the old mm 68 : */ 69 : #ifndef deactivate_mm 70 : static inline void deactivate_mm(struct task_struct *tsk, 71 : struct mm_struct *mm) 72 : { 73 : } 74 : #endif 75 : 76 : #endif /* __ASM_GENERIC_MMU_CONTEXT_H */