~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/asm-s390/mmu_context.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

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

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.