home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / um / include / asm / mmu_context.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.3 KB  |  55 lines

  1. /* 
  2.  * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
  3.  * Licensed under the GPL
  4.  */
  5.  
  6. #ifndef __UM_MMU_CONTEXT_H
  7. #define __UM_MMU_CONTEXT_H
  8.  
  9. #include "linux/sched.h"
  10. #include "um_mmu.h"
  11.  
  12. extern void arch_dup_mmap(struct mm_struct *oldmm, struct mm_struct *mm);
  13. extern void arch_exit_mmap(struct mm_struct *mm);
  14.  
  15. #define get_mmu_context(task) do ; while(0)
  16. #define activate_context(tsk) do ; while(0)
  17.  
  18. #define deactivate_mm(tsk,mm)    do { } while (0)
  19.  
  20. extern void force_flush_all(void);
  21.  
  22. static inline void activate_mm(struct mm_struct *old, struct mm_struct *new)
  23. {
  24.     /*
  25.      * This is called by fs/exec.c and sys_unshare()
  26.      * when the new ->mm is used for the first time.
  27.      */
  28.     __switch_mm(&new->context.id);
  29.     arch_dup_mmap(old, new);
  30. }
  31.  
  32. static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, 
  33.                  struct task_struct *tsk)
  34. {
  35.     unsigned cpu = smp_processor_id();
  36.  
  37.     if(prev != next){
  38.         cpu_clear(cpu, prev->cpu_vm_mask);
  39.         cpu_set(cpu, next->cpu_vm_mask);
  40.         if(next != &init_mm)
  41.             __switch_mm(&next->context.id);
  42.     }
  43. }
  44.  
  45. static inline void enter_lazy_tlb(struct mm_struct *mm, 
  46.                   struct task_struct *tsk)
  47. {
  48. }
  49.  
  50. extern int init_new_context(struct task_struct *task, struct mm_struct *mm);
  51.  
  52. extern void destroy_context(struct mm_struct *mm);
  53.  
  54. #endif
  55.