mmu_context.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*
  2. * Copyright (C) 2010 Tobias Klauser <tklauser@distanz.ch>
  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 <asm-generic/mm_hooks.h>
  15. extern void mmu_context_init(void);
  16. extern unsigned long get_pid_from_context(mm_context_t *ctx);
  17. /*
  18. * For the fast tlb miss handlers, we keep a pointer to the current pgd.
  19. * processor.
  20. */
  21. extern pgd_t *pgd_current;
  22. static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
  23. {
  24. }
  25. /*
  26. * Initialize the context related info for a new mm_struct instance.
  27. *
  28. * Set all new contexts to 0, that way the generation will never match
  29. * the currently running generation when this context is switched in.
  30. */
  31. static inline int init_new_context(struct task_struct *tsk,
  32. struct mm_struct *mm)
  33. {
  34. mm->context = 0;
  35. return 0;
  36. }
  37. /*
  38. * Destroy context related info for an mm_struct that is about
  39. * to be put to rest.
  40. */
  41. static inline void destroy_context(struct mm_struct *mm)
  42. {
  43. }
  44. void switch_mm(struct mm_struct *prev, struct mm_struct *next,
  45. struct task_struct *tsk);
  46. static inline void deactivate_mm(struct task_struct *tsk,
  47. struct mm_struct *mm)
  48. {
  49. }
  50. /*
  51. * After we have set current->mm to a new value, this activates
  52. * the context for the new mm so we see the new mappings.
  53. */
  54. void activate_mm(struct mm_struct *prev, struct mm_struct *next);
  55. #endif /* _ASM_NIOS2_MMU_CONTEXT_H */