mmu_context.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  *  include/asm-s390/mmu_context.h
  3.  *
  4.  *  S390 version
  5.  *
  6.  *  Derived from "include/asm-i386/mmu_context.h"
  7.  */
  8. #ifndef __S390_MMU_CONTEXT_H
  9. #define __S390_MMU_CONTEXT_H
  10. /*
  11.  * get a new mmu context.. S390 don't know about contexts.
  12.  */
  13. #define init_new_context(tsk,mm)        0
  14. #define destroy_context(mm)             flush_tlb_mm(mm)
  15. static inline void enter_lazy_tlb(struct mm_struct *mm,
  16.                                   struct task_struct *tsk, unsigned cpu)
  17. {
  18. }
  19. static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
  20.                              struct task_struct *tsk, unsigned cpu)
  21. {
  22.         unsigned long pgd;
  23.         if (prev != next) {
  24.         pgd = (__pa(next->pgd)&PAGE_MASK) | 
  25.                       (_SEGMENT_TABLE|USER_STD_MASK);
  26.                 /* Load page tables */
  27.                 asm volatile("    lctl  7,7,%0n"   /* secondary space */
  28.                              "    lctl  13,13,%0n" /* home space */
  29.                              : : "m" (pgd) );
  30.         }
  31. set_bit(cpu, &next->cpu_vm_mask);
  32. }
  33. extern inline void activate_mm(struct mm_struct *prev,
  34.                                struct mm_struct *next)
  35. {
  36.         switch_mm(prev, next, current, smp_processor_id());
  37. }
  38. #endif