mmu.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  * parisc mmu structures 
  3.  */
  4. #ifndef _PARISC_MMU_H_
  5. #define _PARISC_MMU_H_
  6. #ifndef __ASSEMBLY__
  7. /* Default "unsigned long" context */
  8. typedef unsigned long mm_context_t;
  9. /* Hardware Page Table Entry */
  10. typedef struct _PTE {
  11. unsigned long v:1; /* Entry is valid */
  12. unsigned long tag:31; /* Unique Tag */
  13. unsigned long r:1; /* referenced */
  14. unsigned long os_1:1; /*  */
  15. unsigned long t:1; /* page reference trap */
  16. unsigned long d:1; /* dirty */
  17. unsigned long b:1; /* break */
  18. unsigned long type:3; /* access type */
  19. unsigned long pl1:2; /* PL1 (execute) */
  20. unsigned long pl2:2; /* PL2 (write) */
  21. unsigned long u:1; /* uncacheable */
  22. unsigned long id:1; /* access id */
  23. unsigned long os_2:1; /*  */
  24. unsigned long os_3:3; /*  */
  25. unsigned long res_1:4; /*  */
  26. unsigned long phys:20; /* physical page number */
  27. unsigned long os_4:2; /*  */
  28. unsigned long res_2:3; /*  */
  29. unsigned long next; /* pointer to next page */
  30. } PTE; 
  31. /*
  32.  * Simulated two-level MMU.  This structure is used by the kernel
  33.  * to keep track of MMU mappings and is used to update/maintain
  34.  * the hardware HASH table which is really a cache of mappings.
  35.  *
  36.  * The simulated structures mimic the hardware available on other
  37.  * platforms, notably the 80x86 and 680x0.
  38.  */
  39. typedef struct _pte {
  40.     unsigned long page_num:20;
  41.     unsigned long flags:12; /* Page flags (some unused bits) */
  42. } pte;
  43. #define PD_SHIFT (10+12) /* Page directory */
  44. #define PD_MASK  0x02FF
  45. #define PT_SHIFT (12) /* Page Table */
  46. #define PT_MASK  0x02FF
  47. #define PG_SHIFT (12) /* Page Entry */
  48. /* MMU context */
  49. typedef struct _MMU_context {
  50. long pid[4];
  51. pte **pmap; /* Two-level page-map structure */
  52. } MMU_context;
  53. #endif /* __ASSEMBLY__ */
  54. #endif /* _PARISC_MMU_H_ */