Changeset f114d40 in mainline
- Timestamp:
- 2023-01-30T18:24:15Z (2 years ago)
- Branches:
- master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 64e9cf4, 95658c9
- Parents:
- 0161d16
- git-author:
- Colin V. Parker <cvparker@…> (2023-01-29 16:30:57)
- git-committer:
- Jakub Jermář <jakub@…> (2023-01-30 18:24:15)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/amd64/include/arch/mm/page.h
r0161d16 rf114d40 93 93 /* Get PTE address accessors for each level. */ 94 94 #define GET_PTL1_ADDRESS_ARCH(ptl0, i) \ 95 ((pte_t *) ((((uint64_t) ((pte_t *) (ptl0))[(i)].addr_12_31) << 12) | \ 96 (((uint64_t) ((pte_t *) (ptl0))[(i)].addr_32_62) << 32))) 95 ((pte_t *) (((uint64_t) ((pte_t *) (ptl0))[(i)].addr_12_51) << 12)) 97 96 #define GET_PTL2_ADDRESS_ARCH(ptl1, i) \ 98 ((pte_t *) ((((uint64_t) ((pte_t *) (ptl1))[(i)].addr_12_31) << 12) | \ 99 (((uint64_t) ((pte_t *) (ptl1))[(i)].addr_32_62) << 32))) 97 ((pte_t *) (((uint64_t) ((pte_t *) (ptl1))[(i)].addr_12_51) << 12)) 100 98 #define GET_PTL3_ADDRESS_ARCH(ptl2, i) \ 101 ((pte_t *) ((((uint64_t) ((pte_t *) (ptl2))[(i)].addr_12_31) << 12) | \ 102 (((uint64_t) ((pte_t *) (ptl2))[(i)].addr_32_62) << 32))) 99 ((pte_t *) (((uint64_t) ((pte_t *) (ptl2))[(i)].addr_12_51) << 12)) 103 100 #define GET_FRAME_ADDRESS_ARCH(ptl3, i) \ 104 ((uintptr_t *) \ 105 ((((uint64_t) ((pte_t *) (ptl3))[(i)].addr_12_31) << 12) | \ 106 (((uint64_t) ((pte_t *) (ptl3))[(i)].addr_32_62) << 32))) 101 ((uintptr_t *) (((uint64_t) ((pte_t *) (ptl3))[(i)].addr_12_51) << 12)) 107 102 108 103 /* Set PTE address accessors for each level. */ … … 154 149 ((p)->present != 0) 155 150 #define PTE_GET_FRAME_ARCH(p) \ 156 ((((uintptr_t) (p)->addr_12_31) << 12) | \ 157 ((uintptr_t) (p)->addr_32_62 << 32)) 151 (((uintptr_t) (p)->addr_12_51) << 12) 158 152 #define PTE_WRITABLE_ARCH(p) \ 159 153 ((p)->writeable != 0) … … 202 196 unsigned int soft_valid : 1; /**< Valid content even if present bit is cleared. */ 203 197 unsigned int avl : 2; 204 unsigned int addr_12_31 : 20;205 unsigned int addr_32_62 : 31;198 unsigned long addr_12_51 : 40; 199 unsigned int reserved : 11; 206 200 unsigned int no_execute : 1; 207 201 } __attribute__((packed)) pte_t; … … 224 218 pte_t *p = &pt[i]; 225 219 226 p->addr_12_31 = (a >> 12) & UINT32_C(0xfffff); 227 p->addr_32_62 = a >> 32; 220 p->addr_12_51 = (a >> 12) & UINT64_C(0xffffffffff); 228 221 } 229 222
Note:
See TracChangeset
for help on using the changeset viewer.