mmu_context.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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 <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. static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
  24. {
  25. }
  26. /*
  27. * Initialize the context related info for a new mm_struct instance.
  28. *
  29. * Set all new contexts to 0, that way the generation will never match
  30. * the currently running generation when this context is switched in.
  31. */
  32. static inline int init_new_context(struct task_struct *tsk,
  33. struct mm_struct *mm)
  34. {
  35. mm->context = 0;
  36. return 0;
  37. }
  38. /*
  39. * Destroy context related info for an mm_struct that is about
  40. * to be put to rest.
  41. */
  42. static inline void destroy_context(struct mm_struct *mm)
  43. {
  44. }
  45. void switch_mm(struct mm_struct *prev, struct mm_struct *next,
  46. struct task_struct *tsk);
  47. static inline void deactivate_mm(struct task_struct *tsk,
  48. struct mm_struct *mm)
  49. {
  50. }
  51. /*
  52. * After we have set current->mm to a new value, this activates
  53. * the context for the new mm so we see the new mappings.
  54. */
  55. void activate_mm(struct mm_struct *prev, struct mm_struct *next);
  56. #endif /* _ASM_NIOS2_MMU_CONTEXT_H */