cpu-multi32.h
上传用户:szlgq88
上传日期:2009-04-28
资源大小:48287k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  *  linux/include/asm-arm/cpu-multi32.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. #include <asm/page.h>
  11. struct mm_struct;
  12. /*
  13.  * Don't change this structure - ASM code
  14.  * relies on it.
  15.  */
  16. extern struct processor {
  17. /* MISC
  18.  * get data abort address/flags
  19.  */
  20. void (*_data_abort)(unsigned long pc);
  21. /*
  22.  * Set up any processor specifics
  23.  */
  24. void (*_proc_init)(void);
  25. /*
  26.  * Disable any processor specifics
  27.  */
  28. void (*_proc_fin)(void);
  29. /*
  30.  * Special stuff for a reset
  31.  */
  32. void (*reset)(unsigned long addr) __attribute__((noreturn));
  33. /*
  34.  * Idle the processor
  35.  */
  36. int (*_do_idle)(void);
  37. /*
  38.  * Processor architecture specific
  39.  */
  40. /*
  41.  * clean a virtual address range from the
  42.  * D-cache without flushing the cache.
  43.  */
  44. void (*dcache_clean_area)(void *addr, int size);
  45. /*
  46.  * Set the page table
  47.  */
  48. void (*switch_mm)(unsigned long pgd_phys, struct mm_struct *mm);
  49. /*
  50.  * Set a PTE
  51.  */
  52. void (*set_pte)(pte_t *ptep, pte_t pte);
  53. } processor;
  54. #define cpu_proc_init() processor._proc_init()
  55. #define cpu_proc_fin() processor._proc_fin()
  56. #define cpu_reset(addr) processor.reset(addr)
  57. #define cpu_do_idle() processor._do_idle()
  58. #define cpu_dcache_clean_area(addr,sz) processor.dcache_clean_area(addr,sz)
  59. #define cpu_set_pte(ptep, pte) processor.set_pte(ptep, pte)
  60. #define cpu_do_switch_mm(pgd,mm) processor.switch_mm(pgd,mm)