LCOV - code coverage report
Current view: top level - arch/um/include/asm - mmu_context.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 7 0.0 %
Date: 2023-04-06 08:38:28 Functions: 0 0 -

          Line data    Source code
       1             : /* SPDX-License-Identifier: GPL-2.0 */
       2             : /* 
       3             :  * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
       4             :  */
       5             : 
       6             : #ifndef __UM_MMU_CONTEXT_H
       7             : #define __UM_MMU_CONTEXT_H
       8             : 
       9             : #include <linux/sched.h>
      10             : #include <linux/mm_types.h>
      11             : #include <linux/mmap_lock.h>
      12             : 
      13             : #include <asm/mm_hooks.h>
      14             : #include <asm/mmu.h>
      15             : 
      16             : extern void force_flush_all(void);
      17             : 
      18             : #define activate_mm activate_mm
      19             : static inline void activate_mm(struct mm_struct *old, struct mm_struct *new)
      20             : {
      21             :         /*
      22             :          * This is called by fs/exec.c and sys_unshare()
      23             :          * when the new ->mm is used for the first time.
      24             :          */
      25           0 :         __switch_mm(&new->context.id);
      26             : }
      27             : 
      28             : static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, 
      29             :                              struct task_struct *tsk)
      30             : {
      31           0 :         unsigned cpu = smp_processor_id();
      32             : 
      33           0 :         if(prev != next){
      34           0 :                 cpumask_clear_cpu(cpu, mm_cpumask(prev));
      35           0 :                 cpumask_set_cpu(cpu, mm_cpumask(next));
      36           0 :                 if(next != &init_mm)
      37           0 :                         __switch_mm(&next->context.id);
      38             :         }
      39             : }
      40             : 
      41             : #define init_new_context init_new_context
      42             : extern int init_new_context(struct task_struct *task, struct mm_struct *mm);
      43             : 
      44             : #define destroy_context destroy_context
      45             : extern void destroy_context(struct mm_struct *mm);
      46             : 
      47             : #include <asm-generic/mmu_context.h>
      48             : 
      49             : #endif

Generated by: LCOV version 1.14