dump_linuxpagetables-generic.c 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * From split of dump_linuxpagetables.c
  4. * Copyright 2016, Rashmica Gupta, IBM Corp.
  5. *
  6. */
  7. #include <linux/kernel.h>
  8. #include <asm/pgtable.h>
  9. #include "dump_linuxpagetables.h"
  10. static const struct flag_info flag_array[] = {
  11. {
  12. .mask = _PAGE_USER,
  13. .val = _PAGE_USER,
  14. .set = "user",
  15. .clear = " ",
  16. }, {
  17. .mask = _PAGE_RW,
  18. .val = _PAGE_RW,
  19. .set = "rw",
  20. .clear = "r ",
  21. }, {
  22. #ifndef CONFIG_PPC_BOOK3S_32
  23. .mask = _PAGE_EXEC,
  24. .val = _PAGE_EXEC,
  25. .set = " X ",
  26. .clear = " ",
  27. }, {
  28. #endif
  29. .mask = _PAGE_PRESENT,
  30. .val = _PAGE_PRESENT,
  31. .set = "present",
  32. .clear = " ",
  33. }, {
  34. .mask = _PAGE_GUARDED,
  35. .val = _PAGE_GUARDED,
  36. .set = "guarded",
  37. .clear = " ",
  38. }, {
  39. .mask = _PAGE_DIRTY,
  40. .val = _PAGE_DIRTY,
  41. .set = "dirty",
  42. .clear = " ",
  43. }, {
  44. .mask = _PAGE_ACCESSED,
  45. .val = _PAGE_ACCESSED,
  46. .set = "accessed",
  47. .clear = " ",
  48. }, {
  49. .mask = _PAGE_WRITETHRU,
  50. .val = _PAGE_WRITETHRU,
  51. .set = "write through",
  52. .clear = " ",
  53. }, {
  54. .mask = _PAGE_NO_CACHE,
  55. .val = _PAGE_NO_CACHE,
  56. .set = "no cache",
  57. .clear = " ",
  58. }, {
  59. .mask = _PAGE_SPECIAL,
  60. .val = _PAGE_SPECIAL,
  61. .set = "special",
  62. }
  63. };
  64. struct pgtable_level pg_level[5] = {
  65. {
  66. }, { /* pgd */
  67. .flag = flag_array,
  68. .num = ARRAY_SIZE(flag_array),
  69. }, { /* pud */
  70. .flag = flag_array,
  71. .num = ARRAY_SIZE(flag_array),
  72. }, { /* pmd */
  73. .flag = flag_array,
  74. .num = ARRAY_SIZE(flag_array),
  75. }, { /* pte */
  76. .flag = flag_array,
  77. .num = ARRAY_SIZE(flag_array),
  78. },
  79. };