proc-fns.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * Based on arch/arm/include/asm/proc-fns.h
  3. *
  4. * Copyright (C) 1997-1999 Russell King
  5. * Copyright (C) 2000 Deep Blue Solutions Ltd
  6. * Copyright (C) 2012 ARM Ltd.
  7. *
  8. * This program is free software; you can redistribute it and/or modify
  9. * it under the terms of the GNU General Public License version 2 as
  10. * published by the Free Software Foundation.
  11. *
  12. * This program is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU General Public License
  18. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  19. */
  20. #ifndef __ASM_PROCFNS_H
  21. #define __ASM_PROCFNS_H
  22. #ifdef __KERNEL__
  23. #ifndef __ASSEMBLY__
  24. #include <asm/page.h>
  25. struct mm_struct;
  26. struct cpu_suspend_ctx;
  27. extern void cpu_do_idle(void);
  28. extern void cpu_do_switch_mm(unsigned long pgd_phys, struct mm_struct *mm);
  29. extern void cpu_do_suspend(struct cpu_suspend_ctx *ptr);
  30. extern u64 cpu_do_resume(phys_addr_t ptr, u64 idmap_ttbr);
  31. #include <asm/memory.h>
  32. #define cpu_switch_mm(pgd,mm) \
  33. do { \
  34. BUG_ON(pgd == swapper_pg_dir); \
  35. cpu_do_switch_mm(virt_to_phys(pgd),mm); \
  36. } while (0)
  37. #endif /* __ASSEMBLY__ */
  38. #endif /* __KERNEL__ */
  39. #endif /* __ASM_PROCFNS_H */