Loading...
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __SPARC_MMU_CONTEXT_H
3#define __SPARC_MMU_CONTEXT_H
4
5#ifndef __ASSEMBLY__
6
7#include <asm-generic/mm_hooks.h>
8
9/* Initialize a new mmu context. This is invoked when a new
10 * address space instance (unique or shared) is instantiated.
11 */
12#define init_new_context init_new_context
13int init_new_context(struct task_struct *tsk, struct mm_struct *mm);
14
15/* Destroy a dead context. This occurs when mmput drops the
16 * mm_users count to zero, the mmaps have been released, and
17 * all the page tables have been flushed. Our job is to destroy
18 * any remaining processor-specific state.
19 */
20#define destroy_context destroy_context
21void destroy_context(struct mm_struct *mm);
22
23/* Switch the current MM context. */
24void switch_mm(struct mm_struct *old_mm, struct mm_struct *mm,
25 struct task_struct *tsk);
26
27/* Activate a new MM instance for the current task. */
28#define activate_mm(active_mm, mm) switch_mm((active_mm), (mm), NULL)
29
30#include <asm-generic/mmu_context.h>
31
32#endif /* !(__ASSEMBLY__) */
33
34#endif /* !(__SPARC_MMU_CONTEXT_H) */
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __SPARC_MMU_CONTEXT_H
3#define __SPARC_MMU_CONTEXT_H
4
5#ifndef __ASSEMBLY__
6
7#include <asm-generic/mm_hooks.h>
8
9static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
10{
11}
12
13/* Initialize a new mmu context. This is invoked when a new
14 * address space instance (unique or shared) is instantiated.
15 */
16int init_new_context(struct task_struct *tsk, struct mm_struct *mm);
17
18/* Destroy a dead context. This occurs when mmput drops the
19 * mm_users count to zero, the mmaps have been released, and
20 * all the page tables have been flushed. Our job is to destroy
21 * any remaining processor-specific state.
22 */
23void destroy_context(struct mm_struct *mm);
24
25/* Switch the current MM context. */
26void switch_mm(struct mm_struct *old_mm, struct mm_struct *mm,
27 struct task_struct *tsk);
28
29#define deactivate_mm(tsk,mm) do { } while (0)
30
31/* Activate a new MM instance for the current task. */
32#define activate_mm(active_mm, mm) switch_mm((active_mm), (mm), NULL)
33
34#endif /* !(__ASSEMBLY__) */
35
36#endif /* !(__SPARC_MMU_CONTEXT_H) */