mmu_context.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /*
  2. * Copyright (C) 2010 Tobias Klauser <[email protected]>
  3. * Copyright (C) 1996, 1997, 1998, 1999 by Ralf Baechle
  4. * Copyright (C) 1999 Silicon Graphics, Inc.
  5. *
  6. * based on MIPS asm/mmu_context.h
  7. *
  8. * This file is subject to the terms and conditions of the GNU General Public
  9. * License. See the file "COPYING" in the main directory of this archive
  10. * for more details.
  11. */
  12. #ifndef _ASM_NIOS2_MMU_CONTEXT_H
  13. #define _ASM_NIOS2_MMU_CONTEXT_H
  14. #include <linux/mm_types.h>
  15. #include <asm-generic/mm_hooks.h>
  16. extern void mmu_context_init(void);
  17. extern unsigned long get_pid_from_context(mm_context_t *ctx);
  18. /*
  19. * For the fast tlb miss handlers, we keep a pointer to the current pgd.
  20. * processor.
  21. */
  22. extern pgd_t *pgd_current;
  23. /*
  24. * Initialize the context related info for a new mm_struct instance.
  25. *
  26. * Set all new contexts to 0, that way the generation will never match
  27. * the currently running generation when this context is switched in.
  28. */
  29. #define init_new_context init_new_context
  30. static inline int init_new_context(struct task_struct *tsk,
  31. struct mm_struct *mm)
  32. {
  33. mm->context = 0;
  34. return 0;
  35. }
  36. void switch_mm(struct mm_struct *prev, struct mm_struct *next,
  37. struct task_struct *tsk);
  38. /*
  39. * After we have set current->mm to a new value, this activates
  40. * the context for the new mm so we see the new mappings.
  41. */
  42. #define activate_mm activate_mm
  43. void activate_mm(struct mm_struct *prev, struct mm_struct *next);
  44. #include <asm-generic/mmu_context.h>
  45. #endif /* _ASM_NIOS2_MMU_CONTEXT_H */