proc-fns.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * linux/include/asm-arm26/proc-fns.h
  3. *
  4. * Copyright (C) 2000 Russell King
  5. *
  6. * This program is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License version 2 as
  8. * published by the Free Software Foundation.
  9. */
  10. #ifndef __ASSEMBLY__
  11. #include <asm/page.h>
  12. /*
  13. * Don't change this structure - ASM code
  14. * relies on it.
  15. */
  16. extern struct processor {
  17. /* check for any bugs */
  18. void (*_check_bugs)(void);
  19. /* Set up any processor specifics */
  20. void (*_proc_init)(void);
  21. /* Disable any processor specifics */
  22. void (*_proc_fin)(void);
  23. /* set the MEMC hardware mappings */
  24. void (*_set_pgd)(pgd_t *pgd);
  25. /* XCHG */
  26. unsigned long (*_xchg_1)(unsigned long x, volatile void *ptr);
  27. unsigned long (*_xchg_4)(unsigned long x, volatile void *ptr);
  28. } processor;
  29. extern const struct processor arm2_processor_functions;
  30. extern const struct processor arm250_processor_functions;
  31. extern const struct processor arm3_processor_functions;
  32. #define cpu_check_bugs() processor._check_bugs()
  33. #define cpu_proc_init() processor._proc_init()
  34. #define cpu_proc_fin() processor._proc_fin()
  35. #define cpu_do_idle() do { } while (0)
  36. #define cpu_switch_mm(pgd,mm) processor._set_pgd(pgd)
  37. #define cpu_xchg_1(x,ptr) processor._xchg_1(x,ptr)
  38. #define cpu_xchg_4(x,ptr) processor._xchg_4(x,ptr)
  39. //FIXME - these shouldnt be in proc-fn.h
  40. extern void cpu_memc_update_all(pgd_t *pgd);
  41. extern void cpu_memc_update_entry(pgd_t *pgd, unsigned long phys_pte, unsigned long log_addr);
  42. #endif